[HN Gopher] Pharo 9
___________________________________________________________________
Pharo 9
Author : xkriva11
Score : 290 points
Date : 2021-07-15 09:40 UTC (13 hours ago)
(HTM) web link (pharo.org)
(TXT) w3m dump (pharo.org)
| unixhero wrote:
| It sounds like a very fun environment . But what can I use this
| for?
| butterisgood wrote:
| https://pharo.org/success
| wiradikusuma wrote:
| Could someone share a practical/industrial use case for this?
| E.g. can I build a SaaS, or a mobile app?
| jamie_ca wrote:
| Seaside http://seaside.st/ is a web framework in Smalltalk that
| will run on Pharo (and a number of other smalltalk systems).
|
| Also they have a GUI system ready so you can develop desktop
| apps (I'm not sure what the deployment story is like these
| days, but I assume it's fine).
| estebanlor wrote:
| Is a generic purpose language, and there are generic usages,
| and a lot of examples :) But here you have a huge SaaS made
| with Pharo: https://yesplan.be/en, and here you have a small
| mobile app made also with Pharo: https://plc3000.com [edit]
| technically is not a mobile app, but runs in any browser so...
| yes :P
| dogma1138 wrote:
| Are there any good general examples for Pharo in the wild? I've
| seen it a few times in some niche industries used as a
| replacement for Visual Basic or some proprietary 4GL stack.
| mikro2nd wrote:
| An interesting project for devs is Glamorous Toolkit
| (https://github.com/feenkcom/gtoolkit) as an
| experiment/exploration of better dev tooling.
| liminal wrote:
| That IDE looks amazing, but it looks like I'd need to be
| proficient in Smalltalk to use it for any language. Watching
| the video on the site and it's impressive what the presenter
| is doing with live representations of code.
| whartung wrote:
| And, frankly, this just reinforces my overall opinion of
| Pharo. Pharo is really amazing, they've been working on it,
| actively, forever, and make great strides.
|
| But I'm convinced that Pharo is an amazing development
| environment and eco-system designed to make amazing
| development environments and eco-systems. All of the folks
| are putting work in to improving IDE to make a better IDE.
|
| They're on their, what, fourth(?) iteration of the "widget"
| set that folks still find difficult to use and under
| documented. As recently as Pharo 7, when I last looked in any
| depth to the matter, their rendering model is straight out of
| the 80s. Vastly less capable than Java2D or Canvas in the
| browser. It's my understanding it's on their todo list, but I
| don't know how far they've advanced on this.
|
| What focus there is on applications seems to mostly come from
| Seaside, the web server application framework.
|
| If you look at their "success" page, most (not all) are web
| apps.
|
| It would not surprise if someone, somewhere, is fusing Pharo
| and some Electron-esque rendering front end and using it to
| create a "desktop application".
|
| And it's not unreasonable to say "Well, web is where it is,
| desktop is dead." There's certainly arguments in that
| direction.
|
| In the end, it's moot. The devs have their itches to scratch.
| Nature of the game. Their itches are not my itches, and an
| "advanced" rendering model and modern widget set is something
| I want to use, not write. So, I'm at their mercy waiting for
| whenever that day may, if ever, come.
|
| If was interested in writing IDEs, then perhaps Pharo would
| be a place for me. Instead I'm interested in writing hobby
| desktop apps, and it's not there yet.
| floxy wrote:
| It seems like the code/system browser has essentially stayed the
| same since Smalltalk-80. See Figure 17.11 on page 298 (PDF page
| 320) of the blue book [1]. I've often wondered about
| "modernizing" it, or at least exploring other options for
| interacting with the source. Have there been attempts at this?
| This is pretty far down on my list of things to fund even if I
| were to win the lottery some day. But I like to think about it
| anyway.
|
| [1]
| http://stephane.ducasse.free.fr/FreeBooks/BlueBook/Bluebook....
| xkriva11 wrote:
| There was a lot of attempts, Glamorous Toolkit is exploring one
| alternative approach now. But the basic concept seems to be
| very solid. Think of the code base as the fractal system you
| want to explore. Then the browser provides several well-placed
| views with increasing zoom levels. It is hard to beat it. When
| you explore, for example, senders of a given message, you jump
| to another position in the fractal that conceptually looks
| similar. And you need to keep track to do not lose orientation.
| Exploring a classical source file is like moving in fractal on
| a fixed zoom level.
| [deleted]
| libx wrote:
| For anyone that wants to learn about Pharo, I recommend this
| online course: https://www.fun-mooc.fr/en/courses/live-object-
| programming-p... It's available in English and French.
| xkriva11 wrote:
| The videos from it are on Youtube.
|
| English voiceover:
| https://www.youtube.com/watch?v=JUKIjdjGjBU&list=PL2okA_2qDJ...
|
| French: https://www.youtube.com/watch?v=-Sk_35lB-
| EI&list=PL2okA_2qDJ...
| a2800276 wrote:
| The page seems to be going out of it's way to not mention the
| word "Smalltalk". Does anyone have an idea why that is? Does
| Smalltalk have such a bad reputation nowadays or has someone
| trademarked the term?
| valera_rozuvan wrote:
| Check out https://consortium.pharo.org/ - you will see:
|
| "A clean, innovative, open-source, Smalltalk-inspired
| environment."
| speed_spread wrote:
| Maybe Smalltalk sounds old like COBOL. It's hard to re-kindle
| interest in old tech in the eyes of new devs. It seems every
| generation of programmers want to have their "own" tools, even
| if they're worse than the previous ones.
| dimal wrote:
| I always had positive connotations of Smalltalk. Seemed it
| was talked about as if it was OOP "done right" before Java
| messed things up. That's just me though.
| pjmlp wrote:
| You mean like C, born in 1972?
| ketralnis wrote:
| Sure. How many new devs do you see writing C?
| bilbyx wrote:
| Lots in the embedded space.
| pjmlp wrote:
| How do you think UNIX clones, GNU utilities and IoT
| devices are kept up to date?
| a2800276 wrote:
| C never really fell out of favor, though. And it's also the
| only available choice apart from assembler in many
| circumstances. But trying to revive interest in Ada, D,
| Sather, Prolog, etc would be a lot more difficult.
| pjmlp wrote:
| It was already out of favour in the early 80's, hence
| C.A.Hoare turing award speech against it in 1980, but
| then UNIX took over the world anyway, and the FOSS wave
| with GNU Manifesto helped to take it further.
|
| Apparently people don't have any issue hanging to an OS
| about the same age as COBOL.
| FpUser wrote:
| >"Apparently people don't have any issue hanging to an OS
| about the same age as COBOL."
|
| Why should they? It works for many cases and has
| mountains of apps, tooling, libraries, hardware support
| and whatnot. It takes decades for the new OS/ecosystem to
| mature.
| pjmlp wrote:
| Same conclusion can be applied to COBOL applications.
|
| https://www.microfocus.com/en-us/products/visual-
| cobol/overv...
| asah wrote:
| Smalltalk never really got substantial adoption...
| pjmlp wrote:
| Thanks Java :(
| StevePerkins wrote:
| Smalltalk first appeared in 1972, and was a stable
| commercial product by 1980.
|
| Java didn't hit the market until over a decade and a half
| later.
|
| If you can't build adoption with a _15+ year_ head start,
| then it 's not the next generation's fault. It just
| wasn't going to happen.
| pjmlp wrote:
| Except it was happening, that is why gang of four book
| uses C++ and _Smalltalk_ on their examples.
|
| Had IBM kept selling Visual Age products instead of
| jumping into Java ship, history would have turned out
| much differently.
|
| Or if the Strongtalk guys hadn't return back to Sun and
| basically turn a Smalltalk VM into a Java one.
|
| JUnit was also born in Smalltalk for those not paying
| attention.
| cmrdporcupine wrote:
| From 1980 to the late 80s or so people were struggling
| just to get Smalltalk to perform at reasonable speeds on
| microcomputer class hardware, so saying 1980 isn't really
| fair. And most of the research that went into getting
| Smalltalk (and Self) to perform well on those platforms
| was then used to get Java to perform.
|
| In actuality, Smalltalk gave Java a headstart.
|
| That said, Smalltalk just doesn't in general "play well
| with others"; its image based development environment,
| especially.
| scroot wrote:
| > stable commercial product by 1980
|
| This is not true. Even the Smalltalk-80 Blue Book wasn't
| released until 1983.
|
| > If you can't build adoption with a 15+ year head start
|
| Historical context is important here. FOSS etc were not
| nearly as prevalent as they are now, and most major
| development environments had a price. The main Smalltalk
| players probably got it wrong by pricing out expensive
| licensing fees. But the head start does not matter when
| the next thing that comes along is released for free,
| which is what happened with Java.
| Qem wrote:
| There was also the issue of "viral pricing". As the
| application was grown as a extension of the image, people
| were supposed in some schemes to not only pay for their
| own copy, but also for every copy of the software they
| wrote and shipped to customers, as it piggybacked on the
| original image. While free software thrived on copyleft,
| the first Smalltalks withered on "payleft".
| jhgb wrote:
| Wouldn't that be payleftandright? ;)
| goatlover wrote:
| Java was able to ride the wave of the web's rise in
| popularity, particularly with their marketing of applets
| and the "network as the computer", with the idea of
| downloading Java code as needed to supplement the
| software you're using at the time. That and there was
| lots of talk about how the JVM was going to be the
| runtime of the future for all languages.
|
| It's funny how Javascript and the web have turned out to
| be a more popular target. Nobody back in the late
| 90s/early 2000s would have thought that. JS was a toy and
| html was going away in favor of Flash or Java applets or
| .NET.
|
| At any rate, timing is a really important part of gaining
| widespread adoption. Smalltalk was way ahead of its time
| in the 70s, but too early to really take advantage of
| networking, as their target was stand-alone personal
| computers.
| asah wrote:
| language developers consistently underestimate the
| importance of "Algol-like syntax" in allowing mainstream
| adoption.
| pjmlp wrote:
| Actually language developers consistently underestimate
| the importance of large corporations pushing languages no
| matter what developers think about them.
|
| Smalltalk lost the day IBM decided to join Sun.
|
| https://en.wikipedia.org/wiki/VisualAge
|
| > VisualAge Micro Edition, which supports development of
| embedded Java applications and cross system development,
| is a reimplementation of the IDE in Java. This version of
| VisualAge morphed into the Eclipse Framework.
| xkriva11 wrote:
| some reading from that era: https://techmonitor.ai/techno
| logy/the_parcplace_digitalk_mer...
| discreteevent wrote:
| Java was free and open source and based on files rather
| than an image.
| igouy wrote:
| Java was free. (And marketed by a large organization.)
| cmrdporcupine wrote:
| It's true, and a huge point. Until Squeak came along I as
| a hobbyist -- who was really interested in Smaltalk --
| simply couldn't get my hands on a Smalltalk (other than
| GNU Smalltalk which doesn't count). All through the 80s
| and early 90s I salivated at screenshots and descriptions
| of it, but never got to play with it.
|
| That said, When I did finally get Squeak, I found it
| pretty neat, but it just never blew me away like I
| thought it would. I just didn't have anything to do
| _with_ it.
| philipswood wrote:
| Free as in "free beer", but not open source until much,
| much later.
|
| Interestingly enough the JVM hotspot compiler was done by
| Smalltalkers (checkout Strongtalk)
| hota_mazi wrote:
| Java was an answer to C++, not to Smalltalk, which had
| already been dead for a while by the time Java started
| taking off.
| cmrdporcupine wrote:
| It's more accurate to say it hadn't really come alive
| yet.
|
| But still as late as 96, 97, 98 you could still find job
| postings advertising for Smalltalk developers. I know,
| because early-20s me _really_ wanted to do be doing that,
| but I wasn 't qualified.
|
| Within a few years Smalltalk had vanished from the few
| industry pockets it had, and was replaced by Java in most
| cases.
| blacklion wrote:
| Fun fact: I know one company in Russia which built
| aerospace-grade product in Smalltalk as late as 2010s. I
| don't know, maybe they still use it right now, maybe it
| had been replaced, all my friends in this company changed
| job in last 10 years.
| pjmlp wrote:
| I guess maybe because Pharo has moved beyond Smalltalk-80, and
| is its own thing nowadays, just like Raket is no longer just
| Scheme.
| goatlover wrote:
| But the language itself is still Smalltalk with some extra
| classes, right?
| jhgb wrote:
| Kind of. At the very least you get traits, dynamic array
| literals and such that you don't get in "classic"
| Smalltalk.
| xkriva11 wrote:
| Smalltalk is just a simple meta-language (like Lisp and
| Forth). In your system, you may have the same or very
| similar syntax and keep some degree of compatibility but be
| very different in many practical aspects. For example,
| Pharo has Collections API very similar to Smalltalk but
| very different Files API or UI API. It has another class
| building strategy with stateful traits, slots, some syntax
| extensions, different source files format etc.
| vfclists wrote:
| It is mostly marketing bullshit.
|
| Pharo IS Smalltalk in the same way Skoda is Volkswagen
| blooalien wrote:
| I know a buncha literal rocket scientists who swear by
| Smalltalk with a heavy bias toward the Squeak VM as bein' the
| best thing since sliced bread, but I honestly rarely hear about
| it outside those particular circles. Mostly I hear about
| Javascript, .NET/Mono, and Python in other programming language
| circles I frequent.
| mumblemumble wrote:
| Pharo considers itself to be Smalltalk- _inspired_.
|
| Maybe the most succinct explanation of what this means comes
| from their vision document[1]:
|
| > What we want to say is that if there is something that can be
| improved but does not conform the ANSI Smalltalk, we will do it
| anyway.
|
| This really does seem to be a fundamental value within the
| Pharo community, and it distinguishes them from the rest of the
| Smalltalk community. When observing the communities around
| Squeak or the commercial Smalltalks, I often get the impression
| that they view themselves as a sort of Jedi order that's trying
| to preserve an older, better tradition amidst a decadent modern
| world. The Pharo community, by contrast, actively acknowledges
| that Smalltalk was not perfect, and is working hard to improve
| many things about it, including some of the fundamentals. For
| example, Pharo's made active steps to make their platform more
| amenable to source control, and, by extension, collaboration
| among larger groups of people.
|
| [1]:
| https://gforge.inria.fr/frs/download.php/30434/PharoVision.p...
| zabzonk wrote:
| I've noticed that as well - it's a bit strange given that Pharo
| is a fork of Squeak, which does proclaim its ST origins on its
| front page.
|
| I wouldn't say Smalltalk has a bad rep nowadays, but it used to
| be knocked for being too expensive (the cost of ST licences
| back when was beyond a joke), too slow, and producing nasty-
| looking non-native GUIs. These have almost all been fixed.
| codesnik wrote:
| hm, does Pharo have native-looking GUI now?
| xkriva11 wrote:
| see this thread:
| https://news.ycombinator.com/item?id=27843214
| zabzonk wrote:
| Well, let's say "better" :-) There was a Smalltalk with a
| native Windows GUI (Dolphin) but the developers couldn't
| seem to make any money out if it.
| igouy wrote:
| "ParcPlace VisualWorks Smalltalk emulates all the
| supported operating systems GUIs in Smalltalk ...
|
| Digitalk (now ParcPlace) Visual Smalltalk uses more of
| the underlying operating system GUI, for better
| performance but at the price of only supporting a common
| subset of GUI controls ...
|
| IBM Smalltalk maps the Motif GUI widgets onto the
| underlying operating system widgets.This means you get a
| very rich kit to build your GUI, but the widgets operate
| at near native speed. You have the best of both worlds."
|
| p87 "VisualAge for Smalltalk" 1997
|
| http://www.redbooks.ibm.com/redbooks/4instantiations/sg24
| 482...
|
| aka What's the difference between Swing and SWT,
| xkriva11 wrote:
| It has basically two reasons. First, it is to prevent
| conflicts like: "Pharo is Smalltalk, look, it is written on
| its web page! How do dare you to change this? You are allowed
| to improve this if and only if all the other Smalltalk
| implementations do that too!" [exaggerating]. Pharo has many
| differences from standard Smalltalk (different File API,
| class definitions, traits, slots, small grammar changes...).
|
| The second reason is that the general knowledge about
| Smalltalk is very poor, and most people only remember that it
| is something old and long dead. Try to sell a dead fish.
| a2800276 wrote:
| Interesting, thank you. It still seems weird to me, though.
| I feel Smalltalk is mostly mentioned with positive
| connotations (as opposed to, say Cobol) and would guess
| more people have heard of Smalltalk than Pharo and it would
| help orientation. So I was assuming something nefarious :)
|
| Is there an overview of the differences somewhere?
| xkriva11 wrote:
| I sometimes ask young programmers or people interested in
| old computers if they know Smalltalk and what they think
| of it. Try it too, you might be surprised at the results.
|
| I don't know of any such list of differences, and I don't
| think it's of much use either.There is ANSI Smalltalk,
| which is very limited and most implementations go well
| beyond its scope, so you have to compare each
| implementation separately anyway.
| hota_mazi wrote:
| The animated screenshots on the website pretty much indicate
| that the Pharo GUI is still non native and looking very dated
| and ugly.
| xkriva11 wrote:
| Most tools were modified to use Spec framework so they can
| use the native look (using GTK) as well as the non-native
| one. (plus, in future, Web and Console backends). This
| transition should be finished in the next release.
| igouy wrote:
| > cost of ST licences back when was beyond a joke
|
| March 7, 1988
|
| "Smalltalk/V 286 is available now and costs $199.95"
|
| https://books.google.com/books?id=CD8EAAAAMBAJ&pg=PA25&lpg=P.
| ..
|
| > nasty-looking non-native GUIs
|
| The "non-native GUI" was quite important because Smalltalk
| was running on MS-DOS -- not on MS-Windows.
| varjag wrote:
| Well $200 in 1980s is something like $500 today. I don't
| think I own any piece of software costing that much.
| setpatchaddress wrote:
| That seems like an ahistorical objection.
|
| $199 was a very reasonable price for a powerful dev tool
| in 1988. A lot of software at the time cost much, much
| more. Look up historical prices for just about any
| contemporaneous commercial software.
|
| You can still argue they would have done better in the
| long run by marketing themselves as "Turbo Smalltalk" at
| $69.99. But that's a different argument than "wow that's
| way overpriced," which simply wasn't the case.
| igouy wrote:
| "The list price is $150 _each_ for Turbo Pascal, Turbo C,
| and for a bundle containing both Turbo Assembler and
| Turbo Debugger. "
|
| p8 October 1988 https://books.google.com/books?id=WSBVAAA
| AMAAJ&pg=RA18-PA8
|
| Smalltalk/V 286 included source-code debugger, bit mapped
| WIMP for MS-DOS, BitBlt graphics, ... Turbo Pascal +
| debugger already cost more.
| goatlover wrote:
| Adobe products can cost that much on a yearly basis.
| igouy wrote:
| And ... ?
|
| Dec 1988, MS Word 5.0 for MS-DOS, $450.
| xkriva11 wrote:
| It follows Kay's advice:
|
| https://pbs.twimg.com/media/EMJoLicXsAA7dej?format=jpg&name=...
| Zenchess wrote:
| Just a heads up the pharolauncher does not seem to be working for
| me, at least for pharo 9. Manual download of vm + image 64bit
| works but 32 bit does not.
|
| I have been making pharo raylib bindings and plan to make a video
| soon about why Smalltalk is an interesting choice for game
| development, it's a very 'live-coding' feel, i.e. you run your
| game while the editor is still live, you have free reign to at
| any time modify the methods of all game objects, execute random
| code, etc. without restarting the game...
| mark_l_watson wrote:
| Are you on macOS? I installed Pharo 9 yesterday and had to use
| the command line install method. The Pharo Launcher puts images
| and other files in ~/Documents which I find problematic. I
| created a folder ~/Pharo, cc'd to it, and ran the curl command
| line installation option.
|
| I wish that there were a Common Lisp with a Pharo like UI, like
| my old Lisp Machine.
| chazu wrote:
| Raylib is fantastic fun, very much looking forward to seeing
| your progress.
| Tepix wrote:
| Sounds very interesting, i look forward to your video. Where
| will i be able to find it?
| Zenchess wrote:
| I made a new youtube channel where the focus will be on
| Smalltalk game development
|
| https://www.youtube.com/channel/UC9QoB2Ik54E1gEJsBixqJ9A
|
| Alternatively I'll be sure to post it to the pharo discord
| and the smalltalk subreddit
| vanderZwan wrote:
| And you just doubled your number of subscribers (I'm number
| two). Now you _have_ to upload something for us! ;)
| qwerty456127 wrote:
| Please make a very small and simple game (a toy game :-))
| first to help people get the clue before the things go
| complex.
| regularfry wrote:
| (incidentally: it's "free rein" as in horses, not "free reign"
| as in monarchs)
| gavinray wrote:
| What, really?
|
| Welp, I've had that wrong my entire life.
| Zenchess wrote:
| thanks, i've probably been making that mistake for years...
| thinker5555 wrote:
| Not a lesson I was expecting to learn today, but here we are.
| I always thought it was the "reign" version because monarchs
| can "reign freely".
| regularfry wrote:
| Yeah, the more usual wording is " _given_ a free rein ",
| which makes it a little clearer. A monarch isn't _given_
| their reign, it 's theirs by right (well, with a bit of
| hand-waving. Or possibly sword-waving, but not since Henry
| VII).
| rjsw wrote:
| The last English king to try to reign with no constraints
| was Charles I, it didn't end well for him.
| pasc1878 wrote:
| For English kings you forgot William III
| dash2 wrote:
| Actually I think the last king to go into battle at all
| was George II.
| estebanlor wrote:
| there was a problem with the PhL, that took more time to update
| of what we thought. Now it should be working... but please take
| into account that 32bit versions are deprecated (unless you're
| working on ARM)
| zabzonk wrote:
| It (Pharo9 launcher I just downloaded) seems to want to
| launch my Pharo7 installation. Should I uninstall everything
| and try again?
| Ardren wrote:
| Yeah, I'm having trouble with Pharolauncher too on Windows.
| Trying to launch any image (downloaded in launcher, or
| manually) results is an error. e.g. Retry?
| Error downloading 'https://files.pharo.org/get-files/90/pharo-
| vm-Windows-X86_64-stable.zip' Cancel Retry
|
| (The link is a 404, so that's something)
|
| Edit: "Templates: Pharo image (stable)" works (32bit v8)
| radiowave wrote:
| It turns out to be the capital 'X' in X86 that is the
| problem. The same URL but with a lowercase 'x' works fine.
| Presumably someone in the Pharo team need to fix whatever
| image metadata the Pharo launcher is working from.
| badsectoracula wrote:
| A few years ago i was actually considering making a Smalltalk
| "dialect" (which i called Gametalk :-P) just for gamedev - some
| modern engines remind me a lot of Smalltalk in how they work,
| but they obviously stop at the resource editing level. So i
| thought that making the entire thing "live" and in itself would
| be the next obvious step.
|
| (the reason i decided for a dialect is that modern Smalltalks
| carry a _TON_ of baggage they collected over the decades - sure
| the language is tiny but they carry more objects than a
| transatlantic freighter :-P - and i wanted something lean with
| only the stuff i needed)
|
| I never went beyond the prototyping phase but probably will
| pick the project up again if i end up getting annoyed by my
| current language and framework choices :-P.
| pjmlp wrote:
| It is called Objective-C. :)
| mikelevins wrote:
| You might take a look at Cuis as a possible starting point.
| Its goal is to be a lean dialect of Smalltalk.
| badsectoracula wrote:
| Yeah i've seen Cuis at the past, it is certainly a leaner
| Smalltalk compared to Pharo (though TBH i am not a fan of
| Squeak's UI). If nothing else it can serve as inspiration.
|
| Also now that i think about it, Cuis might be a good
| Smalltalk environment for starting out or learning about
| the language in general since i always get the feeling that
| the more feature packed dialects like Pharo are a bit
| intimidating.
| scroot wrote:
| Juan has done some really impressive work on Morphic3,
| which uses a vector graphics engine of his own design.
| He's also pared down Cuis' version of Morphic to its most
| basic elements, so one could change the appearance of the
| UI to whatever, theoretically
| indigochill wrote:
| Someone made a bridge between Pharo and Godot which looks
| pretty interesting. I've not dabbled in it myself yet, but
| they have a doc describing how it works:
| https://gitlab.com/chandler.justin.s/godot-talk-
| VM/-/blob/ma...
| estebanlor wrote:
| it requires an update :)
| Communitivity wrote:
| This looks like an amazing environment and interesting language.
| The first thing I thought of was a version of Croquet [1] using
| Pharo. Another thing it reminds me a bit of is HyperCard.
|
| [1] https://planetcroquet.squeak.org/
| estebanlor wrote:
| Pharo is a pure object-oriented programming language and a
| powerful environment, focused on simplicity and immediate
| feedback.
| melling wrote:
| "Pharo is a ... and immediate feedback."
|
| The key that we should provide more often.
|
| Bret Victor has been discussing for over a decade. Can't find
| them demo that i'm thinking of but here's an introduction into
| Bret
|
| https://youtu.be/ef2jpjTEB5U
|
| https://youtu.be/8pTEmbeENF4
|
| His ideas go beyond "immediate feedback" ...
| publicola1990 wrote:
| Can it build GUIs? What about 2d/ 3d graphics? Does it interface
| with Java things? Databases?
| scroot wrote:
| > Can it build GUIs?
|
| Yes. The GUI framework is called Spec (Spec2, to be specific)
| and supports multiple backends, including GTK.
| xfer wrote:
| It's a single threaded vm like python/nodejs with ffi support.
| So you can expect same things i.e. ipc/network to communicate
| with outside.
| aitchnyu wrote:
| >In Pharo, everything is an object. This purity and uniformity in
| the system and language design makes Pharo clean and comfortable
| to learn.
|
| Does this mean Python and JS meet the same definition and are as
| "clean and comfortable"?
| egeozcan wrote:
| JS is for me clean and comfortable, sometimes more than C# and
| for some others Python is, and everyone has their own answer to
| "what makes them so".
|
| Everything being an object may do the trick for you or not. I
| don't mind a marketing page (even for a programming language)
| being opinionated, as long as not borderline delusional.
| goatlover wrote:
| Unlike most OOP languages, it's true, and not just marketing,
| for Smalltalk to make the claim that everything is in an
| object.
| egeozcan wrote:
| I was not talking about everything being an object. I was
| talking about that claim being the key to being nice and
| comfortable.
|
| Many sibling comments, IMHO, miss the point of the parent
| and focus on the claim about python and js.
|
| Python and js could perhaps have been completely object
| based. It still wouldn't make them comfortable for many.
| goatlover wrote:
| True, but personally I think JS and Python would have
| benefitted from being more consistent about being object
| based. JS in particular, since it's prototypal, but has
| function constructors and class syntax, along with other
| things added over time that make the language more
| complex.
| xkriva11 wrote:
| The sentence says that it makes Pharo clean and
| comfortable to learn. Not that it makes every language
| clean and comfortable to learn :-)
| egeozcan wrote:
| Yes and the comment I replied to vaguely suggested that
| it didn't make python and js comfortable to learn and
| everyone focused on the fact that in these languages not
| everything is an object.
| JamesSwift wrote:
| When Pharo says 'everything' they mean _everything_.
| ssdspoimdsjvv wrote:
| Python comes close, but what makes Smalltalk special is that
| flow control and loops are done with objects. There are almost
| no keywords.
|
| Imagine that you could do something like this in JavaScript:
|
| (name === "Mike").ifTrue(() => console.log("Hi Mike");
|
| The implementation of this is done through a Boolean class,
| which has two subclasses, True and False.
|
| True implements the ifTrue(fn) by invoking "fn", False simply
| returns.
|
| The main advantage is that everything is predictable and
| inspectable.
| TenToedTony wrote:
| Primitives in javascript are not objects.
| jhgb wrote:
| > Does this mean Python and JS meet the same definition and are
| as "clean and comfortable"?
|
| Are things like message sends or activation records accessible
| and manipulable as objects in Python and JS?
| billsix wrote:
| I remember while learning Smalltalk how surprised I was when if
| statements and loops weren't syntax of the language, but
| methods on objects. True and False are singletons of a Boolean
| class, which has a method ifTrue:ifFalse which take lambdas as
| arguments. For loops, a lambda which returns True or False has
| a method whileTrue: which takes a lambda as an argument.
|
| Although I like Python, and I don't know JS well, I really
| enjoyed learning Smalltalk, even though I will likely never use
| it professionally.
| goatlover wrote:
| Ruby comes closer than Python or JS with it's blocks and
| consistent object model (including primitives).
| gavinray wrote:
| I've often heard two statements online from older programmers.
| "Delphi/TurboPascal was the peak of developer productivity"
|
| And "Smalltalk was the peak of developer
| productivity"
|
| I've only been programming about a decade so both of those
| languages were long before my time.
|
| Can anyone who has experience programming in Smalltalk share what
| was so special about it/what made it so productive to write
| programs in versus other languages?
|
| It seems like this unique playground-VM thing makes it sort of
| unwieldy for non-graphical tools. IE can you use it for scripting
| tasks system, or for writing networked applications?
|
| There must be something unique about Smalltalk for so many of
| it's developers to reminisce about it and claim it's been
| unparalleled since.
| chillpenguin wrote:
| I haven't used it much myself, but I've watched a lot of Alan
| Kay videos and I've read his "Early History of Smalltalk" which
| I highly recommend. My take is that it is largely about
| creating a computing system from the smallest yet most
| fundamental/powerful building blocks. In smalltalk, "everything
| is an object", which means everything has the semantics of a
| "whole computer". These computers are networked together and
| can send/receive messages back and forth with each other. This
| creates a drastically different paradigm than simply creating a
| pipeline of functions to send data through (for example). It
| excels at modeling complex systems, it's really "OOP done
| right".
|
| Of course there are other interesting features worth talking
| about, such as "images" and the introspection capabilities.
| Which are both great and often sorely missed in todays systems.
| But I think the big idea is to try to understand what Kay had
| in mind with OOP.
|
| Another aspect of smalltalk that is important, beyond just the
| "language" is to recognize its role in advancing "personal
| computing". Smalltalk was essentially an operating system that
| empowered the user to create new media and tinker with the
| system.
|
| If you want to see a modern web-browser based smalltalk-like
| system that uses javascript, check out Dan Ingalls' Lively Web.
| That will give you an idea into how smalltalk systems were
| meant to be used, in terms of "personal computing".
| AceJohnny2 wrote:
| It's a very noisy datapoint, but compare performance VW
| Smalltalk to NodeJS:
|
| https://benchmarksgame-team.pages.debian.net/benchmarksgame/...
|
| VW Smalltalk is between 2x and 27x times _slower_ than
| Javascript.
|
| And Pharo is slower yet than VW Smalltalk:
|
| https://benchmarksgame-team.pages.debian.net/benchmarksgame/...
|
| Nevertheless, as the front page the the Benchmarks Game is
| careful to mention, benchmark performance is 1) not necessarily
| representative of real-world performance and 2) not even always
| important in the greater context!
|
| Still, it's sad that Smalltalk & company haven't received the
| VM optimization attention that JS has. What would our world
| look like if Brendan Eich had gone for Smalltalk instead of
| creating a language from scratch?
| jhgb wrote:
| > Still, it's sad that Smalltalk & company haven't received
| the VM optimization attention that JS has.
|
| Well...if you consider that the heritage of V8 in Node.js
| kind of goes back to StrongTalk, I'd say Smalltalk has
| received more of it than perhaps many people think.
| Unfortunately StrongTalk didn't really succeed on the market
| for the same reasons as many other Smalltalk implementations
| - proprietary nature and exclusivity doesn't really help you
| in the long run against worse-but-cheaper-and-more-accessible
| solutions.
| Qem wrote:
| Those benchmarks are quite old, from Pharo 5 in 2017. It
| would be interesting to see a updated version. Eliot Miranda
| and Clement Bera are working on speculative inlining for the
| JIT compiler. From http://www.mirandabanda.org/cogblog/about-
| cog/ - "With Clement Bera I'm working on adaptive
| optimisation (a.k.a. speculative inlining) at the image
| level, optimising from bytecode to bytecode. We call this
| project Sista, which stands for Speculative Inlining
| Smalltalk Architecture. Clement's image-level (entirely in
| Smalltalk above the virtual machine) adaptive optimizer is
| called Scorch. Sista should offer about a -66% speed-up (3x)
| for conventional Smalltalk code. The combination of Spur and
| Sista should yield almost a 5x speedup over the original
| Cog."
| nsm wrote:
| I wrote a post about this as someone who only discovered it in
| 2020 - https://nikhilism.com/post/2021/experiencing-smalltalk/
| Qem wrote:
| It's better shown than told. Just see this: 7 minutes of Pharo
| Smalltalk for Rubyists -
| https://www.youtube.com/watch?v=HOuZyOKa91o
| gavinray wrote:
| I watched the whole video, thank you for sharing!
|
| The bit towards the end (around 5 min mark I believe) where
| he gives the IDE (is that what you call it?) an input +
| desired output and asks it what message would produce the
| result he wants is pretty damn cool.
|
| The rest of it is "interesting" I suppose. I can imagine
| that, at the time, this sort of interactive/live visual
| environment was revolutionary. This would be 1972-1990's I
| think, and during those early years there was nothing even
| remotely similar, right?
|
| Towards the end Rapid Application Development (RAD) IDE's
| would start taking hold and then came the Pascal-powered
| heydays for a bit.
|
| I think that maybe just due to familiarity bias, I still
| prefer a text-based IDE which has hot-reloading and live eval
| results.
|
| Something pretty neat I use personally is an extension called
| "Quokka" which places the results of each line next to them,
| live as you edit (similar to a REPL)
|
| https://quokkajs.com/
|
| Jetbrains IDE's have a similar thing with "Worksheets" for
| languages like Kotlin, Python, Scala, and likely a few
| others. (Also "Metals" extension in VS Code can do this for
| Scala incredibly well)
| mcguire wrote:
| Speaking as someone who had experience programming in Smalltalk
| in its heyday, it had at least as many downsides as upsides and
| those who claim it was a peak are either looking at it through
| rose-tinted nostalgia or are Alan Kay.
|
| One favorite advantage was that as much as possible of the
| system was written in itself and the development environment
| was an integral component. Any developer could see and change
| anything. The approach was that you took the Smalltalk system
| and built your application as an extension onto it.
| "Playground-VM" is a pretty good description.
|
| Unwieldy? Not if you bought into it entirely, in roughly the
| same way that certain people I know bought into Emacs: Use it
| as your login shell and do everything through it. It was bad
| for creating stand-alone programs or scripts; instead, you add
| objects and methods to do whatever you wanted to do today.
| adius wrote:
| And 10 years later still no proper support for retina displays. I
| really think you should get your priorities straight.
| mark_l_watson wrote:
| Pharo handles the Retina display on my new MacBook Pro just
| fine.
| tinus_hn wrote:
| It could be the priorities of these unpaid volunteers that you
| are not paying for do not align with yours. I'm sure they would
| invite you to contribute your improvements.
| Jenk wrote:
| > I really think you should get your priorities straight.
|
| The irony.
| floatboth wrote:
| There is a GTK3 backend now, hopefully that should make HiDPI
| work, support Wayland, etc. - depending on how it's implemented
| of course.
|
| Doesn't look like it's ready to handle all the UI (?) though -
| in the promo screenshot there's one GTK window on top of a more
| classic Pharo window (?)
| estebanlor wrote:
| it doesn't yet support the whole IDE (because it has some
| other complications, we will solve in next release), but it
| supports application development with it.
| floatboth wrote:
| Cool. How does it work, is it 100% native widgets? Are
| there any platform specific (x11 etc.) things used?
| estebanlor wrote:
| it works everywhere gtk3 works (we have production
| applications in windows, macOS and obviously linux)
| krageon wrote:
| Retina displays don't matter because the majority of your users
| don't have them. Problem solved :)
| ale42 wrote:
| Actually they do. A relatively cheap 13" laptop with a Full-
| HD screen is already considered HighDPI by Windows 10, where
| it uses a default of 125% scaling (or maybe 150%, not sure).
| Applications not supporting HighDPI (aka Retina) properly
| will likely have a relatively bad appearance (blurry icons,
| possibly blurry fonts, etc.). Even some integrated Windows
| features (hardware manager, to name one) have this problem...
| :-(
| regularfry wrote:
| Blurry is one thing, I get _teeny tiny_ mouse cursors too
| that I just can 't find half the time. Incredibly annoying,
| especially when it's inconsistent within the same
| application.
| frou_dh wrote:
| Surely most decent laptops being sold are HiDPI at this
| point?
| krageon wrote:
| Not as far as I'm aware, no.
| Tepix wrote:
| There isn't a proper definition for HiDPI. Displays used to
| be around 100ppi. Nowdays, the majority of notebooks - even
| cheap ones - feature a FullHD display. For example when i
| list all notebooks on gh.de and limit the maximum price to
| 600EUR of the 599 listed laptops 389 of them have a pixel
| density of 150ppi or higher.
|
| For a price up to 500EUR it lists 306 laptops with 176
| having 150+ppi.
| qwerty456127 wrote:
| But not real HiDPI. AFAIK Windows 10 just treats FullHD
| (1080p) as HiDPI and scales everything up to 125% by
| default but I always switch it back to 100% so I have
| reasonable screen space capacity. If the 13-inch displays
| were 4K that would be HiDPI.
| frou_dh wrote:
| Traditional (~110 DPI, what Windows and MacOS were
| designed for) 13" resolution is 1280 or 1366. So 200%
| that is merely 2560+
| Tepix wrote:
| Traditionally we had 85-100ppi monitors for example
|
| * 15 inches 1024x768 (85ppi)
|
| * 17 inches 1280x1024 (96ppi)
|
| * 19 inches 1400x1050 (92ppi)
|
| I'd argue that everything that is beyond ~140ppi needs
| adjustments in software and could be considered HiDPI.
| You could also argue that 200% scaling should be the
| threshold, if we're starting with 85ppi that would be
| 170ppi.
|
| It also depends on the viewer distance of course. Larger
| displays are usually viewed from a bigger distance.
| qwerty456127 wrote:
| Yes, for bigger distances this makes a lot of sense.
|
| I want everything be as small as possible to fit more
| when I'm using my laptop but I would really appreciate
| decent unscaling on my RaspberryPi i use siting on the
| couch in about 3 meters from a 42-inch 1080p panel.
| qwerty456127 wrote:
| Ok, if it would be 2560 vertically on a 13" screen that's
| fair to consider it HiDPI but for 1280p on 15" this is
| questionable yet Windows does just this.I understand this
| is good for the vendors (who can claim they are selling
| you HiDPI - FullHD doesn't sound impressive enough
| anymore) and visually impaired people (that's actually
| great they are treated as the primary audience now).
| Perhaps this also is good as some sort of transition
| period so the technology gets introduced gradually while
| the screens still are not too dense and non-aware apps
| don't just become unusable instantly.
| frou_dh wrote:
| We're talking horizontal resolution. No need for "p"
| obfuscation from the TV world!
| qwerty456127 wrote:
| Ok, I thought we were talking about vertical an included
| the p specifically to disambiguate this. Practically
| 1080p just means 1920x1080 unambiguously (I know what
| does the p actually mean).
| frou_dh wrote:
| It doesn't help that some laptops are 16:9 and some 16:10
| so the vertical numbers get even more mushy.
|
| Anyway, my point was that even though "4K" as a concept
| has good mindshare, that's overkill even for a True
| Retina(tm) experience in the typical OSes on a 13".
| Around 100 DPI is what those UIs were foundationally
| designed for (starting in the 1990s) and all numbers
| unfold from that decision.
| rbanffy wrote:
| It all depends on who the user will be. Will it be a
| developer or will it be someone with a work laptop that has
| an 1366x768 screen?
| spinningslate wrote:
| I'm sure they'd welcome your PR.
|
| Snarky? No. It's open source. If it doesn't have feature <X>
| then you're free to add it. It can simultaneously be the most
| important feature for you, and entirely irrelevant to other
| contributors. You're not prevented from adding it, as you would
| be in a closed source product.
|
| I'm sure you know all that but it bears refreshing. This is
| software that's free to use and free to modify. If you've an
| itch then you're at liberty to scratch it - just as other
| contributors are equally at liberty not to.
| svc wrote:
| Congrats !
| xkriva11 wrote:
| This is a long list of rare features that make Pharo interesting:
|
| https://pharo.org/features
| the-dude wrote:
| What is also rare is the quality of the site. Impressive.
| lghh wrote:
| Unless you're on mobile...
| the-dude wrote:
| Perhaps, I don't do mobile.
|
| I wasn't commenting on the layout, I meant the description
| of the features, the animations and 'balloons'.
|
| One of the most polished presentations of features I've
| seen on any OSS project.
| 101011 wrote:
| Don't do mobile?
| [deleted]
| the-dude wrote:
| I only compute at the (home) office.
| FpUser wrote:
| For people who are actively using their smartphones for
| many tasks. They're in majority I guess.
|
| I personally use smartphone as a phone, off-line GPS,
| camera (when I happen to not carry dedicated one) and to
| control various gismos like drones.
|
| I do not use it for reading, viewing websites, computing,
| etc.
| Santosh83 wrote:
| What about music and videos/films?
|
| I admit carrying a separate e-ink device is too much of a
| hassle, so I read books on the smartphone when am not at
| the PC.
| FpUser wrote:
| It depends one's lifestyle. I have my own company and
| work from home for 20 years already. So the PCs with the
| big 4K screens are always around. When I go to my
| summer's office it is the same thing. So I read/watch
| videos from the PC.
|
| Yes there were few situations when I knew I'd sit in a
| car and wait for someone for quite a while. So I
| downloaded book on laptop and read it. I tried reading
| from a smartphone but my brain simply can not digest
| properly from this size of a screen. When I read I follow
| the line but I also glance at the whole page. Not sure
| why but this is how it works for me.
| Zababa wrote:
| I don't know if it's my eyesight declining but that postcard is
| hard to read. Wikipedia has a svg file with higher resolutions:
| https://en.wikipedia.org/wiki/File:Pharo_syntax_postcard.svg
| opan wrote:
| Well, the light gray on white background has horrible
| contrast. I think that'd give most people trouble.
| asah wrote:
| AFAICT the big benefit of Pharo is on-the-fly introspection and
| the tooling to support dynamic introspection.
|
| quick q: I can see the benefit for creating developer tools
| like the IDE and maybe for creating domain specific languages
| (DSLs)... but what "regular" applications benefit from this?
|
| in particular, I can see (widespread use of...) introspection
| making it difficult for a developer of one large Pharo codebase
| to understand and maintain a different Pharo codebase...
|
| also, Python has (arguably) "good enough" introspection and DSL
| support and mindshare/marketshare of millions of developers.
| When is python not good enough?
|
| (asking innocently - please don't shoot)
| oneplane wrote:
| There are a lot of cases where good enough is actually good
| enough. Python, Java, C#, Go, TypeScript, they are not 'pure
| enough' to 'too OOP' for some, but at the end of they day,
| they are good enough to realise the potential that the
| business process they support requires.
| blihp wrote:
| Nothing rare about most of these features as they came from
| Squeak. What's really rare is how slimy they're being in at
| least implying most of these features are unique to Pharo in
| their marketing of it. There is not a single mention of Squeak
| or Smalltalk, which their project is derived from[1], on the
| page. It's unfortunate as they have put a lot of effort in
| expanding on the previous work and created a nice UI to make
| the environment more productive and accessible which they can
| legitimately take credit for.
|
| [1] I don't mean 'inspired by', they literally started off with
| a fork of the code of both the VM and image. This is perfectly
| legit per the license, but it's hardly a completely original
| work.
| Gormisdomai wrote:
| [edit - the link below now loads, very cool to see all the
| companies involved, especially given Pharo crops up here every
| few months]
|
| I'd be curious about who, if anyone, funds Pharo development -
| especially if there are any medium-large companies backing it's
| development.
|
| I found this link to the Pharo "consortium" but it's not loading
| for me https://consortium.pharo.org/
| [deleted]
| estebanlor wrote:
| weird, it loads correctly for me. Yes, a bunch of companies
| (some of them very important in their fields) are backing
| Pharo... but Pharo is a community effort, made by hundreds of
| people.
| Gormisdomai wrote:
| Loads for me now too. Wow, that is indeed an impressive list!
|
| And yes, definitely don't want to detract from the community
| effort, the huge list of individual contributors is
| impressive in itself.
| dvfjsdhgfv wrote:
| Thank you very much for explaining what Pharo is in one sentence
| on the linked page. Seriously, other projects and submissions
| should take notice because the general attitude is as if
| everybody knew exactly what your project is and what can be used
| for.
| estebanlor wrote:
| truth to be told, we learned that the hard way ;) but we
| learned! :P
| boomboomsubban wrote:
| Similarly, they gain points for including a screenshot, but
| then lose those points for the bizarre photo-like cropping and
| skewing.
| blacklion wrote:
| I wonder, how hard is it to bootstrap Pharo on new platform...
| ilaksh wrote:
| Awesome. Seems like it can't find the Windows VM files though.
| liminal wrote:
| Are there any perceived shortcomings of Smalltalk that caused it
| not to take hold?
| crdrost wrote:
| So, Smalltalk is radically different from other programming
| languages, and has a very different vision for what it means to
| program.
|
| Imagine that you download the binary for the programming
| language, and then you don't know what to do with it so you
| double click it or try to execute it from the shell, and you
| are very surprised to see a window open up, showing something
| looking like a blank desktop.
|
| What is this? You go off to read some tutorials, they show you
| some ways to click inside the window and so forth.
|
| It slowly dawns on you: _this is your program._ It is running
| as we speak. You are livecoding it, those button clicks are
| mutating it to do new things. The reason it 's not doing
| anything is you haven't written it yet, and it's inviting you
| to, and when you do it'll recompile and show you the new thing
| instantly.
|
| So your programming languages have always been designed like a
| circuit board or a 3D printing rig. Lots of files of
| blueprints, and then the robots will assemble it for you.
| Smalltalk is different, the mental model is more like clay or
| Lego, the thing is already built and running in front of you,
| what are you going to mold it into being?
|
| This different vision means that usually you are editing text
| not from vim or emacs or VS Code, but from the editing widgets
| inside of the programming language. Those are part of the clay,
| and are editable too. Similarly, Smalltalk version control was
| typically exposed inside of the running system rather than
| outside.
|
| My favorite example of this, the thing that is maybe the most
| outrageous if you're in a normal programming language, is
| Object.become().
|
| This is a runtime dependency injector. "I want to instruct the
| programming language to take all of the traffic that it was
| sending to that object, and send it to me instead. I will
| become that object." If you are used to Java where my
| constructor instantiates some dependency object and I save it
| to a private variable in this object, surely you see this as a
| safety violation. "What do you mean, that anybody who gets a
| reference to this object can tear it out of my private property
| and replace it with some other subclass? I made it private so I
| could control when that field gets set! How dare you?" It's
| not, of course.
|
| And this is available for every object in the system, which is
| why you can do this modeling by clay. They tried to write as
| much of Smalltalk as possible in Smalltalk and so you can just
| see the source code of the programming language in the source
| code browsers that you can call up from this window, and you
| can live edit any of that, and Smalltalk will compile your new
| object and swap it into where the built-in object was.
|
| Put a different way, it's not a safety violation because this
| is how modern development with microservices and kubernetes
| actually works. Security is people's ability to surprise you,
| measured in dollars: part of this definition is, Smalltalk
| developers are not surprised by their ability to do this. Every
| "object" is thought of as a separate server with an API, and of
| course I will replace old servers with new ones and tell the
| load balancer to send traffic my way.
| igouy wrote:
| There were "perceived shortcomings" although Smalltalk use
| seems to have grown in the decade following.
|
| IBM taught "object-oriented software technology to experienced
| procedural programmers" and studied that experience -- 'We read
| and heard many stories about confident and experienced
| programmers' plunging into self-study tutorials, only to give
| up in frustration after several hours, still wondering, "Where
| is the application code?" ... New programmers often became lost
| in the hierarchy or spent considerable time in unfocused
| exploration of the interactive tools.'
|
| https://mitpress.mit.edu/books/making-use
|
| Technical shortcomings, September 1988 -- "... currently
| unrealistic to expect that an excellent rapid prototyping
| system can also be an excellent application delivery system."
|
| https://static.miraheze.org/triplescriptswiki/4/49/Wirfs-Bro...
|
| "Smalltalk, C++ knock heads. Computerworld 29, 45 (Nov. 6,
| 1995)
|
| https://books.google.com/books?id=oKDIlxbMaS4C&pg=PA153
| xkriva11 wrote:
| To really take advantage of its strengths, one needs to adopt
| to a completely new IDE and way of working, which puts a lot of
| people off.
|
| On the other hand, if it were adopted to behave like all other
| environments, there would be objections again, "It's exactly
| the same as what I'm using now. So why switch?"
|
| It should be added that Pharo addressed most of the small
| problems that the original Smalltalk had.
| igouy wrote:
| Most of the small problems but not the big problems ? :-)
| xkriva11 wrote:
| :-)
| jhoechtl wrote:
| Purely object oriented languages did fall out of fashion lately.
| While the environment looks sophisticated, I have the feeling I
| would bet on a limping horse?
| FpUser wrote:
| Personally I do not give a flying hoot about fashion. The only
| thing that matters to me is how one particular tool helps me to
| make what I want. I've never "bet" on any tech. To me those are
| just tools. Nothing to get excited about.
|
| Not trying to rate any particular language here.
| rendall wrote:
| I think OO has fallen out of fashion because there's a
| perception it can more easily lead to confusing code. While
| one can write confusing code using FP, it's not as easy to
| do.
| FpUser wrote:
| I really do not care why is something in fashion / not.
| There are many software paradigms and one simply has to
| know which one is the best for particular situation. Trying
| to bring everything down to a "there can be only one" level
| is not very wise. Unfortunately for some reasons many
| programmers get really religious about language / framework
| / paradigm / whatever.
|
| Also writing confusing code is incredibly easy in any
| language / paradigm. One just has to be inexperienced
| thinker.
| unnouinceput wrote:
| What's FP?
| grzm wrote:
| Functional programming
| pjmlp wrote:
| Yet all major GUI frameworks are OO, even component based
| ones if one would actually bother to read OO CS literature,
| before announcing them as some magic solution.
| agumonkey wrote:
| Kudos, it's a great system from the few I played with.
| bGmSIDoSwMB wrote:
| > Kudos, it's a great system from the few I played with.
| chazu wrote:
| This is really exciting - congratulations to the team and all the
| contributors.
|
| For those who already know "what smalltalk is all about" but are
| looking to get into Pharo and get something done, I recommend
| Pharo by Example and Deep into Pharo - between those two books,
| any developer should be able to figure out the workflows Pharo
| expects you to employ to be productive.
|
| My only advice would be to go in without preconceived notions
| based on your years of using other languages. And the community
| is super helpful.
| moron4hire wrote:
| > My only advice would be to go in without preconceived notions
| based on your years of using other languages. And the community
| is super helpful.
|
| Honestly, if more people went into every language with that
| mindset, there'd be a lot less bickering and problem a lot more
| getting done in the world.
| TrevorJ wrote:
| It's a tall order. My observation with people with mastery,
| who switch to a new tool, is that usually: A- something
| external has forced the change, in which case it's hard for
| them to be patient/charitable. or B- they like their current
| tool, but have some ultra _specific_ complaints that they
| hope the new tool will address whilst leaving the rest
| intact.
|
| Basically, the common circumstances around these things leads
| to some biases.
|
| I think one way to address this, is to simply be aware of
| ourselves. Another would be to ensure people use a large
| variety of tools early on in their education/career. The
| meta-skill of navigating to a new tool is something we get
| better at with practice.
| thirsteh wrote:
| Great talk by deech on Pharo:
| https://www.youtube.com/watch?v=baxtyeFVn3w
___________________________________________________________________
(page generated 2021-07-15 23:01 UTC)