LINUX.ORG.RU

Smalltalk - изучаем вместе

 , ,


5

3

Взялся изучать Smalltalk. Процесс изучения выкладываю на видео, правда информацию там стараюсь выдавать максимально достоверную, и по возможности без «воды». В этой теме по ходу дела буду оставлять ссылки на появляющиеся видеоролики. Комментарии приветствуются.

Видео 1. Общие сведения

Краткая история, перечисление некоторых реализаций, общая суть некоторых принципов системы Смолток.

………………………………………………………..

Видео 2. Сообщества, книги, проекты.

Показаны русскоязычные сообщества по Smalltalk, в частности, группа в ВК. Сделан обзор архива с книгами, которые я нашёл в Сети и выложил на Гугл-диск. Рассказано о двух крупных проектах, которые использовали Smalltalk (FLProg и OpenCobalt). Расширенный список ссылок находится в описании к видео, непосредственно на Youtube

………………………………………………………..

Видео 3. Виртуальные машины.

В уроке кратко рассмотрены среды программирования Squeak, Pharo, и Dolphin.

………………………………………………………..

В темах, не затронутых в видеороликах, я ещё либо сильно «плаваю», либо пока не знаю их вообще. Поэтому обсуждать могу только уже выложенное на Ютуб.

Ответ на: комментарий от anonymous

Немножко почитал о zig-zag …

ИМХНО - «бред сивой кобылы».

Может быть немного поторопился с оценкой.
Предыдущий топик был навеян неудачной ссылкой.

PS: Пока ни какого мнения не имею.

Владимир

anonymous
()
Ответ на: комментарий от Oleg_Kon

Никто не сможет помочь «лебедю, раку и щуке».
Свое «Я» людей и есть тем самым «лебедем, раком и щукой».
Что касается бесплатных программ, то они очень приветствуются «лебедем, раком и щукой».

Проблема не в бесплатности программ, а в духовности людей.

Владимир

anonymous
()
Ответ на: комментарий от anonymous

Немножко почитал о zig-zag …

ИМХНО - «бред сивой кобылы».

Как вариант в комплексе с другими вариантами, вполне имеет право на жизнь.

Oleg_Kon
() автор топика
Ответ на: комментарий от Oleg_Kon

Как вариант в комплексе с другими вариантами, вполне имеет право на жизнь.

Не готов ни чего сказать.

Владимир

anonymous
()
Ответ на: комментарий от anonymous

Впрочем.

Проблема не в бесплатности программ, а в духовности людей.

Владимир

anonymous
()
Ответ на: комментарий от anonymous

https://cyberleninka.ru/article/n/svobodnoe-programmnoe-obespechenie-kak-sistemoobrazuyuschiy-faktor-informatsionnoy-sredy-nauki-i-obschestva-sostoyanie-i-perspektivy/viewer

PS: «Вода, вода, кругом вода».

Ну вот уже в самом начале той статьи рассказывается о движениях («народных массах» то бишь), ратующих за свободное ПО в разных странах. На мой взгляд, глупости всё это. Созданием различных секто-подобных движений, по типу Столлмановских, противоборством с проприетарным софтом, всяким копилефтом, проблемы не решить. Ну будут людям на уши приседать, типа вот пользуйся СПО, разрабатывай СПО, а воз будет «и ныне там», либо будет ползти медленнее черепахи, десятилетиями отвоёвывая себе часть места под солнцем. Пока весь свободный софт будет разрозненный, нестандартизованный, конкурирующий сам с собой, и тому подобное.

Oleg_Kon
() автор топика
Ответ на: комментарий от anonymous
Свободу по разному понимают:
 - матершинник;
 - блудник;
 - ...

Владимир

anonymous
()
Ответ на: комментарий от anonymous

Никто не сможет помочь «лебедю, раку и щуке». Свое «Я» людей и есть тем самым «лебедем, раком и щукой». Что касается бесплатных программ, то они очень приветствуются «лебедем, раком и щукой».

Проблема не в бесплатности программ, а в духовности людей.

В Столманские «борьбу» не играюсь, так как эта борьба - «так себе».
Что взамен?

