[openbeos] Re: Innovation: Design and Programming
- From: Lunar <lunar@xxxxxxxxxx>
- To: openbeos@xxxxxxxxxxxxx
- Date: Thu, 1 May 2003 01:44:30 +0200
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
<lurker-mode-off />
On mercredi, avr 30, 2003, at 01:32 Europe/Paris, Michael Phipps wrote:
Be did very little to make BeOS accesible to other languages. Their
answer was "write the interpreter/run time environment in C++ and
access our code that way". And that is a fairly reasonable answer,
from the POV that the OS was still rapidly mutating. But, looking
forward, it is not impossible to see a future where some of the pieces
are slow to change their API. There are only so many ways that you can
skin a screensaver API, for example. So what sort of ways can we make
some allowance for other languages?
Most interesting example recently is Mac OS X.
This operating system is based on NeXTSTEP which API is entirely
written in Objective-C. Because of the Posix compliance (and Darwin for
Mac OS X), the low level API are in plain C.
But, because of Mac OS Clasic legacy, Carbon API is C++. And Mac OS X
did a lot emphasis on Java programming.
Java is really a nice _usable_[1] language right now. I think that Mac
OS X JVM implementation is the best available at this time. It's fast,
and there's a native look and feel for graphical applications.
Unfortunately, Apple should now maintain 3 different API for 1
operating system. And this is an hard work. Even a big company like
Apple is actually frustrating developers. For example, there's no Java
binding for accessing the Rendezvous API in Java. And be aware that a
Java<->Objective-C bridge seems not really difficult to make (you can
look at JIGS in the GNUStep project).
BeOS isn't really C++. Important (IMHO) language features like
exceptions and templates are not used. This ease language agnotism, but
when doing bindings for a language such as Java, where exceptions are
really common with a pretty syntax you have to write a lot more code to
have a nicely integrated API. This is even harder when you want a nice
API for a really different[1] language.
I would prefer being forced to use C++ with a clean, used, maintained,
integrated API than using bad bindings.
Lunar.
[1] I'm found of functional programming language as Objective Caml or
Haskell. Theses languages are what I usually call nice. But for daily
applications, their API are not mature enough. But it's coming, look at
mldonkey for example.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (Darwin)
iD8DBQE+sF/hd1rcjNWgdWQRArjzAJ4oPGljMLEck7DqfLu1Ie2z9r9UugCfcgg8
1oOLVLH/DylzaMtY0XrwAB0=
=FmZH
-----END PGP SIGNATURE-----
Other related posts: