Hi,
Again, quick answers...
The IDEs suffer from Alzheimer's
1. The Launcher has a "quit on launch" checkbox, but there seems to be no way to remember what it should be on the next launch. Certainly it is not saved automatically. Using the Settings Browser (in the launcher) to change this also has no effect.
Strange. On Linux it works for me. It's happening only on Windows? Could you report this in the Launcher repository? [1]
2. Neither the Launcher nor Pharo images remember the save status. Quitting immediately after a save still brings up the "Do you want to save" dialog. It's bush league.
Bugs
1. There seems to be no way to configure what a plain click in an open area does. Imo, the first click (of any kind) should set the focus if focus is not already in the Pharo pane. But no, the first click brings up the "World" menu. This is wretched interface design. At the very least, the user should be have the option to configure what plain clicks do.
3. The Pharo file dialogs are wretched. The native file dialogs on Windows and Linux are much better.
It's true. Support for native operative system windows is coming, but it will not happen at least after Pharo 8. People at feen[2] is making some test on native MacOS windows for their Pharo based platform [2]
4. I just got bit by a serious bug. An image suddenly started complaining that it doesn't have the proper write permissions to save itself...
Pharo browsers are clumsy
For me, this is the big one. The Pharo community is putting up with an ancient interface design for browsing. A Leonine browser would solve a lot of problems. Naturally, this creates a big opportunity for me to contribute to the Pharo world.
Pharo browsers show you what they want to show you, not what you want to see. Leo is a template for a much better way.
The general idea is simple: use a single outline for everything. Instead of dragging in the entire browser view, the Leonine view would use references to only those objects that the user wants to see. These references would be a behind-the-scenes "artifact". They may well exist in existing browsers. Unless I am completely mistaken, references (or their equivalent) must be possible in Pharo.
The Leonine browser would, of course, also support Leo's clones.
An example will clarify what Leo has to offer. Suppose you want to create a new class, along with its test class. You would create those classes in the Leo browser, and that's all you would see. You would use real organizer nodes, as usual, not as a special case but as a natural part of creating your classes. You would use clones to focus on the methods of interest. You could put related methods in the same node. Etc.
This would be an earth shaking development in the Pharo world. No more filters. No more wretched side-by-side browser panes. Much better use of screen real estate. No more special cases. Any Leonine node could refer to any Pharo object, including tracebacks. Which brings me to...
I really think that this Leo way for browsing Pharo, combined with the live coding and development support that the environment provides would be pretty useful. There are some alternative browsers that take into account screen spaces and alternative ways to extend the system. You should check AltBrowser by Thierry Goubier[3][4][5], which seems pretty unmaintained, but explore similar ideas.
[3] http://smalltalkhub.com/#!/~ThierryGoubier/AltBrowser
Exception handling in the transcript
The ui may be able to represent exceptions, say in the Transcript. The analogy is Terry's clickable error messages generated by pylint and other parts of Leo. For sure the user could use a more permanent way of understanding what has already happened.
Summary
My initial impressions of the Pharo code are not very good. That will not deter me from studying Pharo intensely, and in detail.
One of my first Pharo projects will be to create a Leonine browser, along with experiments to make exceptions editable parts of the ui.
I'll also fix the ui bugs mentioned above.
All comments welcome.
Thanks for this. I'm pretty intrigued to see what happen when Pharo and Leo ideas get mixed. Grafoscopio is just one approach, but having you around Pharo system and community could be really transformative.
Cheers,
Offray
Could you elaborate more? I think that exception handling is very good at Pharo.Exception handling in the transcript
The ui may be able to represent exceptions, say in the Transcript. The analogy is Terry's clickable error messages generated by pylint and other parts of Leo. For sure the user could use a more permanent way of understanding what has already happened.