Жить по совести, а не по понятиям.

Владимир

anonymous
()
Ответ на: комментарий от anonymous

«Друг», лучше так

linux.org.ru#?#article:-abp-has(>div >div >p:-abp-contains(anonymous))

Владимир

anonymous
()
Ответ на: комментарий от anonymous

Всех «друзей» просьба в adblock добавить

linux.org.ru#?#article:-abp-has(>div >div >p:-abp-contains(Владимир))

Работает отлично!

Владимир

anonymous
()
Ответ на: комментарий от anonymous

В Столманские «борьбу» не играюсь, так как эта борьба - «так себе». Что взамен? Жить по совести, а не по понятиям.

Это не значит, что у Столмана «все неправильно».

Владимир

anonymous
()
Ответ на: комментарий от metaprog

Узнал мелодию https://www.youtube.com/watch?v=o0D32RWdQro

Конечно, через какое-то время в Метапрог вы добавите, то о чем вам многие не раз говорли.
Наверное такая у вас селяви.

«Отнимать» у вас LabView сейчас нельзя, так как это ваша радость.
API у LabView хороший и диаграммы наверное тоже, но они больше подходят для других задач …

Владимир

anonymous
()
Ответ на: комментарий от monk

кста сложение сильно зависит от мутабал али анмутабал строки

для второго случая достаточно складывать описания т.е наряду с внутреним raw видом указатель на начало( и либо отдельный счётчик длины либо указатель на последний(либо следующий за последним) либо терминальный битовый патерн (ща обычно \0)) подобно cons форме в староLisp’ax

т.е тем и хороши плюсы (С++) что если ограничено использовать stl ( ну али какой ща модный буст или его аналог) можно акуратно(с сохранением важного для каждого программиста протекания абстракции в форме шупанья каждого битика будь на то реальная потребность) развести интерфейс строки и внутренний содом-сложения двух последовательностей.

qulinxao3 ★★
()
Ответ на: комментарий от anonymous

Шутка

Эшо хочу сказать всем ЛОР-увнякам критикующих Метапрог.

Нельзя игнорировать критерии утопического субъективизма,
связанного с критикой Метапрог, в связи с ультрарадикальными 
взглядами на реально существующюю потребность в его разработке.
Ну, это и понятно, поскольку ведь не каждый ЛОР-увняка понимает 
метафизическую абстракцию графического языка программирования.

И эшо.

С точки зрения банальной эрудиции, не каждый ЛОР-увняка, 
критикующий метафизическую абстракцию Метапрог, способен 
опровергнуть тенденции парадоксальных эмоций его критики. 

PS: Опомнитесь ЛОР-увняки.
Вы гнобите разработку графического языка программирования.
Будет вам стыдно за это, всему вашему роду до пятого поколения и конечно собаке и кошке.

Владимир

anonymous
()
Ответ на: комментарий от Oleg_Kon

Хорошие у вас суждения.

Владимир

anonymous
()
Ответ на: комментарий от Diano4kaNyashenka

Я кстати заметил что люди вообще слабо понимают что такое метапрог,

и даже сам его автор :)

и почему это далеко не лисп в графике с деревьями.

и почему ? метапрог это ХЗ что потому что нет ни спецификации, ни какого-то законченного концепта.

поэтому под этим векторным гипертекстовым можно понимать всё что угодно.

anonymous
()
Ответ на: комментарий от Oleg_Kon

ну раз ты делаешь видеообзор интересных проектов на Смолтоке (типа FLProg и прочего), вот тебе исторические сорцы Xanadu: Udanax Xanadu Green на C и Python; Xanadu Gold на C++ и SmallTalk, также есть описание клиент-серверного протокола и краткая презентация с рекламными buzzwords универсально для всего «векторного гипертекстового …» , ну прям метапрог очередной :)

хотя, несмотря на это многословное бла-бла-бла, в отличие от того же метапрога:

  1. есть мануал, где среди прочего: философия, технический обзор, того как с этой штукой взлететь, примеры , описание протокола, и формальная спецификация c синтаксисом

  2. это – один (даже два; ещё есть ещё два) из реально работающих прототипов, созданных в конце 80-х.. начале 90-х по видению и архитектуре векторного гипертекстового, архитектуре, созданной Тедом Нельсоном ещё в начале 60х.

