Другое

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

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-языков напрочь отсутствует сообщество, а это значит, что с трудностями нужно будет справляться самостоятельно или используя официальную документацию языка.

 

Заключение

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

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

Лучшие программы для тренировки скорости печати на клавиатуре
Другое

Лучшие программы для тренировки скорости печати на клавиатуре

Другое

Как разогнать Nvidia GeForce, как это сделать безопасно

ASCII – генератор текста и картинок из символов: что это, применение
Другое

ASCII – генератор текста и картинок из символов: что это, применение

Что такое NLP: расшифровываем термин простыми словами для чайников
Другое

Что такое NLP: расшифровываем термин простыми словами для чайников