Dlaczego nie używa się Smalltalka?

0

Programuję w Javie. Słyszałem, że czerpie ona trochę ze Smalltalka. Chciałem się nauczyć jakiegoś języka skryptowaego i wybrałem Rubiego. On też czerpie ze Smalltalka. Na wikipedii mało pisze o Smalltalku, ale coś tam jest. Parę razy zasłyszałem coś o tym jezyku i kurcze wydaje mi się ciekawy. Nauczyłbym się go z chęcią, gdyby nie to, że nikt go nie używa (przynajmniej bardzo mało osób) i nie ma o nim książek.
Moje pytanie: Dlaczego właściwie nie używa się Smalltalka? Wyparła go Java, tak? No ale skoro używa się Rubiego i w ogóle stają się modne takie nowoczesne języki, to dlaczego nie Smalltalk? Co mają inni, czego on nie ma?

0

ze Smalltalkiem jest jak z COBOLEM. Jeżeli znajdziesz jakiegoś dziadka, który zna ten język to znaczy, że dobrze grzebałeś na cmentarzu. Przykra prawda jest taka, że wiele języków, nawet dobrych, odeszło do lamusa ponieważ nie ma już osob, które aktywnie ich używają. ST, został wyparty przez Javę czy C++. Tak samo jest z COBOLem i FORTRANem.

0

Smalltalk, tak samo jak masa innych, dobrych języków, nie miał farta. Wątpie, żeby był inny powód.

0

No z FORTRANEM nie jest jeszcze tak zle, moze od kilku lat widze coraz wieksze odejscie na rzecz C++ a to wynika z tego, ze przestaje sie w ogole uczyc fortrana. Jednak z tych trzech tu wymienionych rozwija sie on najbardziej preznie. Drugim minusem jest to, ze dobre kompilatory sa dosc drogie a i IDE dosc biedne i trudno zrobic kolorowy programik. Ten jezyk byl nastawiony na obliczenia. Istnieje bardzo bogata literatura opisujaca metody numeryczne w tym jezyku (nie podstawy !) oraz bardzo wiele bibliotek do obliczen.

No ale coz takie czasy, dzis z biblioteki wywala sie ksiazki takich autorow jak http://pl.wikipedia.org/wiki/Władimir_Fock bo sa po rosyjsku a wprowadza sie znacznie bardziej ulotne w stylu Visual Studio 2008 (aby do 2010 :) ).

0

Jeśli cię ciekawi to się go naucz - będziesz lepszym programistą.
Dziwne języki dają nowe spojrzenie na 'zwykłe' problemy - to się przydaje w każdym języku.

A własne projekty możesz pisać w czym chcesz - są problemy w których program np. w prologu albo erlangu będzie kilkanaście razy krótszy od rozwiązania w mainstreamowych językach.

0
  1. Był zbyt nowoczesny jak na swoje czasy. Był to pierwszy w pełni obiektowy język programowania (dziedziczenie, klasy, polimorfizm).
  2. Był dynamicznie typowany. Wiele osób po dziś dzień uważa, że statyczne typowanie jest lepsze.
  3. Wydajność 10-100 gorsza od C.

Ja i tak myślę, że jest to jeden z najlepszych języków programowania.

0
Koziołek napisał(a)

ze Smalltalkiem jest jak z COBOLEM. Jeżeli znajdziesz jakiegoś dziadka, który zna ten język to znaczy, że dobrze grzebałeś na cmentarzu. Przykra prawda jest taka, że wiele języków, nawet dobrych, odeszło do lamusa ponieważ nie ma już osob, które aktywnie ich używają.

Ale od czasu do czasu pojawia się jakaś dziwna oferta dla programisty COBOL'a albo innego ginącego języka (nie wiem czym to spowodowane - przejęciem przez firmę jakiegoś archaicznego systemu ?). Wtedy osoba znająca taki aramejski język ma szanse na duże pieniądze. Warto się wygrzebać z cmentarza ;)

0

Kiedyś czytałem wywiad z Alanem Kay'em.
Pisal, ze smalltalka zabiły 8'mio bitowce na ktorych byl tworzony, na dzisiejszych architekturach jezyki tego typu (wymienial lispa, APL'a), dzialaja juz przyzwoicie.

Smalltalka wyparla Java ktora z niego mocno czerpala, byla lepszym tworem marketingowym, miala dodane to czego nie dodano (celowo) do smalltalka (GC), i ze dziaj Java jest najlepszym przykladem popkultury wsrod programistow.

Pisal o roznicach w podejsciu do koncepcji jezyka (java-zewnetrzna VM, smalltalk - "wbudowana" VM).

Generalnie ekipa Alana, zrobila nowy projekt o nazwie Squeak, nowy lepszy smalltalk. Zarzuca javie niekompatybilnosc ze wszystkimi platformami (a VM jako tego powod), i pisze o Squeak'u jako leku na to.

Z COBOL'em jest tak ze byl uzywany dawno temu (kiedy nie bylo agile a nawet waterfall byl u podwalin) i na dodatek jako jezyk domenowy dla danego problemu. Uzywali go ludzie ktorzy chcieli cos zrobic i robili to tak jak umieli. Dzisiaj trzeba specjalistow od inzynierii, zeby reanimowac te stare umierajace systemy.

0

Generalnie ekipa Alana, zrobila nowy projekt o nazwie Squeak, nowy lepszy smalltalk. Zarzuca javie niekompatybilnosc ze wszystkimi platformami (a VM jako tego powod), i pisze o Squeak'u jako leku na to.

Hmm, nie mogę tego znaleźć na ich stronie, ale jeśli to prawda że tak piszą, to sieją FUD.
W Javie jak ktoś chce, ma dostęp do wszystkiego co daje OS, jedynie twórcy Javy zrobili to specjalnie tak, żeby było trudno. Zaleta tego jest taka, że większość programistów pomyśli dwa razy zanim uzależni swój kod od kodu natywnego i dzięki temu mamy mnóstwo przenośnych bibliotek. Nawet przy sporadycznych niekompatybilnościach, przenoszenie kodu Javowego na nowe platformy (i to nawet J2ME, które nie ma zbyt dobrej sławy) to pryszcz w porównaniu z przenoszeniem np. programów w C++ (dzisiaj przenosiłem kod na Symbiana ze środowiska Windows na Linuksa - masakra do kwadratu).

Zresztą nie widzę tam na ich stronie żadnej funkcji, którą można by nazwać "Java killer". Ogólnie trochę uboga ta strona jest... Przydałoby się parę mocnych punktów, dlaczego warto się zainteresować tym językiem. Coś jak quicksort w 3 linijkach napisany w LISPie czy Haskellu.

0

Generalnie czytajac ten wywiad odnosilem wrazenie, jakby na pytania redaktora (a byl nim Stuart Feldman !! ) odpowiadal bóg inzynierii i wybitnie cynicznie wypowiadal sie o Sun/Javie, Bjarne Stroustrup'ie i dzisiejszych informatykach. Oczywiscie Alan ma takie portfolio ze czuje sie jak bym byl fanem mody na sukces przy nim...

O tym co podkresliles rowniez mozna poczytac w tym wywiadzie.

Generalnie ekipa Alana, zrobila nowy projekt o nazwie Squeak, nowy lepszy smalltalk. Zarzuca javie niekompatybilnosc ze wszystkimi platformami (a VM jako tego powod), i pisze o Squeak'u jako leku na to.

Wygrzebalem ten wywiad z sieci, naprawde warto go przeczytac:
http://delivery.acm.org/10.1145/1040000/1039523/p20-feldman.pdf?key1=1039523&key2=2944459421&coll=GUIDE&dl=GUIDE&CFID=46568152&CFTOKEN=50347803

0

Też mam takie wrażenie po przeczytaniu tego wywiadu. Tak to jest jak się teoretycy zabierają za inżynierię oprogramowania. Z tą wieloplatformowością Squeaka to już pojechał totalnie.

  1. Co mi po tym, że VM jest ściśle matematycznie zgodny na każdej platformie, jeśli 99% potęgi danej platformy programistycznej stanowią biblioteki. A tych automatem nie przeniosą i nie udowodnią, bo nie ma siły - zawsze gdzieś jest styk z systemem i nieprzenośnymi bibliotekami natywnymi.
  2. Duża część systemowych bibliotek Javy jest napisana w Javie. W Javie można napisać VM Javy tak samo jak VM Squeaka w Squeaku (hmm, nie mam czasu szukać, ale założę się, że jakiś student na zaliczenie już to zrobił).
  3. Squeak nie chodzi na większej liczbie platform niż Java. Gość zapomniał o 10 tuzinach telefonów komórkowych, PDA i innych dziwadeł łącznie z iPhonem, na których chodzi JVM (w zasadzie wszystko co ma ARMa z Jazelle obsługuje hardware'owo Javę - Squeak tego na razie nie potrafi).
  4. Nie spotkałem się i nie znam nikogo, kto kiedykolwiek zauważyłby niekompatybilność Javy na poziomie JVM. Czasem problemy leżą w bibliotekach, najczęściej jednak w takich banałach jak "/" lub "" zamiast File.separator w ścieżkach plików. Gość demonizuje i tyle.
  5. Jak implementacja VM Squeaka będzie tak wydajna jak JVMy Javy, to porównamy przenośność i kompatybilność. Napisać niewydajny, ale kompletny interpreter Javy czy LISPa może naprawdę student na zaliczenie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1