on 6/26/03 12:01 PM Christopher Oliver wrote:

> Although I think Stefano's observation is correct that Sun's codebase is 
> a primary reason for Java "running everywhere", nevertheless it is an 
> undeniable reality that in my opinion makes Java development _much_ more 
> pleasant compared to C and C++. In the past I've had to write C and C++ 
> code that ran on a multitude of Unix platforms, as well as embedded 
> real-time operating systems, and Windows. You spend much of your time 
> dealing with "portation" issues: writing #ifdef's and macros to hide 
> platform differences and work around platform compiler bugs and 
> limitations. That isn't fun, believe me. Building and testing on 
> multiple platforms is also very time-consuming and tedious.

Totally true. I think all of us have been there and experienced that.

But my point is slightly different: the java metaphore for achiving WORA
is 'common denominator abstraction' which, many times, forces
reinvention of the wheel.

I used to believe this was the case, but after SWT, I've completely
changed my mind and I think that 'behavioral abstraction' would be a
much better pattern even if the implementation of the API normally
requires much more work and the system using the API has to check for
existance of particular behavioral properties and adjust to that.

Also note that behavioral abstraction is an extension of common
denominator abstraction, just requires to stop thinking that having
system specific properties that are not available everywhere is a bad
thing. And *this*, for java programmers, is a problem which doesn't
exist on any other software programming culture that I know of.

> Another aspect not always noticed is the speed of the compiler. Because 
> Java compilers don't perform any compile-time optimizations, they are 
> significantly faster than C++ compilers. This is very important when 
> dealing with very large codebases.
> 
> Of course, Python doesn't get compiled at all, and I've heard it argued 
> that interpreted languages will be used exclusively in the future with 
> very large code bases for that very reason.

hmmm, compilation is a highly parallelizable task so I don't really buy
this as a valid argument against compiled languages.

-- 
Stefano.


Reply via email to