URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 130622
[ Назад ]

Исходное сообщение
"Выпуск Pharo 11, диалекта языка Smalltalk "

Отправлено opennews , 30-Май-23 12:31 
После более года разработки опубликован выпуск проекта Pharo 11, развивающего диалект языка программирования Smalltalk. Pharo является ответвлением от проекта Squeak, в разработке которого принимал участие Алан Кей, автор Smalltalk. Помимо реализации языка программирования,  Pharo также предоставляет виртуальную машину для выполнения кода,  интегрированную среду разработки, отладчик и набор библиотек, включая библиотеки для разработки графических интерфейсов. Код проекта распространяется под лицензией MIT...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=59155


Содержание

Сообщения в этом обсуждении
"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Аноним , 30-Май-23 12:31 
а где применяется смолток?

"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено ОноВкустах , 30-Май-23 12:37 
В доисторическом софте, которого его ещё много (лаборатории и так далее). Ещё попадаются рабочие раритеты на фоксе)

"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Бывалый смузихлёб , 30-Май-23 16:09 
> рабочие раритеты на фоксе

Налогоплательщик ЮЛ, похоже, не обошёлся без фокса. Хотя сильно старым его не назвать
А смоллтолк даже старее того гомна, микробы из которого эволюционировали в динозавров


"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Аноним , 30-Май-23 12:54 
применяется в холиварах, в которых подается как язык с тру ооп

"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Аноним , 30-Май-23 12:54 
В лютейшем легаси вместе с джавой и коболом.

"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено BeLord , 30-Май-23 13:29 
Java не всегда легаси, новых проектов хоть отбавляй

"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено morphe , 31-Май-23 05:39 
И все выходят легаси прямо с завода

"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено BeLord , 13-Июн-23 13:39 
> И все выходят легаси прямо с завода

Работает, задачи решает, цена владения подходит, что еще надо заказчику для счастья?-)


"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Аноним , 30-Май-23 14:24 
Кобол хоть полезный в отличии от этих двух.

"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Аноним , 30-Май-23 13:32 
Во всех смартфонах Apple. Objective-C в сущности это Smalltalk построенный поверх C. Только на нем программируют воображая будто это Java, а потом удивляются, а чего это он такой неудобный?

"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Аноним , 30-Май-23 14:59 
Про свифт слышал? Вылезай из берлоги, уже 10 лет там сидишь.

"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Бывалый смузихлёб , 30-Май-23 16:11 
Обжектив как раз несравненно удобней и наглядней жабы. Только первую неделю непривычно обилие квадратных скобок
И, кстати, в общем и целом приятнее и самобытнее свифта, который то ли недошарп, то ли - недокотлин

"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Аноним , 31-Май-23 00:27 
> Objective-C в сущности это Smalltalk построенный поверх C.

С разморозкой! В смартфоах примерно 90% аппликаций в маркетах написаны на реакте или флаттере. Вне зависомости ios это или android.


"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Маковод , 31-Май-23 05:10 
На реакте и флаттере не делают серьезные приложения, ибо выглядят и работают они довольно печально. Их используют либо стартапы без денег, либо компании без хороших программистов.

"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Бывалый смузихлёб , 31-Май-23 17:00 
Ты наверное с кордовой путаешь

Написанное даже средним программистом приложение на RN для яблока неотличимо от полностью нативного за исключением очень специфических нюансов( но там уже и не натив, а скорее анреал или юнити нужны )


"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Аноним , 31-Май-23 13:10 
ШОК! 90% мусора в аппсторах написано на мусоре!

"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Аноним , 31-Май-23 10:18 
Если так натягивать сову на глобус, то Python, Ruby и вообще все динамически типизированные ООП языки - это тоже Смолтолк.

"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Аноним , 31-Май-23 13:00 
И близко нет. В ObjC есть модель сообщений, в них нет.

