Portál AbcLinuxu, 30. dubna 2025 22:32

Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
Luk avatar 20.1.2006 01:29 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
Odpovědět | Sbalit | Link | Blokovat | Admin
Něco takového už v Javě dávno je - JavaBeans takovou komunikaci používají. Netřeba to programovat znovu, tím spíš, že JavaBeans je mnohem rozsáhlejší framework, který lze výborně využít pro opakovaně použitelné komponenty. A všechna lepší IDE umožňují s beany snadno pracovat.
Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
20.1.2006 11:45 paskma | skóre: 13 | blog: Paskmův blog
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
No tak reflexe se používá běžně, na tom nic není. Ale JavaBeans - to jsou jen třídy s gettrama, settrama a bezparametrickým konstruktorem. Právě proto, aby hezky používala reflexe.
20.1.2006 07:08 Miloslav Ponkrác | blog: miloslavponkrac
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
Odpovědět | Sbalit | Link | Blokovat | Admin
No, tak autor naimplementoval do Javy jednu vlastnost, kterou mají dynamicky typované jazyky. Ať už je to JavaScript, Smalltalk, PHP, Python, nebo další. Bohužel bez výhody příjemné syntaxe, která v těch jazycích je.

Ovšem ke Smalltalku je ještě velmi dlouhá cesta :-))) To bude mít ještě autor co dělat, aby to všechno v Javě napodobil :-)
http://ponkrac.net
wake avatar 20.1.2006 08:12 wake | skóre: 30 | blog: wake | Praha
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
... nemluvě o tom, že až autor skončí, tak bude mít pro změnu co dělat překladač/interpret ... ;-)
Tento příspěvek má hlavičku i patičku!
20.1.2006 12:39 paskma | skóre: 13 | blog: Paskmův blog
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
No, reflexe zas tak pomalá není. Myslím, že to bývalo 20x pomalejší, než normální volání metody. A třeba už je to lepší. ;-)
20.1.2006 18:01 tomm | skóre: 7 | blog: tomm's software | Sokolov
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
Byvalo to az 40x pomalejsi (odvolavam se na Kenta Becka ;-) ) a nyni je to v naprosto nejlepsim pripade 2x pomalejsi. Coz je pokrok, ale stejne se mi to moc nelibi a pouzivani se se zurivym odporem branim ;-)
GUI existuje jen proto, aby se veslo vice terminalu na jednu obrazovku ...
20.1.2006 10:03 podlesh | skóre: 38 | Freiburg im Breisgau
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
Odpovědět | Sbalit | Link | Blokovat | Admin
Pokud se nepletu, přesně takto to dělá Apple v Cocoa (což je nástupce OpenSTEPu, primárně určený pro ObjectiveC).

Ovšem takovéto hackerské napodobování Smalltalku mi nepřipadne jako nejlepší nápad. Smalltalk je Smalltalk, není potřeba vyrábět mutantní křížence.

Mnohem lepší cestou (dle mého názoru) jsou aspekty.
20.1.2006 12:13 Miloslav Ponkrác | blog: miloslavponkrac
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
Nehledě na to, že je Java na dynamické předávání zpráv objektům krátká. Protože ne všechno v Javě je objekt a navíc to i syntakticky dost dře, například nejsou v Javě operátory apod..

Prostě Java mít nikdy flexibilitu dynamicky typovaných jazyků nebude, ani kdyby se autor rozkrájel. Ono to jde proti sobě, Java se snaží ořezat co může a jako jazyk toho umět co nejmíň, zatímco dynamicky typované jazyky se snaží naopak dát rozlet.
20.1.2006 14:18 podlesh | skóre: 38 | Freiburg im Breisgau
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
Nehledě na to, že je Java na dynamické předávání zpráv objektům krátká. Protože ne všechno v Javě je objekt a navíc to i syntakticky dost dře, například nejsou v Javě operátory apod.
To by mě moc zajímalo, jak absence operátorů (asi je míněna nemožnost předefinovávat operátory dle libosti) ovlivňuje předávání zpráv.
Prostě Java mít nikdy flexibilitu dynamicky typovaných jazyků nebude, ani kdyby se autor rozkrájel. Ono to jde proti sobě, Java se snaží ořezat co může a jako jazyk toho umět co nejmíň, zatímco dynamicky typované jazyky se snaží naopak dát rozlet.
To je také hlavní důvod, proč je ptákovina se o něco takového snažit. Na druhou stranu existují dynamické jazyky pro Java platformu, například Groovy (a samozřejmě Python a další).
20.1.2006 15:19 Miloslav Ponkrác | blog: miloslavponkrac
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
Protože třeba pro Smalltalk jsou operátory jen speciálním případem zpráv. A autor jaksi deklaroval, že napodobuje Smalltalk. A upřímně řečeno, dynamicky typovaný jazyk bez operátorů, to je nic moc.

