2. Больше всего мне нравится как раз то, за что СТ любят ругать -- то, что нет понятия "программы", а есть виртуальная машина с живущими в ней объектами, внутри которой сосуществуют среда разработки и части разрабатываемого приложения. Особенно мне нравится возможность сохранять и восстанавливать образ виртуальной машины. Восстановление состояния рабочей среды с точностью до положения курсоров -- это как раз то, чего мне всегда хотелось. {но есть средства, позволяющие "раздеть" образ виртуальной машины до размера в несколько мегабайт и создать самодостаточный выполнимый файл, содержащий образ и виртуальную машину}
3. Изменения (напр., добавление или изменение методов) сказываются на уже существующих объектах, и это прекрасно. Особенно я оценил это на конференции несколько дней назад, когда поведение демонстрируемой модели можно было менять не прерывая демонстрации (на проектор продолжала идти картинка с трехмерной визуализацией, а на основном мониторе я рылся в работающей программе). Эта особенность смолтока всегда производит очень сильное впечатление, достаточно вспомнить историю про Джобса и плавный скроллинг, которую Кей приводит в The Early History Of Smalltalk:
...we found ourselves doing one of our many demos, but this time for a very interested audience: Steve Jobs, Jef Raskin, and other technical people from Apple. They had started a project called Lisa but weren't quite sure what it should be like, until Jef said to Steve, "You should really come over to PARC and see what they are doing." Thus, more than eight years after overlapping windows had been invented and more than six years after the ALTO started running, the people who could really do something about the ideas, finally got to see them. The machine used was the Dorado, a very fast "big brother" of the ALTO, whose Smalltalk microcode had been largely written by Bruce Horn, one of our original "Smalltalk kids" who was still only a teen-ager. Larry Tesler gave the main part of the demo with Dan [Ingalls] sitting in the copilot's chair and Adele and I watched from the rear. One of the best parts of the demo was when Steve Jobs said he didn't like the blt-style scrolling we were using and asked if we cold do it in a smooth continuous style. In less than a minute Dan found the methods involved, made the (relatively major) changes and scrolling was now continuous! This shocked the visitors, especially the programmers among them, as they had never seen a really powerful incremental system before.
4. Другая вещь, которая мне безумно нравится {о ней редко упоминают в первую очередь}: методы одного класса могут быть определены в нескольких packages, т.е. логическая и физическая организация программы разделены. Это исключительно удобно при работе над большим проектом, а кроме того позволяет расширять своими методами системные классы (например, недавно я расширил класс Window, научив VisualWorks открывать определенные окна на определенном мониторе).
5. "Если Smalltalk такой замечательный, то почему он так мало используется?"
Я для себя вижу несколько ответов:
- Лучшие языки не всегда побеждают. Рынок так устроен, что лидерами обычно становятся средние в техническом отношении решения (C++, IP, HTML, SQL, Windows, Un*x, можно продолжать до бесконечности)
- Вендоры Смолтолка действовали крайне неудачно с коммерческой точки зрения. В наше время живы только производители решений (а не реализаций языка), прикупившие по дороге ассеты кого-нибудь из раззорившихся вендоров (как это сделали, например, Cincom и IBM). Разумеется, из этой картины выбиваются open source варианты, прежде всего Squeak.
- Язык практически непригоден для использования слабыми программистами. А неслабые программисты стоят доорого.
- Смолтолку трудно выучиться по книгам, поскольку это не язык, а способ думать и действовать. Обычный путь его распространения -- прямая передача традиции в рамках небольшой рабочей группы.
- Интерес к Смолтолку сейчас снова нарастает, в частности благодаря Squeak и OpenCroquet, а также благодаря позиции Cincom в отношении некоммерческого использования VisualWorks.
- Нельзя сказать, что язык мало используется. Он редко используется для коробочных продуктов, но весьма любим командами, делающими большие системы внутреннего пользования.
6. Меня долгое время бесил синтаксис, стремящийся к подобию естественного языка (Compiler compileMethod: aSource inContext: aCompilationContext). Постепенно, однако, я приучился воспринимать и писать составные селекторы и даже вошел во вкус.
7. Рабочая среда Смолтолка на самом деле ужасна, и если бы ее делал я, я бы все сделал иначе. Тут, однако, никто не мешает взять в руки лопату и начать всё переделывать под себя -- по этому пути можно зайти довольно далеко, существует несколько интересных альтернативных браузеров.
8. Поражает уровень рефлективности системы, т.е. то, что практически весь язык описан на нем самом. В Смолтолке можно смело и безоговорочно говорить, что все является объектом. То, что на самом нижнем уровне за, например, классами SmallInteger и Context стоят слова и фреймы стека реального процессора, является внутренним делом виртуальной машины, с которым она неплохо справляется. Парсер, компилятор, механика наследования -- всё это написано непосредственно на Смолтолке.
May 11 2005, 10:17:06 UTC 7 years ago
А про требуемый уровень программиста можно посполить - пробовали ему учить детей и даже не плохо получалось. Квалификация может быть требуется, что бы учить его после C++ и Prolog, но как первый язык он может легко усваиваться и использоваться.
May 11 2005, 10:21:02 UTC 7 years ago
по поводу обучения детей и связанных с этим иллюзий хорошо написано как раз в цитируемом эссе Кея
May 11 2005, 10:27:36 UTC 7 years ago
а если слышали, но не видели -- что ж, мне трудно их осуждать, т.к. я сам бездарно протормозил с изучением этого замечательного языка
May 11 2005, 10:58:24 UTC 7 years ago
guide me please
А как называютяс альтернативы un*x и html, которые "не пошли"? Дайте ключевые слова, гугль мне поможет.
May 11 2005, 11:14:57 UTC 7 years ago
Re: guide me please
un*x -- VAX/VMS как минимум. Технически на порядок грамотнее и цельнее UN*X.А вот про SQL сам не согласен -- это формальный язык построенный на формальной теории (реляционной алгебре)... Я как-то слышал мнение одного неглупого человека, что ООП нужен там, где нет мат.модели. А как только есть мат.модель -- так ООП идет лесом. И именно реляционная модель -- отличный пример этого. Как, собственно, и GUI -- нет модели вовсе, вот и цветет ООП в нём пышным цветом.
May 11 2005, 11:28:19 UTC 7 years ago
2. Математика версус ООП? Не готов обсуждать. Это все равно, что пытаться спорить о достоинствах ямба перед хореем (или четных чисел перед нечетными, если хотите). К тому же оба термина используются в очень различных значениях.
7 years ago
7 years ago
May 11 2005, 12:52:26 UTC 7 years ago
Re: guide me please
А как же OODB, которые появились после реляционных БД ?7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
6 years ago
7 years ago
7 years ago
6 years ago
6 years ago
July 15 2005, 13:55:55 UTC 6 years ago
Re: guide me please
Почитайте, если сможете, http://www.dbdebunk.com/ Там товарищ C.J. Date (известный как второй человек в реляционной теории после покойного Кодда) очень и очень прохаживается насчёт SQL'я как НЕ соответствующего реляционной модели6 years ago
May 11 2005, 11:23:52 UTC 7 years ago
Re: guide me please
hurdMay 11 2005, 11:29:47 UTC 7 years ago
о!
кстати, я забыл упомянуть intel. если бы они не гнались за мегагерцами, а делали нормальные процы с дешевым переключением контекстов, немикроядерные ОСы давно стали бы историей7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
May 11 2005, 11:35:23 UTC 7 years ago
Re: guide me please
банальнейший пример - OS/2, которая проиграла в своё время Win исключительно по маркетинговым причинам.May 11 2005, 11:37:42 UTC 7 years ago
May 11 2005, 11:36:31 UTC 7 years ago
Re: guide me please
по ОСам, помимо упомянутого VMS -- операционная система Lisp-машин (то есть соственно лисповая среда).И, кстати, Смоллтолк в качестве ОС.
по языкам разметки -- прежде всего, "большой" SGML
по гипертекстовым системам -- масса систем середины восмидесятых, это кладбище ещё предстоит раскапывать
May 11 2005, 11:41:14 UTC 7 years ago
Re: guide me please
Большой SGML -- это тот еще монстр. Вот как раз XML явный прогресс по сравнению с ним... Все эти <tag/А тут его content/ и прочее... Брррр... Слишком перенавороченно.May 11 2005, 11:41:16 UTC 7 years ago
дополнение
это если не упоминать ОСы КПК, где сначала победила PalmOS (весьма бледно выглядевшая на фоне EPOC aka Symbian), а потом WinCE aka PocketPC (неплохая внутри, но несущая с собой крайне низкую культуру разработки ПО, особенно в части интерфейсов, что на КПК критично)May 11 2005, 13:05:20 UTC 7 years ago
Re: дополнение
О да. Клавиатурники на EPOC32 жалко до слез.May 11 2005, 12:04:30 UTC 7 years ago
Dolphin Smalltalk не видели?
May 11 2005, 12:06:47 UTC 7 years ago
http://www.object-arts.com/download
May 11 2005, 12:30:56 UTC 7 years ago
Интро сейчас погляжу
7 years ago
7 years ago
7 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
May 16 2005, 08:12:52 UTC 7 years ago
- выйти на класс
- перейти на сторону класса
- выйти на протокол (или переключится на all)
- выйти на метод
У меня есть пока не проверенная гипотеза, что лично для меня было бы удобней делать навигацию через глобальный incremental search.
7 years ago
7 years ago
Anonymous
7 years ago
May 17 2005, 08:22:50 UTC 7 years ago
May 17 2005, 08:41:47 UTC 7 years ago
заочно он мне не нравится -- слишком пёстрый. IdeaSpace из версии 6 -- косметическое, в сущности, улучшение.
July 22 2005, 02:46:55 UTC 6 years ago
July 22 2005, 10:31:29 UTC 6 years ago
Еще стоит всяко прочитать The Early History of Smalltalk, by Alan C.Key
Я пробовал только squeak и VisualWorks. Думаю, для первоначального освоения лучше Squeak, тем более -- дистрибутив у него маленький. И там интересная графическая система -- Morphic, с тьюториала по ней можно начать изучение системы.
Хвалили Dolphin -- мне он заочно не нравится уже по скриншотам.
January 31 2006, 03:13:44 UTC 6 years ago
Хм, забавно, наверное, что FORTH-программист ...
... мог бы, похоже, привести очень много совпадающих доводов.