The Source for Java Technology Collaboration
User: Password:



Editor's Daily Blog

Dirty World

Posted by invalidname on January 08, 2008 at 07:53 AM | Comments (3)

How Java's faring in the rough-and-tumble

There were a few interesting items in this morning's news that aren't germane enough to the java.net community to be on the front page, but might bear a little discussion here in the editor's blog.

Daring Fireball had a link to the Financial Times story Paramount in HD DVD blow (free registration required), which suggests that the Java-powered Blu-Ray format is in the endgame of its format war with HD-DVD and will soon be able to finish it off:

Paramount is poised to drop its support of HD DVD after Warner Brothers' recent backing of Sony's Blu-ray technology, in a move that will sound the death knell of HD DVD and bring the home entertainment format war to a definitive end.

Many Java developers have been cheering for Blu-Ray in this battle, and will presumably be pleased with Blu-Ray's apparent victory. After all, Blu-Ray was front and center at JavaOne 2007's interactive TV day, and we've had an active Blu-Ray Disc Java forum for some time, along with BD-J-oriented projects, like Blu-Dahlia. But actual BD-J development is difficult to get started with, since licensing the API is prohibitively expensive for independent developers. Supposedly, this is an issue that's being worked on, as I covered in a blog about the JavaOne Blu-Ray BoF:

One comment that Sun's Bill Foote made indicated that there was disagreement within the Blu-Ray Disc Association as to how to approach non-licensee developers. The current situation, with tools and specs only available to licensees (basically just the studios, as licensing costs are extraordinary), leaves the format with too few programmers to be viable, and while participants like Sun would clearly prefer to get information out to independent developers, this apparently doesn't sit well with some BDA members, even though Foote reports agreement that some kind of overture to indie developers needs to be made.

Well, it's been over seven months since JavaOne, and it doesn't look like there's been any kind of public announcement on this front. We also have yet to see Blu-Ray living up to some of the functionality that BD-J promises. While the vision documents and white papers include things like chat-enabled group viewings of Blu-Ray video and downloadable enhanced content, we're still mostly seeing BD-J used for fancier menus and very simple games. If Blu-Ray is to be a Java success story, it'll help when Java is put to more sophisticated use, and proves it can do what other technologies can't.

The other item I noticed today is sure to bring hackles from most of us, posted on Slashdot with the arguably flame-baiting title Professors Slam Java As "Damaging" To Students. It links to a paper by two New York University professors, Computer Science Education: Where Are the Software Engineers of Tomorrow? Here's what they're arguing:

As faculty members at New York University for decades, we have regretted the introduction of Java as a first language of instruction for most computer science majors. We have seen how this choice has weakened the formation of our students, as reflected in their performance in systems and architecture courses. As founders of a company that specializes in Ada programming tools for mission-critical systems, we find it harder to recruit qualified applicants who have the right foundational skills. We want to advocate a more rigorous formation, in which formal methods are introduced early on, and programming languages play a central role in CS education.

In the course of the article, they make several familiar arguments, including bemoaning a lessened focus on mathematics and other formal approaches to computer science (some Slashdot readers have noted the blurred distinction between "computer science" and "software engineering" in the paper), as well as concerns about using Java as a first language. Here's the money quote:

What we observed at New York University is that the Java programming courses did not prepare our students for the first course in systems, much less for more advanced ones. Students found it hard to write programs that did not have a graphic interface, had no feeling for the relationship between the source program and what the hardware would actually do, and (most damaging) did not understand the semantics of pointers at all, which made the use of C in systems programming very challenging.

Well, maybe, but 20 or 30 years ago, couldn't you have made the same complaint about programmers who learned on BASIC and were challenged without a graphic interface or who couldn't handle pointers at first? Don't we see exactly the same problems with Visual Basic programmers moving to any of the curly-brace languages? Don't you suppose the kids doing JavaScript browser hacks, or developing Flash apps with ActionScript, aren't also going to face exactly the same problems? Pointers are always a big hill to climb, no matter what language you start with. Everyone's got to start somewhere, and unless we're seriously going to dictate C as the first language, it's probably going to be something more approachable, and something that generates visible results. Seriously, beginners don't write device drivers.

So that I don't monopolize all the fun, here's one more quote to think over:

The irresistible beauty of programming consists in the reduction of complex formal processes to a very small set of primitive operations. Java, instead of exposing this beauty, encourages the programmer to approach problem-solving like a plumber in a hardware store: by rummaging through a multitude of drawers (i.e. packages) we will end up finding some gadget (i.e. class) that does roughly what we want. How it does it is not interesting!

Care to comment on that, or the other items presented in today's blog? Please contribute some feedback at the bottom of the page.


In Java Today, Kelly O'Hair considers the challenges of building the JDK on different platforms and lists the pieces you'll need in his blog Building and Porting the OpenJDK: A Shopping Cart. "What is the difference between Building the OpenJDK and Porting it? Certainly porting requires you to build it, but porting can mean much more, and with different levels of porting effort. A different operating system or hardware architecture is certainly a major porting effort. But a different C++ compiler could also be a porting effort, probably to a lesser degree, but don't underestimate it."

The Mobile & Embedded Community home page is linking to Damith C. Rajapakse's paper Device Fragmentation of Mobile Applications. "Device fragmentation is having to produce multiple versions of an application to run on multiple devices. It increases the required effort in almost all aspects of software life cycle. This article analyzes various aspects of device fragmentation, such as the reasons behind it, the current state of the art in tackling it, and the directions we can expect it to evolve in the future."