Sice existují dynamické jazyky pro Javu (tedy přesněji pro její virtuální mašinu) a taky pro .NET, ale je to trochu přiohnutý. Například po pokusech s Jythonem můžu prohlásit, že tam dost věcí dře a začíná to být trochu jiný jazyk, než původní Python vzájemně dost nekompatibilní s původním Pythonem. Takže sice dynamické jazyky sem tam někdo přiohne na statický byte kód, ale vždycky se přitom něco ztratí.

Koneckonců napasovávat dynamické jazyky na statické jádro mi připadá stejné jako přešít chlapa na ženskou a pak tvrdit, že je sexy. Není to prostě ono a bez kompromisů se to neobejde.
20.1.2006 15:41 paskma | skóre: 13 | blog: Paskmův blog
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
No jo, pan arcifanoušek operátorů :-)

Ok, ve ST jsou operátory zprávy. Proto ani nemají prioritu. Ok, dobrá.

Ale jeho pragmatická napodobenina ObjC má normální operátory zděděné z plain C. Ani nejdou přetěžovat. Pokud se nepletu, tak:

NSString* foo = @"FOO";

NSString* bar = @"BAR";

NSString* blekota = foo + bar;

normálně sečte ty pointery. Nebo projde i:

foo++;

ObjC je velmi pragmatický jazyk, není ani nějak bezpečný (ve smyslu Javy nebo Ady). Přesto tam posílání zpráv je hodně dobré a objektově se tam pracuje na vyšší úrovni než v C++/Javě. A operátory jsou prostě z čistého céčka.
20.1.2006 16:47 Miloslav Ponkrác | blog: miloslavponkrac
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
Objective C je jazyk, který vzniknul stylem "co nejmenší zásahy a co nejmenší přidaná hodnota vůči C". Ač je Objective C hodně dobrý jazyk v mnoha směrech, tak je to prostě bastl C + něco málo navíc. Posílání zpráv v Objective C je prostě dynamické. Ale díky napojení na C lze klidně celou dynamičnost Objective C obejít a posílat věci staticky. Prostě bastl. A to říkám s vědomím, že Objective C uznávám jako výbornou věc pro praktické programování.

Objektově je prostě jiný. Pojetí Javy, nebo C++ je prostě statické, zatímco pojetí Objective C je implicitně dynamické (i když statičnost se taky nevylučuje). Dynamické jazyky prostě objektům zasílají zprávy, zatímco statické volají metody.

Prostě dnes mě nenadchne žádný programovací jazyk, který nemá základní samozřejmosti: výjimky, operátory, objekty, unicode, a několik dalších věcí.
20.1.2006 18:43 podlesh | skóre: 38 | Freiburg im Breisgau
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
Protože třeba pro Smalltalk jsou operátory jen speciálním případem zpráv. A autor jaksi deklaroval, že napodobuje Smalltalk. A upřímně řečeno, dynamicky typovaný jazyk bez operátorů, to je nic moc.
Speciálním? Prostě Smalltalk operátory (tak jak je známe z C, C++) nemá a nepotřebuje, stejně jako Lisp. Takže se není nutné uchylovat k (když okopíruji terminologii) bastlům jako je jejich přetěžování. Které do staticky typovaných jazyků nepatří.

