Pull to refresh

Comments 16

Будем считать, что я не заметил сарказма и ответил серьезно.

Что значит, что язык жив? Если поскрипеть мозгами, то можно предложить такое определение: язык жив, когда он востребован, имеет стабильное комьюнити и развивается. Такому определению смолток соответствует. Востребованность существует как экономическая, так и академическая. Комьюнити сейчас составляют профессиональные разработчики (которым в общем-то нет дела до холиворов) и энтузиасты-любители, подавляющее большинство которых сосредоточено вокруг проекта Pharo, плюс отдельные извращенцы вроде меня и Humbug, которые занимаются исследованиями компиляторов и считают Smalltalk удобным модельным языком по тем или иным причинам.

Я понимаю, что «полторы вакансии» могут вызывать ехидные смешки со стороны прикладных разработчиков, но тем не менее, мы говорим о фактах а не о числах. В этом смысле Smalltalk не менее жив, чем Haskell, который еще более далек от императивного мейнстрима, но тем не менее считается живым.

В то же время следует отметить, что в отличие от сугубо утилитарных языков вроде COBOL (который, кстати, тоже живет и здравствует и участвует при переводе зарплаты вам на карточку), Smalltalk умудряется оставаться актуальным. Некоторые моменты его архитектуры не устаревают со временем и вполне могут конкурировать с современными технологиями.

Конечно, есть и недостатки. Основной на мой взгляд, это консервативное сообщество и недостаточная его вовлеченность в проблемы современной разработки. Потом, есть и проблемы чисто технического плана, например грамотная поддержка многоядерности и параллелизма, которая тем не менее решается.

Smalltalk был «забыт» в те времена, когда производительность отдельно взятой машины была критически важна для бизнеса. В то время Smalltalk выглядел медлительным а его использование казалось экономически неоправданным. В последнее время производительность электроники выросла настолько, что можно вполне успешно крутить Linux в эмуляторе x86 в броузере, да и вполне активное существование NodeJS не вызывает ни у кого вопросов. В такой среде Smalltalk вполне может получить вторую жизнь.

Надеюсь, что я ответил на ваш вопрос.
В общем-то, результат голосования был предсказуем :)
Да, разумеется. Меня скорее интересовало распределение, а не результат.

Но лежащие рядом исходники это всегда хорошо. Можно почитать, поплеваться, а иногда и украсть идею :)
Да вообще интересно: как такой продукт — на минуточку, покруче Delphi будет …точнее был :) — делали и развивали два человека (если не ошибаюсь?).
Насколько я помню да, двое. Причем последнее время тянул один. Это косвенно намекает на производительность смолтока.

Мне очень жаль, что у них ничего не взлетело и что они решились на открытие исходников лишь спустя двадцать (!) лет — первые объекты DolphinVM начала крутить в феврале 1995 г.

Дабы почтить память проекта, а заодно и продемонстрировать наконец его возможности я хочу выложить обзорную статью, где пройдусь по образу и потыкаю его палочкой. Думаю, сообществу будет интересно, поскольку многие вещи до сих пор не приняты и посторонним кажутся волшебством например возможность загрузить софт ровно в том виде, в котором он был закрыт (включая окна, позиции курсора и содержимое буфера обмена).
Отличная новость! Dolphin Smalltalk одна из немногих реализаций Smalltalk, которые нормально выглядят и ведут себя под Windows. Тот же Pharo выглядит отталкивающе для новичков. Будем надеятся, что взлетит.
К стати, у Dolphin Smalltalk есть классная фича — экспорт в EXE файл. Раньше она была доступна только в платной версии. Но теперь её может пощупать любой.
А вы давно на Pharo смотрели? :) Сугубое мое ИМХО: он уже некоторое время как не отталкивающ
Я думаю sheknitrtch говорит не столько о визуальном оформлении, сколько о принятых стилях пользовательского интерфейса.
То есть, речь о Morphic-е? Его в Pharo урезали, но время такого интерфейса еще придет… А те, кого отпугивает, сами себе злобные буратины :)
Отличная новость! Проверю на досуге с помощью PVS-Studio.
Посмотрел код виртуальной машины — там та еще лапша. Ну и разумеется написано все на C-- (который вроде как C++, но по факту махровый C с вкроплениями ключевых слов из C++).

Я подозреваю, что вы там утонете :) Впрочем, тем интереснее посмотреть на результат.
…Сдается мне, это как раз основная проблема современного Smalltalk-а
За все реализации отвечать не могу, достоверно говорить могу только о трех: собственно DolphinSmalltalk, LittleSmalltalk и наш проект, LLST. Есть конечно еще CogVM, но я недостаточно компетентен, чтобы про него говорить (тем более что он вроде как написан на самом Smalltalk который был транслирован в Си).

Оригинальный LittleSmalltalk написан на чистом Си и там правда все печально — много необоснованного трокачества, макрос-ориентированное программирование, ручной рассчет смещений полей и прочие прелести. Все это я писал в вводной статье.

В LLST мы в первую очередь постарались свести к минимуму рутиную работу программиста и максимально облегчить ему жизнь. Например, были реализованы шаблоны безопасного доступа к элементам кучи, структуры базовых объектов и удобные операции преобразования типов с проверками. Ручное управление памятью и небезопасные операции выполняются только в ограниченном количестве мест и подробно описаны в комментариях.

В DolphinSmalltalk что-то похожее есть, но сделано весьма поверхностно. Очень много ручной магии с указателями, практически в каждой функции есть reinterpret_cast. Ну и самое страшное — указатели смешаны с целочисленными типами данных by design. Справедливости ради стоит сказать, что сравнивать LLST и Dolphin некорректно — это проекты из разных весовых категорий. В то же время, это нисколько не извиняет разработчиков.

… Все это приводит меня к мысли, что о портировании виртуальной машины можно забыть. Да и незачем в общем-то. Основную ценность составляет высокоуровневый код Smalltalk, а не исходники виртуальной машины, которая действительно устарела на 20 лет.
Sign up to leave a comment.

Articles