LINUX.ORG.RU

Реализации Smalltalk

 


2

5

Начинаю открывать для себя удивительный мир Smalltalk (ST), не считая того единичного случая, когда на мониторе друга пятнадцать лет назад увидел загадочную VisualAge for Smalltalk. Теперь сам озадачился выбором реализаций под разные платформы. Есть несколько вопросов.

Среди опенсорсных реализаций приглядел себе Pharo. Я правильно понимаю, что здесь история повторяется как с SBCL и CMUCL, только уже Pharo заруливает своего предка Squeak? Видимо, Pharo очень хорош на линуксе в виде сервера.

Кроме линукса, интересуют реализации и под винду. Установил Дельфина (Dolphin Smalltalk). Версия толи от 2005, толи от 2006 года. Есть странное сообщение в сети: http://www.smalltalk.ru/2008/09/dolphin.html, да и на английском вчера нашел похожие. Поэтому интересует, есть ли шансы увидеть следующую версию Дельфина, и есть ли смысл покупать его (за $225)? Кроме прочего, интересует в перспективе разработка выглядящих нативно (native look & feel) приложений? По первым впечатлениям Дельфин выглядит сносно, да и исполняемые файлы умеет создавать после tree shaker, что тоже хорошо.

Теперь Cincom. Кто живее, VisualWorks или ObjectStudio? Как понимаю, первый был перекуплен. Настораживают roalty fees. Каковы эти продукты в плане создания гуевого приложения?

Наконец, что сейчас есть для маков с поддержкой Cocoa? Ambrai поддерживал Carbon, но почил с миром, что очень печалит.

Буду рад услышать всех, использующих ST, включая, конечно, yoghurt. На какие реализации лучше ориентироваться по вашему мнению?

★★★★★

Pharo, имхо, лучше для реальной работы, Squeak — для обучения. GNU Smalltalk тоже неплох. Еще был некий Cuis Smalltalk, в котором автор обещал какое-то крайне православное сглаживание и отображение графики.

Про несвободные реализации ничего не знаю.

buddhist ★★★★★ ()
Ответ на: комментарий от dave

Детали надо спрашивать у йогурта, а на первый взгляд Pharo выглядит покрасивее :) Какие-то фичи они вроде с нуля переписали, выкинули какие-то куски критичные именно для всяких обучающих целей и вообще причесали под продакшен.

buddhist ★★★★★ ()

Я вопрос уже задавал yoghurt, он мне по почте ответил:

Наиболее популярным является Squeak (у него ещё есть современная инкарнация-форк Pharo). У Squeak/Pharo - большое сообщество, доступно много плюшек, очень активные списки рассылки. Squeak/Pharo является "тру"-смолтоками, а это означает, что работа в них идёт исключительно с образами. Концепция образов может слегка шокировать неподготовленный разум, но в процессе работы позже открываются все плюсы работы с образами :)
Если в двух словах, то
* нет отдельных текстовых файлов исходных кодов, всё хранится сразу в образе
* образы платформо-независимы, исполняются виртуальной машиной, которая уже зависит от платформы
* смолтоковые процессы вертятся внутри образа
Образ - это "вещь в себе". У Squeak свой графический тулкит (Morphic), который доступен внутри образа, свой оконный менеджер, который работает внутри образа, и своя IDE (браузеры классов, workspaces, etc), которая написана на всём этом и работает внутри образа. Запускаем образ, попадаем сразу в живую динамическую среду, со своим тулкитом, IDE и пр. Надеюсь, понятно объяснил :)

GNU Smalltalk отошёл от концепции "вещи в себе", и по природе своей сам - скриптовый (т.е. как привычные Ruby и Python). Что и делает его более "земным" :) Помимо всяких доступных драйверов для БД eсть даже биндинг к GTK, можно десктопный софт писать. Ещё у GNU Smalltalk очень клевый FFI, который я летом было портировал на Squeak. Образы GNU Smalltalk тоже поддерживает.

Сообщество у GNU Smalltalk куда меньше (порядка 7-10 активных участников в списке рассылки), но, как правило, всякие наиболее обобщенные фишки со временем портируют из Squeak (как было c Seaside, PetitParser, интерфейсом к LDAPу, etc).

Я бы порекомендовал изучать Smalltalk на Squeak (или даже Pharo). Есть соответствующие хорошие книги - Squeak by example и Pharo by example (последную мы переводим уже больше года). Ещё для них летом вышла новая виртуальная машина Cog, с JIT и прочими вкусностями, которая работает в 3-4 раза быстрее предыдущей.
anonymous ()
Ответ на: комментарий от anonymous
Добавлю чуть-чуть по первому вопросу: рекомендую также посмотреть на VisualWorks — это одна из наиболее развитых коммерческих реализаций Smalltalk. Коммерческая часть, кстати, начинается только тогда, когда с помощью VW вы начинаете зарабатывать. До этого момента все бесплатно, открыто и ничем не отличается от платной версии (за исключением отсутствия поддержки).

+ рекомендую продублировать вопрос в RSUG: http://rsug.ru/

anonymous ()
Ответ на: комментарий от anonymous

