Описывать преимущества языка программирования задача неблагодарная и наврятли выполнимая. В свое время я написал на эту тему несколько статей. Все они были приняты общественностью очень прохладно. Те кто никогда не программировал на MUMPS ничего не поняли, мои доводы о преимуществе этого языка вызвали только недоумение . Те кто выучился на традиционных языках с трудом осваивают другие принципы. А для тех кто программировал на MUMPS мои рассуждения показались тривиальными и абсолютно очевидными. Оценить преимущества и недостатки языка невозможно основываясь только на наборе слов, какими бы правильными они не были. Любое познание это работа и не выполнив ее оценить язык нельзя. Все языки разные и как бы они не были похожи, чтобы начать на них программировать, надо погрузиться в их среду. А если языки разные то и затраты труда значительно возрастают. Доморощенные языки программирования возникают постоянно. Я себя так же отношу к их числу. И всегда на форумах авторам этих языков задают вопрос об их преимуществе перед другими языками. И не разу я не встречал вразумительного ответа на этот вопрос. Ответы обычно бывают скорее эмоциональные, чем вразумительные. Мол мне так нравится.
Но я все таки попытаюсь в очередной раз ответить на этот вопрос. Я ведь тоже себе его задаю. Изложение не будет коротким и потому прошу терпения.
Я продолжаю цикл статей о языке программирования MSH. В одной из предыдущих статей я уже описывал спецификацию этого языка. Но спецификация не раскрывает всех особенностей языка. Тот пробел я и хочу устранить этой статьей. Не все конечно удалось описать, но в основном главные особенности вроде описал. Остальное отложим до лучших времен.
Когда только складывается образ языка, кажется что все логично и непротиворечиво. Но входе реализации языка возникают проблемы, которые приходится решать выбирая ту или иную стратегию. Сейчас когда интерпретатор языка готов, можно увидеть каким образом решал те или иные проблемы реализации.
Реализация интерпретатора MSH. Хочу представить уважаемой публике интерпретатор нового языка программирования MSH. Я уже о нем писал статьи на Habr. Последняя из них Интерпретатор MSH. В этой статье есть ссылки на предыдущие статьи по этой тематике.
Отзывы были в основном негативные. После их прочтения отзывов я с удивлением обнаружил, что в мире языков программирования все уже очень идеально. Но меня грызут смутные подозрения, что все не так хорошо в этом мире. Языков конечно уже очень много, но многообразия концепций языков не наблюдается.
Основой для языка MSH послужил язык MUMPS. MUMPS разработан где то в 80-х годах прошлого столетия, как впрочем и многие другие современные языки. Он с самого начала разрабатывался как язык для создания больших информационных систем, работы с большими распределенными данными. В связи с чем имеет некоторую специфику. Программирование на этом языке несколько отличается от программирования на других языках. Несмотря на его малую распространенность у него существует довольно устойчивое сообщество в разных частях света программистов разрабатывающих на нем информационные системы. За время своего существования MUMPS мало изменился. Некоторые элементы языка потеряли актуальность. И язык на данный момент несколько архаичен. Хотелось бы иметь более современный язык подобный MUMPS. С этой целью и создавался язык MSH. Некоторые концепции языка MSH отличаются или отсутствуют в языке MUMPS. В основном для аудитории MUMS программистов и написан данный материал, но может и другим будет интересно.
Организация данных в программировании имеет определяющее значение. Способов организации данных не так уж много. Среди различных структур данных особое место занимает организация данных в виде дерева.
В предыдущей статье я уже пытался рассказать народу о достоинствах такого малоизвестного языка программирования как MUMPS. Но наряду с его достоинствами у него имеются и недостатки о которых я и хотел бы поделиться в данной статье. Некоторые комментаторы которые удосужились взглянуть на этот язык кстати обратили на них внимание. Кроме того, я хочу предложить способы устранения этих недостатков в новом языке MSH.
Мои наблюдения за развитием языков программирования оставляют странное ощущение тупика. В последнее время появилось достаточно много новых языков. Но прогресса в этой области никакого нет. Такое впечатление что развитие в этой области топчется на месте. По возможностям языки мало отличаются друг от друга. Явное противостояние видно на поле типизации переменных.