Очередная войнушка на тему "твой язык программирования сосет больше, чем мой язык программирования" у
avva навела меня на мысль. Я подумал - какой язык программирования мне стоило бы выучить и зачем? Т.е. языков программирования наплодили столько, что пора уже им заиметь своего Линнея и Дарвина, и выпускать определитель видов и открывать факультеты по изучению их генезиса и повадок. Кстати, неужели мне первому в голову пришла эта мысль? Не поверю, где-то это уже должно быть. Но я отклонился от темы.
Итак, я знаю следующие языки (в произвольном порядке): C, C++, Java, Prolog, Perl, PHP, Javascript, Tcl, Visual Basic в различных его изводах, Pascal. "Знаю" здесь надо толковать очень широко - т.е. мои знания, скажем, в Прологе гораздо хуже, и гораздо ржавее, моих знаний C, но концепции языка я знаю, и если бы понадобилось, думаю, смог бы продуктивно работать на нем после некоторого подновления знаний. Lisp/Scheme я встречал, однако в список внести не могу, поскольку ничего толком на нем не писал, и не уверен, что смог бы без серьезного вложения времени - а это, практически, то же самое, что учить язык заново.
Теперь вопрос - существует ли язык, который мне стоило бы выучить для практических целей? Т.е. если бы я, скажем, не знал Перла, то мне бы стоило выучить его или, скажем, Питон или PHP - потому что, скажем, писать ad-hoc программки для обработки информации в различных форматах на них удобнее, чем на C или Яве. Мне так кажется. А если бы я не знал C, то мне стоило бы его выучить, чтобы писать более эффективные программы или пользоваться тысячами готовых библиотек, у которых есть интерфейс с C.
Т.е. мне интересно, какой язык, который, если я его выучу, позволить мне решать гораздо более эффективно некоторый класс задач - при этом класс достаточно часто встречающийся, чтобы имело смысл заниматься этим заранее (т.е. если какой-то язык позволяет жутко эффективно программировать ядерные реакторы, то это непрактично - буду работать с реакторами, тогда и выучу).
Итак, я знаю следующие языки (в произвольном порядке): C, C++, Java, Prolog, Perl, PHP, Javascript, Tcl, Visual Basic в различных его изводах, Pascal. "Знаю" здесь надо толковать очень широко - т.е. мои знания, скажем, в Прологе гораздо хуже, и гораздо ржавее, моих знаний C, но концепции языка я знаю, и если бы понадобилось, думаю, смог бы продуктивно работать на нем после некоторого подновления знаний. Lisp/Scheme я встречал, однако в список внести не могу, поскольку ничего толком на нем не писал, и не уверен, что смог бы без серьезного вложения времени - а это, практически, то же самое, что учить язык заново.
Теперь вопрос - существует ли язык, который мне стоило бы выучить для практических целей? Т.е. если бы я, скажем, не знал Перла, то мне бы стоило выучить его или, скажем, Питон или PHP - потому что, скажем, писать ad-hoc программки для обработки информации в различных форматах на них удобнее, чем на C или Яве. Мне так кажется. А если бы я не знал C, то мне стоило бы его выучить, чтобы писать более эффективные программы или пользоваться тысячами готовых библиотек, у которых есть интерфейс с C.
Т.е. мне интересно, какой язык, который, если я его выучу, позволить мне решать гораздо более эффективно некоторый класс задач - при этом класс достаточно часто встречающийся, чтобы имело смысл заниматься этим заранее (т.е. если какой-то язык позволяет жутко эффективно программировать ядерные реакторы, то это непрактично - буду работать с реакторами, тогда и выучу).
Tags:
no subject
Причем - именно не Haskell, с которым все носятся, а O'Caml, который и проще и практичнее.
no subject
no subject
Во-первых - как язык для программ, где надо иметь дело с всякими хитрыми структурами данных (синтаксические деревья etc) он хорош неверотяно - одной из моих коммерческих на нем работ был оптимизатор одного Zilog'овского ассемблера - с instruction scheduling, оптимизацией переходов, удалением неиспользуемого кода, и переименованием регистров (алгоритмика там стандартная, но не очень простая). Все это дело вписалось в полторы тысячи строк кода.
Пару раз в период увлечения я на спор переписывал Perl-овские скрипты знакомых админов на ML - в обоих случая они переписались "близко к тексту" и стали немного короче и при этом за счет типового контроля нашлись ошибки в исходных скриптах (хотя, разумеется, есть много перловых идиом, которые так просто не воспроизвести). Но вообще говоря, главная проблема при его практическом использовании - довольно бедные стандартные библиотеки.
Но это "прикладуха". На самом деле он imho интересен другим - если его юзить не "как паскаль" (то есть пытаться по возможности обходится без переменных и вообще - соблюдать стиль) то довольно быстро меняется техника программирования - и это транслируется и в "нормальные языки". "Чисто функциональные структуры данных", например, очень полезная техника - у них куча хороших свойств и в смысле мультитредности и в смысле версионирования etc.
То есть если коротко - то ML imho стоит изучить (и немного попрограммировать на нем) для расширения кругозора. У меня из всего моего списка языков он по этому параметру занимает первое место с большим отрывом.
PS: Возможно в качестве некоторого обзора забавная статья:
Strong Typing and Perl (http://perl.plover.com/yak/typing/typing.html). Там пол статьи про ML, хотя автор - перловщик и ML знает довольно поверхностно (но при этом пишет по делу)
no subject
no subject
caml.inria.fr -- домашная страница проекта.
no subject
no subject
Для расширения кругозора - это все понятно, но меня в данном случае интересовал более практический подход.
no subject
no subject
no subject
no subject
no subject