Спасибо!

После некоторого изучения вопроса определил для себя, что рынок в основном фрагментирован следующим образом:

  • Squeak/Pharo - опенсорс, веб и все такое;
  • VisualWorks - кросс-платформенная коммерческая разработка;
  • VA ST (бывшая VisualAge) - примерно как предыдущее, но с другой схемой лицензирования;
  • Dolphin - многие хвалят, но винда онли, да и притормозил в своем развитии;
  • Все остальные.

Вот, тут нашел любопытный список тех, кто использовал или использует ST: http://www.goodstart.com/who-uses-smalltalk.shtml. Вижу в основном VA и VisualWorks (VW).

dave ★★★★★ ()
Последнее исправление: dave (всего исправлений: 2)

Всем чмоке в этом чате!

Начинаю открывать для себя удивительный мир Smalltalk (ST), не считая того единичного случая, когда на мониторе друга пятнадцать лет назад увидел загадочную VisualAge for Smalltalk. Теперь сам озадачился выбором реализаций под разные платформы. Есть несколько вопросов.

Очень интересно. Что-то продакшоновое писать собираетесь?

Среди опенсорсных реализаций приглядел себе Pharo

Норм

Поэтому интересует, есть ли шансы увидеть следующую версию Дельфина, и есть ли смысл покупать его (за $225)?

Я бы подождал. Кстати, его там вроде обещали сделать кроссплатформенным (ходили такие слухи, но я особо не слежу)

Кроме прочего, интересует в перспективе разработка выглядящих нативно (native look & feel) приложений?

Тут имхо всё же VisualWorks вырулит. Видел я пару приложений на нём под винду, вполне сносно. А вот под линуксом пару лет назад плакать хотелось при виде этого всего =)

Наконец, что сейчас есть для маков с поддержкой Cocoa? Ambrai поддерживал Carbon, но почил с миром, что очень печалит.

Есть такая вещь http://en.wikipedia.org/wiki/F-Script_(programming_language)

Более развернуто написать пока не смогу, ибо тут у меня масса запаров.

До связи!

yoghurt ★★★★★ ()
Ответ на: Всем чмоке в этом чате! от yoghurt

Очень интересно. Что-то продакшоновое писать собираетесь?

С идеями напряг. Все какое-то несуразное в голову лезет вроде имитационного моделирования, на котором очень сложно заработать, хотя и можно.

Я изучаю пока без цели. Просто решил восполнить огромный пробел в своих знаниях. Без Smalltalk невозможно представить историю программирования. Наконец, стал читать bluebook, некогда закаченную по твоей рекомендации.

Решил также затариться готовыми реализациями. Сейчас меня, мягко говоря, удивили цены на VA ST и VisualWorks (чертово royalty), но последний мне понравился сам по себе. Я просто читаю Bluebook и тут же изучаю реализацию описанных методов по VW. Иногда для сравнения заглядываю в Pharo, который на линуксе выглядит много лучше, но на винде предпочитаю обычно VW.

В общем, пока присматриваюсь. Но если возникнет какая-нибудь идея, связанная с вебом, то Pharo + Seaside будут кандидатами.

dave ★★★★★ ()
Ответ на: комментарий от dave

Bluebook - зачетная книжка. Одна из немногих книжек по ООП, где нет термина ООП. Да и не-мейнстримовская модель ставит мозги на место.

А на практике... На практике я лично зарекся иметь дело с фреймворками, будь они в 100 раз проще. Это сначала все здорово, а потом не успел оглянуться как уже борешься не с предметной областью, а с фреймворком.

Macil ★★★★★ ()
Ответ на: комментарий от dave

Ах да, совсем забыл.

Я начинал пилить Slime-подобное окружение для Emacs-а, которое могло бы предоставить единый интерфейс для работы с удалённым образом (и с разными реализациями).

Режим для емакса: https://github.com/dmatveev/shampoo-emacs

Бекенд для GNU Smalltalk (основная ветка, более менее работоспособна): https://github.com/dmatveev/shampoo

Бекенд для Pharo (порт с gst, почти-почти работает): http://www.squeaksource.com/Shampoo.html

Скриншот: http://ompldr.org/vYzB3Nw

Перед уходом я начинал кое-какие рефакторинги, так что там что-то может быть сломано или тормозно, но вообще если кому интересно - присоединяйтесь :)

yoghurt ★★★★★ ()
Ответ на: комментарий от yoghurt

Я сейчас в Калининграде, 77165

Охренеть, во тебя занесло. Слухай, может сходим пива попьём? (образно, я не пью). Тебя там выпускают?

vladimir-vg ★★ ()
Ответ на: комментарий от vladimir-vg

{«offtop» : «выпускают, но раз в неделю и очень ненадолго, обычно по каким-нибудь делам, так что до осени, думаю, спокойно погулять особо не получится.»}

yoghurt ★★★★★ ()
Ответ на: комментарий от dave

С идеями напряг.

Сделай плеер со встроенным микроблогом.

anonymous ()
Ответ на: комментарий от dave

Принимаю как издевку.

Да, микроблог - это уже перебор.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.