Убеден съм, че всеки преминал през произволно ФМИ или друга подобна ИТ мелачка е чувал за "Smalltalk". Само, че за повечето хора Smalltalk е като тото милионерът - всички са го чували, ама никой не го е виждал :)
А и дори някой да се е поинтересувал що за животно е това, е попаднал на Squeak - видял е, че има splash screen с нарисувана мишка (животното), след като системата е заредила е видял една невероятна шарения, където всичко е със собствено мнение, и ги е питал защо не ходят да се забавляват с роднините си от предпочитаният от тях пол.
В същото време, в един по-хубав свят група юнаци започнали да разработват фреймуърк за web върху същият този Squeak наречен Seaside. (в детайли за него - по-надолу) Поради описаните причини, бавните ъпгрейди и бъгфиксове, различните лицензи и като цяло - хаосът - същите тези юнаци направи собствен fork - който по-късно придобива името Pharo.
В момента е във версия 1.1 (пусната на 26-ти Юли тази година), включва в себе си пълноценен набор от средства за програмиране - браузер на код, дебъгер, versioning система и т.н. В същото време има и PharoCore image, който е орязан само до базовата система, с цел deployment в/у сървъри.
С 2 думи, smalltalk е виртуална машина + image (eдин вид core dump), в който image - са всички обекти (данни, инструменти, etc, etc). Силно интегрирано :)
Плюсове:
+ Пълноценна стандартна библиотека (типове, колекции, стриймове, gui и т.н.)
+ Интегрирано в image-а IDE (с autocompletion, refactoring и т.н.)
+ Пълен код за всичко (когато избере който и да е от системните класове виждате кода му)
+ Виртуалната машина е написана на smalltalk :)
+ Вече има и виртуална машина с jit компилация, макар и не напълно стабилна :)
+ ODBC свързаност
Минуси:
+ За някои специфични неща може да няма библиотеки (платформата няма достатъчно голямо community зад себе си)
+ Липсата на истински threads. Поддържат се, но виртуалната машина е еднонишкова и симулира паралелизъм чрез time slicing.
По-добрият свят: ;)
* Макар, да му липсват популярните библиотеки, community-то зад него се е постарало да има подобни продукти създадени на smalltalk. SqueakSource е публично хранилище на код за голяма част от проектите създадени със squeak/pharo. Вътре ще намерите всякакви библиотеки, utilities, бази данни и т.н. :)
До тук - всичко хубаво, но трудно ще намерите причина да започнете да разработвате с Pharo, вместо с java/c/delphi/you-name-it. Запознате се със Seaside - еретичният фреймуърк за web, който не се съобразява с нито една от тенденциите в момента. А именно - генерирани url-и, поддържани сесии, генериране на html код (няма template система) и т.н.
След като мине първоначалният шок и човек прегледа туториалите или книгата - вече сте заразен с идеята, че нещата могат да се правят и по друг начин.
* Автоматично управление на сесиите.
* Компоненти които генерират xhtml сами, при това винаги валиден.
* Премахната нужда от ръчно parse-ване на post/get заявките и параметрите им. Всъщност въобще ви интересува как се казват полетата на формите които правите :)
* Callbacks с блокове код който да се изпълни.
* За дизайн се ползва css.
Или с 2 думи - със seaside може да се създават web приложения, без реално да разбирате, че ползвате web, следвайки desktop метафората :)
--
Q: Окей, всичко изглежда прекрасно, но защо се занимавам да пиша това ?
A: Трябваше да напиша едно самостоятелно приложение. Искайки да бъде cross platform, и в същото време да може да печата - се спрях на web. И защото от 2 години ползвам професионално java - си казах "Нека е на java". Месец по-късно, отвратен от всички популярни java web frameworks, бъгавите servlet container-и, претенциознните openjpa и hibernate - попаднах на seaside и pharo. Е, все едно се родих наново ;)
Q: Как седи положението със хостинг на такива приложения ?
А: Има няколко сайтове/фирми предлагащи безплатен и платен такъв. Но най-лесната опция си остава виртуален сървър + работещ image на него. Цените на последните вече са доста достъпни, в сравнение с преди няколко години.
Q: Какъв тип сайтове е подходящо да се разработват със seaside?
A: Всякакъв, но аз го виждам предимно за inhouse приложения. Един път, че по този начин се решава проблемът със хостинга, а и самата сесийно-ориентирана архитектура е насочена предимно към web приложения, отколкото нормални сайтове.
Като последни думи, seaside се разработва върху Pharo, но след това се портва за всички основни smalltalk дистрибуции, включително и платените такива. Така, че възможности - бол. Важното е да се намерят хора да ги оползотворяват.
0 коментара:
Публикуване на коментар