Forgot your password?
typodupeerror

Comment Re:"many developers are so intrigued" (Score 3, Insightful) 434

The other question is what portability really means.

Many people think that portability means "your code will run on multiple platforms".

With Java, I feel it is more a case of "your code will run on the Java platform".

The distinction is that, in the latter case, a lot of the facilities that have been implemented for existing platforms have to be re-implemented for the new platform. I feel a lot of effort has gone into creating things for Java that already existed outside it.

By contrast, many other programming languages attempt to fit in and play nice with whatever platform they end up being deployed on. Where Java has your programs run inside a virtual machine which is more or less the same across native platforms, other languages have you create programs that are just like the programs your native platform knows how to run. Where Java has people build functionality on the facilities provided by the virtual machine, other languages have you build functionality on the facilities provided by the native platform.

The approaches are different, and lead to a vastly different feel both during application development and when using an application developed using one approach or the other. Both approaches have their pros and cons.

Java's approach has the advantage that, absent deficiencies in the specification and bugs in the implementation, the Java platform is the same everywhere, regardless of native platform. The disadvantage is that you lose access to the native platform's facilities that are not also in the virtual platform. It also means that your software is almost certain to not really fit in with the native platform.

The other approach leaves you with access to the native platform's facilities, which is a double-edged sword. The disadvantage is that many of those will not be available on all platforms, and code that uses them will therefore be non-portable. The advantage is that you can make your software do anything that would normally be expected of an application on the native platform. Software developed using this approach will thus tend to integrate better with the native platform, and feel less foreign to users.

Slashdot Top Deals

One can't proceed from the informal to the formal by formal means.

Working...