- Выпуск Pharo 11, диалекта языка Smalltalk , Аноним, 12:31 , 30-Май-23 (1) +2
а где применяется смолток?
- Выпуск Pharo 11, диалекта языка Smalltalk , ОноВкустах, 12:37 , 30-Май-23 (3) –5 [V]
- Выпуск Pharo 11, диалекта языка Smalltalk , Аноним, 12:54 , 30-Май-23 (4) +11 [^]
применяется в холиварах, в которых подается как язык с тру ооп
- Выпуск Pharo 11, диалекта языка Smalltalk , Аноним, 12:54 , 30-Май-23 (5) +1
В лютейшем легаси вместе с джавой и коболом.
- Выпуск Pharo 11, диалекта языка Smalltalk , Аноним, 13:32 , 30-Май-23 (7) –2
Во всех смартфонах Apple. Objective-C в сущности это Smalltalk построенный поверх C. Только на нем программируют воображая будто это Java, а потом удивляются, а чего это он такой неудобный?
- Выпуск Pharo 11, диалекта языка Smalltalk , Аноним, 14:59 , 30-Май-23 (13) –2
Про свифт слышал? Вылезай из берлоги, уже 10 лет там сидишь.
- Выпуск Pharo 11, диалекта языка Smalltalk , Бывалый смузихлёб, 16:11 , 30-Май-23 (17) +5
- Выпуск Pharo 11, диалекта языка Smalltalk , Аноним, 00:27 , 31-Май-23 (20) –4 [V]
> Objective-C в сущности это Smalltalk построенный поверх C.С разморозкой! В смартфоах примерно 90% аппликаций в маркетах написаны на реакте или флаттере. Вне зависомости ios это или android.
- Выпуск Pharo 11, диалекта языка Smalltalk , Аноним, 10:18 , 31-Май-23 (26) +1
Если так натягивать сову на глобус, то Python, Ruby и вообще все динамически типизированные ООП языки - это тоже Смолтолк.
- Выпуск Pharo 11, диалекта языка Smalltalk , Аноним, 13:00 , 31-Май-23 (29)
И близко нет. В ObjC есть модель сообщений, в них нет.
- Выпуск Pharo 11, диалекта языка Smalltalk , Аноним, 10:45 , 01-Июн-23 (34)
Заблуждаетесь. Допустим у нас есть такой код: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 , АнонимЪ, 14:54 , 30-Май-23 (12)
- Выпуск Pharo 11, диалекта языка Smalltalk , Аноним, 03:52 , 31-Май-23 (21) +1
smalltalk был одним из первых ООП, ему многое прощается. В какой-то степени многие другие языки тырили/переосмысляли фичи смолтолка.Из того что всем хочется, но что плохо переносится - это "сообщения"/"события". Что-то близко похожее - это signal/slot в GLIB/Qt. Сделать такую модель быстрой сложновато - в первой "наивной" реализации начинают сравнивать строки (что естественно небыстро, если хочется много событий всегда и везде).
- Выпуск Pharo 11, диалекта языка Smalltalk , Аноним, 10:35 , 31-Май-23 (27) +3
В легаси. А вообще это один из самых влиятельных языков программирования:1. Первый ООП язык который применялся в бизнесе. Все последующие ООП языки разрабатывались с оглядкой на него 2. В нём были изобретены и обкатаны паттерны, описанные бандой четырёх 3. Для него Xerox изобрели графический интерфейс пользователя 4. Для него была создана первая графическая IDE 5. Первый тестовый фреймворк sUnit, по образцу которого написаны все современные фреймворки юнит-тестов 6. Как следствие - первое применение TDD и экстремального программирования 7. Из него вышла модель акторов 8. В нём родилась концепция RAD и агильщина
- Выпуск Pharo 11, диалекта языка Smalltalk , Аноним, 13:57 , 30-Май-23 (8)
Кто-нибудь юзал? Что там и как, есть ли жизнь на Марсе?
- Выпуск Pharo 11, диалекта языка Smalltalk , vvm13, 17:34 , 30-Май-23 (19)
- Выпуск Pharo 11, диалекта языка Smalltalk , Golangdev, 11:59 , 31-Май-23 (28)
- Выпуск Pharo 11, диалекта языка Smalltalk , vvm13, 17:17 , 31-Май-23 (32)
- Выпуск Pharo 11, диалекта языка Smalltalk , Golangdev, 18:06 , 01-Июн-23 (37)
- Выпуск Pharo 11, диалекта языка Smalltalk , Kuku, 12:07 , 02-Июн-23 (40) –1
- Выпуск Pharo 11, диалекта языка Smalltalk , Аноним, 21:54 , 02-Июн-23 (41)
Вообще Pharo это не просто Смолтолк, но и песочница для исследования и развития динамически типизированных ООП языков. Можно сказать - это антипод Хаскеля, который служит песочиницей для исследования статически типизированных функциональных языков.Вот, например, список из сотен научных статей написанных создателями Pharo: https://rmod.gitlabpages.inria.fr/website//publications.html...
- Выпуск Pharo 11, диалекта языка Smalltalk , Neon, 19:36 , 07-Июн-23 (45)
- Выпуск Pharo 11, диалекта языка Smalltalk , Аноним, 14:52 , 01-Июн-23 (35) +1
Я когда в универе учился - мечтал хорошенько выучить один ЯП и всю жизнь на нём программировать. Поэтому был одержим поиском идеального языка, но все они были какие-то корявые: в одном - одна фича реализована хорошо, в другом - другая. В итоге стал хипповать со Смолтолком, Прологом и Лиспом. Мечтал написать какую-нибудь офигенную прогу на этих языках и жить, как Торвальдс допиливая её до самой старости. Но не смог т.к. был тупым студентом и языки эти полюбил потому что не мог их осилить. Легко любить язык на котором не пишешь.А после универа на первой же работе пришлось спуститься с небес на землю и писать макросы для Офиса на VB. Затем за 9 лет пришлось освоить и использовать все популярные языки: Python, Java, C#, PHP, JavaScript, Go. На некоторых проектах доводилось писать сразу на трёх-четырёх одновременно, Саша-Грей стайл, иногда ещё и с поддержкой легаси: этот сервис пишем на современной Яве, а этот - гвоздями прибит к 6 версии. В какой-то момент понимаешь, что все динамические ООП языки одинаковые: знаешь Смолтолк - легко освоишь Python, Ruby и PHP. Вторая группа - это статически типизированные языки: Java, C#, с некоторой натяжкой Go. Третья - ООП на прототипах, как в JavaScript. Хотя JS - это вообще вещь в себе. А затем в своём познании настолько преисполняешься, что видишь каждый язык, как набор присутствующих/отсутствующих технологий и деталей их реализации. Поэтому первый язык можно учить любой - это только начало долгого пути. От джуна всего-то нужно умений: внимательность, усидчивость и вменяемость.
|