wood burning stoves*
The moose likes Java in General and the fly likes Q to H.Schildt: Tiger approached from design perspective Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Java in General
Bookmark "Q to H.Schildt: Tiger approached from design perspective" Watch "Q to H.Schildt: Tiger approached from design perspective" New topic
Author

Q to H.Schildt: Tiger approached from design perspective

Gian Franco
blacksmith
Ranch Hand

Joined: Dec 16, 2003
Posts: 977
Hi,

IMHO it looks like Java Tiger is converging in
order to comply to the concepts and principles
currently governing the UML language.

In your opinion, is it correct to say that not
only the new features are a technical enhancement,
but are a great aid in resolving a sometimes
convoluted transition from design to implementation?

Cheers,

Gian
[ March 17, 2005: Message edited by: Gian Franco Casula ]

"Eppur si muove!"
Herb Schildt
Author
Ranch Hand

Joined: Oct 01, 2003
Posts: 239
Gian,

I think that you make a good point.

In the larger view, Java is evolving because it has too. The world of programming does not stand still. If Java did not evolve, it would have become out-dated and outmoded. Basically, in the world of computer programming languages its "evolve or die!"

Taking this theme one level deeper, the history of computer language development is defined by two main processes:

1. Adaptation to changing environments and users.
2. Implementation of refinements and improvements in the art of programming.

The many new features in J2SE 5 reflect the effect of both of these processes. Take metadata (annotations) for example. Metadata echoes aspects of a larger trend in programming in which the programmer declares an action, but does not provide all of the code. Thus, it is (in part) a response to a refinement/improvement in programming.

Now consider the new Concurrency API. It does not represent an innovation, because things like semaphores, latches, and locks have been around a long time. It does, however, reflect the fact that Java is being used a bit differently than was anticipated when its original threading model was devised.

It is Java's culture of innovation and change that has kept it at the forefront of computer language development for a decade. As long as this culture continues to exits, Java will continue to be strong.


For my latest books on Java, including my Java Programming Cookbook, see HerbSchildt.com
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
I agree that Tiger is a big step forward, but I strongly suspect that has a lot to do with competitive pressure due to C#. Actually many of the new features are also present in C#, in one form or another.


The many new features in J2SE 5 reflect the effect of both of these processes. Take metadata (annotations) for example. Metadata echoes aspects of a larger trend in programming in which the programmer declares an action, but does not provide all of the code. Thus, it is (in part) a response to a refinement/improvement in programming.


But are those features really a new thing in the industry? Are they really innovative?


Now consider the new Concurrency API. It does not represent an innovation, because things like semaphores, latches, and locks have been around a long time. It does, however, reflect the fact that Java is being used a bit differently than was anticipated when its original threading model was devised.


In fact the API isn't new either - it has been around as a non-official library since years, as far as I know. It took Sun quite some time to incorporate it into Java.

As an aside, the longer I'm working with Java, the more I think it really would help to open source it. There are so many feature requests/bug reports in the bug database for which the fix would be trivial, but for some reason Sun doesn't take the time to tackle them...


The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Herb Schildt
Author
Ranch Hand

Joined: Oct 01, 2003
Posts: 239
Ilja,

Good thoughts. But, I would respond with the following.

1. C# is a reaction to (and response to) Java, not the other way around. C# has several nice features, including some things that it does a bit better than Java. (And, for the record, I personally like C#.) However, C# is only now adding generics, for example. In the larger historical sense, it would be difficult to make the case that Java is following C#, since C# was created years after the introduction of Java! Again, its C# that is following Java.

2. Regarding your comment relative to the Concurrency API. There is a big difference between the availability of a third-party library and something that is officially part of the language. It is the addition of the Concurrency API to the core Java API makes it possible to use these features in fully portable programs that don't rely on third-party add-ons.

3. Regarding metadata. Sure, features similar to annotations have been around a long time. However, only when such a feature is incorporated into a language as successfull and widely used as Java does it gain mainstream status and acceptability. It is the addition of features such as metadata to Java that makes the event important. (Yes, C# has attributes, but C# is currently not even close to being as widely used as Java. Changes to Java significantly impact computer language development because of the large number of programmers who use it. When a change is made to Java, it affects millions of programmers! Java moves the programming world forward.)
[ March 18, 2005: Message edited by: Herb Schildt ]
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Well, of course C# is Microsofts reaction to Java, no doubt!

On the other hand, it already had some advanced features such as enums, enhanced for loop, autoboxing etc. pp. - and I somehow doubt that those features would all have made it into Tiger without the advent of C#.

Regarding your other points, I agree. My point was just that those features aren't that innovative at all, that Sun actually is rather conservative in regards to new language features. That's not to say that it is necessarily a bad strategy, and it certainly doesn't play down that it's really nice to now have those features build in into Java...
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Q to H.Schildt: Tiger approached from design perspective