Jeśli lubisz Rubiego, prawdopodobnie polubisz Smalltalk. IIRC Seaside został przeniesiony na maszynę wirtualną Gemstone, która jest częścią ich Gemstone / S OODBMS. Ma znacznie lepszą obsługę wątków niż Ruby, więc jest lepszym zapleczem dla systemu o dużej objętości. To może być dobry powód, aby się temu bliżej przyjrzeć.
Powody, dla których warto nauczyć się Smalltalk:
To naprawdę fajne środowisko programistyczne. Kiedy już się nad tym zastanowisz (jest to zwykle szok kulturowy dla osób przyzwyczajonych do C ++ lub Javy), przekonasz się, że jest to naprawdę dobre środowisko do pracy. Nawet naprawdę kiepski smalltalk, taki jak Stare Digitalk, z których korzystałem, są niezwykle przyjemnym w użyciu systemem. Wielu starych guru XP i OO, takich jak Kent Beck i Martin Fowler, wycięło sobie zęby na Smalltalk w przeszłości i czasami można ich usłyszeć publicznie tęskniących za dawnymi dobrymi czasami (dzięki Frankowi Shearer za cytat, +1) - Rozwój Agile powstał na tej platformie.
To jedna z najbardziej produktywnych platform programistycznych w historii.
Istnieje kilka dojrzałych implementacji i jest tam zaskakująco duża baza kodu. W pewnym momencie stało się to dość modne w kręgach rynków finansowych, gdzie produktywność deweloperów i czas wprowadzenia na rynek to dość ważna sprawa. Do połowy lat 90. była to mniej więcej jedyna gra w mieście (z możliwym wyjątkiem LISP), jeśli potrzebowałeś komercyjnie obsługiwanego języka wysokiego poziomu, który byłby odpowiedni do tworzenia aplikacji.
Wdrożenie jest łatwe - wystarczy upuścić plik obrazu w odpowiednim katalogu.
Właściwie nie jest to powód, ale Gang of Four Book używa Smalltalk w kilku swoich przykładach.
Powody, dla których nie warto uczyć się Smalltalk:
To coś w rodzaju niszowego rynku. Możesz mieć problem ze znalezieniem pracy. Jednak jeśli tworzysz jakąś aplikację .com, na której jesteś właścicielem serwerów, może to nie stanowić problemu.
Przez wielu jest postrzegany jako starszy system. Na platformie jest stosunkowo niewiele nowości (choć Seaside wydaje się przeżywać pewien renesans).
Zwykle nie gra dobrze z tradycyjnymi systemami kontroli źródła (przynajmniej od połowy lat 90-tych, kiedy go używałem). Może tak być lub nie.
Jest nieco izolowany i lubi się bawić sam. Python lub Ruby zostały stworzone z myślą o integracji od podstaw i są zwykle bardziej rozwiązłe, a tym samym łatwiejsze do integracji z oprogramowaniem innych firm. Jednak różne inne, bardziej popularne systemy cierpią z powodu tego typu zaściankowości w większym lub mniejszym stopniu, co nie wydaje się utrudniać ich używania.
Cóż, skoro wspomniałeś o mnie po imieniu, czuję, że powinienem się przyłączyć.
Jak powiedziałem w wywiadzie podcastowym i jak wielokrotnie pokazywałem na swoim blogu http://MethodsAndMessages.vox.com/ , jest to „ rok smalltalk ”. A po tym, jak teraz popieram Smalltalk przez ostatnie dziesięć miesięcy, widzę, że to naprawdę się dzieje. Coraz więcej klientów zwraca się do Smalltalk i Seaside, a sprzedawcy Smalltalk ciężko pracują, aby przyciągnąć tę nową uwagę. Planowane są kolejne większe konferencje Smalltalk. Publikowanych jest więcej ofert pracy. Publikowanych jest więcej wpisów na blogu.
Jeśli dziś zwrócisz się do Smalltalk, nie jesteś sam. Jest też wielu innych, którzy tam są.
Edytować
Cóż, kilka lat później zamiast tego polecam teraz Dart . To świetny język stworzony przez Google, ale obecnie należący do komitetu ECMA. Działa po stronie serwera w stylu node.js, ale także po stronie klienta w nowoczesnych przeglądarkach poprzez transpilację do JavaScript. Wiele dobrych książek, blogów, kanałów pomocy, wsparcia IDE, publicznego wklejania na żywo . Myślę, że na pewno ma nogi ... na tyle, że piszę materiały szkoleniowe, aby uczyć go na miejscu lub online, i jestem prawie pewien, że w moich pracach jest jedna lub dwie książki. Gilad Bracha, dawny Smalltalker, jest głównym współtwórcą projektu, więc w Dart jest dużo Smalltalk.
źródło
Smalltalk to dobry język do nauki, a wspaniałe jest to, że zajmuje to tylko jeden dzień. To znacznie więcej niż tylko język akademicki. Ludzie tworzą ogromne, skalowalne, powtarzalne aplikacje obsługujące miliardy dolarów. Po prostu nie rozmawiają o tym dużo. Zobacz na przykład GemStone i Orient Overseas Container Lines: A Shipping Industry Case Study .
Nadmorskie to dobry powód, aby nauczyć się Smalltalk, ale nie sądzę, by było ono o rząd wielkości lepsze niż Rails.
Tym, co mnie przekonało, był GemStone. Bardzo podoba mi się GLASS firmy Gemstone (GemStone, Linux, Apache, Smalltalk, Seaside). Zabójczą częścią tego jest GemStone, który obsługuje całą trwałość obiektów, głównie bez zastanawiania się. Oglądanie niektórych ich demonstracji i słuchanie o tym, co ludzie robią z GemStone, zresetowało moje wyobrażenie o tym, co oznacza „duża aplikacja”.
W Railsach najbardziej niepokoi mnie mapowanie obiektowo-relacyjne. To nic przeciwko Ruby, ponieważ jest do bani tak samo mocno w GLORP (który obsługuje ActiveRecord dla Smalltalk), Perl lub cokolwiek innego. Mapowanie obiektów do tabel bazy danych jest po prostu bolesne. Dzięki GemStone znika myślenie o bazie danych, więc znika też praca z bazą danych. To tak, jakby z moich pleców zdjęto ogromny kamień (lub stado małp).
źródło
> nie mogłem znaleźć środowiska programistycznego Smalltalk, które nie kosztowałoby obu rąk i nogi
Google - bezpłatny smalltalk
Cincom Smalltalk, Squeak, GNU Smalltalk
źródło
Nauka Smalltalk da ci podstawy w tworzeniu oprogramowania obiektowego z perspektywy człowieka, który wynalazł OO (Alan Kay). Pomysł nakładającego się środowiska okienkowego wyszedł z Smalltalk.
Przeszkodą w nauce Smalltalk jest to, że jest to system przekazywania wiadomości z dziwną składnią do sterowania przepływem, taką jak:
Ma bardzo dojrzałą bibliotekę klas, która ma spójność, w której nie widziałem zbyt wielu miejsc. Biblioteka klas we wszystkich środowiskach (nawet komercyjnych Smalltalks) ma dostępne źródła, które pozwalają uczyć się od mistrzów języka. Programując Smalltalk, zawsze zadaję sobie pytanie, jak to się robi w środowisku.
Smalltalk jest generalnie implementowany w obrazie, który jest żywym środowiskiem dla wszystkich obiektów w twoim systemie.
Interaktywny debugger naprawdę oddziela Smalltalk od Rubiego.
Seaside to platforma do tworzenia stron internetowych, która dała Smalltalk nowe światło. Jest to środowisko oparte na kontynuacji, które umożliwia debugowanie wewnątrz trafień i płynne środowisko programistyczne typu Rich Client (górny przepływ aplikacji można zaprojektować w jednej metodzie). Jego integracja z script.aculo.us została wykonana w taki sposób, że można ją łatwo wywołać z poziomu Smalltalk.
źródło
Nigel, mam jeden cytat:
Chociaż minęło dużo czasu, odkąd cokolwiek z nim zrobiłem, nominuję Smalltalk, nadal nie spotkałem niczego podobnego do przenoszenia myśli do kodu komputerowego. To nie tylko język: to wspaniałe środowisko przeglądarki, biblioteki i kultura pisania przejrzystego, dobrze zaprojektowanego kodu tak szybko, jak wszystko inne może wydobyć spaghetti. Kiedy uczestnicy JavaOne wychwalali, że Java jest o wiele bardziej produktywna niż cokolwiek innego, potrzebowałem brązowej papierowej torby. No cóż, wracając do porządkowania moich ścieżek klas ... - Martin Fowler (Magazyn o rozwoju oprogramowania, styczeń 2001)
Znalazłem to tutaj .
źródło
Nie zgodziłbym się z plakatem, który uważa, że nie używałbyś Smalltalk do dużych aplikacji - właśnie tam świeci. Ale stworzyłem całkiem fajne (uwaga małe) prototypowe aplikacje w niecały tydzień.
Uczyłem się OO w ST od 92 roku, niesamowicie się cieszę, że to zrobiłem. Dało mi to prawdziwe tło w OO. Myślenie na zajęciach. Brak typów. ST kładzie prawdziwy nacisk na przesyłanie wiadomości. Jeśli chcesz się czegoś dowiedzieć, wyślij do obiektu wiadomość i uzyskaj odpowiedź. IMHO, etos i IDE naprawdę zachęcają do robienia właściwych rzeczy ze swoim sprzężeniem i spójnością.
W mojej codziennej pracy w Javie utknąłem z plikami, typami, IDE jak zaćmienie, które są o rząd wielkości mniej produktywne niż jakikolwiek ST IDE. Używałem ST tylko wtedy, gdy skończyłem programowanie przed terminem. W rzeczywistości było to tak produktywne, że wykorzystaliśmy tyle razy, że musiałem przenieść się do innego projektu, ponieważ nie miałem nic do roboty! (Ok, może mógłbym poświęcić czas na naukę szacowania ...)
Pobierz pisk, znajdź dobrą książkę i graj. Jedynym minusem jest to, że jeśli Twój dzienny koncert korzysta z języka Java lub C #, w końcu będziesz żałować, że nie możesz użyć ST. Wrócisz do domu wcześniej.
Chris Brooks
źródło
Polecam wszystkim nauczyć się Lispa (Scheme) lub Smalltalk.
Smalltalks mają wspaniałe środowiska IDE, których nie można przegapić, gdy przełamie się szok kulturowy. I tak, jest więcej niż jeden darmowy: Squeak, Dolphin, Smalltalk / X i Visualworks (Non-Comercial).
Jednak Lisp może być jeszcze czystszy w swoich matematycznych podstawach.
pozdrowienia
PS: właściwie polecam nauczyć się obu!
źródło
Nie znam Rubiego ...
Smalltalk to czysty język OO. Jeśli czujesz potrzebę naprawdę zrozumienia OO, a nie tylko symulowanego OO najpopularniejszych języków „OO” (takich jak C ++, Java itp.), To polecam zabawę z smalltalk.
W smalltalk wszystko jest przedmiotem, z atrybutami, zachowaniem i meta. W symulacjach masz typy danych, których używasz w swoich obiektach.
Powiedziałbym, że baw się z tym, tylko zyskasz.
źródło
Jestem całkowicie na twoim miejscu. Używam RoR i zaglądam do krainy Smalltalk. Oto kilka zalet i wad, które uważam za ważne:
Plusy:
Cons:
To dość zabawne, jak dowiedziałem się o Smalltalk. To była jedna rzecz, która często pojawiała się w wynikach Google podczas wyszukiwania rzeczy Lisp i Erlang. Pewnego dnia sprawdziłem to i byłem zdumiony ładnym otoczeniem okien. Kilka chwil później znalazłem framework Aida / Web. Zacząłem się uczyć Smalltalk poprzez tworzenie stron internetowych w tym frameworku.
Wciąż nie do końca, ale to tak cholernie interesujące, że po prostu nie mogę usiedzieć spokojnie ... :-) Znowu się bawię.
źródło
Nie zacząłbym się tego uczyć, gdybym miał czas. Dlaczego nie? Ponieważ nauka języka C # lub Java byłaby bardziej produktywna i opłacalna finansowo.
Z drugiej strony, jeśli jesteś hobbystą i chciałbyś pójść na wykopaliska archeologiczne, proponuję poświęcić trochę czasu na przyjrzenie się temu, co, kiedy, dlaczego i jak w smalltalk, badając Alana Kaya. Fascynująca historia i niesamowita osoba (w końcu zdobył Turning Award). Potem może pobawić się trochę piskiem, aby poczuć język. Po tym możesz mieć nowo odkryty szacunek / zrozumienie bloków, zamknięć i zasad zorientowanych obiektowo.
Znam Smalltalk i używam go od około 15 lat, wciąż się utrzymuję go i nie polecam Smalltalk znajomemu. Dlaczego nie? Zatrudnienie to dobra rzecz, którą warto mieć i nadal ją zdobywać. Chociaż możesz się wiele nauczyć od Smalltalk, nie możesz łatwo zmienić tego w pracę zarobkową w dzisiejszych czasach.
Wydawałeś się również podekscytowany Seaside i zakładam partnerstwo Seaside / GemStone. Używam GemStone od dłuższego czasu i te dwie rzeczy razem są bardzo atrakcyjne. Mam nadzieję, że zdobędą udział w rynku i odpowiednią dynamikę, aby odnieść sukces.
źródło
Nie! Jeśli naprawdę zaczniesz się tego uczyć, możesz nie chcieć już programować w czymś innym.
Może to nie być prawda, jeśli jesteś programistą seplenienie.
źródło
Oczywiście, naucz się Smalltalk! Jest rok 2015, a Smalltalk znów rośnie dzięki Pharo . Pharo jest BEZPŁATNE. Pharo szybko ewoluuje w potężne narzędzie dla przedsiębiorstw. W wersji 4.0, a wkrótce 5.0, bardzo dojrzała w ciągu zaledwie czterech lat!
Jest też Amber , czyli Smalltalk dla sieci. Jest również BEZPŁATNY i szybko się rozwija.
Pomimo reputacji Smalltalka , to nie jest Smalltalk twojego ojca. Nowoczesny Smalltalk jest ekscytujący i obiecujący.
To prawda, że praca w Smalltalk nie jest (jeszcze) obfita. Ale jeśli wystarczająca liczba z was zgromadzi się na nowej fali Smalltalkers, branża dostosuje się do tego i zobaczymy szersze zastosowanie Smalltalk w biznesie. Pytanie brzmi, czy masz wizję?
źródło
Uczyłem się Smalltalka na jednym z pierwszych kursów magisterskich z programowania obiektowego (około 1988). Nauczyciel pomyślał, że najlepiej zacząć od „czystego” języka OO, zanim przejdziemy do bardziej modnego (zrobiliśmy trochę C ++ pod koniec semestru).
Biorąc to pod uwagę, nadal najlepiej jest zacząć od czystego OO, chociaż obecnie mamy Javę i C #, z których oba są „prawie czyste” OO - na tyle blisko, że można je uzyskać ignorując ich funkcje niezwiązane z OO, i ograniczając się do podzbioru języków Pure-OO.
źródło
Jeśli chcesz lepiej zrozumieć programowanie ekstremalne (a nawet Scrum), powiedziałbym, że tak .
Dlaczego niecierpliwi programiści Java muszą uczyć się Smalltalk:
http://www.dafydd.net/archive/2010/why-smalltalk-isnt-just-another-language/
źródło
Od kilku lat jestem inżynierem oprogramowania. Słyszałem, że ludzie kilka razy wspominali o Smalltalk i na pewno Smalltalk istnieje od około 1980 roku, ale jest to jeden z tych języków, które nigdy nie dotarły do głównego nurtu oprogramowania. Coś jak Objective C, CLIPS, PL / I itd. - coś, o czym być może słyszałeś, ale coś, czego większość ludzi nigdy nie zaprogramowała.
Prawdopodobnie nie poświęciłbym czasu na naukę Smalltalk, chyba że byłbym potrzebny do jakiejś konkretnej pracy. Kilka lat temu przyjrzałem się kilku samouczkom i przykładom Smalltalk i wygląda na to, że ma kilka wyraźnych zalet w niektórych aspektach programowania obiektowego (jak koncepcja wiadomości wydaje się fajna). Ale niestety nie jest to główny nurt i nie wydaje się nabierać większego tempa.
źródło
Ten wątek stał się dla mnie bardzo aktualny. Planuję migrację oprogramowania do aplikacji internetowej. To oprogramowanie oparte na bazie danych. Szczególnie sprawdzam alternatywy 1) Rails 2) Seaside
Jeśli uda mi się uzyskać dane dotyczące Gemstone / S jako bazy danych, rozważę to również. Więc dla mnie oznacza to, że muszę się nauczyć Smalltalk (lepiej) niż wcześniej. Bo może być tak, że będzie to moja praca przez następne 15 lat. Pracowałbyś (i nie powinieneś) tak długo z oprogramowaniem, którego nie lubisz ;-). Mam wrażenie, że Gemstone / S to jedna z „zabójczych” aplikacji. Ale wytrwałość Obiektów nadal jest bardzo trudną dziedziną ...
źródło
1) Tak! Zawsze dobrze jest nauczyć się języka. Jeśli masz zamiar nauczyć się języka, uczyń z niego potężny, wpływowy język, którego można się łatwo i szybko nauczyć.
Smalltalk pozostaje dominującym językiem i środowiskiem do nauki pojęć OO.
To wszystko, aż do dołu. To zapewnia naprawdę spójne podejście do pracy.
Liczby całkowite są wystąpieniami klasy całkowitej. Łańcuchy to zbiór obiektów znakowych. Klasy są pojedynczymi obiektami instancji dla klasy, którą definiują.
Struktury kontrolne działają poprzez wysyłanie komunikatów get do instancji klasy Boolean.
Nawet metody anonimowe (bloki kodu, inaczej bloki) są obiektami.
Wszystko odbywa się poprzez wysłanie wiadomości do obiektu. Składnię można dopasować na pocztówce.
Przejrzystość pojęć i ich implementacja w Smalltalk oznacza, że możesz opracować sposoby myślenia, które przenoszą się bezpośrednio do Java, Ruby i C #. Spodziewam się, że dotyczy to również Pythona.
Jest to tak dobre dla wyjaśnienia koncepcji, że duży uniwersytet w Wielkiej Brytanii wykorzystał Smalltalk do szkolenia 5000 osób rocznie w zakresie przetwarzania obiektowego.
Squeak 5 właśnie został wydany. Zyskał znaczny wzrost wydajności dzięki nowej maszynie wirtualnej Cog / Spur, która oferuje progresywne usuwanie elementów bezużytecznych.
Pharo 4 ma piękny, czysty wygląd pulpitu. Następna wersja, Pharo 5, ukaże się wkrótce. Zostanie przeniesiony na maszynę wirtualną Cog / Spur, będzie miał około 5000 klas w wydaniu, a dodatkowe pakiety klas są łatwo dostępne w sieci za pośrednictwem narzędzia Configuration Browser.
Squeak 5 działa nawet na Raspberry Pis pierwszej generacji i jest prawie 50% szybszy na nowym Raspberry Pi zero za 5 USD. Za 99 USD kupisz Raspberry Pi 2, ekran i obudowę - działające na dojrzałym, w pełni funkcjonalnym IDE.
Prowadzone są wiodące badania w zakresie skoordynowanych, rozproszonych systemów OO w Smalltalk (np. Naiad i Spoon).
W Smalltalk działają niektóre z największych na świecie korporacyjnych baz danych - w tym śledzenie 60% kontenerów wysyłkowych na świecie oraz systemy transakcyjne w największym banku świata.
Możesz użyć Smalltalk jako czegoś w rodzaju super- wydajnego CoffeeScript, pisząc w Amber Smalltalk i transponując do JavaScript, działającego w przeglądarce.
Squeak, Pharo i Amber to bezpłatne języki i środowiska z otwartym kodem źródłowym i otwartą licencją.
Squeak i Pharo zapewniają możliwość jednokrotnego zapisu i uruchamiania w dowolnym miejscu dla systemów MacOS, Windows i Linux. (Prawdopodobnie również RiscOS).
Dolphin Smalltalk koncentruje się na natywnym wyglądzie i działaniu systemu Windows i umożliwia kompilowanie zamkniętych plików .ex ukończonej pracy w celu dystrybucji do użytkowników końcowych. Dalszy rozwój Dolphina przez sprzedawcę został zatrzymany, ale jest on w pełni funkcjonalny i, podobnie jak wszystkie Smalltalks, zaprojektowany tak, aby był masowo rozszerzalny. (Czy wspomniałem, że Pharo ma teraz 5000 klas, w porównaniu do 3000 Squeaka? Pharo jest widelcem Squeaka 3.9)
** Na stronie: ** http://beginningtosmalltalk.blogspot.co.uk/2015/11/how-to-get-smalltalk- znajduje się poradnik dotyczący instalacji i uruchamiania Squeak, Amber, Pharo, aware i dolphin up-and-running.html
Framework sieciowy Seaside działa na Squeak i Pharo. To wspaniałe, dojrzałe narzędzie, podobnie jak bardziej tradycyjny framework AidaWeb.
VisualAge, VisualWorks i Gemstone zapewniają solidne systemy klasy korporacyjnej. Gemstone zapewnia nieskończenie skalowalną bazę danych obiektów z transakcjami i trwałością.
2) Tak - już go używam.
Nauczyłem się tego na Open University i od razu zacząłem pracować w języku Ruby (kopia książki o kilofie i odniesienie do biblioteki u mojego boku). Ogromnie pomogło mi to w Javie i Xerox Moo-code.
Właśnie wróciłem do niego, aby pisać aplikacje do kontrolowania zarządzania i dystrybucji responsywnych, masowo wieloplatformowych aplikacji mobilnych.
Spodziewam się, że wkrótce ponownie napiszę moje aplikacje mobilne JavaScript przy użyciu Amber.
źródło
Naprawdę nie wiem, czego szukasz.
Jeśli szukasz innego języka do pisania, myślę, że zależałoby to w dużym stopniu od dostępnych bibliotek. Nie znam ani Ruby, ani Smalltalk, ale wydaje się prawdopodobne, że najbardziej wydajnym sposobem pisania aplikacji w Ruby on Rails może nie być Smalltalk.
Jeśli chcesz poznać idee Rubiego, może to być bardzo dobry ruch. Nie mam nic ilościowego, ale zawsze czułem się lepiej, używając narzędzi (takich jak systemy językowe), gdy znałem więcej niż tylko narzędzia, jeśli zastanawiałem się nad pomysłami, które się za nimi kryły lub jak działają.
Jeśli chcesz nauczyć się różnych rodzajów języków zorientowanych obiektowo, możesz zechcieć nauczyć się Smalltalk (jeśli znacznie różni się od Rubiego), czegoś takiego jak Java lub C ++, a może także Common Lisp Object System.
Jeśli chcesz się po prostu nauczyć czegoś innego, Smalltalk może być dobrym wyborem. Zasugerowałbym również Common Lisp, a inni ludzie bez wątpienia będą mieli inne sugestie (czy możesz dziś dostać dobry system Forth?).
źródło
Tak, jestem tym zainteresowany. Próbowałem już raz zacząć, ale nie mogłem znaleźć środowiska programistycznego Smalltalk, które nie kosztowałoby obu rąk i nogi.
źródło