Ted Leung on the air
Ted Leung on the air: Open Source, Java, Python, and ...
Sat, 15 Oct 2005
Copland 20xx?

I'm surprised that this one hasn't made the rounds more. John Siracusa at Ars Technica has written a piece called Avoiding Copland 2010 (there's now a Part 2 and Part 3), where he claims that the lack of a memory managed language/API set will create a Copland style crisis for Apple in the next several years. Longhorn/Windows Vista is supposed to provide its new functionality via CLR/C# API's, so I imagine that Siracusa is looking at that and getting nervous. It has taken Microsoft longer than expected to pull this off, and depending on which rumors you believe, some of the more ambitious attempts to use managed code had to be scaled back in order to ship a product. If it is any consolation, the Linux folks have exactly the same problem that Apple does.

Lots of people have commented on Siracusa's post, and a number of folks have pointed back to languages like Lisp, Smalltalk, and Dylan. Rainer Joswig, a long time Lisp hacker has written his opinion on what this means for the Lisp community. I found it amusing that around the same time that I saw Joswig's post, MIT announced that they were open sourcing the CADR Lisp Machine operating system, and the Gwydion Dylan developers announced the availability of OpenDylan 1.0b1. You can say what you like, but Lisp and Smalltalk machines were both systems where everything was build in a managed language. Some people think that automatic memory management only helps developers, but I think that you can get some improvements in reliability and security as well. Of course, as we've discovered with Java and C# code, it's also possible to create very inefficient code.

Much has been written about the arrival of dual core processors, and rumor sites have produced screenshots of quad processor Intel Macs. I think that it's more likely that the needs of highly concurrent hardware will push Apple (and everybody else) to a Copland style breaking point. AnandTech has confirmed what many have suspected, that there are some fairly serious problems with threading in OS X. If applications need to become more concurrent in order to take advantage of new hardware, then that is going to be a bigger deal than memory management issues. We know that techniques like garbage collection can help to deal with the reliability and modularity problems associated with manual memory management. But we don't really have any good solutions for making concurrent programming less error prone. Maybe I'd better dig up all that Actor language stuff that initially led me into graduate school.

There's one more wildcard, which is the whole question of whether or not desktop operating systems and applications are where the future of computing is going. In today's environment, you'd think that all innovation in computing is happening in the Web or Web 2.0 space, and that if we could just get a local storage mechanism and a decent drawing model into web browers, we could just swear off desktop computing all together. Given the number of times that I've had to kill a wedged Safari or Firefox, I'd have to say that I think that's a bit premature. Still, one never knows.

In some ways, I'd be glad if Apple, or even better, the whole desktop computing world, had a Copland moment. Maybe that would give people a chance to take a deep breath and wonder whether what we have is the best that we can do.

[00:06] | [computers/operating_systems] | # | TB | F | G | 5 Comments | Other blogs commenting on this post

Probably I'm misunderstanding you but I tend to think that lower levels of any OS need to be written in a "close-to-the-machine" kind of language. Even Objective C doesn't cut it for the kernel, although once you get into user space its ok.
(And aside from the primitive idioms required to use the language successfully on OSX, they could have supported GC at least, its available in the language/rtl - but their Cocoa framework cannot handle it. I guess they just dragged along too much code from the NeXT.)

From what I know, only the newer parts of Windows are being done using C#. There's plenty of C/C++ and COM Interop going on between them. The lower levels, as far as I know, remain in an unmanaged code model.

I cannot think if any viable system built on managed code that really made it out of the labs. But I don't follow the research in this area. I've seen Smalltalk, Lisp, and Java machines, and each was interesting, but each died on the vine. (And each required a "real" OS to boot off of!)

What was BeOS written in, just out of curiosity?

I've seen some criticism of the Anandtech "study" but haven't studied it closely yet. The initial results were certainly surprising.  Perhaps its  the microkernel after all? Or something to do with the way MySql threading was done?

there are many issues at stake in multithreaded environments. Many times the user-mode API doesn't handle it well. (Witness the use of UI threads on Cocoa and threaded message pumps on Win32/Carbon. Check out the sheer pain of apartment model threading in COM!) ) Programmers could certainly use better tools to design, build and debug multithreaded applications.

and as for copland - hopefully apple won't repeat that mistake.
i think their approach, building on a tried-and-true system, is quite viable.
Posted by
rick at Sat Oct 15 22:11:00 2005

You can subscribe to an RSS feed of the comments for this blog: RSS Feed for comments

Add a comment here:

You can use some HTML tags in the comment text:
To insert a URI, just type it -- no need to write an anchor tag.
Allowable html tags are: <a href>, <em>, <i>, <b>, <blockquote>, <br/>, <p>, <code>, <pre>, <cite>, <sub> and <sup>.

You can also use some Wiki style:
URI => [uri title]
<em> => _emphasized text_
<b> => *bold text*
Ordered list => consecutive lines starting spaces and an asterisk





Remember my info?

twl JPG


Ted Leung FOAF Explorer

I work at the Open Source Applications Foundation (OSAF).
The opinions expressed here are entirely my own, not those of my employer.

Creative Commons License
This work is licensed under a Creative Commons License.

Now available!
Professional XML Development with Apache Tools : Xerces, Xalan, FOP, Cocoon, Axis, Xindice
Technorati Profile
PGP Key Fingerprint
My del.icio.us Bookmarks
My Flickr Photos

RSS 2.0 xml GIF
Comments (RSS 2.0) xml GIF
Atom 0.3 feed
Feedburner'ed RSS feed

< October 2005 >
2 3 4 5 6 7 8


Macintosh Tips and Tricks

Blogs nearby
geourl PNG

/ (1567)
  books/ (33)
  computers/ (62)
    hardware/ (15)
    internet/ (58)
      mail/ (11)
      microcontent/ (58)
      weblogs/ (174)
        pyblosxom/ (36)
      www/ (25)
    open_source/ (145)
      asf/ (53)
      osaf/ (32)
        chandler/ (35)
        cosmo/ (1)
    operating_systems/ (16)
      linux/ (9)
        debian/ (15)
        ubuntu/ (2)
      macosx/ (101)
        tips/ (25)
      windows_xp/ (4)
    programming/ (156)
      clr/ (1)
      dotnet/ (13)
      java/ (71)
        eclipse/ (22)
      lisp/ (34)
      python/ (86)
      smalltalk/ (4)
      xml/ (18)
    research/ (1)
    security/ (4)
    wireless/ (1)
  culture/ (10)
    film/ (8)
    music/ (6)
  education/ (13)
  family/ (17)
  gadgets/ (24)
  misc/ (47)
  people/ (18)
  photography/ (25)
    pictures/ (12)
  places/ (3)
    us/ (0)
      wa/ (2)
        bainbridge_island/ (17)
        seattle/ (13)
  skating/ (6)
  society/ (20)

[Valid RSS]

del.icio.us linkblog



Listed on BlogShares

Locations of visitors to this page
Where are visitors to this page?

pyblosxom GIF