hogyan tanulás Smalltalk teheti meg egy jobb Fejlesztő

Smalltalk széles körben érzékelik, mint egy régi, haldokló nyelv—egy antik egy letűnt korszak. Semmi sem állhat távolabb az igazságtól.

a Smalltalk továbbra is nagyon releváns. Kiváló oktatási nyelv a programozás tanításához olyan emberek számára, akiknek nincs technikai hátterük. Ez egy szuperlatív prototípus-nyelv az induló vállalkozások számára. Ez egy ipari erősségű vállalati nyelv, amelyet mind a nagy, mind a kis vállalkozások használnak a világ minden tájáról. Jó okok vannak arra, hogy fontolja meg a modern Smalltalk használatát ma, mivel az utóbbi években sok minden megváltozott annak kilátásainak javítása érdekében.

nem kell használni Smalltalk a termelés ma, de próbálja kódolás valamit Smalltalk és látni, hogy milyen érzés. Ismerősnek kell lennie, mert a Smalltalk megvalósítása az object-oriented (OO) paradigmában olyan kiváló, hogy az OO nyelvek egész generációját befolyásolta, mint például az Objective-C, A Python, a Ruby, a CLOS, a PHP 5, a Perl 6, az Erlang, a Groovy, a Scala, a Dart, a Swift stb.

a tanulás Smalltalk, meg fogod érteni, hogy az összes ilyen hasznos funkciók a mai OO nyelvek jött, hogy. Learning Smalltalk is kapsz egy nagy előnye a programozási ismeretek között a társaik, és ez lehet egy nagyszerű eszköz a tanítás programozás kezdőknek.

mit adott nekünk a Smalltalk?

a Smalltalk gazdag örökséggel rendelkezik a szoftveripar számára. Csak nézd meg ezt a listát a funkciók és technológiák bevezetett:

  • a Smalltalk bemutatta a világnak a nyelvet virtuális gép (vagy VM), amely lehetővé teszi a szoftverek platformfüggetlenségét. Ez ugyanaz a technológia, amely a Java (JVM) és a.net, valamint az Android (Dalvik) alapját képezi.
  • a Smalltalk úttörő szerepet játszott a JIT (just-in-time) összeállításban is, amely a bájtkódos szoftverek, például a Java teljesítményének drámai javítására szolgál.
  • a Smalltalk-ból jött az első modern IDE (integrált fejlesztői környezet), amely tartalmaz egy szövegszerkesztőt, egy rendszer-vagy osztályböngészőt, egy objektum-vagy tulajdonságellenőrt, valamint egy hibakeresőt. Ez vezetett ahhoz a sok IDE-hez, amelyet a fejlesztők ma előnyben részesítenek, mint például a Visual Studio, az Xcode és az IntelliJ IDEA. Személy szerint úgy gondolom, hogy ezen ide-k egyike sem hasonlítható össze a Smalltalk IDE-jével egyszerűségében, eleganciájában és fejlődési sebességében; az eredeti még mindig a legjobb!
  • a Smalltalk kezdettől fogva bezárásokkal rendelkezett, amelyek lexikailag első osztályú funkciók. Lényegében a Bezárás egy visszahívási funkció, amely nem helyi változókat láthat azon a helyen, ahol meghatározták őket. Ez segíthet sokkal kompaktabb és olvashatóbb kód írásában. A bezárások sok nagyobb nyelvre találnak utat, mint például a Java, A C# és a PHP.
  • a Smalltalk volt az első olyan nyelvi eszköz, amely támogatta az “élő” programozást és a fejlett hibakeresési technikákat, mint például a menet közbeni ellenőrzés és a végrehajtás során végrehajtott kódváltozások. Ma az élő hibakeresés lehetséges a C# – ban a Visual Studio “Edit and Continue” – jával és a Java-ban a HotSwap-val.
  • a Smalltalk bemutatta az MVC-t (Model-View-Controller) a világnak. Az MVC egy szoftver építészeti minta a felhasználói felületek megvalósításához. Népszerű az asztali GUI alkalmazások és a webes alkalmazások körében. Manapság ez az architektúra, amelyet a legtöbb webfejlesztő először megtanul.
  • nagyrészt a Smalltalk felelős azért, hogy tesztvezérelt fejlesztést (vagy TDD-t) és extrém programozást (vagy XP-t) adjon nekünk, amelyek mind nagyon befolyásosak a mai standard agilis gyakorlatokban.
  • Smalltalk készült “kacsa gépelés” háztartási szó (nos, ha a ház egy programozó benne). A kacsa gépelés az, ahol a “típusellenőrzés” elhalasztásra kerül a futási időig—amikor a reflexiós képességeket használják a helyes viselkedés biztosítására. Manapság számos nyelven találunk kacsagépezést, beleértve a Java – t, a Pythont, a Common Lisp-et, a Go-t, a Groovy-t, az Objective-C-t és a PHP-t.
  • a Smalltalk úttörő szerepet játszott az objektumadatbázisok fejlesztésében. Bár nem kerültek be a mainstreambe, az objektumadatbázisoknak megvannak a piaci réseik. Az objektumadatbázis-termék legjobb példája a GemStone/S, amely jól alkalmazható skálázható, nagy teljesítményű, multitier elosztott rendszerekhez.
  • a Smalltalk adta nekünk az első refaktoráló böngészőt. Természetesen a refaktorálási támogatás ma a legtöbb IDE-ben megtalálható.
  • a Smalltalk fontos szerepet játszott a grafikus felhasználói felület (vagy GUI) és a “amit látsz, amit kapsz” (WYSIWYG) felhasználói felület fejlesztésében.

de hogyan lehet a Smalltalk tanulása jobb fejlesztővé tenni?

a Smalltalk számos gyilkos funkcióval rendelkezik, amelyek jóval megelőzték korukat:

  • kép alapú perzisztencia
  • objektumok: minden objektum, és az objektumok csak üzeneteken keresztül kommunikálnak (a “legtisztább” OO, és az egyik legkorábbi)
  • “élő” programozás
  • fejlett hibakeresési technikák, mint például a repülési kód megváltoztatása
  • egyszerű, zavartalan IDE interfész
  • tartományspecifikus nyelvek (DSL-ek): A Smalltalk csak így működik, így a programozóknak a problémás tartományra kell összpontosítaniuk egy olyan nyelvet és jelölést használva, amely természetes az adott tartomány számára

és van néhány más funkció is, amelyek a Smalltalk-ot is különlegessé teszik.

lényegében a Smalltalk legfontosabb előnye, mint produktív nyelv és tanulási eszköz, hogy megszünteti a legtöbb, ha nem az összes kognitív stresszt a mainstream OO nyelvekben, mint például a Java. A Smalltalk nem mutat szintaktikai rendetlenséget vagy zavaró funkciókat. Egyszerűen kikerül az útjából, hogy minden figyelmét a problémára vagy az alkalmazásra összpontosíthassa. Nem arról van szó, hogy a Java rossz nyelv, mert összetettebb (és 30 karakteres osztálynevekkel rendelkezik); azt mondom, hogy egy tehermentes OO nyelv megtanulása valójában jobb Java programozóvá teheti Önt, ha megérti az OO fogalmait egy másik perspektívából.

a kognitív stressz megszüntetése számos nyelv alapvető célja—például Python, Ruby, Elixir, Elm és Go. Még akkor is, ha nem érzi, a stressz ott van. Gyakran mondják, hogy a Smalltalk vagy a Python programozása inkább olyan, mint a Zen; az elméd csak könnyedén áramlik a feladattal. Ez a nyelv egyszerűségének szépsége és értéke, és a Smalltalk ezt pikk.

a Smalltalk, OO desztillált a legalapvetőbb fogalmak osztályok és módszerek, metaklasses és reflexió, és ami a legfontosabb üzenet halad. A Smalltalk az objektum tisztasága és következetessége miatt mélyen jobban megérti az objektum-orientált programozást és azt, hogy hogyan használhatja a legjobb hatást.