"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Аноним , 01-Июн-23 10:45 
Заблуждаетесь. Допустим у нас есть такой код:

some_obj.do_smth(1)

Здесь some_obj - это экземпляр некоторого класса. do_smth - сообщение, которое мы ему отправляем. 1 - аргумент этого сообщения.

У каждого объекта есть ссылка на класс который его породил. Когда some_obj получит сообщение do_smth он пойдёт по этой ссылке в свой класс, потому что именно в классе хранится таблица методов. Далее класс начнёт поиск сообщения в таблице. Как он будет это делать - зависит от языка. В одних он тупо использует do_smth, как ключ, в других - он учтёт количество переданных аргументов или даже их тип (т.н. перегрузка методов).

Если класс найдёт соответствующий метод, то он параметризирует его данными из объекта и из аргументов сообщения, выполнит его и отдаст результат.

Гораздо интереснее то что произойдёт когда класс метод не найдёт. Я не буду здесь учитывать наследование.

В Смолтолке класс дёрнет свой метод #doesNotUnderstand:, который по дефолту кидает исключение с текстом типа "класс такой-то не содержит метода для обработки сообщения do_smth 1". Этот метод можно переопределить и динамически перенаправить сообщение в нужный метод или другой объект. Можно например сказать - если сообщение начинается с "do" то разбей его по '_', затем дёрни метод do с аргументами smth и 1.

Этот механизм существует во всех динамически-типизированных ООП языках. В Python аналогом #doesNotUnderstand: выступает метод __getattr__, в Ruby - method_missing, в PHP - хук __call. Во всех этих языках сообщение не соответствует методу напрямую, а так же его можно хранить в переменной или создать динамически из строк. Это и есть "модель сообщений". Она даёт программисту огромные возможности и сильно упрощает реализацию большинства паттернов, но у неё есть один серьёзный недостаток - её невозможно валидировать статически.

В статически-типизированных ООП языках такая магия не приемлема - в них валидатор должен до запуска программы знать какой класс, в итоге, обработает сообщение. Поэтому в таких языках до недавних времён существовало прямое соответствие между сообщением и его методом-обработчиком. Из-за этого слово "сообщение" в этих языках вообще перестали использовать и стали говорить "мы вызываем метод do_smth у объекта some_obj". Из чего выросло ложное разделение на языки с "моделью сообщений" и языки с "моделью вызова метода". Сообщения в Java и C# никуда не делись, их можно конструировать и отправляеть в рантайме с помощью рефлексии и dynamic.


"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено АнонимЪ , 30-Май-23 14:54 
FLProg
OpenCobalt

"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Аноним , 31-Май-23 03:52 
smalltalk был одним из первых ООП, ему многое прощается. В какой-то степени многие другие языки тырили/переосмысляли фичи смолтолка.

Из того что всем хочется, но что плохо переносится - это "сообщения"/"события". Что-то близко похожее - это signal/slot в GLIB/Qt. Сделать такую модель быстрой сложновато - в первой "наивной" реализации начинают сравнивать строки (что естественно небыстро, если хочется много событий всегда и везде).


"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено vvm13 , 31-Май-23 17:21 
> smalltalk был одним из первых ООП, ему многое прощается. В какой-то степени многие другие языки тырили/переосмысляли фичи смолтолка.

Ему нечего прощать, как язык он до сих пор лучше всех. Проблема не в нём самом, а в сопутствующих обстоятельствах.


"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Аноним , 31-Май-23 10:35 
В легаси. А вообще это один из самых влиятельных языков программирования:

1. Первый ООП язык который применялся в бизнесе. Все последующие ООП языки разрабатывались с оглядкой на него
2. В нём были изобретены и обкатаны паттерны, описанные бандой четырёх
3. Для него Xerox изобрели графический интерфейс пользователя
4. Для него была создана первая графическая IDE
5. Первый тестовый фреймворк sUnit, по образцу которого написаны все современные фреймворки юнит-тестов
6. Как следствие - первое применение TDD и экстремального программирования
7. Из него вышла модель акторов
8. В нём родилась концепция RAD и агильщина


"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено подрывник , 01-Июн-23 16:00 
>2. В нём были изобретены и обкатаны паттерны, описанные бандой четырёх

3. Это его и погубилло.


"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Аноним , 30-Май-23 13:57 
Кто-нибудь юзал? Что там и как, есть ли жизнь на Марсе?

"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено vvm13 , 30-Май-23 17:29 
Из нынешних популярных языков/систем Smalltalk ближе всего к JavaScript'у и Python'у. По моему нескромному мнению, у него гораздо-гораздо-[и ещё 106 раз "гораздо"] лучший синтаксис, чем у этой пары (но заодно, наверное, это и самый большой барьер для освоения; несмотря на то, что синтаксис прост, он довольно непривычен), более продуманная система типов, лучшие IDE и отладчик. Самая большая проблема - малая распространённость, откуда следствием идут другие проблемы и порочные круги.

Однако я поклонник VisualAge Smalltalk. Но эта вещь коммерческая, а свободный по сути только Pharo. (Нет, существует ещё как минимум и GNU Smalltalk, но про него давно не слышал).


"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Saemon Zixel , 31-Окт-23 05:32 
Есть ещё Cincom VisualWorks Smalltalk в бесплатной NonCommerce редакции. Вполне активно развивающийся, быстрый и удобный. Уже 10 лет его использую.

А VisualAge Smalltalk вроде уже не развивается, только поддерживается?


"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено vvm13 , 30-Май-23 17:34 
А, ну да, есть ещё Squeak, над которым работал ещё сам Алан Кей. Очень необычная штука с необычным GUI. А Pharo - это своего рода форк Squeak'а, где люди попытались "вернуть" в него "обычность".

"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Golangdev , 31-Май-23 11:59 
> языка программирования Smalltalk

в музей.

строго не рекомендуется учить как первый язык.

ответ на вопрос "почему" можно найти на hh.ru, количество вакансий %)


"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено vvm13 , 31-Май-23 17:17 
Не просто из-за количества вакансий. Дело в том, что, когда Smalltalk более-менее хорошо знаешь (это достигается не за неделю) и потом сравниваешь с так называемыми "современными" популярными языками и системами программирования, чувствуешь себя очень неприятно, поскольку понимаешь, настолько они уродливые и отстойные. Когда же не знаешь и не с чем сравнивать, жить и работать гораздо легче.

"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Golangdev , 01-Июн-23 18:06 
> когда Smalltalk более-менее хорошо знаешь

похоже на аргументацию Завалишина про его ОС Фантом, так хороша, так всех на голову выше...

только вот никому не нужна как и Smalltalk (за исключением изучения истории)

бизнесам (читай тем кто плоити деньги) начхать на "уродства и отстой", им нада чтобы быстро / с разумной скоростью и чтобы система написанная на основе омгла дальше развиваться, опять же быстро или с разумной скоростью

чем может похвастаться смолтолк ?

большим коммьюнити ?
большим кол-вом прости госпаде ответов на StackOverflow ?
сформированными Best practices ?
большим кол-вом библиотек на каждый чих ?
скоростью написания ?
лёгкостью поддержки ?
хорошей масшабируемостью ?
лёгкостью создания микросервисов ? (даже не думай спорить плохо это или хорошо. это реальность, печальная или весёлая)
хорошей поддержкой работы в контейнерах ?
отсутствием Bus factor в лице полутора анониусов кто его любит но код которых никто не видел ?


"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Kuku , 02-Июн-23 12:07 
>>большим коммьюнити ?

Оно не большое, но приличное по размерам в мире, так как реализаций Smalltalk систем  достаточное количество:
Pharo, Squeak, Dolphin, Smalltalk/X, Cincom, Cuis, GNU smalltalk, VAST, GemStone. Все реализации поддерживаются и используются. Smalltalk/X, Cincom, VAST, GemStone коммерческие и вполне успешные на этом поприще.
>> большим кол-вом прости госпаде ответов на StackOverflow ?

Язык прост как табуретка, а системы позволяют опустится до компилятора и посмотреть что там не так(Внезапно в Pharo все написано на Smalltalk на 99%).
>> сформированными Best practices ?

Все ООП соткано из Бест практис Smalltalk, о чем вы?
>> большим кол-вом библиотек на каждый чих ?

Есть проблемы, но не такие большие как вам кажется.
>> скоростью написания ?

Это киллер фича Smalltalk. Более менее по быстроте написания к нему приближаются Python, Ruby и Clojure.
>> лёгкостью поддержки ?

Таких языков нет и систем нет %)
>> хорошей масшабируемостью ?

Там много языков обладающих такой способностью, я знаю пару и они не мейнстримовые, а мейнстримовые обычно это набор костылей.
>> лёгкостью создания микросервисов ? (даже не думай спорить плохо это или хорошо. это реальность, печальная или весёлая)

У Pharo никаких проблем  с этим нет. Минимальный образ Pharo 12 Мб, пакуйте в докер шмокер и вуаля. А дальше по системе.
>> хорошей поддержкой работы в контейнерах ?

Пакуете в контейнер и работает.
>> отсутствием Bus factor в лице полутора анониусов кто его любит но код которых никто не видел ?

Это касается почти любого языка, Rust в этом ну прям чемпион %)


"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Golangdev , 04-Июн-23 06:49 
> но приличное

Под коммьюнити, или распространённостью я в том числе считаю конференции на русском. Они есть по Go и Java. Хоть одну по смоллтолку назовёте ?

> Все ООП соткано из Бест практис Smalltalk

Ответ не засчитан. Где бест практиктики ? Делаю вывод что их нету ввиду непопулярности языка ;)

> Есть проблемы, но не такие большие как вам кажется.

Тут дело не в том что мне кажется, а в фактах. А они таковы, что работу на смоолтолке найти нельзя. Следовательно нет смысла его учить/изучать. Только как музейный экспонат, в контексте изучения истории, в том числе провального менеджмента.

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

Знаю, но не скажу ? Делаю вывод что не знаете.

>> отсутствием Bus factor
> Это касается почти любого языка

А вот нет, нормальные популярные языки, для которых можно найти реальных разработчиков (анонисусы с опеннета не в счёт) на hh.ru этим недостатком не обладают.

Можете не продолжать %)


"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Kuku , 04-Июн-23 17:47 
>>Ответ не засчитан. Где бест практиктики ? Делаю вывод что их нету ввиду непопулярности языка ;)

Обысноькогда ничего не знают о языке, а главное не знают ООП как нужно, включают режим клоуна, вы это делаете профессионально.

>>Знаю, но не скажу ? Делаю вывод что не знаете.

Назовите тем замечательные маштабируемые языки, да еще изрядно популярные, просвиоите нас сирых.

>>А вот нет, нормальные популярные языки, для которых можно найти реальных разработчиков (анонисусы с опеннета не в счёт) на hh.ru этим недостатком не обладают.

Так и скажите, что нормальностл языка для вас определяется не его свойствами, а hh, вам нужен язычок для галеры, то да Smalltalk явно не из этих. Питоний ваше все и не интересуйьесь другим.


"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Golangdev , 04-Июн-23 21:06 
> включают режим клоуна

слив засчитан


"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Аноним , 02-Июн-23 21:54 
Вообще Pharo это не просто Смолтолк, но и песочница для исследования и развития динамически типизированных ООП языков. Можно сказать - это антипод Хаскеля, который служит песочиницей для исследования статически типизированных функциональных языков.

Вот, например, список из сотен научных статей написанных создателями Pharo:

