Earlier quoted context omitted.
There is, if you consider it is a Smalltalk dialect. http://www.cincomsmalltalk.com/main/ https://gemtalksystems.com/ So you can learn Smalltalk with Pharo and then get into the big boys Smalltalk. However expect the typical enterprise projects where Oracle DB licenses are footnotes on the overall budget.
These are commercial vendors, but there are industrial uses of Pharo itself, and as Pharo gets better a lot of companies are moving from their commercial dialects to Pharo. In particular from Cincom Smalltalk to Pharo.
Pharo 7.0 released
151–160 of 236 posts
Re: Pharo 7.0 released
#152Earlier quoted context omitted.
But this is about Pharo, which is a Smalltalk environment, which is different from how most programing languages are used. So starting from those kinds of questions is missing the point, when the focus should first be on seeing what makes a Smalltalk environment different.
> a Smalltalk environment A Smalltalk implementation. > So starting from those kinds of questions is missing the point… The questions `virtualized` asked are simple and clear. Telling `virtualized` that they are missing the point — instead of answering their questions — makes the community seem arrogant.
However, virtualized stated that they gave up after five minutes because they couldn't find a hello world example similar to programming languages they're presumably familiar with, because they didn't want to watch a video or read a book. So explaining that the Smalltalk environment is different, and thus it doesn't make a lot of sense for Pharo's website to advertise with a command line example, is appropriate, since that implementation is GUI-based.
It would be akin to complaining about RStudio's site because someone couldn't quickly find how to run a hello world R script from the command line, when RStudio is about the IDE.
Re: Pharo 7.0 released
#153Earlier quoted context omitted.
I have not looked at Pharo, but the Lisp development environment on my Symbolics computers is amazingly integrated, so this is a very high bar to surpass if true.
Running Pharo (or Cincom Smalltalk or Squeak Smalltalk) on an OS like Windows is similar in many ways to an old Symbolics machine, but Symbolics didn't need to sit on top of an OS, but was lisp all the way down. This existed in the past with Smalltalk as well at Xerox Park where it introduced the GUI and Mouse. I forget the machine's name, but someone on HN rebuilt one recently. The hardware was expensive at the time…
For Common Lisp there are/were many integrated IDEs: Macintosh Common Lisp, Allegro CL, LispWorks, Clozure CL on the Mac, Corman Lisp on Windows upto McCLIM for several CL implementations. A general difference to Pharo is usually that these CL IDEs use mostly native user interfaces. Pharo comes with its own user interface, graphics, window system, display code, event handling, ... Example: Pharo windows on a Mac are not Mac windows. Clozure CL windows on the Mac are Cocoa windows. Similar: most CL systems use native code.
The real commercial Smalltalk machines were underpowered compared to some of the Lisp Machines - for example those from Symbolics - but those were also quite a bit more expensive. It was possible to spend more than $100k for a Symbolics Lisp Machine with accelerated color graphics and HDTV in/out.
The main difference of Pharo with integrated Lisp environments:
1) Pharo uses portable system independent images. Most Lisp systems uses system (OS / architecture) specific images, since code is natively compiled.
2) Pharo code is not native AOT compiled, IIRC. Common Lisp is either source interpreted or AOT compiled - some are even AOT compiled only - with incremental AOT runtime compiler.
3) Pharo uses its own user interface & gui system. Most Common Lisp systems use a native backend for their GUI. Recent exception is Mezzano, which a CL on the metal, which comes with its own GUI.
4) Pharo/Smalltalk usually manages and tracks source code for the user. Most CL IDEs use files and the user works with files and systems of files. CL then more or less tracks the code in these files.
5) Pharo offers to save state in an image between sessions - Lisp systems use that mostly on demand and less as a session state mechanism. LispWorks has some support for sessions.
Re: Pharo 7.0 released
#154Earlier quoted context omitted.
Smalltalk system consists of a VirtualMachine and an image. An image is just some Smalltalk code compiled into a form suitable for VM to read it into memory. The initial image contains all the standard classes of Smalltalk plus the GUI and various tools. When you add a method to some class inside the GUI, it gets compiled and added to the image held by the VM in memory. Later, you can dump the modified image to disk,…
You can definitely do GUI programming as the IDE itself is in Smalltalk, but I wouldn't call it super straightforward like using a GUI designer in Visual Studio. I've tried before and got lost in Bloc & Specc?
But, about the GUI, I was thinking about Morphic. It's basically a GUI designer on its own: you can create widgets by instantiating their objects in Playground. It doesn't matter what widget it is: you can create a button or a list item or a textarea on their own. You can then edit them with halo actions or in the inspector until they look like you want, then add them to container widgets, then finally put them in a window. It's bottom-up programming for GUIs! You need to manually track the changes you make via inspector (ie. to copy them to playground), but if you do, you can copy the whole playground into a method and done, you've just designed a GUI app! You later replace some Widgets with their subclasses written by you to handle events and you're done.
Re: Pharo 7.0 released
#155Earlier quoted context omitted.
>If you aren't interested in a novel immersive programming environment then you can safely ignore Pharo too. I was curious and so downloaded and ran the default image, and I'm beyond captivated by it, but I have to agree that neither the link nor the homepage do a good job of enticing me to do so, or even hinting and what can I expect. If I didn't feel like setting up and checking out random projects I stumble upon,…
Agreed. The main website could benefit from somehow conveying the mind blowing power of using Pharo. Maybe lots of little gifs?
I was just looking for a basic examples to get some sense what Pharo is about and what the look and feel are. Without downloading and installing it, I wasn't aware that there is a pretty nice interactive tutorial built in.
Maybe convey better how Pharo is distinct from other languages/environments and how to get going?
Pharo is indeed very easy to get started, but the website makes it appear harder than it actually is.
Re: Pharo 7.0 released
#156Earlier quoted context omitted.
Thanks for your feedback. Maybe it would be better to show the three tools in separate screen shots rather than overlapping. One aspect of simplicity is its minimal syntax... https://en.wikipedia.org/wiki/File:Pharo_syntax_postcard.svg
That's a pretty chaotic postcard. I think I get the point that it's trying to make, but at first glance it doesn't exactly convey the idea of simplicity.
Re: Pharo 7.0 released
#157I was going to say that it sounds a little like that Smalltalk IDE Squeak, and then it dawned upon me that this is actually a Smalltalk dialect too. :D I'm going to throw this in here: "Squeak or Pharo for the beginning Smalltalker?" https://stackoverflow.com/questions/8426981/squeak-or-pharo-... And a third option that is much leaner and maybe less overwhelming especially if you are interested in actually learning S…
Re: Pharo 7.0 released
#158Earlier quoted context omitted.
The small size of methods is a feature, not a bug :-). And this partly explains why the lack of [your favourite editor] bindings isn't so important. You don't typically spend as much time as you're used to typing in code - and make progress faster as a result - counter-intuitive as that may sound. The integration and the debugger are most of the reason why.
It sounds a lot like you are trying to tell a programmer to stop programming using the keyboard and program using the mouse instead. I think I understand why you are doing that, but I don't see how you can expect to be successful this way. For 99% of programmers out there, programming IS typing on a keyboard. Clicking around with a mouse is only something that non-expert users (or children, e.g. Scratch users) do, be…
There is the infrastructure for custom key-bindings in place, although last time I checked it was being rewritten; I think that was finished around 6.0.
What it would need, in my opinion, as someone who almost never touches a mouse myself:
- either a tiling window manager or a set of fixed layouts for where windows should appear. I'm not sure how is the placement of new windows currently done, but it's rather dumb.
- something like this: http://oremacs.com/download/ace-window.gif for switching focus between windows. Failing that, the ability to switch focus to the window on the left/right/top/bottom. switching between hordes of ungrouped windows in Ctrl+Tab is a nightmare.
- easily overridable global key bindings. This was rather complicated last time I checked. Also, the key-binding model should be powerful enough to allow for chords (sequences of keys: Ctrl+X, then Ctrl+Y, etc.).
- a mode which would go through all the widgets in the current window and display all available labels (over buttons and menus). Most of the labels contain a name of a function and a keyboard shortcut already.
- there's a Shift+Enter shortcut which opens Spotter: you can type some characters and it will search the image for anything matching, including code, comments, external packages, and global menu items. It would be great if it was also context-sensitive so that you can invoke functions of the currently focused window through it too.
- Emacs/Readline and Vim bindings provided in the base image would be very appreciated.
That would be a good start, I think :) It's a lot of work, though, and there doesn't seem to be a will to pursue this in the community, unfortunately :(
Re: Pharo 7.0 released
#159Earlier quoted context omitted.
>If you aren't interested in a novel immersive programming environment then you can safely ignore Pharo too. I was curious and so downloaded and ran the default image, and I'm beyond captivated by it, but I have to agree that neither the link nor the homepage do a good job of enticing me to do so, or even hinting and what can I expect. If I didn't feel like setting up and checking out random projects I stumble upon,…
> maybe it should try to sell itself, at least a little, for the uninitiated? Guessing this is a hard problem. People have been working on marketing Smalltalk for almost 50 years now. If there were an easy solution I reckon they'd have found it by now :)
Re: Pharo 7.0 released
#160Earlier quoted context omitted.
Development is entirely via the most integrated GUI you've ever experienced. It runs on MacOS, Windows, and Linux. For deployment, you can run it headless. You can also deploy as Javascript for Node/Browsers via a tool called PharoJS ( http://pharojs.org - full disclosure, I'm one of the principals of PharoJS), but it's a work in progress (with a Slack workspace to support it). GNU Smalltalk can deploy to a standard…
I have not looked at Pharo, but the Lisp development environment on my Symbolics computers is amazingly integrated, so this is a very high bar to surpass if true.