Hacker News new | ask | show | jobs
by stonogo 958 days ago
Having looked at the screenshots and read the text, I still have no idea what Glamorous Toolkit v1.0 is. If I had to guess, I'd say it's another attempt at 'notebook' style computing interfaces, but I suppose there's a reason the author is too coy to say that, so I am forced to conclude that I just don't know what it is, and the creator is unable or unwilling to tell me.
6 comments

I had the same problem as you.

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.

If my day job used Rust, I’d be very interested in trying this. Live development with your code loaded gives you a lot of power that you don’t know you’re missing until you try it with a Common Lisp, Clojure or Smalltalk environment.
I fiddled with its python interop a bit. It's OK, but could use some expanding: it runs python code in a single venv that you'd need to populate with the packages you need. I couldn't find any support for switching venvs based on project directories, etc.

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.

This paragraph seems pretty clear to me:

"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.

And, IIUC, a debugger that lets you define custom views for interesting data? For example, in the "GtLudoGame" image (the first image in the post), the rightmost picture is some sort of custom debugging view for a game state -- so you can visualize it directly as a board state, instead of as a dict or list or whatever.
Yes. That said, it took me a while using it to figure out that one non-obvious key feature here is that “easy” means that they’ve made it cheap enough where one automatically changes their behavior and actually does create ubiquitous custom tools, where in other systems extension is more an afterthought, or at least distinct from “regular programming”
The author is not unwilling to explain, he has lots of experience trying to explain and knows how hard it can be.

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.

I've been reading much of this over the past day or so since I made the comment. I don't want to sound overly negative, but the author seems to think repetition of the phrase "moldable development" will imbue it with meaning, while my closest approach here is "notebook-style smalltalk ide."

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.

Same here. The style of writing is also quite annoying to follow as well, which doesn't help.

Looks to me like basically a Jupyter notebook, but going horizontal instead of vertical.

I don't need that for reading API docs, thanks.

Is it just me or does it come off as super condescending?

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.

Sometimes it’s just hard to explain something concisely when it’s both rapidly evolving and different from people’s assumptions.

In 1992 it was quite hard to explain what the Internet is. Is it a protocol? Yes, a whole bunch of them actually. Is it yet another email system? Yes, among other things. Is it like a forum? Yes, there’s Usenet, but you can also use that from BBS’s that are not really part of “the Internet”. So do you dial in like on Compuserve? Yes, that’s one way. Does it have games? Yes, but very different ones (tries to explain MUDs).

At that point many a reasonable person has given up with the understanding that it’s some kind of networky thing with a bunch of geeky apps, and you need to be a full-time student to figure it out.

In retrospect it’s easy to think that obviously something like the WWW would come along and clear all this up. I don’t think it was obvious at all in that moment, especially when all the consumer traction was with products like Windows and the VC money was flowing into flashy digital entertainment stuff like CD-ROMs and cable TV walled gardens that were the opposite of the Internet.

I got onto the Internet in the 1992 you mention at university.

It was easy to describe - a way for humans and computers to communicate. For me it was 99% Newsgroups and FTP. [1]. People shrug and move on. Most don't get it. It's years later that it's commercially available, with software built into the OS (win 95). And then it was using the Web, NNTP and FTP are more-or-less obsolete now.

But the Internet is still the same - a way for humans and computers to communicate with each other.

[1] I downloaded world data via FTP from the CIA, and someone at JPL answered a newsgroup post I wrote. Mind literally blown.

Perhaps, and yet, I feel like this page still does a particularly bad job of explaining what this thing is. Especially to an audience full of hardcore nerds.
How would you improve on this first paragraph?

"Glamorous Toolkit (GT) is the Moldable Development Environment. Version 1.0 embodies more than 6 years of development and is the result of some 14 years of research. Our goal is to make systems explainable by means of custom tools created for each problem. Glamorous Toolkit makes this possible by making the creation of custom tools inexpensive and seamless."

It introduces a new concept: Moldable Development. And it summarizes succinctly what it's about: creating custom tools for each development problem. Both of these are being exemplified in the article.

What else would have felt better for you?

I'll take a swing at that first paragraph:

"Glamorous Toolkit (GT) is a mature notebook-style integrated development environment. Our goal is to make systems explainable by means of custom tools created for each problem. Glamorous Toolkit makes the creation of those tools inexpensive and seamless."

Please note I did not mention 'moldable development' because I can't figure out what it is supposed to mean. "Creating custom tools for each development problem" is usually just called "programming". Introducing a new product and trying to define a new concept should happen in separate paragraphs, at the very least.

That’s probably counting everyone who had an SMTP email address and/or Usenet access.

Those were commonly available via BBS’s and (in the case of email) via corporate systems, but it didn’t mean you had any ability to make IP connections yourself.

The first time I paid for dial-up Internet was 1993, I think. It was a very cheap provider. You’d dial to their Unix box with a terminal emulator, like a BBS.

Turned out the price was so cheap because they didn’t allow foreign IP connections at all! I could use IRC and connect to local ftp servers within my small European country, but that was basically it. I knew a bunch of people who were IRC addicts and this kind of local access was perfect for them, but I found it useless.

Did I have Internet access then? Technically I could use all the protocols. In practice it wasn’t really the Internet when connections to other countries just fail. The point I’m trying to make here is that “Internet access” in 1992 meant a lot of different things on a scale that doesn’t exist anymore.

Can you maybe share a few details about what you find annoying about the style of writing? I'd love to improve my writing.
It's well worth taking for a spin.
Can you only use it for Smalltalk code though?
No, the included demos have examples for a analyzing Ruby (ActiveRecord) and Java. There was a paper a while back about moldable development where they showed a Python debugger.
The best I can say is that's analogous to asking if you can only use Emacs for Emacs Lisp code.
Yeah, I’m going to be giving this a spin pretty school to see how working on Ruby is like in it. It also gave me the idea of building a Swank client in smalltalk and maybe a McClim backend, but it’d be hard for me to give up emacs at this point.
I think it's a Smalltalk IDE?