It's effectively a combination of a Smalltalk IDE, a Jupyter/Observable-style notebook environment and a tool somewhat like R Studio.
It's a hard thing to categorize, because it's not exactly the same kind of thing as anything else.
Part of the problem is that the way you use Smalltalk is pretty different from other programming languages already, due to the thing where you work within an "image" as opposed to just editing files on disk.
I emphasize with the challenge: I have a similar problem with my https://datasette.io/ project.
Sometimes, it's also a good idea to help educate the user.
empathize, not emphasize
It's not too difficult to get close.
"It's the visual equivalent of Unix pipes."
"It's a browser inspector with an infinite/unbounded amount of Miller columns." (NB: the browser here is a Smalltalk browser and not a Web browser.)
Etc.
Which makes sense as an analogy: org-mode is also famously hard to explain, and adding more dynamism just makes it harder.
Datasette is awesome btw
I'm using a few of the modalities mentioned in the article.
I use it as for "Pharo development" / Smalltalk IDE. I've tried a few times to learn Pharo and Smalltalk, but I've stuck with GT more than I ever had with raw Pharo. It feels nicer graphically, and, most importantly, it lets me write notes about what I'm doing and exploring and save them as part of the image. That means I can open GT and continue right from where I left off, even if it's been a month since I looked.
I use it for "Personal knowledge management", mostly. Little projects and analyses that occur to me. Nothing fancy, things like writing up why it's easier to get heads-tails in a sequence of coin flips than heads-heads, with a bit of simulation, a writeup of the Markov chain, derivation of expected times, etc. I've done that many times before, but it feels good to have it all together in an aesthetically-pleasing form. Bits on game odds, leetcode-ish algorithms exploration, general computational fiddling.
Once I figured it out, I like the git integration for both code and notebook pages. That goes a long way to reassuring me that the things I do won't be lost. I still don't quite get the Metacello / BaselineOfX dependency management, but I'll get there.
I did a little API browsing, mostly following the "Exploring the GitHub REST API in 7'" video by Oscar Nierstrasz (https://www.youtube.com/watch?v=-vFwfwy5WZA). That series is excellent and I think does a good job of illustrating the power of the system and how it's different.
But, in general, it feels like a good "tool for thought".
What's more interesting to me is the fact that the Glamorous Toolkit UI looks perfectly crisp on my M1 MacBook screen, whereas the Pharo IDE is a blurry mess because it doesn't support "retina" screens. If GT is built on top of Pharo, then why does Pharo still not support high DPI screens?
The productivity of the GToolkit developers is impressive.
The productivity of the GToolkit developers is impressive.
Is it demoed in some video?My current understanding is that it's similar to Emacs, but in this case it uses Smalltalk instead of Elisp.
It's an IDE who's selling point is that you should extend while coding.
If my day job uses Python, for example, is it pragmatic to use Glamorous Toolkit? Yes, it has a few functions for editing code in some language .. but you get a lot more Python power from Intellij or Pycharm. I don't use Smalltalk but if I were, I would consider it, alongside Pharo or instead of Pharo.
I could imagine using GT as a more hackable way to interact with code. You don't get the nice automatic features of a python IDE, but you could define graphical views for your objects, drill-down into sub-objects, and the like. But to do that, you'd also have to know some Smalltalk.
"Glamorous Toolkit is the Moldable Development Environment. Moldable Development is a new perspective on programming through which we create custom tools for every development problem. We find that this ability changes the very nature of programming."
It's an IDE that lets you easily create tools for experimenting with your code.
The best single sentence description, IMHO, is that GT (Glamorous Toolkit) is the current manifestation, implementation, proof of concept of the idea that making systems explainable through mouldable development is very powerful.
Furthermore it is a very nice tool in its own right (again IMHO).
Saying 'GT is x' where x is any of the subjects in the text is problematic. Most people will cling to one perspective, the one they are most familiar with or like the most, and mostly forget the other ones.
There is lots of stuff to read or watch:
- https://blog.feenk.com/ - https://book.gtoolkit.com
(BTW, everything you see in the above two web sites is actually written inside GT, notebook style with active content).
But reading about it is no substitute to trying it out and experiencing it yourself, though there is a learning curve for sure.
Even when talking about "supporting" other languages, it's in terms of forcing everything into a smalltalk interface and then using that object model to introspect. None of the blog posts I've seen have convinced me that this isn't just Jupyter or Mathematica with a smalltalk kernel, and that's why I said what I did about the author's unwillingness to use common terms to describe the software. "Moldable development" doesn't mean anything.
Looks to me like basically a Jupyter notebook, but going horizontal instead of vertical.
I don't need that for reading API docs, thanks.
I feel that, if you can't explain to us concisely what the thing you've been working on for decades is about, that's a huge red flag. The most I can tell you after reading this page: it has something to do with software development, and my inclination to explore further is zero.
In the second half of the article it says that those are just examples of what is possible, but the really interesting bit is that we build these tools for every single development problem, including when we deal with external systems or languages. And this leads to a new way of programming which we call Moldable Development.
This is a great article, and convinced me to put refreshing Pharo Smalltalk and installing Glamorous on my Mac.
Are you saying you want to compile it from source, or are you unaware that there's binaries available?
https://github.com/feenkcom/pdt2famix > pdt2famix takes PHP code and produces MSE files that can be imported into Glamorous Toolkit.
There's something called Gtoolkit, I think? I had to install NetBeans to get some plugin, to get one of these tools to work, then the plugin had some other requirements. It definitely wasn't just running their binary. It was a nightmare.
But you have to keep everything in the top directory and copy that around not the .app
It is not packaged as a Mac Application that is all in a .app file which you can copy to /Applications. Most of the other files should be in ~/Application Support or ~/Documents to meet normal macOS directories.
Only problem is, I absolutely hate the GNOMEsque aesthetic.
Can't seem to find any info on changing its appearance. Of course it should be possible given the nature of the platform, but it really is offputting. The soft-corners and hamburger menu aesthetic really does not communicate what a powerful platform this is, and not being able to change it easily is really offputting.