a Smalltalk egyszerűsége miatt ideális oktatási nyelv a programozás tanulásához, különösen, ha nincs technikai háttere. A nyelv és az eszközök egyszerűsége lehetővé teszi, hogy energiáit a programozási technikák megtanulására összpontosítsa, nem pedig a nyelvi formaságokra.

hogyan működik a Smalltalk? A kép-alapú megközelítés programozás

Smalltalk fő igény, hogy hírnevet a kép-alapú megközelítés szoftver létrehozása. A kép a memória pillanatképe, amely a futó alkalmazás vagy rendszer összes objektumát tartalmazza. Ez magában foglalja a program teljes végrehajtási állapotát. Egy kép menthető lemezre, a végrehajtás pedig később pontosan onnan folytatható, ahol abbahagyta!

a Smalltalk képe kissé őrültnek tűnhet, de valójában erősen hasonlít valami ma széles körben használt dologra: az operációs rendszer virtualizációjában lévő rendszerképekre, mint amilyeneket a VMware és a VirtualBox találunk. Ne feledje, hogy a Smalltalk eredetileg önálló operációs rendszer volt, amikor az 1970-es években a Xerox PARC-nál létrehozták.

a Smalltalk képe szintén erősen hasonlít egy weboldal DOM-jára (Document Object Model). Vegye figyelembe, hogy a webalkalmazás lényegében egy olyan rendszer, amely magában foglalja a webböngészőt, és megtagadja a közvetlen hozzáférést a gazdagép fájlrendszeréhez és más erőforrásokhoz. A böngésző bezárásakor a dinamikus webhely állapota menthető vagy gyorsítótárazható, a böngésző következő újraindításakor pedig a webhely visszaállítható a böngészőben (bizonyos korlátozásokkal).

még az egyszerű táblázatkezelő is szorosan illeszkedik a képkoncepcióhoz. Ez magában foglalja a teljes végrehajtási állapotot. Nem fér hozzá a gazdagép rendszer erőforrásaihoz. Meg lehet menteni és helyreállítani. És tudnia kell, hogy a táblázatokat még mindig használják kifinomult modellek és alkalmazások kifejlesztésére saját nyelvével.

tehát a kép fogalma meglehetősen elterjedt. Ez egy ilyen szép módja annak, hogy dolgozzon ki szoftvert, hogy egy változata a kép koncepció jött létre a JavaScript a Lively Kernel.

a Smalltalkban minden objektum

nincs kivétel: minden objektum. Nincsenek primitív adattípusok. Nincsenek olyan vezérlési struktúrák, mint a kiválasztás és az iteráció! A Smalltalk-ban minden úgy történik, hogy üzeneteket küld az objektumoknak. Ez teszi a Smalltalkot olyan egyszerűvé, elegánssá és könnyen megtanulhatóvá. Ez teszi a nyelvet olyan szintaktikailag teljesen tisztává.

például a következő kódrészlet kiterjeszti a Számosztályt egy nem rekurzív faktoriális művelet támogatására:

Number extend
ifFalse: .
^ (c fold: ) ]]].

7 factorial printNl.

7 my_factorial printNl. "should be the same result as the previous line"

itt az ifTrue: a logikai objektumnak küldött kulcsszó üzenet, amely a kifejezés értékeléséből származik (self < 2). A kulcsszóüzenet argumentuma egy kódblokk (szögletes zárójelben). Tulajdonképpen, ifTrue: egy kétrészes kulcsszóüzenet első része, a második rész ifFalse:.

az unary New üzenetet a rendszer elküldi az OrderedCollection osztálynak egy új gyűjtemény létrehozásához. A printNl üzenet a my_factorial üzenet 7-es számra történő elküldésének eredményére (amely objektum) kerül elküldésre. Az egész szinte olyan, mint a természetes nyelv!

Computational reflection in Smalltalk