собственно, переписывание этого прототипа со смоллтока и С++ на «правильную архитектуру» на С++ «эффективными» манагерами проект и сгубило. почти как с Netscape в районе Netscape 4/5, но там они хоть разумно остановились. здесь же Нельсон рисовал картинки про архитектуру, и пытался согласовывать единое понимание; основная группа разработчиков (Roger Gregory, Marc S. Miller) раскололась на две альтернативные версии - форки, который каждый из них пилил потихоньку; дефективные манагеры наняли С++ быдлокодеров, которые пытались ещё раз переписать, да ниасилили функциональность даже существующего прототипа на SmallTalk/C++; разработчикам полгода не платили зарплату, и они проголосовали ногами, забрав с собой компы со всеми исходниками; Тед Нельсон при этом ничего об этих проблемах не знал, и искренне считал что вот-вот допилят, уже скоро (эпик фейл! как автора проекта).

в общем, изобретатель Тед Нельсон как системный инженер полностью просрал проект, в плане согласования требований, и управления проектом и ограничениями. зато ему удалось как изобретателю выгодно продаться в AutoDesk, где его основатель Jonny Walker тогда (в начале 90-х) вложил несколько миллионов в разработку, чтобы допилить Xanadu до MVP и вывести на рынок. у самого Jonny Walker есть статья примерно тех же годов про версию форта, встраиваемую в автокад, на котором был реализован AutoLisp. так что он вполне обоснованно полагал, что нечто подобное реалистично довести до работающего нормально функционирующего прототипа – с автокадом получилось же.

anonymous
()
Ответ на: комментарий от anonymous

им где-то полгода не хватило. а потом вышел HTML+HTTP WWW Тима Бернерса-Ли, с открытыми исходниками прототипа клиента (который позволял редактировать) и сервера. и несмотря на то, что гипертекст Теда Нельсона был идеологически более правильный (например, цитирования-трансклюзии; ссылочная целостность; гиперссылки высшего порядка; гиперссылки на скрипт, то есть, скрипты на произвольном языке, запускаемые через гиперссылки; структурная адресация произвольных элементов через трансфинитные числа, tumblers), он остался историей – а WWW стал массовой, ширпотребной попсой.

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

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

ну и сам отец-основатель, не знающий в каком состоянии у него проект и рисующий мутные схемы на своём отдельном особом языке и диалекте, изобретающий новые слова для старых вещей (хотя надо сказать, половина этих вещей не имела аналогов и изобретать стоило) – это эпик фейл просто.

в общем, наступили на все грабли в управлении проектом – какие только можно.

  1. есть 17 принципов Xanadu, исходные 17 правил в изначальном видении и правильной архитектуре системы.

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

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

ну и переписать это всё на современный Pharo надо бы, по хорошему.

anonymous
()
Ответ на: комментарий от anonymous

причём Дуг Энгельбарт, изобретатель мышки, mother of all demoes и гипертекстовой системы NLS (AUGMENT) – реально осилил её сделать. потому что не ставил глобальных целей, а сделал нечто конкретное и практичное. впрочем, tree grammars по настраиваемым правилам – вполне себе интересная цель.

описание AUGMENT и обучалка

anonymous
()
Ответ на: комментарий от Oleg_Kon

отсюда археалогия

гитхаб, ещё гитхаб

Cincom VisualWorks , which is descended from Smalltalk-80 via ParcPlace Systems. ParcPlace was a company spun out from Xerox to develop Smalltalk. ParcPlace Smalltalk version 2.2 was the version used in the Xanadu Gold development. *

в общем, нужно взять вот эти сорцы исторического Xanadu Gold и попытаться их собрать в современном VW, как наиболее близком к ParcPlace SmallTalk изначальном.

и/или, найти где-то эмулятор той машины, под которую был ParcPlace SmallTalk; найти образ ParcPlace SmallTalk под этот эмулятор; попытаться запустить в эмуляторе; попытаться спортировать под современный смоллток - VW, Pharo, Squeak.