https://rmod.gitlabpages.inria.fr/website//publications.html...


"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Neon , 07-Июн-23 19:36 
И почему же этот идеал проиграл уродливым и отстойным ?!)))

"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Аноним , 01-Июн-23 14:52 
Я когда в универе учился - мечтал хорошенько выучить один ЯП и всю жизнь на нём программировать. Поэтому был одержим поиском идеального языка, но все они были какие-то корявые: в одном - одна фича реализована хорошо, в другом - другая. В итоге стал хипповать со Смолтолком, Прологом и Лиспом. Мечтал написать какую-нибудь офигенную прогу на этих языках и жить, как Торвальдс допиливая её до самой старости. Но не смог т.к. был тупым студентом и языки эти полюбил потому что не мог их осилить. Легко любить язык на котором не пишешь.

А после универа на первой же работе пришлось спуститься с небес на землю и писать макросы для Офиса на VB. Затем за 9 лет пришлось освоить и использовать все популярные языки: Python, Java, C#, PHP, JavaScript, Go. На некоторых проектах доводилось писать сразу на трёх-четырёх одновременно, Саша-Грей стайл, иногда ещё и с поддержкой легаси: этот сервис пишем на современной Яве, а этот - гвоздями прибит к 6 версии.

В какой-то момент понимаешь, что все динамические ООП языки одинаковые: знаешь Смолтолк - легко освоишь Python, Ruby и PHP. Вторая группа - это статически типизированные языки: Java, C#, с некоторой натяжкой Go. Третья - ООП на прототипах, как в JavaScript. Хотя JS - это вообще вещь в себе.

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

Поэтому первый язык можно учить любой - это только начало долгого пути. От джуна всего-то нужно умений: внимательность, усидчивость и вменяемость.


"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Golangdev , 01-Июн-23 18:11 
> в универе учился

у меня тоже он был в универе, что сформировало моё негативное к Smalltalk и преподавателям выше отношение

я не осуждаю их как людей, каждый крутится (или не крутится) в меру своих способностей

кто знает, как бы я вёл себя на их месте, сидя в застойном универе не на самой высокой зп

я просто хочу поделиться своим мнением (выше) чтобы случайно зашедший сюда человек не тратил своё время, если хочет стать разработчиком

у уж прислушаться к нему или нет - каждый решает сам


"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Quad Romb , 02-Июн-23 03:05 
Язык очень красивый, элегантный и простой.
Просто песня какая-то, а не язык.
Без всякой иронии пишу.

Есть толковая и старая книжка "Smalltalk by Example" где толково с примерами не только база языка показана и рассказана, но и всякие принципы которые облегчают разработку на нём.
С тех пор много чего сверху навертели, но вся эта база осталась неизменной.

Что факт - язык для промышленной разработки крайне непрактичен.
То есть, смолток - это сегодня что-то типа икебаны или резни по дереву для души.
Сел, сделал что-нибудь, тихо порадовался и пошёл дальше работать.
Не на смолтоке уже, естественно.

Но, если кто-то любит такие тихие удовольствия - попробуйте.
Правда, очень красивая вещь.


"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Neon , 07-Июн-23 19:37 
Парадокс какой то. Язык очень красивый, элегантный и простой. Но никому не нужный на практике.)))

"Выпуск Pharo 11, диалекта языка Smalltalk "
Отправлено Quad Romb , 07-Июн-23 21:15 
> Парадокс какой то. Язык очень красивый, элегантный и простой. Но никому не
> нужный на практике.)))

Ну, так всё и есть.
Только чего ж тут парадоксального, если одно - продолжение другого?
Там же реально - всё объект. Вот, буквально - всё.
И поэтому там где даже питон без джита уже закончить работать - смоллток, как супербатарейка - будет ещё впахивать, впахивать и впахивать.
Реальные проекты с таким быстродействием строить нельзя.