LINUX.ORG.RU

Smalltalk, web, 2020-2021

 , , , ,


0

1

Приветствую, комрады!

Интересует вопрос, на ниве популярности переползания в web и ориентации на бизнес-логику приложений вроде бы выглядет нормальным реализовывать сервисы (интересует API) на всеми забытом smalltalk.

А что, хорошие вроде бы начальные: image based код (контейнирозоваться должно с пол пинка, получаем замкнутую кодовую базу), в теории очень не плохая производительность, большая часть диалектов/реалзаций имеют оптимизированную VM, синтаксис прост как пять копеек, средства разработки отличные…

Есть ли примеры success story и серьезные web-продукты? Есть ли туториалы из разряда «пишем на pharo + vue todo приложение» и тд? Заранее спасибо.

З.Ы.: на ниве популярности electron выглядит вполне вкусно и какой-нибудь софт на Smalltalk для декстопа. Портирован почти везде, умеет много, код может быть схож с вебприложением (поменяется по идее только слой view).

так всетаки, «на всеми забытом»

или:

в теории очень не плохая производительность

оптимизированную VM

средства разработки отличные

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

seiken ★★★★★ ()

синтаксис прост как пять копеек

это вкусовщина. По мне - синтаксис алиенский. Не простой, а примитивный, что не одно и то же.

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

С целью? Во встроенных IDE есть вполне развитые средства полнотекстового поиска (чаще всего не нужные). Если религия запрещает жить без текстового представления, можно экспортировать в текст и угрепаться.

Топикстартер - почитай бесплатные про Pharo. Там есть и про веб.

anonymous ()

возьми да реализуй. там туториалы есть по Pharo, и какому-то его веб-фреймворку, в виде книжек по шагам расписанных, на сайте pharo/squeak.

особенно занятно выходит, когда какая-то ОО база данных прикручивается.

Есть ли примеры success story

есть

Есть ли туториалы из разряда «пишем на pharo + vue todo приложение» и тд?

есть в книжках

например: суровый Enterprise, в качестве вводных по платформе можно также почитать Pharo by example и Deep into Pharo

Zinc-framework tinyblog-tutorial

ну и по ООБД на смоллтоке почитать чего-нибудь.

на гитхабе некоторые книжки переведены на русский.

anonymous ()
Ответ на: комментарий от Miguel
Metacello new
  baseline: 'myprojectname';
  repository: 'gitlocal:///usr/src/smalltalk/pharo/myprojectname' ;
  lock;
  load.

и обгрепайся наздоровье в git-репозитории.

естественно, можно и github:// на внешний указывать, и push/pull и прочее делать (например, заготовку проекта с репозиторием создавать).

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

читаю бложик Алексея Недоря про язык/среду программирования «ВИР»

это – автор Excelsior XDS Modula-2/Oberon-2

пописывает уже лет 12 свою отдельную среду разработки, в духе Oberon с Go-подобным синтаксисом

есть также статьи про «компонентный ассемблер» этого же автора: раз два

интересно пишет.

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

Зато на Хабре у него, кажется, -200 - он выступил с патриотически-охранительной позицией и был за это расстрелян хабровчанами. Я был на его выступлении на дне Оберона в прошлом году, в Орле. Честно сказать, я не очень понял, что такого особенного в ВИРе. Хотя слушал вполуха.

Я не понял, чем ВИР концептуально отличается от какого-нибудь FoxPro, к примеру. Из хорошего - он на русском языке.

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

Я не понял, чем ВИР концептуально отличается от какого-нибудь FoxPro, к примеру.

явно выраженная схема программы, наверное?

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

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

вообще идея интересная. ещё в 90х была среда Flora ЕМНИП: FloraWare Flora/C+

с похожим объектным деревом компонентов.

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

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

такой вот «метаязык сборки компонент» как среду литературного программирования можно реализовать на любой доступной среде/языке, не обязательно в духе А. Недори изобретать новый.

например, на том же смоллтоке. книжка «Smacc: a Compiler Compiler» pdf описывает такую среду для парсинга в духе компилятора компиляторов (наподобие объектной OMeta с PEG грамматиками), реализованную на смоллтоке. в оригинале её автор использовал для обработки Delphi исходников.

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

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

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

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

то есть, не обязательно эдакий метапрог, сборочную среду из квадратиков и жгутиков-проводочков Вир-подобную Вирту (c) доннерджек среду писать сразу на себе самой.

достаточно стандартизировать компоненты, и их метаданные и ABI. и научить разные языки транспилироваться в такие вот мультиязычные модули/компоненты.

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

или в Nim, там есть PEG грамматики макросами и транспилятор оберона в Nim и далее в С – работающий на макросах в CTFE относительно просто реализовать…

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

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

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

чем ВИР концептуально отличается от какого-нибудь FoxPro, к примеру.

отсюда:

Основные идеи и подходы, заложенные в среду разработки «Вир» в начале, сохраняются неизменными, это:

  • Явная схема программы;
  • Сборка программ из бинарных компонент.
  • Репозиторий стандартных компонент;
  • Независимость программы от ОС.
anonymous ()
Ответ на: комментарий от den73

чем вам всем так Блекбокс угодил?

простотой. простая как палка система (с модулями SYSTEM + KERNEL), как обычное win приложение, модули с метаинформацией и простой loader, правда DevLinker там переусложнённый, ну зачем своё велосипедить если можно взять готовое.

A2 как-то олдскульнее, в духе Oberon OS. хотя с активными объектами/акторами тоже интересно.

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

Я сломался на том, чтобы прочитать исходник компилятора. Там все идентификаторы из тех времён, когда памяти на исходники не хватало. Кроме того, там компилятор оптимизирован, проходы как-то совмещены, как мне показалось. В A2 хотя бы обычно по идентификатору можно догадаться, что он делает. Но ок, да будет так.

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

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

den73 ★★★★★ ()
Последнее исправление: den73 (всего исправлений: 1)