Top.Mail.Ru

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

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

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

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

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

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

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

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

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

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

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

Возможно вам будет интересно почитать статью “Cтилизованные изображения. Векторный формат”

Заключение

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

Text.ru - 100.00%
Поделись статьей с друзьями!

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *