The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Выпуск Pharo 11, диалекта языка Smalltalk "
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск 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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Аноним (1), 30-Май-23, 12:31   +2 +/
а где применяется смолток?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #3, #4, #5, #7, #12, #21, #27

3. Сообщение от ОноВкустах (?), 30-Май-23, 12:37   –5 +/
В доисторическом софте, которого его ещё много (лаборатории и так далее). Ещё попадаются рабочие раритеты на фоксе)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #16

4. Сообщение от Аноним (4), 30-Май-23, 12:54   +11 +/
применяется в холиварах, в которых подается как язык с тру ооп
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

5. Сообщение от Аноним (5), 30-Май-23, 12:54   +1 +/
В лютейшем легаси вместе с джавой и коболом.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #6, #9

6. Сообщение от BeLord (ok), 30-Май-23, 13:29   –2 +/
Java не всегда легаси, новых проектов хоть отбавляй
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #23

7. Сообщение от Аноним (7), 30-Май-23, 13:32   –2 +/
Во всех смартфонах Apple. Objective-C в сущности это Smalltalk построенный поверх C. Только на нем программируют воображая будто это Java, а потом удивляются, а чего это он такой неудобный?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #13, #17, #20, #26

8. Сообщение от Аноним (8), 30-Май-23, 13:57   +/
Кто-нибудь юзал? Что там и как, есть ли жизнь на Марсе?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #18

9. Сообщение от Аноним (9), 30-Май-23, 14:24   +3 +/
Кобол хоть полезный в отличии от этих двух.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

12. Сообщение от АнонимЪ (?), 30-Май-23, 14:54   +/
FLProg
OpenCobalt
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

13. Сообщение от Аноним (13), 30-Май-23, 14:59   –2 +/
Про свифт слышал? Вылезай из берлоги, уже 10 лет там сидишь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

16. Сообщение от Бывалый смузихлёб (?), 30-Май-23, 16:09   +1 +/
> рабочие раритеты на фоксе

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

17. Сообщение от Бывалый смузихлёб (?), 30-Май-23, 16:11   +5 +/
Обжектив как раз несравненно удобней и наглядней жабы. Только первую неделю непривычно обилие квадратных скобок
И, кстати, в общем и целом приятнее и самобытнее свифта, который то ли недошарп, то ли - недокотлин
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #49

19. Сообщение от vvm13 (?), 30-Май-23, 17:34   +/
А, ну да, есть ещё Squeak, над которым работал ещё сам Алан Кей. Очень необычная штука с необычным GUI. А Pharo - это своего рода форк Squeak'а, где люди попытались "вернуть" в него "обычность".
Ответить | Правка | Наверх | Cообщить модератору

20. Сообщение от Аноним (20), 31-Май-23, 00:27   –4 +/
> Objective-C в сущности это Smalltalk построенный поверх C.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #22, #30

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #33

22. Сообщение от Маковод (?), 31-Май-23, 05:10   +/
На реакте и флаттере не делают серьезные приложения, ибо выглядят и работают они довольно печально. Их используют либо стартапы без денег, либо компании без хороших программистов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #31

23. Сообщение от morphe (?), 31-Май-23, 05:39   +5 +/
И все выходят легаси прямо с завода
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #48

26. Сообщение от Аноним (26), 31-Май-23, 10:18   +1 +/
Если так натягивать сову на глобус, то Python, Ruby и вообще все динамически типизированные ООП языки - это тоже Смолтолк.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #29

27. Сообщение от Аноним (26), 31-Май-23, 10:35   +3 +/
В легаси. А вообще это один из самых влиятельных языков программирования:

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #36

28. Сообщение от Golangdev (?), 31-Май-23, 11:59   +/
> языка программирования Smalltalk

в музей.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #32, #35

29. Сообщение от Аноним (30), 31-Май-23, 13:00   +/
И близко нет. В ObjC есть модель сообщений, в них нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26 Ответы: #34

30. Сообщение от Аноним (30), 31-Май-23, 13:10   +/
ШОК! 90% мусора в аппсторах написано на мусоре!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20

31. Сообщение от Бывалый смузихлёб (?), 31-Май-23, 17:00   +/
Ты наверное с кордовой путаешь

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22

32. Сообщение от vvm13 (?), 31-Май-23, 17:17   +/
Не просто из-за количества вакансий. Дело в том, что, когда Smalltalk более-менее хорошо знаешь (это достигается не за неделю) и потом сравниваешь с так называемыми "современными" популярными языками и системами программирования, чувствуешь себя очень неприятно, поскольку понимаешь, настолько они уродливые и отстойные. Когда же не знаешь и не с чем сравнивать, жить и работать гораздо легче.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #37, #45

33. Сообщение от vvm13 (?), 31-Май-23, 17:21   +1 +/
> smalltalk был одним из первых ООП, ему многое прощается. В какой-то степени многие другие языки тырили/переосмысляли фичи смолтолка.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

34. Сообщение от Аноним (34), 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.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #38

36. Сообщение от подрывник (?), 01-Июн-23, 16:00   +/
>2. В нём были изобретены и обкатаны паттерны, описанные бандой четырёх

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

37. Сообщение от Golangdev (?), 01-Июн-23, 18:06   +/
> когда Smalltalk более-менее хорошо знаешь

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #40, #41

38. Сообщение от Golangdev (?), 01-Июн-23, 18:11   +1 +/
> в универе учился

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35 Ответы: #39

39. Сообщение от Quad Romb (ok), 02-Июн-23, 03:05   +/
Язык очень красивый, элегантный и простой.
Просто песня какая-то, а не язык.
Без всякой иронии пишу.

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #46

40. Сообщение от Kuku (?), 02-Июн-23, 12:07   –1 +/
>>большим коммьюнити ?

Оно не большое, но приличное по размерам в мире, так как реализаций 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 в этом ну прям чемпион %)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #42

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37

42. Сообщение от Golangdev (?), 04-Июн-23, 06:49   –1 +/
> но приличное

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

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

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

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #43

43. Сообщение от Kuku (?), 04-Июн-23, 17:47   +/
>>Ответ не засчитан. Где бест практиктики ? Делаю вывод что их нету ввиду непопулярности языка ;)

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42 Ответы: #44

44. Сообщение от Golangdev (?), 04-Июн-23, 21:06   +/
> включают режим клоуна

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43

45. Сообщение от Neon (??), 07-Июн-23, 19:36   +/
И почему же этот идеал проиграл уродливым и отстойным ?!)))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32

46. Сообщение от Neon (??), 07-Июн-23, 19:37   +/
Парадокс какой то. Язык очень красивый, элегантный и простой. Но никому не нужный на практике.)))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39 Ответы: #47

47. Сообщение от Quad Romb (ok), 07-Июн-23, 21:15   +/
> Парадокс какой то. Язык очень красивый, элегантный и простой. Но никому не
> нужный на практике.)))

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46

48. Сообщение от BeLord (ok), 13-Июн-23, 13:39   +/
> И все выходят легаси прямо с завода

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23

49. Сообщение от Saemon Zixelemail (?), 31-Окт-23, 05:32   +/
Есть ещё Cincom VisualWorks Smalltalk в бесплатной NonCommerce редакции. Вполне активно развивающийся, быстрый и удобный. Уже 10 лет его использую.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру