{"id":1316,"date":"2018-09-19T16:25:32","date_gmt":"2018-09-19T16:25:32","guid":{"rendered":"http:\/\/sdi.thoughtstorms.info\/?p=1316"},"modified":"2018-09-19T16:25:32","modified_gmt":"2018-09-19T16:25:32","slug":"pharo-and-a-new-smalltalk","status":"publish","type":"post","link":"https:\/\/sdi.thoughtstorms.info\/?p=1316","title":{"rendered":"Pharo and a new Smalltalk"},"content":{"rendered":"<p>On Quora, I&#8217;m often ranting about Smalltalk. And how I&#8217;d like to see a &#8220;clean-slate&#8221; reinvention. Much as Clojure is a clean-slate reinvention of Common Lisp.<br \/>\nOver on <a href=\"https:\/\/www.quora.com\/Which-was-your-favourite-programming-language-when-you-first-started-coding\">this answer<\/a>  I was asked what I think of Pharo.<br \/>\nMy response veered off somewhat :<br \/>\nI\u2019ve had a quick look at Pharo. And it\u2019s certainly quite nice. An improvement on Squeak.<br \/>\nBut I have a more radical \/ somewhat idiosyncratic desire. Which I know is probably not something that actual Smalltalk people relate to. But I think it would be a winner.<br \/>\nWhat I think is, that part of the \u201ccruft\u201d I\u2019d like to see a \u201cblank slate\u201d Smalltalk get rid of, is the \u201cdesktop metaphor\u201d and all those silly little overlapping windows, icons, pull out menus etc. Morphic and whatever else.<br \/>\nThat doesn\u2019t mean go to something like GNU Smalltalk. No, I still want a live environment that\u2019s Smalltalk all the way down.<br \/>\nI just don\u2019t think anyone wants a desktop metaphor in 2018.<br \/>\nIf I\u2019m going to write a \u201cdesktop\u201d app, then I don\u2019t want it stuck inside another non-standard app. And if I\u2019m not going to write a \u201cdesktop app\u201d I don\u2019t want the overhead of having to think about and implement that kind of interface.<br \/>\nWhat I think Smalltalk should look like in 2018 is something like Jupyter \/ iPython notebook. Or, at a pinch, Hypercard.<br \/>\nI open \u201cSmalltalk\u201d (whether that\u2019s a browser-based version equivalent to Amber, LivelyKernel or Peter Fisk \u2018s Smalltalk Express, or a desktop version like Pharo or Squeak), and what I see is a \u201csmart notebook\u201d type metaphor :<br \/>\nA single page that takes up the whole window. To which I can start adding \u201ccells\u201d or \u201ccards\u201d containing either code or \u201cliterate\u201d styled documentation, or output produced by the code.<br \/>\nYou\u2019d still have tools like the Class Browser etc. But they\u2019d be integrated within the same UI. Ie. the class browser is just more \u201cpages\u201d in the notebook. There\u2019s no workspace or transcript because every page can have live code on it.<br \/>\nThis UI is immediate. And focused on \u201cdo something\u201d. You don\u2019t have to learn how to navigate around a non-standard UI because it\u2019s the conventions we\u2019re already used to from the web and our mobile devices. Navigation between pages, appending \u201ccells\u201d or \u201ccards in the stream\u201d the kind we\u2019re used to in chat apps.<br \/>\nOther UI conventions would be services that look like bots in Slack or Telegram eg. services at a name which can be invoked in a cell on any page through a little dialogue. And there would be notification streams too. \u201cRecentChanges\u201d, recently generated output. Messages from other users (it should be easy to share individual pages with other users)<br \/>\nI think if you took the underlying Smalltalk engine \/ VM \/ image. Stripped out all the legacy \u201cdesktop UI\u201d stuff, and replaced with a simpler \u201cmulti-page notebook\u201d metaphor, then it could be massively more compelling to people. It then becomes a \u201cpersonal notebook\u201d for doing little sketches \/ experiments.<br \/>\nIf it\u2019s also \u201csocial\u201d ie. has chat streams. Or is like the Smallest Federated Wiki. Or has other ways to sync sketches and pages etc. then this would be spectacular.<br \/>\nAnd the Smalltalk VM \/ infrastructure is perfect for it.<br \/>\nBut right now, anyone who looks into Smalltalk to see what all the fuss is about is confronted with an alien \/ non-standard ugly desktop, full of unfamiliar tools. Sure, that \u201cWelcome to Pharo\u201d window with all the tabs is an improvement on other systems. But it\u2019s still not good enough.<br \/>\nI open Pharo, and I don\u2019t know what to \u201cdo\u201d. How to start playing around and doing something useful and fun.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>On Quora, I&#8217;m often ranting about Smalltalk. And how I&#8217;d like to see a &#8220;clean-slate&#8221; reinvention. Much as Clojure is a clean-slate reinvention of Common Lisp. Over on this answer I was asked what I think of Pharo. My response veered off somewhat : I\u2019ve had a quick look at Pharo. And it\u2019s certainly quite [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[107,208,234,337,421,472],"class_list":["post-1316","post","type-post","status-publish","format-standard","hentry","category-opinion","tag-desktop-metaphor","tag-hypercard","tag-jupyter","tag-pharo","tag-smalltalk","tag-ui"],"_links":{"self":[{"href":"https:\/\/sdi.thoughtstorms.info\/index.php?rest_route=\/wp\/v2\/posts\/1316","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sdi.thoughtstorms.info\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sdi.thoughtstorms.info\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sdi.thoughtstorms.info\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sdi.thoughtstorms.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1316"}],"version-history":[{"count":0,"href":"https:\/\/sdi.thoughtstorms.info\/index.php?rest_route=\/wp\/v2\/posts\/1316\/revisions"}],"wp:attachment":[{"href":"https:\/\/sdi.thoughtstorms.info\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1316"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sdi.thoughtstorms.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1316"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sdi.thoughtstorms.info\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1316"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}