Later, Morphic was ported to Squeak from Self. Morphic was an incredible discovery. I realized a new era was starting, and the books I'd bought to learn about MVC were obsolete. However, several things happened that made it hard to understand it. The biggest hurdle for me was the introduction of Etoys. Etoys was added to Squeak without a clear separation of what was part of the base Morphic framework, and what was part of the Etoys application. Besides, Etoys supports a programming style based on instances (a la Self) and the code was not easy to understand. This only got worse as time passed. People kept adding stuff, and nobody did any cleaning. You can see, for example here: http://wiki.squeak.org/squeak/920 that Dan Ingalls always felt that serious cleaning was needed. Also John Maloney (one of the creators of Morphic, and the guy who ported it to Squeak) speaks about the history of Morphic and the issues he thinks that should be fixed in the SqueakNews interview. Get it at http://forum.world.st/squeak-dev-Squeak-News-td83662.html.
For some time, I hoped Squeak Central would finally focus on cleaning Morphic and Squeak. I started thinking about doing it myself around 2003. Then Tweak was announced, but it was not what I wanted. So, around 2005, I started to clean Squeak and Morphic myself. I'd been interested in scalable user interfaces for over a decade, so that was the main feature I wanted. I worked on this in my free time and showed it in Smalltalks 2007 and Smalltalks 2009. People liked it, and Esug offered some support.
CS: In your website (www.jvuletich.org) we can read that Morphic 3 is looking for a highest-quality 2d rendering, even more that Cairo or other libraries and it's 100% done in Smalltalk, what can you tell us about the architecture, the speed and the compatibility of this new version of Morphic?
With respect to speed, the code is right now in Smalltalk, so it is not very fast. When turned into a VM plugin, performance will be similar to the other rendering alternatives.
In Squeak / Pharo, the biggest problem (that I have already solved in Cuis) is massive unneeded complexity. You can see it in the Squeak and Pharo mail lists, on the problems people have with Morphic, the kind of questions they ask, and the answers they give. Nobody can understand Morphic. It is slow and bloated, and nobody knows why. And all they do is to keep adding layers on top of the previous ones, making it bigger.
- Close to the ideas in Smalltalk-80 and "Design Principles Behind Smalltalk".
- Include only kernel functionality.
- Included stuff should be in very good shape.
- Include a greatly simplified version of Morphic as the main UI.
- Easy to fix and extend.
- Cuis is yours to extend it to suit your needs.
- Stable. Smalltalk kernel should not change much.
- Compatible to a reasonable degree with packages intended for other Squeak distributions.
- Lead by Juan Vuletich (jmv) after these principles.
CS: Do you think that Smalltalk should move from raster-based to vector-based graphics to be a step ahead again in graphics?
JV: I don't think that being a step ahead is an objective for Smalltalk. The objectives for Smalltalk have always been "do the best we can with the knowledge we have today" and "be a good tool to experiment, create new knowledge and express knowledge in a runnable form". I believe that software to drive computer displays will move away from the individual pixels exactly in the same way that printers have done it many years ago. No desktop publishing application lets you deal with the individual dots drawn on paper by a laser or ink-jet printer. As all software follows this trend, Smalltalk will also do it. I'm doing in Smalltalk because, to me, it is the best tool for any programming.
CS: What benefits could the scalable user interface give us?
JV: Independence of pixel resolution. Applications that look almost the same on a 72 dpi screen or a 300 dpi screen. (Printers have done this for over 20 years!) The ability to make a gui look bigger or smaller to fit our individual taste, while maintaining very high visual quality.
CS: You said that it couldn't be hard to integrate Morphic 2 with Morphic 3, you could use them at the same time or you will have to change a configuration?
JV: I said that the Morphic 3 rendering engine could be adapted for Morphic 2 rather easily. That would give better visual quality to Morphic 2, but it won't make it a ZUI. May be Morphic 3 morphs could also be used in a Morphic 2 world. Not sure about that.
CS: If new primitives must be added to the VM then the portability will be affected?
JV: This has no relation to Cuis or Morphic 3, right? I'm not adding new primitives to the VM! In general, the answer to your question is that it depends on the primitives. If they are properly written, that should not affect portability.
CS: You said that Squeak and Pharo don't follow Dan Ingalls's ideas expressed in the Design Principles paper, in that line, what do you think about SqueakNOS for example? Do you think that we should go back to the roots?
JV: I think that SqueakNOS doesn't follow "Design Principles". Especially when Dan says "Operating System: something that should not exist"! WRT "go back to the roots", I think it is a bit silly to declare Dan one of our biggest heroes and maintain a system that is bloated and convoluted for no good reason.
CS: You said that MVC is obsolete and Morphic represents a new era but what do you think of HTML and that the whole IT world is looking for web-based applications?
JV: MVC was obsoleted by Morphic over 20 years ago, when Morphic was written in Self. WRT my opinion about HTML and web-apps, listen to any talk by Alan Kay (for example http://softwareengineering.vazexqi.com/2009/10/22/how-complex-is-personal-computing---by-the-fine-folks-from-vpri), or check the Lively Kernel by Dan Ingalls.
CS: So, if we sum Cuis and Morphic 3, we can say that you're looking for a clean Smalltalk that could be simpler to understand for everyone?
JV: Yes, indeed.
If I said ... Would you answer
Soccer. Motorcycle racing.
Food, as a cultural artifact, from all over the world is interesting.
Anyone, as long as it can run Squeak (better if small and silent).
Anyone, as long as it can run Squeak (and it doesn't crash too often).
None is best.
Ficciones (Fictions) by Jorge Luis Borges.
A Music Album?
"Kill Gil" by Charly García and "Genesis for 2 grand pianos".
TV Series ?
Two and a half men.
Mercedes Unimog (not exactly a car!)