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.
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.
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.
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...
You would want it because its implemented in Pharo and because Pharo allow you to easily hack the system that means you can make the interface look any way you want without having to mess with C libraries. Also being Pharo it is part of the live system and it also push pharo development towards visual coding. As someone else pointed out already Pharo is a virtual OS, so having its own GUI API part of its very powerful live enviroment is very crucial. You can use external GUI APIs but you lose the ability to live code them which is what is the main goal of Pharo anyway. Personally I love the look of the user interface and even though there is dated MacOS theme I prefer using this theme. But one can create any theme he wants if looks are that important to him.
its not, but on the other hand, existing GUI APIs are not live coding friendly nor made in Pharo ;) Also the moment you want to change something or hack something , welcome to C++ hell. You sacrifice native look and powerful features, you get a live easy to hack system in return. But as I said Pharo DOES NOT forbid you from using Native libraries of any sort, including GUI. The fact that the vast majority of pharo developers choose not to use native gui apis, says a lot about how desirable GUI APIs are compared to "non native look" Pharo GUI API which is called Morphic :)
Why talk about a music app that a small amount of people use while we can talk about the most popular pro music apps out there. The kind of apps that the whole music industry is based on. Cubase , Ableton Live, Logic and Reason.
I still use Emacs in 2015, and Emacs is, basically, a strange non-native window system in a window. Smalltalk/Pharo is the same kind of thing, except less terminal-oriented—no?
(If you think about it, Java apps like Eclipse and so on, are also a tiny bit strange and non-native. They've come a long way towards blending in with native apps, over the years. But they still feel a bit off, from a native icon and windowing perspective.)
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.