![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Дошли руки почитать многочисленные описания языка Fortress, который, как предполагается, должен стать новым базовым вычислительным языком. Впечатление оказались двоякими - с одной стороны, местами интересно, с другой - четкое впечатление, что язык разрабатывали не прикладники-вычислители, а специалисты в CS (надо сказать, что впечатление соответствует действительности). Неплохие идеи перемежаются с "розочками на торте", которые в реальной жизни будут только помехой - например, использование unicode в синтаксисе и аппарат для работы с физическими размерностями.
Кроме этого, есть и очевидные глупости. Например, динамическая типизация - трудно представить себе, во-первых, зачем она нужна в "числодробительном" языке, и, во-вторых, как написать для такого языка компилятор, выдающий более-менее производительный код. Синтаксис излишне заумен - лично мне в этом отношении он больше всего напомнил Haskell, который народ именно по этой причине периодически сравнивает с Brainfuck. Ну и традиционная уже "мультипарадигменность", ради которой в язык запихали что-то функциональное, что-то от ООП... также традиционно сделав некую кашу, ненужную на практике, но позволяющую гордо заявлять, что "и это [лямбда, инкапсуляция и т.д. - подставлять по вкусу] в нем тоже есть".
Но самое забавное, это общее впечатление. Fortress чем-то очень похож... на Алгол-60. Не конструкциями, а общим стилем языка - достаточно красивого, удобного, пожалуй, для "книжного" описания алгоритмов, но малопригодного для реальных задач.
Кроме этого, есть и очевидные глупости. Например, динамическая типизация - трудно представить себе, во-первых, зачем она нужна в "числодробительном" языке, и, во-вторых, как написать для такого языка компилятор, выдающий более-менее производительный код. Синтаксис излишне заумен - лично мне в этом отношении он больше всего напомнил Haskell, который народ именно по этой причине периодически сравнивает с Brainfuck. Ну и традиционная уже "мультипарадигменность", ради которой в язык запихали что-то функциональное, что-то от ООП... также традиционно сделав некую кашу, ненужную на практике, но позволяющую гордо заявлять, что "и это [лямбда, инкапсуляция и т.д. - подставлять по вкусу] в нем тоже есть".
Но самое забавное, это общее впечатление. Fortress чем-то очень похож... на Алгол-60. Не конструкциями, а общим стилем языка - достаточно красивого, удобного, пожалуй, для "книжного" описания алгоритмов, но малопригодного для реальных задач.
no subject
Date: 2010-11-28 09:55 am (UTC)интересно, зачем в вычислительном языке размерности?... может, конечно, это особенности нашей бауманско-ИПМовской школы, но первый такт после формулировки модели всегда ее обезразмеривание... действительно, сразу возникает вопрос о производительности.
no subject
Date: 2010-11-28 12:07 pm (UTC)А обезразмеривание - это не Бауманка или ИПМ, это просто здравый смысл. :) Помимо чисто физической пользы (возможное уменьшение числа свободных параметров задачи и т.д.), эта операция, насколько возможно, минимизирует риски потери точности при вычислениях с плавающей точкой.
С другой стороны, желание иметь "язык с размерностями" - это, кажется, стандартный пунктик, которым страдают все, кто только начинает заниматься матмоделированием. Со временем у всех он столь же стандартно проходит, но похоже, что разработчки Fortress находятся именно на этой стадии, что печально.
no subject
Date: 2010-11-28 02:39 pm (UTC)Странно. Я до сих пор думал, что численные расчеты нужно проводить в безразмерных величинах. У меня был коллега на кафедре ФТТ, который запросто выносил студентов на экзамене, если те при решении задачи не "обезразмерили" формулы перед вычислениями.
no subject
Date: 2010-11-28 02:45 pm (UTC)no subject
Date: 2011-10-07 06:46 am (UTC)Подведу итог. На данный момент достаточно хороших языков программирования и специалистов по ним. Все возможности fortress'а, на мой взгляд, можно реализовать и без него, текущими средствами.)