должен интересный квест получиться – собрать это историческое Xanadu Gold из исходников.

anonymous
()
Ответ на: комментарий от anonymous

или это в StrongTalk. в Newspeak, кстати, тоже какой-то лайвкодинг имеется.

anonymous
()
Ответ на: комментарий от anonymous

метапрог это ХЗ что потому что нет ни спецификации, ни какого-то законченного концепта

Не, такие отмазы не катят, метапрог уже сейчас не лисподерево в графике.

Diano4kaNyashenka
()
Ответ на: комментарий от anonymous

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

у того же Бернерса-Ли, кстати, вполне компактный proposal. из которого чётко видно 1) scope: чем система не является и чего она точно не будет делать 2) что эту систему реалистично реализовать за разумное время, т.к. есть предыдущий прототип.

вот и насчёт метапрога думается – пока такого какого-то обзорного виденья не будет: не взлетит. ибо пытается объять необъятное.

anonymous
()
Ответ на: комментарий от anonymous

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

Diano4kaNyashenka
()
Ответ на: комментарий от Diano4kaNyashenka

ну вот в Modelica например объектно-ориентированные уравнения. где рисуется схема из элементов, соединённых коннекторами. есть методы connect для привязки коннекторов. при этом объединяются в движке правил нужные уравнения, объединяя элементы схемы.

то есть, из текстового кода вида

model Circuit
   Capacitor C1(C=1e-4) "A Capacitor instance from the model above";
   Capacitor C2(C=1e-5) "A Capacitor instance from the model above";
     ...
equation
   connect(C1.pin_p, C2.pin_n);
   ...
end Circuit;

следует композиция уравнений, задаваемых «объектами» описывающими конденсатор. которые можно наследовать, объединять, симулировать, вычислять, подставлять в вычисляемые дифуры и т.п. см. OpenModelica и книжку «Modelica by Example», обучалки , слайды

пример про турбины презентация статья на хабре обзор Notebook исходники к книжкам раз два, включая «Modelica by Example».

причём: текстовый язык описания схем, да. но специальная модель вычисления (акаузальная) уравнений, задаваемых ООП на схеме. есть два представления, текстовое и графическое. и IDE умеет работать с обоими.

и как-то люди не переживают по поводу текстового представления. кому удобнее – тот рисует схему в графическом IDE. кому удобнее текстовое – программирует в текстовом.

всё равно они эквивалентны и работают с одной и той же структурой. соединённой коннекторами.

anonymous
()
Ответ на: комментарий от anonymous

Проблема не в бесплатности программ, а в духовности людей.

Владимир

а разгадка одна – безблагодатность! :)

anonymous
()
Ответ на: комментарий от anonymous

Он ещё и проповедовать стал? Так я согласен, с духовностью людей действительно проблема, надо что-то делать. С ней всё борются и борются, а она никуда не девается. Надо срочно уничтожить человечество. Слава машинам.

anonymous
()
Ответ на: комментарий от byko3y

ещё о поехавших математиках

Я должен заметить, что именно язык Вирта должен был стать алголом 68, при разработке которого изначально должны был просто исправить недостатки ввода-вывода алгола 60 (и которые так и не исправил Вирт в паскале), но в какой-то момент поехавший (математик) Вайнгаарден предложил граматику, суть которой я до сих пор не понимаю, а просто догадываюсь, что это граматика, описывающая граматику (метаграматика). В итоге никто из коммитета просто не мог понять, что за язык проектируется, а потому не мог возразить по существу. Типа «сделай свой язык сам» и «у вас не получается пользоваться нашим языком? Вы просто не умеете его готовить». Таким образом коммитет снял с себя ответственность и выдал совершенно бесполезный язык.

ещё на тему совершенно бесполезного алгола с call-by-name и многоэтажной контекстной грамматикой Вайнгаардена:

из истории суперкомпиляции и рефала, для реализации DSL.

из публикаций В. Ф. Турчина :

•В.Ф. Турчин. Транслятор с АЛГОЛа, написанный на языке РЕФАЛ. В сб.: Труды 1-ой всесоюзной конференции по программированию. В. Процессоры с известных языков. - Киев: 1968, с. 134-151. DJVU PDF