a Reflection in Smalltalk különösen értékes eszköz EGY program számára, hogy megvizsgálja saját szerkezetét és számítását futás közben. Ez hatalmas erőt ad, lehetővé téve a programok számára, hogy új osztályokkal és módszerekkel bővítsék magukat, vagy megkérdezzék: “ki küldte ezt az üzenetet nekem?”

a számítási reflexiót a hibák kezelésének hatékony módjának megvalósítására használják. Ha egy objektumnak olyan üzenetet küld, amelyet nem valósít meg, akkor egy doesNotUnderstand: üzenetet kap, az eredeti üzenet megerősítésével együtt. Sok dolog van, amit a program megtehet a doesNotUnderstand: message programmal, beleértve az új funkciókkal való kiterjesztést is!

a képkoncepció és a reflexió lehetővé teszi a Smalltalk számára, hogy megszüntesse az alkalmazás/IDE határt. Minden, ami az alkalmazás fejlesztéséhez, hibakereséséhez és futtatásához szükséges, a képen látható. Soha nem kell elhagynia az alkalmazási környezetet. Ez egy teljesen holisztikus megközelítés a szoftverfejlesztéshez, amely mindent Zen-szerűvé és produktívabbá tesz.

a Smalltalk reneszánsza

a Smalltalk világának fejlődésének utolsó 15 éve sokkal vonzóbbá tette a nyelvet.

Smalltalk már elérhető a front-end webes programozás Amber Smalltalk, amely transpiles JavaScript. Amber fejlesztés zajlik teljes egészében a böngészőben. Az Amber egyik csodálatos dolga, hogy amikor egy JavaScript könyvtárat importál, annak objektumai ugyanúgy kezelhetők, mint a Smalltalk objektumok.

2002-ben megjelent A Seaside web framework, amely a Smalltalk webfejlesztésének legnépszerűbb eszközévé vált. Folytatáson alapuló megközelítése hagyományos “hívás/visszatérés” mechanizmust biztosított a webes alkalmazás számára. Segíthet olyan problémák megoldásában, mint a kettős kérés és a Vissza gomb problémái. Elég forradalmi a maga idejében, és még mindig nem általánosan elfogadott más webes keretek.

a Pharo projekt 2008-ban kezdődött, hogy a modern szoftverfejlesztésre és fejlesztési technikákra összpontosítson. Sokkal tovább hozta a Smalltalk-ot, mint az előző, Squeak nevű nyílt forráskódú projekt, amely a tiszteletreméltó Smalltalk-80 dialektuson alapult. A Pharo projekt egy újfajta IDE-t is kutatott, az úgynevezett Glamorous Toolkit – et. Ez azon az elképzelésen alapul, hogy a programozási környezetnek “formázhatónak” kell lennie az Ön igényeinek megfelelően.

tavaly a nagyra becsült Dolphin Smalltalk nyílt forráskódúvá vált, újabb csodálatos lehetőséget kínálva a Smalltalk rajongói számára. Dolphin Smalltalk gyakran dicsérték, hogy az egyik legjobb megvalósítások a Smalltalk IDE.

a Smalltalk legacy: A programozás szórakoztatóvá tétele

amikor a modern szoftverfejlesztés számos eszközét használja, mint például a JVM, az Eclipse IDE, a closures, az “élő kódolás”, az MVC, a TDD, a VMware és még a sima régi webalkalmazás is, gondoljon vissza a Smalltalk eredetére, és tartsa nagyobb tiszteletben azt, amit csinál. Jobban értékelje az Ön által használt nyelveket, legyenek azok Objective-C, Python, Ruby, Groovy, Scala, Dart vagy Swift.

a nagyszerű funkciókat és technológiákat létrehozó nyelvvel való munka egyedülálló lehetőséget kínál arra, hogy nagymértékben javítsa tudását, mentális élességét és termelékenységét szoftverfejlesztőként. A “szórakozás” szó nem mindig lép be a szoftverfejlesztésről szóló vitákba, de úgy gondolom, hogy a Smalltalk—és az OO testvérei—biztosítják az alacsony kognitív akadályt és a programozás egyszerűségét, ami a szoftverfejlesztést szórakoztatóvá teheti.



+