О смолтоке
От: dsorokin Россия  
Дата: 19.05.24 06:14
Оценка: 6 (1)
На мой взгляд смолток — это один из самых интересных языков программирования. По скорости исполнения — ну, не самый быстрый, зато вполне успешно во второй половине 90-х тянул старенькие пеньки, где было всего мегабайт 16 или в лучшем случае 32 мегабайта памяти. В то же время, концептуально язык очень прост, а при этом остается настолько выразительным, что позоволило ему сохранить стандартную библиотеку коллекций почти в неизменном виде с 70-х или 80-х годов. И что поразительно, библиотека коллекций смолтока вполне остается на уровне такого языка как скала, если рассматривать мутабельную часть последней. А потоки смолтока — это предвестники современных итераторов, плюс работа с файлами в одном флаконе.

Ближе к делу. Рассмотрим современную опенсорсную реализацию Pharo. Недавно вышла версия Pharo 12.

На виндузе Pharo 11 у меня вполне нормально запустился без каких-либо шероховатостей. Пожалуй, виндовая версия Pharo визуально самая безупречная.

На старом макбуке Pharo 11 тоже встало достаточно уверенно. Единственное, что заметил небольшое мерцание экрана, но вполне терпимо. Еле заметно.

На линуксе могут вас ожидать сюрпризы. Опишу свой опыт установки на АльтЛинукс.

Во-первых, на альте библиотека libc расположена в каталоге /lib64. Соответственно, и в PharoLauncher, и в башевских скриптах виртуальных машин Pharo нужно явно прописать, где находится libc. Эти скрипты находятся в файлах pharo-vm/pharo и pharo-vm/bin/pharo. Такие виртуальные машины находятся там, где вы распакуете pharolauncher, а также в каталоге ~/Pharo/vms.

Значит, добавляем строки

LIBC_SO=/lib64/libc.so.6
PLATFORMLIBDIR=/lib64


И в то же время комментируем строки

# #Try extracting Libc
# LIBC_SO="`/usr/bin/ldd "$BIN/pharo" | /bin/fgrep /libc. | sed 's/^.*=> \([^ ]*\).*/\1/'`"
# PLATFORMLIBDIR=`expr "$LIBC_SO" : '\(.*\)/libc.*'`


Это только часть дела.

Тут есть такое странное обстоятельство, что если хотя бы одна из переменных окружения содержит русский текст или, как говорят, вообще содержит юникод, то Pharo толком не запустится.

Поэтому через команду export в консоли смотрим, где есть русские буквы.

У меня это следующая строчка:

$ export
...
declare -x GPG_TTY="не телетайп"
...


Соответственно, иду в запускающий скрипт pharolauncher/pharo-launcher и переопределяю проблемную переменную окружения:

# Otherwise, it would not work (remove all Unicode environment variables)
export GPG_TTY="not teletype"


После этих простых манипуляций у вас на АльтЛинуксе должен запустится Pharo — одна из самых продвинутых опенсорсных реализаций смолтока.

Ну, и на последок. Предлагаю обсудить, где может применяться смолток, или где он уже применяется? Мне кажется, что это один из редких языков типа хаскеля и лиспа, который нас всех переживет и надолго. Такие языки всегда будут оставаться актуальными, чтобы там ни случалось в этом нашем войти-в-айти
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.