•В.Ф. Турчин. Метаалгоритмический язык. - Кибернетика № 4, 1968, с. 116−124. DJVU PDF

на Рефале был реализован транслятор с Алгола. реализация DSL по первому способу (как последовательность интерпретаторов «первого порядка» снизу вверх, а не сверху вниз как набор лисп макросов «высшего порядка», например) приводила к простым понятным референсным интерпретаторам.

которые потом применив проекции Футамуры-Турчина нужно было суперкомпилировать какой-то магией.

и автомагически получить из интерпретатора компилятор. не тратя время на его отладку и преждевременную оптимизацию.

так что Алгол 60 с его необычной call-by-name семантикой вычислений и многоэтажными грамматиками «поехавшего математика» натолкнул для эффективной реализации своей метапрог идеи научную мысль на, как минимум, две перспективных идеи:

  1. рефал и суперкомпиляция вычислений. порождающее проектирование и синтез компилятора из интерпретатора и прочих метавычислений

  2. литературное грамотное Literate программирование Дональда Кнута, когда совместно пишется единый single source гипертекстовый (лол) исходник на метаязыке WEB, из которого потом операция tangle генерирует проект и модель для сборки кода, а операция weave генерирует документацию (которая может использовать автосгенерированные картинки на текстовом DSL, содержащие схемы, графики, зависимости построенные по тестам, собранным после tangle)

anonymous
()
Ответ на: комментарий от anonymous

а разгадка одна – безблагодатность! :)

Вы правы.
Разработчики harbour как раз из-за неблагодарности users и перестали развивать проект.
Они денег не просили, но благодарности и поддержки от иждивенцев /пользователей/ не имели.
Вообщем.

Не мечите бисер перед свиньями.

Кстати многие разработчики перестают развивать свои проекты из-за безучастия к ним «сообщества».

Владимир

anonymous
()
Ответ на: комментарий от anonymous

То ли шутка, то ли непонятно что …

@metaprog, добавьте в графический язык программирования многоязычность.
Т.е. «не брезговать» использованием текстового кода Python, JavaScript, …
И

Microsoft, Oracle, Google, ... будут стоять в сторонке с нервной дрожью.  
И конечно с благовением и укорением себя за "свою тупость" произносить с тоской - М е т а п р о г.

Владимир

anonymous
()

Кто ещё будет говорить о вредность анонимов? Где кроме ЛОРа найдётся аноним, рассказывающий о Турчине и Рефале? Спасибо тебе, анон. За поднятие темы РЕФАЛа, а особенно за инфу про транслятор с АЛГОЛа на РЕФАЛе, не в курсе был.

anonymous
()

Новое видео

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

Видео 4. Обзор комментариев

Oleg_Kon
() автор топика
Ответ на: Новое видео от Oleg_Kon

да и собственно цель такого выкладывания здесь ссылок на видеоролики не достигнута - обсуждения по большей части ведутся вокруг да около

ИМХНО хороший тред /разноплановый, но по делу/.

но не конкретно по самому языку Смолток

Просьба написать статью о Smaltak:

  • где взять;
  • примеры программ;

" … а то кушать хочется и переночевать негде.

Владимир

anonymous
()
Ответ на: комментарий от anonymous

начать погружение в смоллток

есть три, даже четыре варианта:

  1. проприетарненько. дорого, круто, офигенно.

  2. виндовозьненько.

  3. кроссплатформно.

  4. консольно.

  5. смоллток «сделай сам».

  6. берём винду либо wine, ставим Dolphin SmallTalk. смотрим обучающие видео с сайта. читаем встроенный хелп, примеры, обучалку. здесь к примеру, меню Help > Learn SmallTalk запускает слайды-обучалку-презенташку на смоллтоке, с REPL и лайвкодингом. выделяем текст в обучалке, нажимаем Ctrl-E – выполнить или Ctrl-D – выполнить и показать результат. получается такой сразу REPL. естественно, он есть в Workspace – как в емаксе scratch-buffer, сразу можно писать и запускать, дёргать объекты за методы, смотреть их браузером классов или инспектором, и т. п.

