9 ms·
I got curious, downloaded and installed it on my computer. Checked the docs, and the next step was to download a stable image. Downloaded 11 (stable) and starte
by jventura 3y ago
I got curious, downloaded and installed it on my computer. Checked the docs, and the next step was to download a stable image. Downloaded 11 (stable) and started it. Then blank stare to screen! What should I do? Lots of things to click on, and no text editor..
Searched for a tutorial on the website, and found nothing! I don't want to spend 30 minutes to look at some random videos of Virtual Reality in Thames or whatever, or read "Pharo for Rubyists" (I use mostly Python). I just wanted to explore a bit, and maybe if it seemed interesting, tomorrow I would continue exploring it. But now I've deleted Pharo!
Warning to other project maintainers: just show a tutorial, or an hands-on doc, so that newcomers may get a feeling of what it is. This is especially important for relatively unknown projects like this.
Some projects that have done it right:
- https://www.djangoproject.com/start/
- https://go.dev/ (Search for Try Go in the main page)
- https://www.python.org/ (Carrousel showing some aspects of the language)
- https://play.rust-lang.org/?version=stable&mode=debug&edition=2021
- others I can't remember now..
- jdthedisciple 3y agoWhy does this seem so common in niche projects like this one? I often see GitHub repos that seem very interesting and even quite liked but as a newcomer you're just supposed to figure everything out blindly by yourself. P.S: Thanks for saving me the time to download and try out Pharo.
- wslh 3y agoYes, it should be called "Onboarding UX" and nowadays , it it fails, make someone forget completely about that piece of software until there is another emotional event such as browsing it in HN and have feedback from a friend.
- capableweb 3y agoBecause lots of software released as FOSS is not made to attract people to start using it without spending at least some time reading and understanding it. Lots of FOSS is written that way, especially corporate PR FOSS, where engagement and other things are important, because otherwise the cost/value calculation doesn't work out yadda yadda. But lots of other FOSS is released just because someone wrote something, and then just put it out for others to use, if they're curious. They don't owe you anything, and spending time working on the onboarding UX, tutorials or guides might detract from what they wanted to do: entertain themselves solving a problem they care about.
- gjvc 3y agoP.S: Thanks for saving me the time to download and try out Pharo Unnecessarily snarky
- jdthedisciple 3y agoNot meant personally, but sure my apologies.
- gjvc 3y agoSame vibe.
- kragen 3y agowhy should people spend their time trying to convince you of the value of their project? they already know if it's valuable; why should they be interested in your opinion? if it's a commercial product, they might get your money, but most projects on github aren't
- igouy 3y agoGiven the prominent "What is Pharo?" it seems that the developers are spending their time trying to convince others of Pharo's value. And that worked "got curious, downloaded and installed it" but then hit a bug "Lots of things to click on, and no text editor". We can see that they are trying to explore using the knowledge they already have, as we might expect.
- jdthedisciple 3y agoI mean sure, I have nothing to say against that. I'd just think if you write something like a programming language of all things you'd want others to use it and have a pleasant experience getting started.
- noizejoy 3y ago> I'd just think if you write something like a programming language of all things you'd want others to use it and have a pleasant experience getting started. You might be surprised how many different nuances exist in what motivates humans. I have even avoided to share code in public repositories, because I didn’t want to be bothered by feedback like yours, because I didn’t bring the documentation up to a level that someone farther away from my little niche need and use case can understand it. While such feedback isn’t going to kill me, it’s nonetheless one of a million tiny little cuts that my life is more pleasant without.
- IshKebab 3y agoBecause they want other people to use it obviously. Why share it with the world at all if that's not the case?
- 3y ago
- zabzonk 3y agopharo, like other smalltalks, doesn't really have much of a text editor - that's not how you write smalltalk code. instead, you use the browser, which has a text pane, to change/add things to classes (or indeed to objects). you have to think a bit different. and how do you expect to learn anything if you won't read or watch a tutorial?
- jventura 3y ago> how do you expect to learn anything if you won't read or watch a tutorial? I wanted to follow a tutorial (or another guide) to learn about Pharo, but couldn't find any, at least in the official docs. That's the point I'm making!
- capableweb 3y agoDid you download "Pharo Launcher" from https://pharo.org/download https://pharo.org/download ? Smalltalk in general is about a fully integrated environment, so everything lives inside of the environment, including applications, docs and also the tutorial. Once you launched the Launcher, you create a image (latest stable, official distribution), launch the image, press the "Next" button until you see "You can learn Pharo by clicking on the following expression:" which launches the tutorial. That's about it. And I did that the first time just now, without having any experience doing so in the past, or knowing 100% where to go. Everything was easily guessable. But I did know since before what a Smalltalk environment usually looks like, even though I haven't used Pharo specifically before for this.
- jacquesm 3y agoThink 'emacs' not 'C'. Smalltalk based systems are compete runtimes, a tutorial for Pharo is here: https://ceronio.net/2017/07/first-steps-with-pharo-smalltalk/ https://ceronio.net/2017/07/first-steps-with-pharo-smalltalk...
- crdrost 3y agoThat is a fair criticism! It is partially (maybe 20%) mitigated by the fact that this is a different lineage of computing and so you were going to hit a huge wall somewhere and when you got it here you reached out to the community and found folks like me to help you. But 80% of the point definitely still stands, this is a big change and there is not much documentation for you. In this lineage of computing, you do not edit text files and then run a compiler and then run your tests and then cross your fingers and ship to prod. That is, if you like, the “Frankenstein” approach, you cobble together dead body parts into a chunk of dead code and then reanimate it with a lightning bolt. And it has eaten the world so uh can't really bash it. But another lineage is preserved in spreadsheets and smalltalks, where that general outlook is considered a little barbaric and you want to instead be surrounded by your living, breathing program, with everything available to inspect and tinker with and test and replace. You run the image and you are launched into your running program. Yeah it doesn't do anything yet, because you haven't told it what to do... but here you are, ready to mold and model the compute like clay into whatever your imagination desires. The first few pots you throw, you're lucky if they don't collapse on you. My standard example of the mentality difference is Object.become. Imagine I tell the standard Java developer, “we search through all of memory, find all private and public variables pointing to that object, and instead point them to this object...” They will look at you like you are nuts! But that’s essentially the underlying functionality needed for “you can edit the method and the entire system will start using your new method.” So things like versioning and inspecting and editing are generally baked into the image rather than external tools because you want to be able to debug and undo your changes in vivo ... There is going to be an impedance mismatch, and the community can certainly make it easier on you for sure but there is going to be a lot of unlearning no matter what.
- madmulita 3y agohttp://books.pharo.org/ http://books.pharo.org/
- estebanlor 3y agoyou see a welcome wizard when you open it. it has pages, as the arrow show clearly (maybe this is not understood?)... and the 3rd page is literally a pointer to resources to learn pharo (including a small tutorial called ProfStef and an online MOOC).
- AllegedAlec 3y agoThe Pharo Launcher has an in IDE tutorial window that opens when you first open the image . Apart from links to documents it also contains an interactive in-development environment teaching you the basics. One of the images is the Pharo MOOC. The website has links to several documents to get you started. No offense but you kind of have to look around it to not find the ways in which the Pharo team attemps to get you underway.
- IshKebab 3y agoIn my experience if you think you've made something clear but people still don't see it, it's because you didn't really make it clear. There's no use blaming users for not looking hard enough even if you think it is really obvious.
- igouy 3y agoAs-in meet people where they are.
- deleted 3y ago[deleted]
- pianoben 3y agoMost people have Expectations about the way things work - code in a text editor, write tests, run them. Check code into Github. Go to a website to find documentation. Pharo defies all of those conventions (well, maybe not Github, but even that is unusual). People just aren't accustomed to in-IDE tutorials. It doesn't even occur to people that such things might exist. It's hard to notice that which you never even imagined possible.
- rbanffy 3y agoOne of the most frequent criticisms of Smalltalk is that it doesn't play well with others. It's an IDE, but it's also a runtime, and, in a sense, a whole OS, with its own programs and development tools, in a virtual machine (running on your computer or, in ancient times, on bare metal). It IS alien to those who come from text editors and IDEs. OTOH, it makes our usual development environments look crude in comparison. In fact, Smalltalk 80 still has that effect.
- deleted 3y ago[deleted]
- deleted 3y ago[deleted]
- mock-possum 3y agoYeah I did the same the other night - same experience. It’s like releasing a modern game and expecting players to read the manual to learn how to play. We know how to effectively teach users to use - there’s an entire field of study devoted to usability and accessibility. I don’t have time to waste on something that ignores the last 40 years of progress in that realm.
- capableweb 3y agoWhat's to say they have "something" to waste on making a foolproof way of getting started for people who aren't even curious? They're not selling a product here, they're releasing software they've written in their own spare time. If you can't spare 30 minutes for running through the tutorial, why should they spend more time catering to you rather than spending it on more interesting problems?
- klibertp 3y ago> why should they spend more time catering to you rather than spending it on more interesting problems? Of course, if you're content with your community stagnating and nobody ever using that software, then there's really no reason to put that effort in. I remember similar arguments about Linux installers. Why should they cater to people who don't even know fdisk? We have kernel to work on, UX of an installer - with obvious, immediate impact on adoption and getting new users - is boring in comparison. Having installed Fedora last week I can attest that this line of thinking, fortunately, went away in Linux as far as installers go. The chances of it going away in the Pharo community, however, are slim at best.
- mock-possum 3y agoSure - but it's also being touted as something special that's worth paying attention to for programmers. Like - when I first learned about Smalltalk, and looked at the syntax, I wanted to try it out right away! Playing with that realm of object oriented programming looks like fun! But jumping through hoops to make it work is not fun - the process of just setting things up and trying to pick through the whole alien interface completely evaporated my enthusiasm. It quickly became clear to me that you can't 'just sit down and write code' the way you can with basically any other modern language I've worked with. You have to do a bunch of other stuff first. And I don't want to do that. You can open a web browser, hit F12, and immediately start writing javascript and running it. You can use notepad to make an .htm file, drag it into the browser, and boom it's a web page. If you're on a device that makes task switching awkward, you can navigate straight to codepen.io, no sweat. You know what I mean? Immediacy is an essential quality, for me - obscurity, esotericism, inaccessibility and poor usability are all banes of my existence. It's like sure, I can do anything I put my mind to - I can spend the next hour, the next day, the next week, month, year, decade, learning to do this thing... but that's time I'll never get back, and that's time I could be spending more efficiently stepping into something else, equally exciting and different and new and interesting, with significantly less barrier to entry. If you care about your work, and your goal is to expose others to it, then you need to put the work into making it accessible. That's been my experience.
- alex_smart 3y agoPharo by Example is a good book to start with.
- tvink 3y agoNot really, it assumes smalltalk knowledge.
- whartung 3y agoBecause Pharo is an environment and tool designed and built by those who want to build Pharo. While there are certainly folks doing other things in it, the Pharo project focuses on the problems of improving the Pharo project to make it easier to develop Pharo. As with many OSS projects, the developers are there to scratch their itches, which is Pharo, not just random programming projects. You'd like to think that these goals, improving the development experience, would be generic enough to "lift all boats". I mean, they do solve a lot of issues with Smalltalk distributed development, distribution, source code control, etc. But, to be honest, those are all advanced cases and, while part of the development experience, don't do much to attract developers who are doing distribute "IDE" development. I've tried several times to work with Pharo as a tool for random GUI apps, and found the experience quite frustrating. But, clearly, the Pharo developers continue to make progress, its just that whatever their destination is, it's not congruent with mine, so I dabble and leave. If you want a more friendly approach to Smalltalk (which, you'll note, Pharo does not claim to be -- there's no mention of Smalltalk on their front page), then take a look at Squeak.
- zabzonk 3y agosqueak is very similar to pharo (which is based on squeak) but pharo is a lot more user-friendly and looks nicer. they are both smalltalks - i agree that pharo trying to pretend otherwise is a bit strange.
- pjmlp 3y agoBecause in a similar vein to Dr. Scheme => Raket, Pharo has moved from its raw Smalltalk roots.
- Qem 3y agoOr similar to Perl => Raku. The Pharo developers took a wise decision renaming it. Because if you keep the same name, people expect nothing short of total backward compatibility with whatever there was before. If one wants to keep the option to experiment and eventually break backward compatibility, it's better to rename it.
- LispSporks22 3y ago"Learn Pharo" is right there in the Welcome screen when you started it.
- bowsamic 3y ago[flagged]
- klibertp 3y agoNo need to, but the project should be honest about it: "this is not for lazy people! You'll spend a weekend just trying to boot the VM, and once you're done the hard part starts right there! So, go away, you unwanted user, you." Put something like that on the front page and you're good to go.
- bowsamic 3y ago[flagged]
- klibertp 3y agoAh, yes. "Entitlement"... I'd say: to show that its authors have a sense of decency, at least. But let's not assassinate the lads any more than this.
- sfpotter 3y agoAuthors of open source projects don’t owe you anything. If you want something changed, do it yourself, or ask them. You could even go so far as to offer to pay them. If you aren’t up for any of that, well… not sure what to tell you!
- klibertp 3y ago> If you want something changed, do it yourself, or ask them. I did ask. See my other comment[1]. The only thing I got out of asking was name calling, dismissive and rude remarks, and the immortal "do it yourself". Before the package manager thing, I did the same - years earlier - asking on the mailing list how to bind keys to commands. What I got out of this was name calling, dismissive and rude remarks, and the immortal "learn to use the mouse already!" Sure, nobody owes anything to anybody, not even not being toxic and abrasive. But I also don't owe the toxic and abrasive community anything - certainly not avoiding criticizing it. Right? Oh, and I'm certainly NOT going to offer money to people who swear at me. Yeah, it's not a product, not developed by a company, all true - but I still refuse to be called an idiot and keep quiet about it. [1] https://news.ycombinator.com/item?id=35906419 https://news.ycombinator.com/item?id=35906419
- agumonkey 3y agoI would not try to compare pharo with the usual mainstream ways. It's a different world. There's a very very good mooc to explain various aspects of both language and environment/culture. It's really worth a try (and I say that after hearing a lot of high praises about Smalltalk, I wasn't disappointed)
- klibertp 3y agoWell, they're consistent at least. It was exactly the same when I first tried Pharo, at version 2.something IIRC. Same in Pharo 5, 7, 9 (increments of 2 purely coincidental) and now with 11. I love Smalltalk. The language is great, incredibly powerful even though it rests on just a few simple concepts. The design and architecture of some of Smalltalk libraries is marvelous and should be made into UNESCO world heritage site for OOP design. PetitParser is unmatched in the ease of creating and extending parsers, not even PyParsing comes close (Raku grammars are close but use another metaphor for actions, ScalaParsing is... somewhat related but limited). The idea of finally working with a live codebase instead of its dead carcass[1] is frankly groundbreaking - and older than me, apparently. The Smalltalk debugger is a work of art, and the idea of working with images that contain the "whole world" in them is actually very appealing if you ever had to write a Dockerfile. However, while Pharo may well be the most "advanced" Smalltalk(-like) environment, it's also one of the worst. On my Linux machine releases after 5 refused to as much as display anything - I got an empty window and the VM seemed to hang and never started properly. Glamorous Toolkit version did work, even though they share most of Pharo code. The churn in UI toolkits, the constant rewrites of everything, the utter lack of any kind of documentation (including on classes!) of installable packages, deprecation of tools that work (ofc after breaking them) in favor of tools that don't, yet leaving the former in place just to confuse users (b/c what other goal could it have?) - that's Pharo in a nutshell. A few years ago I went to complain about the lack of backward compatibility and the fact that a tool, Package Manager, that used to work perfectly well, stopped working altogether. I learned that nobody under the Heavens cares more about backward compatibility than Pharo community (praphrasing: "look, we're even developing all-new annotation/pragma based system for marking and automatically fixing incompatibilities!") and that nobody uses the package manager anyway because they use... something else, I forgot, but anyway - the new thing was nowhere in the menus, while package manager stayed in the same place it was before. I gave up when I got no response after asking "how the heck should I, the user, know about deprecation of a tool if it's not indicated anin any way in the UI". What I got instead of an answer was a bunch of name calling and the usual suggestion for me to go and fix it myself. I still love Smalltalk. If you love it too, but feel that - at least with Pharo - that feeling is not mutual, go grab Visual Works (no affiliation). Personal license is restrictive, and the version you get is 6 years old at this point. But. It comes with thousands of pages of PDFs with up to date documentation, manuals and guides. It comes with a stable, battle-tested UI framework, not based on Morphic but integrating seamlessly with your env windows (btw: "Pharo can do it too", say Pharo users, "it's just that nobody cares about such things") while still allowing all the dynamic introspection Smalltalk is known for. The infra for versioning and sharing code is idiosyncratic - you need to spin a local Postgres instance - but solid and surprisingly (if you come from git) powerful. There's a working package manager and you can install and run code from the nineties, something that's just absurd to attempt in Pharo, despite all the "caring" about backward compatibility. Yes, the VM is closed source, but it at least starts up properly. It's a bit underwhelming in the performance dept, which made me reconsider starting one project with it, but by that point I already built my own little Smalltalk environment after fixing a lot of glitches (because, other than the VM, the source of everything else is available and you can modify it as easily as any other code) and I honestly felt really comfortable in it. It's incredibly similar to Emacs in terms of power and workflow, but with proper widgets and no need to worry about terminal users. I also tried using GNU Smalltalk for a project, but that's basically dead at this point, with a lot of things unfinished. I still managed to build quite nice shell PoC in it. I also tried Smalltalk/X-jv, and it was kind of ok, but VW looked more polished and I didn't need the other langs integrations that Smalltalk/X does, so I stayed with VW. Cuis is also a nice attempt, but I wanted to break out of Morphic, so I didn't investigate it too deeply. TLDR: Smalltalk is not just Pharo, there are Smalltalks that are not like Pharo, that don't treat users like unneeded baggage, that take integration with modern GUIs seriously, that have a lot of advanced tooling that's actually useful and needed. Oh, and also, there are Smalltalks that are not actively hostile to keyboard shortcuts! Give one of them a chance, you'll be surprised! [1] https://blog.bracha.org/exemplarDemo/exemplar2021.html?snapshot=BankAccountExemplarDemo.vfuel# https://blog.bracha.org/exemplarDemo/exemplar2021.html?snaps...
- igouy 3y agoI do sympathize with your experience. It reminds me that one of the frustations when experienced programmers encountered Smalltalk back-in-the-day was often expressed as — Where's the program? Maybe you wanted to step through like this (and then go explore by yourself): https://cuis-smalltalk.github.io/TheCuisBook/Writing-your-first-scripts.html https://cuis-smalltalk.github.io/TheCuisBook/Writing-your-fi... https://cuis-smalltalk.github.io/TheCuisBook/A-brief-introduction-to-the-system-Browser.html https://cuis-smalltalk.github.io/TheCuisBook/A-brief-introdu...
- harshreality 3y agoI had no prior experience running Pharo. I wanted to see what all this was about, so I downloaded and ran the launcher (the windows one, since that's what I'd expect most people to be using). It starts with no images. Does Launch work anyway? No. How about New? That lets me select pharo versions. What happens if I pick regular pharo 11? It looks like it's downloading. What happens if I Launch that? Success. Once the image is run, a "welcome" window appears (which you can get back to, if you already closed it, through the Help menu). The first two panes are a brief description and theme setting. The third pane is how to learn pharo, which lists a few resources and then tells me I can learn Pharo by clicking on the ProStef link. I do. ProStef tells me to highlight the text below and right click and select "do it". It takes me a couple tries because I'm curious what happens if I select one word or the other. Learned: the entire expression has to be highlighted before telling Pharo to run it works, and both words were part of the expression. The tutorial proceeds fairly obviously from there, teaching print and inspect. Some additional experimentation reveals that selecting the entire page runs everything, kind of like you might be used to in an IDE that sends things to a repl, and double clicking before the first character on a line selects the whole line. If you're expecting the sort of tutorial where a guide not only tells you what to do, but shows you what to do before you do it to avoid any ambiguity, so that all you have to do is mimic it, ProfStef isn't that, but mimicry is a weaker form of learning. I'm not sure I'll like Pharo, but the tutorial looks like it starts okay to me. The launcher takes a moment to figure out, but if it's so difficult how do you get anything done that you've never done before?
- Jeff_Brown 3y agoI'm just learning about it myself but much of what's attractive about Pharo appears to be the IDE rather than the language, so code snippets don't do it justice.
- msravi 3y agoI like the LearnXinYminutes series to get the hang of a new language. It's sussinct and usually covers the main aspects of the language -- at least sufficient for you to decide if it's interesting enough to spend more time on... https://learnxinyminutes.com/docs/smalltalk/ https://learnxinyminutes.com/docs/smalltalk/