Naopak - když dynamicky typovaný jazyk, tak bez operátorů. Jako je Lisp nebo Smalltalk.
20.1.2006 19:04 Miloslav Ponkrác | blog: miloslavponkrac
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
Ale samozřejmě, Smalltalk, a ani Lisp nemají mnoho věcí, které jsou v klasických jazycích. A přeci tam vlastně jsou, protože jsou jen důsledkem už existujících věcí. A tak je i s těmi operátory. Koneckonců, stejně se nakonec všichni vrátíme k Lispu :-)

O tom, že operátory do staticky typovaných jazyků nepatří bych se hádal. Prostě tam patří jako spousta dalších věcí. Operátory jsou velmi zpřehledňující syntaktický cukr. A nebo snad chcete vysvětlit matematikům, že mají s maticemi psát namísto:

A = B * C - D + E * F / 3;

raději

A = (B.multiply(C)).sub(D).add(E.multiply(F).div(3))

Schválně, co je přehlednější, a v čem spíše nasekáte chybu? Já rozhodně hlasuji pro operátory.

Vy jste vůbec zcela nenápadně vyloučil operátory a to tak, že totálně. Nejdřív jste prohlásil, že do statických jazyků nepatří, a pak když dynamický jazyk, tak bez operátorů.

Já prostě vím jedno, přítomnost operátorů v jazyce pro mě znamená obrovské plus pro ten jazyk samotný.
20.1.2006 12:14 paskma | skóre: 13 | blog: Paskmův blog
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
Počkej, nerozumím. Já jsem myslel, že ObjC má takovéhle věci vrozené a ne, že jsou to knihovní fíčruky z Cocaa.

Jinak to samozřejmě to není nejlepší nápad. Právě proto o top píšu blogpost :-)
20.1.2006 14:15 podlesh | skóre: 38 | Freiburg im Breisgau
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
Jasně, ObjectiveC je má, ale Apple dodává vlastní JRE/JDK s Cocoa API (v podstatě dstě lze Cocoa aplikace psát i v Javě). No a tam používá takovéto vychytávky. Už je ale dávno co jsem to viděl...
20.1.2006 14:25 paskma | skóre: 13 | blog: Paskmův blog
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
Aha, už chápu. Ale mám pocit, že jsem někde zachytil, podporu Javy pro kakao už nějak vzdali - prej to nikdo pořádně nepoužíval.
20.1.2006 15:55 machr
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
Odpovědět | Sbalit | Link | Blokovat | Admin
> Jak udělat z Javy Smalltalk

na co nahrazky, kdyz muzete mit orginal ???? Co zkusit treba squeak....
20.1.2006 17:21 paskma | skóre: 13 | blog: Paskmův blog
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
Běží vám na počítači nějaká ST aplikace? Mně ne. Ani nikoho takového neznám. To neshazuje kvaliti ST, jen svědčí o jeho použitelnosti.

Ten blogpost je jen taková onanie, berte to tak :-)
20.1.2006 17:57 machr
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
Asi pred rokem jsem delal v Jave a ve Smalltalku stejnej program (projekt do skoly) - editor a simulator konecnych automatu - a ve smalltalku to bylo asi tak 3789 x jednodussi, coz svedci o jeho pouzitelnosti....

Jedinej duvod, proc se pouziva java misto smalltalku je, ze ma konvencnejsi syntaxi a programatori sou lini se ucit neco jinyho. Ale pritom mu nesaha ani po kolena ;-)

Jeden z mala jazyku, ktere mu muzou konkurovat je treba python, ale Java, to je ta nejvetsi prasarna - vzali spatny vlastnosti C++ a smalltalku a udelali z nich neopakovatelnou kombinaci....

> Ten blogpost je jen taková onanie, berte to tak :-)

ok, ja jen, abych vam usetril zbytecnou praci...
20.1.2006 18:08 Miloslav Ponkrác | blog: miloslavponkrac
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
Naprostý souhlas. Produktivita jazyků typu Smalltalk je mnohonásobně vyšší, než Javy.
20.1.2006 18:39 paskma | skóre: 13 | blog: Paskmův blog
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
Ale já ti neberu, že simulátor konečného automatu uděláš v ST velmi elegantně. Jen si něco jiného představujeme pod pojmem "použitelnost". Já pod tím myslím použitelnost pro tvorbu normálních reálných aplikací, žádné akademické cukrbliky.

Takže proč si myslím, že je ST nepoužítelný. Je to pro jeho převrácenou filozofii. Normální program se píše tak, že se začne z ničeho a napíše "void Main..." a pak se k tomu dolepuje funkcionalita, knihovny, data atd, až je z toho velký zabugovaný moloch.

A v ST? Na začátku je Squeak, který umí "všechno". No a tento moloch se přiohne tak, aby uměl to, co má umět výsledná aplikace. (Ok, rychle, efektivně) No a pak není možné z tama osekat nepoužívaný kód.

Neříkám, že je to špatně, je to jinak, ale většinou to nevyhovuje. Je hezké, že jsi v tom napsal "reálnou" aplikaci, ale kolik procent desktopu ti běží na ST?

Syntaxe není problém. Kdyby to bylo takové terno, tak by se ji lidi naučili. I odlišná paradigmata. Podívej se, jak je populární Python, se svou "2D" syntaxí. To, že se něco v praxi neprosadí, většinou mívá nějaký důvod. Je mi líto, ST není použitelný, ač je to velmi chytře navržený výkonný nástroj.

Další otázka je výkon. Spousta lidí se ještě nesmířila s Javou/C# a věcma jako GC. I když myslím, že jsou velmi rychlé implementace ST.
20.1.2006 19:02 podlesh | skóre: 38 | Freiburg im Breisgau
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
Myslím že se vesměs mýlíš, hlavní rozdíl mezi Javou a Smalltalkem je někde úplně jinde. Oba jazyky mají naprosto odlišné filozofické základy, ona paradigmata která jen lehce zmiňuješ. Lidé vyznávající tyto dva filozofické směry si často vůbec nerozumí (zkus pythonistům nabízet Adu či naopak), takže jediná možná forma "diskuse" je flamewar.

To jak funguje Squeak je spíše detail.
Další otázka je výkon. Spousta lidí se ještě nesmířila s Javou/C# a věcma jako GC. I když myslím, že jsou velmi rychlé implementace ST.
Toto je hlavní důvod zlé krve mezi Smalltalkem a právě Javou. Smalltalkovci se nemohou přenést přes to (a zcela je chápu), že po letech čekání až C a jeho bastardy (C++) vezme čert se před ně vecpal nový otesánek a Smalltalk zase ostrouhal.

A lepší to nebude. Pokud tedy za pokrok neuvažujeme to, že Microsoft uvažuje že do C#3 zavede closures společně se zcela novou syntaxí převzatou z SQL.
20.1.2006 19:16 paskma | skóre: 13 | blog: Paskmův blog
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
Jak to takhle píšeš, přijde mi to jako nějaká teorie spiknutí. Kdyby měl ST jen samé výhody, tak proč ho všichni nepoužíváme. Jako by se nelíbil templářům :-).
20.1.2006 22:28 machr
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
> Kdyby měl ST jen samé výhody, tak proč ho všichni nepoužíváme.

- dobra logicka uvaha. bohuzel v praxi to bejva trochu jinak. najdete si treba nedavnej blogspot o plan9....
21.1.2006 01:03 paskma | skóre: 13 | blog: Paskmův blog
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
Najděte si tam můj komentář, kde tvrdím, že Plan9 se nevyplatí :-)
6.4.2006 19:23 Kyosuke | skóre: 28 | blog: nalady_v_modre
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
Smalltalk měl v první řadě arogantní a nepřístupnou cenovou politiku - když vznikly první komeční implementace. Něco, jako dneska má Franz Allegro CL... :-/
30.4.2006 18:55 Jiří Daněk | skóre: 12 | blog: muj_blogisek
Rozbalit Rozbalit vše Re: Jak udělat z Javy Smalltalk
Ne o použitelnosti, ale o používanosti. A ne moc dobře ... Běží u vás nějaký program v pythonu?
Byl jeden pán a ten měl psa. HAFUŠA se jmenoval.
19.7.2011 10:55 Michal Ertelt
Rozbalit Rozbalit vše Small talk specialist
Odpovědět | Sbalit | Link | Blokovat | Admin
I am looking for Small talk specialist in Prague. It is a job in an international company in a very interesting project. If you are interested please contact me at michal.ertelt@gmail.com.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.