почему проще начать с Dolphin SmallTalk? он лично мне хорошо ложится после Delphi-style RAD. хотя есть и существенные отличия, см. видео и читай в блоге.

например, то что можно компоненты ActiveX сразу дёргать за методы, смоллтоком. см. обучающее видео про iTunes как COM-объект, заодно инструментарий про tlb и прочее.

или MVP = Model View Presenter скорее Model-Presenter View, в таком порядке (читай в блоге). компоненты собственной разработки (типа TComponent в Delphi) здесь пишутся как MVC MVP. то есть, вместо мышевозюканья на форму с обработчиками в OnButtonClick()-ах, View пишется в самую последнюю очередь (и вообще может кодогенерироваться). что ломает шаблон дельфи-быдлокодерам.

то есть, здесь полноценная компонентная модель. вообще, в Dolphin SmallTalk либо в Pharo – нормальные компонентные модели.

если потыкать обучалку со слайдами Help > Learn SmallTalk, то сразу видно, что:

  1. гиперссылки запускают скрипт ProfStef next., ProfStef next.
  2. выполнить действие ProfStef next. можно разными способами. например, #perform с нужным селектором. либо объект SmallTalk (вся система в целом). или в REPL.

собственно, это демонстрирует мегафичу смоллтока:

  1. синтаксис умещается на открытку. есть определения переменных, вызов метода (посылка сообщений, 0арные..ун-арные..бинарные…n-арные методы).

нет специальных операторов. операторы это по сути :=, (), +-*/, ещё вызов метода и всё.

всё это объект. переменные это объект. словари, массивы, числа и строки это объект. блоки это объект. класс это объект. метакласс это объект. инстанс (объект) это объект.

ветвления ifTrue/ifElse это вызов метода объекта Boolean. циклы это вызов метода с параметром-блоком. new это метод класса или метакласса, или инстанса (всё едино). контейнеры и итераторы это вызов метода контейнера.

монада это моноид в категории эндофункторов. здесь сразу видно, что цепочка вычислений – монада это например chaining методов в какой-то базовый объект (например, SmallTalk за всю систему).

объект это замыкание и монада, цепочка вычислений, локализация побочных эффектов. то есть, объекты могут быть функционально-объектные. эта тема сильнее развита в реализации смоллтока newspeak от Gilad Bracha, одного из авторов Явы. newspeak – модульный функциональный смоллток.

в Dolphin SmallTalk есть пакеты, подсистемы, модульность, генерация самодостаточного exe без лишних зависимостей (типа tree shaker из лиспов).

примеры практичны: например, самодостаточный хелловорд, чятик, браузер (ActiveX COM-понент).

на Dolphin SmallTalk написан например FLprog. разработка программ под ардуину через лестничные диаграммы FDD из АСУТП, без сишного программирования.

Dolphin SmallTalk не компилируемый, а интерпретируемый. и они честно считают, что это не баг, а фича.

в целом: неплохой вариант чтобы начать ознакомление со смоллтоком – Dolphin SmallTalk либо Pharo либо Squeak.

anonymous
()
Ответ на: начать погружение в смоллток от anonymous

начать хорошо с Dolphin, потому что он не требует ломать парадигму смоллток это «система а не отдельная программа», «вещь в себе». он вполне себе такая замена дельфи, для начала. а во всякие имманентные категорические императивы можно погружаться уже потом.

в блоге и на сайте приводится такая аналогия. что смоллток это город, инфраструктура. живые, асинхронные взаимодействующие объекты, разработка «в образе». вот это вот всё.

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

ну не знаю, на мой взгляд, ППП которое есть это жалкое подобие левой руки того Xanadu, которое могло бы быть. изначальный векторный гипертекстовый фидонет Xanadu предлагался с типизированными двусторонними ссылками, функциональными зависимостями, ссылочной целостностью. которую нельзя было сломать ибо клиент-сервер с авторизацией, сохранением состояния, какими-то операциями обработки (та же трансклюзия, цитирование) а не тупо смотрелка. с возможностью адресации трансфинитными tumblers каждой структурной единицы. по сути объектные ссылки между AST узлами.

ППП Берненса-Ли похерил это вот всё, конечно же. ибо ниасилили. хотя Esquire изначальный от него же, да и RDF + smart web там ссылки типизированные, с контролем ссылочной целостности.

так что, на мой взгляд, тезис в бложике и на сайте Dolphin SmallTalk что смоллток это город, повсеместно протянутая паутина, world wide web и что динамическая типизация это плюс а не минус – так себе.

тут если про город и архитектуру, нужно читать конечно же про Big Ball Of Mud, конечно же. статья, перевод на хабре

собственно, система смоллток как антипаттерн превращается не то чтобы в город. а в shanty town: нахаловку, самозахватом, трущобы и гетто, вот этот вот бомжатник с коммуналками.

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

то есть, нечто более идейно близкое к оберонам, или той же аде. да даже Limbo + Dis из Inferno. чем к нахаловке с самозахватами.

в общем, проблема была озвучена. в современных смоллтоках с этим борются – как и собственными средствами, выделяя модули, пакеты и подсистемы. запуская например Pharo на голом железе (без ОС, как ядро, init pid=1). так и развивая другие смоллтоки – более модульные, функционально-объектные типа newspeak

вообще, думается что и активного оберона из A2 OS было бы достаточно.

к тому же, средства типа SmaCC, Monticello (интеграция с Git), прочие фреймворки

могут отрефакторить проблему «изнутри системы».

например, написать парсер смоллтока (или любого другого языка для которого смоллток метаязык словно клей) на SmaCC.

и отрефакторить автоматически. говорим Class Browser – подразумеваем рефакторинг.

инструменты для создания инструментов.

anonymous
()
Ответ на: комментарий от anonymous

книжки про смоллток

затем, конечно нужно читать книжки. книжки берутся здесь либо здесь: books.pharo.org. ну и планету

чтения той же Pharo by example достаточно дабы проникнуться. именно практическими актуальными, осовременненными фреймворками и батарейками (а не той книге Адель Голдберг 80х годов, да). там правда, тоже была полезная книжка – про язык смоллток и его реализацию. в смысле, что описывается с практической точки зрения фреймворк и объекты, как рецепты, как сделать что-то. про реализацию VM тоже интересно, но тут следует читать уже что-то более современное.

про реализации:

  1. были платные.

  2. Squeak это Macintosh SmallTalk из 80х, ещё под Classic MacOS. у него появилась своя библиотека классов, компонентная модель, тот же Morhic.

есть такая любопытная сборка «полиглот смоллток». там на этом сайте ещё книжка Адель Голдберг классическая переведённая на русский язык была.

что сделали: вот это

ProfStef next.

==

(Smalltalk at: #ProfStef) next.

==

ProfStef perform: 'next'.

==

[ProfStef next] value.

==

3 = 3 ifTrue: [ProfStef next].

==

1 to: 1 do: [:i | ProfStef next].

==

(Smalltalk allClasses select: [:eachClass | eachClass name = #ProfStef]) do: [:eachProfstef | eachProfstef next].

==

ProfStef class compile: 'goToNextLesson ProfStef next.'

"Wow! I can't wait to use my new method!"

ProfStef goToNextLesson.

==

ProfStef perform: #next

==

self halt. ProfStef default next. 

из обучалки Dolphin SmallTalk Help > Learn SmallTalk

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

(или же: японский, клингонский, эльфийский, мицгольский, на эсперанто с буриме и графоманками)

то есть: достаточно сделать прокси для основных базовых селекторов.

чтобы например синоним методу next назывался не просто gotoNextLesson или как йето по-рюсски — копией-дублем с вызовом старого.

а например, отдельным русскоязычным символом #вдругорядь который совершенно аналогично действует англоязычному #next. то есть, 2 символа вызывают одну и ту же реализацию (а не заглушку-обёртку, которая не нужна).

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

здесь, в общем в современных смоллтоках есть полноценная поддержка юникода, всё это объекты, выделенных операторов нет – всё это вызов методов.

так что не стоит ждать каких-то неожиданностей.

раньше конечно, могло быть множество костылей.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.