Opencroquet 380
zymano writes "OSnews has some information about Opencroquet, a 3d operating system worked on by Alan Kay, who also is one of the inventors of Smalltalk, one of the fathers of object oriented programming, conceiver of the laptop computer, inventor of much of the modern windowing GUI. The OS is a 3D environment running through the Squeak environment on top of another operating system. It requires a supported 3D accelerator. Squeak is an interpreted language similar to Smalltalk. Could be ssslooooww. Way cool screenshot."
Assuming it unusable quite soon... (Score:5, Informative)
Croquet had the working name of Tea until recently. You will see many references to Tea in the system, in the code, and even in this document. Just
assume that when you see Tea, we mean Croquet.
Croquet was built to answer a simple question. If we were to create a new operating system and user interface knowing what we know today, how far
could we go. What kinds of decisions would we make that we might have been unable to even consider 20 or 30 years ago, when the current set of
operating systems were first created.
The landscape of possibilities has evolved tremendously in the last few years. Without a doubt, we can consider Moore's law and the Internet as the two
primary forces that are colliding like tectonic plates to create an enormous mountain range of possibilities. Since every existing OS was created when the
world around it was still quite flat, they were not designed to truly take advantage of the heights that we are now able to scale.
What is perhaps most remarkable about this particular question is that in answering it, we find that we are revisiting much of the work that was done in
the early sixties and seventies that ultimately led to the current successful architectures. One could say that that in reality, this question was asked long
ago, and the strength of the answer has successfully carried us for a quarter century. On the other hand, the current environments are really just the thin
veneer over what even long ago were seriously outmoded approaches to development and design. Most of the really good fundamental ideas that people
had were left on the cutting room floor.
That isn't to say that they thought of everything either. A great deal has happened in the last few decades that allows for some fundamentally new
approaches that could not have been considered at the time.
We are making a number of assumptions:
Hardware is fast - really fast, but other than for booting Windows or playing Quake no one cares - nor can they really use it. We want to take advantage
of this power curve to enable a richer experience.
3D Graphics hardware is really, really fast and getting much faster. This is great for games, but we would like to unlock the potential of this technology to
enhance the entire user experience.
Late bound languages have experienced a renaissance in both functionality and performance. Extreme late-bound systems like LISP and Smalltalk have
often been criticized as being too slow for many applications, especially those with stringent real-time demands. This is simply no longer the case, and as
Croquet demonstrates, world-class performance is quite achievable on these platforms.
Communication has become a central part of the computing experience, but it is still done through the narrowest of pipes, via email or letting someone
know that they have just been converted into chunks in Quake. We want to create a true collaboration environment, where the computer is not just a
world unto itself, but a meeting place for many people where ideas can be expressed, explored, and transferred.
Code is just another media type, and should be just as portable between systems. Late binding and component architectures allow for a valuable
encapsulation of behaviors that can be dynamically shared and exchanged.
The system should act as a virtual machine on top of any platform. We are not creating just another application that runs on top of Windows, or the
Macintosh - we are creating a Croquet Machine that is highly portable and happens to run bit-identical on Windows, Macintosh, Linux, and ultimately on
its own hardware... anywhere we have a CPU and a graphics processor. Once the virtual machine has been ported, everything else follows; even the
bugs are the same. Most attempts at true multiplatform systems have turned out to be dangerous approximations (cf. Java) rather than the bit-identical
"mathematically guaranteed" ports that are required.
There are no boundaries in the system. We are creating an environment where anything can be created; everything can be modified, all in the 3D world.
There is no separate development environment, no user environment. It is all be the same thing. We can even change and author the worlds in
collaboration with others inside them while they are operating
The existing operating systems are like the castles that were owned by their respective Lords in the Middle Ages. They were the centers of power, a way
to control the population and threaten the competition. Sometimes, a particular Lord would become overpowering, and he would get to declare himself as
King. This was great for the King. And not to bad for the rest of the nobles, but in the end - technology progressed and people started blowing holes in
the sides of the castles. The castles were abandoned. Technology does this.
Mirror (Score:5, Informative)
summary.html [mrhostbot.com]
teapot.jpeg [mrhostbot.com]
Croquet0.1.pdf [mrhostbot.com]
I grabbed the summary text and screenshot as well as the Croquet user manual in anticipation of /. effect.
Thank MrHOSTBOT [mrhostbot.com] for the free bandwidth.
Oh, and people seemed to be labeled "karma whore" just because they post useful (mirror) links, so I guess I'll stick to A.C. in order to please the masses.
Heres the really intresting stuff (Score:5, Informative)
mirror of screenshot (Score:3, Informative)
It's not too spectacular, if you ask me.
Re:Nifty! (Score:3, Informative)
I think the idea is to create an OS from Squeak, and opencroquet being the shell.
The language itself is used to do things like open files, if you want.
You can program in assembler, if you can. But you must think in Assembler.
Smalltalk misconceptions (Score:5, Informative)
Re:prototype? (Score:5, Informative)
not slow (Score:5, Informative)
But raw execution speed isn't all that counts. Because Squeak has everything in one address space (unlike Gnome/KDE) and doesn't need to load anything on the fly (unlike Java), it's actually very responsive and uses comparatively little memory.
I don't think Squeak or anything based on it is going to replace mainstream desktops now or in the future. But it is an interesting platform for experimentation. It's also historically interesting because you can see the kinds of environments people already had available in 1980 (Smalltalk-80 is contained in Squeak).
Re:it's a stretch (Score:1, Informative)
Re:it's a stretch (Score:4, Informative)
Re:prototype? (Score:5, Informative)
Squeak isn't an interpreted language like Perl or Basic (usually) is. Squeak is compiled, but to bytecode. The bytecode is then JIT-compiled or interpreted. Never is the code itself interpreted.
Google cached image (Score:2, Informative)
Other 3D UIs: references and links. (Score:5, Informative)
Ripped straight off the side bar :
Will 3D user interfaces ever take off? With ever-growing 3D processing capabilities available on standard PC hardware, it seems only natural to pursue UI directions that take advantage of this awesome power. Moreover, the generation of users now emerging has had access to video games for as long as they could remember. As the line between video games and PCs becomes blurrier, the time may have come to think about how to apply 3D visualization techniques for more day-to-day computing tasks.
Here are links to some of the 3DUIs that are available today:
- FSN [sgi.com] (pronounced "fusion") produces a cyberspace rendering of a file system. This was the original 3D file system navigator shown in Jurassic Park [monash.edu.au] ("Hey, this is UNIX. I know this!").
[Screenshot [monash.edu.au]] | [Download [sgi.com]] (IRIX)
- FSV [sourceforge.net] is modelled after FSN, but runs on Linux. FSV lays out files and directories in 3D, geometrically representing the file system hierarchy to allow visual overview and analysis.
[Screenshot [sourceforge.net]] | [Download [tucows.com]] (Linux)
- Xcruise [nooface.com] lets you fly through a filesystem in 3D as if it were interplanetary space. Directories are represented as galaxies, files are represented as planets (whose mass is determined by the file size), and symbolic links are represented as wormholes.
[Screenshot [titech.ac.jp]] | [Download [unixuser.org]] (Linux)
- TDFSB [hgb-leipzig.de] is a 3D filesystem browser for Linux. Take a walk through your filesystem!
[Screenshot [hgb-leipzig.de]] | [Download [hgb-leipzig.de]] (Linux)
- Visual File System [nooface.com] is a 3D file system visualizer for Windows. The tool scans a drive selected by the user, and then models the contents of the drive in 3D, based on the directories that are selected in a tree browser on the side of the display.
[Screenshot [manann.tng.de]] | [Download [manann.tng.de]] (Windows)
- 3Dtop [nooface.com] is an extension for Windows that represents desktop icons in 3D, letting you to fly around your desktop. You can create coloured spotlights, background and floor textures, "paintings" (bitmaps), clocks, and "flags" that represent shortcuts.
[Screenshot [3dtop.com]] | [Download [3dtop.com]] (Windows)
- ROOMS [nooface.com] turns a Windows desktop into a 3D world. You can see the world either through a first person perspective or with a map view, and you can populate the world with sounds, animated images, and 3D icons.
[Screenshot [rooms3d.com]] | [Download [rooms3d.com]] (Windows)
- CubicEye [2ce.com] organizes windows into a navigable cube. Cubes can be arranged by thematic or functional subject matter, and can be explored either individually or collectively as part of a more comprehensive structure of multiple cubes representing various areas of interest.
[Screenshot [2ce.com]] | [Download [2ce.com]] (Windows)
- Vizible WorldViewer [vizible.com] distributes windows across the exterior and interior surfaces of spheres, providing the means to visualize and navigate large numbers of web pages and data sources simultaneously.
[Screenshot [vizible.com]]
Re:Flash? (Score:3, Informative)
Wrong. Some highways in Quebec have a minimum speed limit of 80 km/h (50 mph). The Model T's top speed is 72 km/h (45 mph), ergo, you cannot drive it on some Quebec highways.
Also, even though you could drive it on some modern roads, it would not be without causing headaches to both yourself and other motorists, due to your low speed. Analogously, you can browse that website without Flash, you're just missing out on some of the content. You saw the screenshot, didn't you? (Assuming you got there before it was Slashdotted into oblivion)?
Tried it (Score:2, Informative)
Radio interview with Alan Kay (Score:2, Informative)
Link [www.sr.se] to real audio clip (click on "Lyssna" and go to the end of the file). The interview is about what he did at Xerox.
Squeak itself not slow (Score:5, Informative)
Squeak has two different GUI systems which you can use- Morphic and MVC. MVC is the "original WIMP," the first ever GUI system. It has deviated a bit from what came out of Xerox almost 30 years ago, but it has the same API and most of the same source code. It has Mac-like window decorations instead of the BeOS-like tabs now a days. MVC is a lot faster than Morphic for a number of reasons. It is what I will use on the slowest of the machines I use for Squeak (75 MHz). A number of GUI APIs have been modeled after MVC over the years, including Swing (MVC is much faster, don't get me wrong!) and Cocoa AppKit.
Morphic is what most folks use when they are running Squeak. It has a really cool programming model- applications can be built programmatically, with a GUI builder, or by directly manipulating the Morphs (graphical objects). A common example is the Rolodex- you can make on in Squeak without writing a line of code, just drag some Morphs around, make a few menu decisions, and there you go.
Morphic is slower than MVC, but you get what you pay for (computationally!). It is still quite usably fast on a 350 MHz K6-2 (~300 MHz PII), however.
I have not tried Croquet yet. There has been a lot of talk on the Squeak list about it, but in all honesty, 3D worlds aren't really my thing. People have been talking about the 90 MB download- most of that is media. A standard Squeak download is around 10-15 MB for the latest version, including a lot of useful classes and applications. Out-of-box memory footprint is 20 MB or so, but if you trim what you don't need, you can easily end up with a 1-3 MB image and a 2-4 MB memory footprint. This ain't Java, folks.
I am a bit of an oddity, even within the Squeak community. I use Squeak *as* my OS, my computing environment. One could think of it rather like Emacs- a lot of applications [1] are written for it, and it is readily modifiable, so that the environment works like you want it to. Don't like the way Squeak manages windows? Make a couple small changes to a few small methods. I was once a Linux user trying to do just this to my environment, making tweaks to the WM, and it was way more work than it should be. You can imagine how excited I was when I came across Squeak- the entire system is written in Smalltalk, making changes pretty easy, no matter what part of the system they affect.
[1] There are a number of applications written in Squeak. Most new apps are written for Morphic (rather than the older MVC). These apps include: two different forms of handwriting/gesture recognition, a simple web browser, a pretty good email client (although POP only), a couple IRC clients, a bunch of games, an vt100 terminal for use as an xterm or telnet client, all of the programming tools for writing Smalltalk, and more.
Information Overload (Score:3, Informative)
I recall reading or seeing on TV once interviews with fighter jet pilots from the Korean War, and they were complaning to the engineers that there were too many audio alerts that were distracting them from doing their job, and could they put an off switch somewhere for those alerts?
I can see the same thing with the interface- how much data do we need to bombard ourselves with? The human mind can only subdivid our attention to so many tasks at once (I think the limit is 4 or 5).
I certainly can see places where moving into the 3rd dimention would help, but I see those as specialized tasks, not writing a letter or reading email.
is too slow (Score:3, Informative)
Math: 20x-300x slower than C or Java.
Method calls: 5x slower.
Overall overhead from OO is at least 10x for Smalltalk over C++ (there are a LOT more messages/method calls and almost none are inlined). Also since everything is a 'live' object when people screw up their desktop they have to do the moral equivalent of reinstalling the OS.
Re:prototype? (Score:3, Informative)
Re:prototype? (Score:1, Informative)
www.squeak.org is the platform on which it is built. Squeak has 2 different 2D UIs, in addition to the 3D Alice clone. It is very scriptable (by drag&drop, or coding) and very extensible. You can change the compiler if you want, just don't come crying when it doesn't fix itself back
The development support is amazing. Look up "Refactoring Browser" for an example.
On a 1.3 Athlon, its only slow when I do something silly.
Visit http://minnow.cc.gatech.edu/squeak/1. A will to learn is the only requirement.
Daniel
Re:Licensing? (Score:3, Informative)
"... until a better license is written, Croquet is
covered under the current Squeak license."
- Team Croquet
The license allows for modification and redistribution, but has some quirky clauses in it because of it's lineage as proprietary software that owned by Apple.
It's worth noting, that the Smalltalk community since the beginning has always exposed all of it's source and allowed and encouraged users to modify the code and expand the code base. This goes back long before the open software/free software movements took root.
---
Re:3D OS (Score:3, Informative)
That's pretty lame reasoning. We're not playing Master of Orion here. You can't turn up a slider on "Security Research" and have everybody focus on this.
Re:Where's the beef? (Score:4, Informative)
Re:not slow (Score:1, Informative)
You can change the VM implementation and test the result within Squeak itself- although of course at a much slower speed than a compiled VM.
Check out these docs:
http://coweb.cc.gatech.edu:8888/squeakbook/uplo
and:
http://users.ipa.net/~dwighth/squeak/oopsla_squ
for details.