Другое

Предметно-ориентированное программирование. Достоинства и недостатки

Lorem ipsum dolor

Предметно-ориентированное программирование направлено на программирование в уникальной и даже очень конкретной области. Под такое программирование разрабатывают уникальные языки с собственным синтаксисом — предметно-ориентированные (на английском DSL «domain-specific language»). Такие языки являются полным противопоставлением языкам широкого назначения, которые могут применяться где угодно и решать разные миссии. Предметные языки могут решать небольшое количество проблем, а иногда даже только одну.

Предметно-ориентированное программирование имеет одну особенность — это его основной принцип. А принцип говорит, что нужно всегда фокусироваться на какой-то одной миссии, для которой разработан конкретный, специализированный язык программирования,используемый как раз для решения этой поставленной миссии лучше всех известных методов.

 

Предметно-ориентированное программирование

DSL-языки применяются в узкой сфере, учитывая все ее специфические моменты. Их основная задача — разрешение всех проблем области применения, для которой они были созданы. Поэтому предметно-ориентированное программирование это довольно специфическая сфера разработки. Оно завязано вокруг какой-то определенной деятельности и с каким-то уникальным языком.

Сферы предметно-ориентированного программирования и его языки:

  1. Подготовка текстовой документации для десктопной верстки — языки TeX и LaTeX.
  2. Манипулирование текстами — язык Perl.
  3. Подготовка документов по аппаратному обеспечению — языки Verilog и VHDL.
  4. Вычисления значений различных символов — языки Mathematica и Maple.
  5. Компьютерное моделирование — язык AutoLisp.
  6. Для решения проблем, использующих понятия исчисления предикатов, — язык Prolog.
  7. Команды операционным системам — язык JLC.
  8. Структурирование информации — язык XML.
  9. Макетирование — языки UML и GPSS.
  10. И др.

Также к предметно-ориентированному программированию относятся языки, встроенные в администрирование средствами крупных компаний:

  • АВАР;
  • Парус;
  • 1С;
  • и др.

На самом деле, таких «микросфер», где применяется отдельный предметный язык программирования, очень много. В основном предметно-ориентированное программирование затрагивает сферы, куда «не добраться» языками широкого назначения или где просто нецелесообразно их использование. Очень часто ПОП применяется как дополнение к основным языкам программирования, расширяя их возможности и сферу влияния.

 

Достоинства и недостатки предметно-ориентированного программирования

Сложно давать определение достоинствам и недостаткам предметно-ориентированного программирования хотя бы потому, что оно функционирует в очень специфичных областях, где «по-другому» бы просто не получилось. Это то же самое, что оценивать достоинства хирургии или стоматологии как области медицины. То есть есть область применения, и без нее никуда не деться, и все, что можно оценивать, так это специалистов «внутри» самой области. В нашем случае мы можем провести анализ и сделать некий вывод о том, какие преимущества и недостатки даст вам изучение предметно-ориентированного программирования и языков DSL в частности, но не всему ПОП.

Преимущества от изучения предметно-ориентированного программирования:

  • есть возможность применять программирование в «узких» и специфичных сферах и решать задачи, на которые языки общего назначения не способны;
  • языки DSL проще в изучении и освоении;
  • низкая конкуренция в специальности;
  • высокая оплата труда из-за специфичности языков программирования и малого количества достойных специалистов;
  • есть возможность реализовать себя в сфере, которая близка по духу, если «программирование» в широком смысле не сильно привлекает;

Недостатки от изучения предметно-ориентированного программирования:

  • невысокая востребованность на знания конкретного языка DSL, поэтому тут изучение должно быть построено «от обратного», то есть сначала искать вакансию, а потом изучать соответствующий язык;
  • нет возможности применять полученные знания в других сферах программирования, то есть если выучили какой-нибудь язык DSL, то вы вынуждены будете работать только в сфере, где он применяется;
  • небольшое или полное отсутствие сообщества, то есть у некоторых DSL-языков напрочь отсутствует сообщество, а это значит, что с трудностями нужно будет справляться самостоятельно или используя официальную документацию языка.

 

Заключение

Предметно-ориентированное программирование — это широкое понятие со множеством мелких и уникальных сфер, где можно использовать собственные знания. Единственное прежде чем приступить к изучению какого-нибудь предметного языка, нужно подыскать себе вакансию, чтобы иметь возможность сразу получить работу, а не ждать «свободного» места. Потому что в некоторых случаях ждать придется очень долго.

Схожие статьи

Сколько зарабатывают программисты Java и какая средняя зарплата?
Другое

Сколько зарабатывают программисты Java и какая средняя зарплата?

Какое влияние Google Speed Update оказывает на оптимизацию сайта
Другое

Какое влияние Google Speed Update оказывает на оптимизацию сайта

Другое

Что такое msvcrt.dll? Как исправить ошибку файла msvcrt.dll?

Олимпиада по программированию: как проходят, виды и кто участвует
Другое

Олимпиада по программированию: как проходят, виды и кто участвует

×