"Many of today's applications require dynamic capabilities, such as enabling users to supply an abstract form of computation that extends an application's static capabilities. The javax.tools package, added to Java Platform, Standard Edition 6 (Java SE) as a standard API for compiling Java source, is a superb way to achieve this goal." In the article Create Dynamic Applications with javax.tools, David Biesack provides an overview of the major classes in the package, demonstrates how to use them to create a façade for compiling Java source from Java Strings instead of files, and then uses this façade to build an interactive plotting application.


In today's Weblogs, Evan Summers considers the argument that The IDE is the language. "Language changes seem to be a contentious topic these days. Personally i want the Java language, libraries et al, to evolve to keep pace with the competition, and not become a staid C or COBOL. A possible different tack for a similar albeit personal result, is for IDE's to "enhance" views of the language independently of the language itself."

Carol McDonald walks through an extensive example in Sample Application using JSF, Spring 2.5, and Java Persistence APIs. "I updated my Sample Application using JSF, Spring, and JPA to use the Spring 2.5 framework which is available with Netbeans 6 and Glassfish v2."

Giovani Salvador reacts to Bruce Eckel's much-discussed Java: Evolutionary Dead End in Are we becoming Java Dinosaurs? "When a developer starts to become a dinosaur for a programming language? Is Java in the process of making us dinosaurs?"


In today's Forums, candlejack needs a way to Import Remote JNDI Trees. "I wonder if there is a possibility to import a JNDI tree into another. More specific, if there is an option to make all JNDI names in an application server available in the JNDI namespace of another server, so that an application running on the latter can access the JNDI resources of the former by simply doing a local lookup/injection (maybe in combination with a prefix to avoid ambiguity)."

Joshua Marinacci reveals some SwingX design history in Re: thinkin about implementing a JXMultiSlider & could use some design advice. "Yes, the JXMultislider needs to be rethought. I originally wrote it to support the gradient picker (which is why the thumbs can cross each other). Since I couldn't think of any uses for it beyond a gradient picker I stopped development and moved on to other things. My advice to you is to first brainstorm every possible use case for the new JXMultiSlider and post it to the list to get more contributions. Only then will have an idea of what the API should look like."

Finally, kbr explains how to use native code in applets, in the post Re: Using JNI in applets: impossible due to classloader limitations? "The jar file containing the native libraries needs to be signed with the same signature as the jar archive which holds the JNLPAppletLauncher. In practice, this means you will need to un-jar, re-jar and re-sign the JNLPAppletLauncher, as the one we distribute is signed by Sun and you don't have access to Sun's code signing certificate."


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.




Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • Regarding "Professors Slam Java As "Damaging" To Students.", I find it rather odd that the author blames Java for the fact that students do poorly on the low-level concepts. That is entirely the point of higher-level languages/concepts/abstractions, removing you from these lower-level assumptions/details.

    Trying to teach someone about registers using Java is obviously going to be difficult. Trying to teach someone about OOP in assembly is obviously going to be difficult. This isn't new information, these professors should understand this!

    Abstraction is essential to software engineering. Instead of blaming Java, I would blame the courses/tract at the university.

    Now that Java is open source, professors should open up the Java VM code and learn system programming from that.

    Posted by: atehrani on January 08, 2008 at 06:36 PM

  • Blu-Ray -- I did't know it was "java powered". Now I like it a lot more!

    Java and Students: I think its cool that students are learning Java and skipping all that compiler design and "architecture" stuff. The reason is that I learned my skills as a programmer purely with java and .net (and vb6 and dbase and...well, now you can guess how old I am).

    I took one course in undergraduate in Numeric Analysis and Data Processing -- it was pure algorithms and understanding the limits of representing numbers in computers.

    I did half of an Information Systems masters degree.

    The rest is books and magazines.

    But, I kind of feel that adding it all up, its probably what a mainstream modern "computer science degree" might consist of.

    Posted by: jbailo on January 09, 2008 at 12:34 AM

  • Can we spare a few minutes(/hours) trying to count the number of times someone has proclaimed Java to be "dead","in its twilight days","on the decline" and so forth? A few points merit further consideration:


    1)Is is a pure coincidence that two professors working for adacore came up with these statements against Java?

    2)Any surprise that it came on slashdot (which is replete with anti-[Solaris/Java/Sun] trolls)?

    3)Java wasn't built to solve world hunger or to teach device driver programming to sophomores.

    4)Its is not a substitute for C. It cannot teach you pointer arithmetic. C should still be taught before Java.

    5)There is no inherent problem with the design of the Java language and runtime as much as there is with the way they're taught.
    6)A course on Object orientation should accompany a Java programming course.

    7)Dispensing with teaching the language structure and the workings of the VM, and instead focusing on struts/jsp/servlet/hibernate at colleges in the name of "practical education" is not a very sensible teaching method, to say the least. (Breaking news: Java != JSP)

    8)Breaking news again: Scala binds to the JVM. So, the Java platform atleast isn't a fossil yet.

    9)A few "luminaries" can abandon Java and do whatever fetches them more money for now. Nothing stopping them. We live in a free world.
    Extrapolating that to the demise of Java is naive, to say the least.

    In a few years/months/weeks/days, we will see more requiems sung for Java while (strangely?) Java continues to proliferate.

    Posted by: bharathch on January 09, 2008 at 08:02 AM



Only logged in users may post comments. Login Here.


Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds