Portál AbcLinuxu, 1. května 2025 01:19
Na jaře se na Kickstarteru objevil projekt Light Table a velmi rychle si získal obrovskou publicitu i finanční podporu. Tento projekt si klade za cíl vytvořit inovativní vývojové prostředí, ve kterém má vývojář potřebný kód a dokumentaci stále na očích.
Jako finanční cíl si zvolil poměrně vysokou sumu 200 tisíc dolarů s tím, že pokud se podaří vybrat 300 tisíc, bude krom jazyků JavaScript a Clojure podporován i Python. A protože se tato částka podařila vybrat, na jaře příštího roku by se programátoři v těchto třech jazycích měli svého vysněného IDE dočkat. Následná podpora dalších jazyků bude umožněna pomocí zásuvných modulů.
Tento projekt vykouzlil kyselý úsměv na tváři nejednoho smalltalkera. Smalltalk totiž většinu vlastností Light Table v nějaké formě nabízí již od začátku osmdesátých let. A na rozdíl od drtivé většiny ostatních programovacích jazyků jsou základní dogmata Live Table jako - soubory nejsou nejlepší reprezentace kódu, pouze jeho praktická serializace - přímo bytostně včleněny do jeho návrhu.
Takže člověk si pak mohl vyslechnout parafráze jako: “Vždy jsem věděl, že jednoho dne smlltalkovský browser nahradí Vim a Emacs. Jen jsem nevěděl, že se mu bude říkat Light Table,” či povzdechy “Je legrační, jak nemainstreamový jazyk jako Clojure byl schopen prosadit nástroj, jako je tento, aby získal $300K v Kickstarteru. Jímá mě závist nad těmito výsledky a vždy mě přinutí přemýšlet, co nám smalltalkerům jako komunitě chybí ohledně komunikace/marketingu.”
Ale dosti lamentace. Pharo 2.0 bude používat nový browser jménem Nautilus. Ten se od desetiletími prověřené koncepce smalltalkovských browserů nijak zásadně neodlišuje. Pouze vylepšuje integraci s dalšími nástroji pro verzování, unit testing a refactoring. V rámci svých vnitřností pak reflektuje novinky, které se v subsystémech Pharo v nové verzi odehrají.
Od samého začátku smalltalkovský browser bojuje s jedním neduhem. Tím je doslova eploze počtu samostatných oken. V celku není problém mít po chvíli zcela zaplácanou plochu a taskbar podobající se spíše cihlové zdi než přehlednému seznamu. S podobným přístupem by pro Light Table, který používá nepřekrývající se pohledy, člověk potřeboval monitor skutečně velikosti stolu. Nautilus se proti tomu snaží bojovat možností používat jedno okno browseru se záložkami pro editaci více metod a Pharo samotné umožňuje spojovat libovolná okna dohromady. Nicméně tato opatření mají jen částečný úspěch. Podotýkám, že Pharo na rozdíl od Squeaku nepoužívá barevné odlišení různých typů oken browseru, díky čemuž sice jeho vzhled vypadá méně infantilně, ale nutno říct, že na přehlednost oken to má negativní vliv.
Jednou z předností Nautilu je systém pluginů, který umožňuje si tento browser přizpůsobit dle libosti. Protože jsem nebyl úplně spokojen s tím, jak dostupné jsou některé důležité informace, rozhodl jsem si jeden plugin také vytvořit. Špatnou dostupností myslím například, že když chcete zjistit, kde všude je určitá třída používána, dosáhnete toho sice rychle přes klávesovou zkratku či kontextové menu, ale Nautilus tuto volbu oproti původnímu browseru posunul v kontextovém menu o jednu úroveň níže a klávesová zkratka Alt+b+N také nepatří k těm nejjednodušším. Navíc se tento seznam samozřejmě objeví ve zcela novém okně.
Nechal jsem se proto projektem Light Table i dalšími běžnými IDE inspirovat a vytvořil jsem rozšíření Nautilu jménem Periscope, které má formu dokovaného okna přilepeného ke straně obrazovky a které zobrazuje důležité informace vztahující se k právě prohlíženému či editovanému kódu. Tento “sidebar” je sdílený všemi okny Nautilu a zobrazuje informace k tomu oknu, které je právě aktivní.
Periscope je také sám upravitelný pomocí zásuvných modulů. V současné době jsou napsány pluginy pro rychlé vyhledání, toolbar nástrojů, záložky, odkazy na právě prohlíženou třídu, zobrazení verzí metody a implementace metody. Poslední zmíněný plugin funguje tak, že pokud se textový kurzor ocitne na volání nějaké zprávy, zobrazí vám okamžitě náhled na její implementaci (či různé implementace) - tedy přesně to, co dělá Light Table.
Ve Smalltalku jsou podobné dotazy relativně hodně levné a jejich výpočet samozřejmě probíhá s malou prioritou na pozadí (škarohlíd by poznamenal: “ať už to v kooperativním multitaskingu na single threadu znamená cokoliv”), takže to na celkový výkon prostředí nemá negativní vliv.
Na Periscope ani na jeho implementaci není nic objevného ani pracného, Samotný plugin pro náhled implementace metod má jen několik desítek řádků. Potřebuje také ještě vyladit, ale doufám, že brouzdání po Smalltaku vývojářům zpříjemní a v neposlední řadě udělá pro nováčky výhody smalltalkovských IDE o něco zjevnější.
Tiskni
Sdílej:
řekl bych jeden z problémů:)
Neřekl bych, že to je správný výraz pro to, čím Smalltalk chtěl být. Příhodnější se mi zdá být slovo nekompromisní a to ve všech ohledech. Jeho autoři se prostě vykašlali na aktuální technická omezení a stávající konvence a navrhli ho nekompromisně tak, jak to považovali za správné. Vznikl vetřelec z jiného světa, který ale dodnes fascinuje svou nadčasovostí. Udělat jazyk, který nepovažuje zdrojové soubory za důležité? Proč ne. Udělat čistě objektový jazyk? Prosím. Udělat jazyk se serializovatelnou objektovou pamětí? No, sem s tím. Udělat jazyk jako metajazyk bez řídících struktur? Jasně, to už tu bylo. Udělat jazyk s úplnou reflexí všeho včetně zásobníku volání? Hmm. Setřít rozdíl mezi jazykem a vývojovým prostředím? Ale co. Ale udělat všechno naráz a v sedmdesátých letech?
Smalltalk není jen Squeak a jeho odnože. Ostatní implementace si na interoperabilitu s vnějším vesmírem potrpí mnohem více.
Tak do toho svého dortu, dávali a míchali všechno možné, dali tam i česnek a pepř a namíchali tam sádlo i bonbóny, škvarky a skořici, krupičnou kaši a tvaroh, perník a ocet, kakao a zelí, jedlou hlavu z husy a hrozinky, inu všechno možné do toho dortu dali, jen chleba tam nedali, protože pejskové a kočičky chleba zrovna tuze moc rádi nejedí. Ale zatím šel kolem toho dortu jeden zlý pes, a jak ten dort vychládal, zavonělo mu to do nosu všelijak. "Ha ha haf," pomyslil si ten zlý pes, "tady mně to nějak voní, to bude asi něco na můj zub!" "To to bolí, to to bolí!" naříkal ten zlý pes, "to jsem si dal, co ono to bylo v tom dortu všechno namícháno, že z toho mám takové ukrutánské bolení!" "Nic si z toho nedělejte, pejsku a kočičko," řekly děti, "pojďte k nám a my vám dáme od našeho oběda." Tak šel pejsek s kočičkou k dětem k obědu. "Pojďte, děti, jíst!" volala na ně už maminka, a děti řekly: "Maminko, tady ten pejsek má svátek a kočička narozeniny, musíme jim také něco k obědu dát." Tak dali kočičce a pejskovi od oběda; dali jim polívečku a bylo také masíčko a bramborové knedlíčky. A ještě kousek koláče od včerejška někde pro ně maminka vyšťárala. Kočičce a pejskovi to tuze chutnalo. Poděkovali dětem za oběd a šli spokojeně domů. "To jsme se na náš svátek a na naše narozeniny poměli!" libovali si. "Takový dobrý oběd! A ani trošičku nás po něm bříško nebolí." Došli domů a ten veliký zlý pes tam ještě v houští hekal a naříkal. Oni šli po tom dobrém obědě spát, a libovali si, jak se jim ten svátek a narozeniny přece jen nakonec vydařily. A ten zlý pes po tom jejich dortu hekal a naříkal v tom houští ještě celých čtrnáct dní.Tolik k Smalltalku
A ještě kousek koláče od včerejška někde pro ně maminka vyšťárala.Staré věci nemusí být zrovna špatné
On Alan Kay v roce 1982 pronesl: "People who are really serious about software should make their own hardware." To byla jeho cesta, jak se vypořádat s aktuálním evolučním omezením.
Ale vemte si, že ten systém uvedli do prakticky použitelného stavu už před těmi třiceti lety. Co dnes stojí proti Smalltalku, nejsou technická omezení současného hardwaru.
On Alan Kay v roce 1982 pronesl: "People who are really serious about software should make their own hardware." To byla jeho cesta, jak se vypořádat s aktuálním evolučním omezením.V roce '82 to mozna slo. Kde jsou ty casy, kdy Wozniak mohl udelat pocitac sam na kolene vcetne softwaru. Dneska uz je HW i SW na urovni takove slozitosti, ze bud clovek poradne rozumi zelezu a s programovanim je to zoufale, nebo umi programovat poradne, ale jeho realna predstava o hardwaru je hodne spatna.
ja som tiež bol vždy pozadu s HW, mal som pocit, že toho by sa mal držať každý vývojárTak tohle bych nechal tesat do kamene. Zrovna nedávno mi došlo, jaký je fail, že dnes vývojáři používají mohutné IDE na svých 8 jádrových počítačích, s 16GB RAM a víc. Díky tomu nemají moc potuchy, jak to pak poběží v divočině starých sraček a imho je to jeden z důvodů, proč bloaty pořád narůstají. V práci vždy vyšiluju z toho, co zas kdo vytvořil za sračku a teď nás jí nutí používát na starších dellech s 4:3 monitorem.
Len mi pripadá nezmyselné obetovať peniaze a čas do zbytočnej veci, pritom je toľko krásnych vecí čo by si môhol vylepšiťNesmysl je to z hlediska ostatních lidí, ale člověku to dá hafo zkušeností. Naposledy mi někdo říkal, že plýtvám čas, když jsem si psal interpreter lispu. To že jsem se díky tomu naučil něco nového a získal zkušenosti mu vůbec nedošlo..![]()
Naposledy mi někdo říkal, že plýtvám čas, když jsem si psal interpreter lispu.Přesně tak. Kdybych nedělal věci, které ostatní považují za zbytečné, tak bych se nikdy nedostal tam, kde jsem :). A navíc bychom se tady ani o tom nebavili.
Kdybych nedělal věci, které ostatní považují za zbytečné, tak bych se nikdy nedostal tam, kde jsem
Akože medzi bláznov na abclinuxu.cz? Tu sa dá dostať aj inak ;) Napr. nasledovať poníky :P
co nám smalltalkerům jako komunitě chybí ohledně komunikace/marketingu.Hlavní problém bude v tom, že ostatní jazyky jsou skutečně programovacími jazyky a ne hybridy mezi myšmi ovládanými virtuálními operačními systémy. Já mám do smalltalku v plánu někdy pořádně proniknout, zatím jsem ho jen oťukával, ale přijde mi to v mnoha ohledech podobné jako Plan9. Je to operační systém zaměřený na myš, kde člověk nemůže programovat v ničem jiném, než v čem autoři chtěli. Navíc u návrhu někdo mocně fetoval, takže je to co se ovládání silně nekompatibilní s čímkoliv, na co jsou dnes lidi zvyklí. Před 20 lety, kdy ještě věci nebyly jasně definované by to mohlo být úspěšné, ale dneska to vyžaduje silnou poruchu osobnosti a spoustu času, což většina nemá.
Tak co zkusit třeba GNU Smalltalk? Ten se koncepčně nijak zásadně neliší třeba od Ruby, i když i tam jde spustit IDE (gst-browser), které ale používá GTK+ (to pro něj bylo vytvořeno dodatečně a do té se používaly výhradně klasické editory). Určitě zkuste i Smalltalk/X.
Pharo 2.0 bude používat nový browser jménem Nautilus.To je smalltalk fakt svět natolik sám pro sebe, že nikdo z jeho komunity nezná jméno gnomího správce souborů?
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.