Hacker News new | ask | show | jobs
by schemezealot 4079 days ago
So does iTunes on windows and Qt (since v. 4) on everything.

But I agree the single-window MDI is a major drawback. I keep checking out Pharo periodically and hoping a UI with multiple, native windows will be present or at least in the works, but sadly that is not yet the case.

There was actually a project many years ago for Squeak to give it native OS windows called Cheese, and the Squeak people, if you can believe this, actually told the author (Boris Shingarov) not to bother, and that if he wanted native windows, he should go use some other Smalltalk instead. They actually preferred their ugly, unprofessional, cartoonish UI that nearly everyone new to Squeak complained about.

I think Pharo is on the right track, but it's sad the developers have to spend so much time paying off the technical debt the Squeak project ran up.

2 comments

With the new OSWindows you can create multiple native windows. But... this is cool to allow people to do their stuff, but it does not match very well with the development philosophy of Pharo, where we open many windows at the same time. Imagine 20+ browsers, inspectors, playgrounds opened, all mixed with your regular browsers, mail, any kind of applications and you will understand why we prefer to keep the MDI. Said that... we actually want to support SDI also for development (optional for users), but this is a lot of work and will take a lot of effort. But we'll arrive there, with time (and help).
If a window manager does not support dealing with multitudes of applications with multiple windows, then the window manager does something wrong.

> Imagine 20+ browsers, inspectors, playgrounds opened, all mixed with your regular browsers, mail, any kind of applications and you will understand why we prefer to keep the MDI.

I simply hide these other applications - actually I use auto-hiding after some time period. No need for an MDI.

Let's look. My Mac now has 11 apps open: mail, calendar, contacts, browser, previewer, notes, two Lisp systems, several terminals, a finder, twitter, ...

Both Lisp systems use native windows, menus, buttons, dialogs, text fields, ... each Lisp editor is a separate window, ...

Multiple (native) windows + tabbed browsing is IMO better than a single-window MDI. Remember Linux and other Unix desktops already support multiple virtual desktops to manage many windows; you shouldn't try to reinvent this in Pharo.
We should not forget Pharo IS a fork of Squeak, it goes to a very different direction but is based on the same code. GUI wise Pharo inherited its GUI API, Morphic from Squeak. My personal opinions is that native look interfaces are dead. Nowdays most apps use custom look especially web applications.

Native looks apps look boring. Users don't like boring applications. At least I dont :)

The GUI in Pharo is not ideal but we should not also forget that this is a small community that is able to come up with tons of new cool useful features in each release because of how R.A.D Pharo is.

I disagree, native looking applications, while "boring", at least feel natural. Every time I use an application with custom controls (which almost always look pillowy) I feel like it wasn't made by a professional, it tends to respond different and it just doesn't feel right. I have read again and again criticism against Java and how it "failed" in the desktop because every time you used a Java application, it looked like a Java application.
Right, a lot of Smalltalker would love native windows. It's a requirement for some companies as well.

Edit: not only for the look but also for the feel. I hate when my usual keyboard shortcuts do something different in Pharo than in my OS.

I am not going to debate your personal taste, its your right to want "native looking" interfaces.

There has been a project to bring native interfaces to pharo called Mars

https://marsonpharo.wordpress.com/

but after the student left none took the project further. So yes its possible but for now there zero interest for it in pharo community.

I myself also would prefer native windows, and I time to time continue working on Mars... but is a side project nobody has actually expressed interest, so I usually spend my time in other, more required, stuff. But... Mars was loading in Pharo 4.0, and even if very incomplete, is usable for them who want to give it a try and finish it (also people showing interest could help me to get motivation :) )
SmallTalk was designed to BE the computer. Skinning for a native look the way Qt does may be the way to go. Targeting code for native applications should really be a separate thing and should involve additional toolkits.

The commercial Smalltalks do this but they are very pricey.

> SmallTalk was designed to BE the computer

Yes! This is why comparing Smalltalk to programming languages misses the whole point. I just wrote a blog post about this: "Programmers: You Probably Don’t Know What a Computer Is" http://seandenigris.com/blog/?p=1092

My main complaint is the MDI. I don't think non-native widgets are a problem as long as they're done well and behave close enough to native widgets as to not confuse people.

Qt is probably the best example of this, so much that people will actually cite it as an example of a native UI toolkit when in fact it isn't, it just skins its widgets to look like it.

I find the Pharo UI boring. Looks like ancient with its old windows and controls of some dead Microsoft era. emulated other interfaces of Pharo always have this slightly off feeling to it... Just from the look&feel - not even thinking about all this non-standard half-baked UI, which is a strange mix of Xerox/Smalltalk, Morphic, Windows, and other UIs...