The Source for Java Technology Collaboration
User: Password:



Ted Kosan

Ted Kosan's Blog

Java's Telemetry Wave Wipeout ( And A Shocking First Java Program )

Posted by tkosan on March 13, 2007 at 05:28 PM | Comments (5)

In my last blog I discussed the next big wave that is washing across the Internet, which Sun's CTO Greg Papadopoulos calls the Telemetry Wave. I indicated that the Java community has a problem with respect to telemetry because a completely separate community is in control of the devices that allow the Internet to access the physical world. This community consists of the various microcontroller developer communities and almost no microcontrollers that are used to monitor and control the physical world are programmed in Java.

I also indicated that I had a shocking story to tell which is related to this problem and here it is.

Beginning Java for PIC developers: Take 1

One of the few people in the world that is a member of both the Java community and the microcontroller community is James Caska who owns a company called muvium. James is an expert in PIC microcontrollers and he has created software that allows Java to run on them. This is an amazing accomplishment considering the limited amount of resources these microcontrollers have.

A few years ago, James put together a presentation on muvium for the annual PIC developer's conference. The first part of the presentation contained an introduction to Java for beginners because almost no PIC developers know how to program in Java. The "Java for beginners" part of the presentation was very well done and I think that most Java developers who saw this version of the presentation would agree.

Even Microchip liked the presentation when James showed it to them but they indicated that most of their developers had never been exposed to object oriented programming before and that they would not understand the coding examples. James was asked if he would rework the presentation so it could be better understood by the typical PIC developer.

Beginning Java for PIC developers: Take 2

I have already indicated that what I am about to show to you is shocking. You may think that I have used the word "shocking" in order to draw more people to my blog, but I was truly shocked by the following information when I first saw it and I still am.

If you think that you have seen almost every approach to a "First Java Program" that has ever been created, I am almost certain you are wrong :-)

Here is how typical PIC microcontroller developers need to see their first Java program:

MUV-816-1b.png

and here is a slightly more complete version from later in the presentation:

MUV-816-2b.png

Do you think the PIC developers who attended this presentation obtained a good understanding of what Java was and how enormously powerful it could be? Beyond this, do you think that the typical embedded programmer and the typical Java programmer would have enough in common to even communicate effectively with each other?

The above code examples show why Embedded Java ( the kind that is used to monitor and control the physical world ) has never taken off and will not take off anytime in the near future. Some of us in the Embedded Java community have been trying to tell Sun and others in the overall Java community about this problem for years, but almost nobody seems to get it.

The problem has been ignored up to this point because Java has done very well on servers, cell phones and some other places. Therefore, letting the embedded market slip away has caused the overall Java community very little pain.

But now that the Telemetry Internet wave has started to build, everyone is beginning to see the huge, lucrative opportunity that is associated with it. Telemetry is the first technology which allows the Internet touch the physical world on a wide scale and, in theory, Java should own a significant portion of the Telemetry market. However, the reality of the situation is that a completely separate community controls the Internet's ability to access the physical world. Not only does this community not understand Java, most of its members do not even have enough in common with typical Java developers to effectively communicate with them.

Unless the Java community initiates strategies ASAP to overcome hurdles like this that are blocking its access to the physical world, it risks missing its change to take advantage of the lucrative market that the Telemetry wave is providing.

On a positive note, some of us Embedded Java developers have been working to find solutions to these problems for years. In my next blog, I am going to describe some solutions to these problems that I have been working on ( James has also been working on various solutions and you can visit his site to see what he has created ).

For those of you who would like to see a preview of one solution I have been working on, you can burn the .iso image that is on this site ( https://jdos.dev.java.net ) onto a CD and boot a PC with it :-)

Ted Kosan
tkosan@dev.java.net

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

  • I remember doing some work on an embedded board that ran a JVM back in college (2000). I think it was called the TINI. It was basically a serial port + Ethernet + jvm. It was pretty much built to make anything network accessible. Is this the kind of thing you are talking about? Whats up with the raw bytecode?

    Posted by: aberrant on March 14, 2007 at 08:09 AM

  • have a look at http://jstamp.com/ and http://ajile.com/.

    the JStamp is a RealTime Java product with an Ajile CPU that uses Java bytecodes as its native instruction set.

    Posted by: naikrovek on March 14, 2007 at 10:57 AM

  • I recently started playing around with PIC programming and was dismayed by the lack of Java in this space - Ironic given the origins of the Java language.

    A random, related note:
    At first glance one thing that struck me was the lack of understanding amoungst chip makers (e.g. Microchip) of the concept of "commoditizing your complements" - they want you to pay for the development environment *and* the chips.

    It seems to me that if a chip maker made the software toolchain (their product's complement) free and well supported, they'd increase the demand for their real cash cow, the chips themselves.

    -Brendan


    Posted by: brendanh on March 14, 2007 at 03:49 PM

  • aberrant,

    TINI is an excellent example of an Embedded Java device. I was one of the first members of the TINI user's list when TINI came out in 1999 and this was where I started to notice how difficult it was for traditional embedded systems programmers to understand Java.

    I thought the problem was that these people just needed an introduction to Java that was tailored to embedded systems developers, so I created a free online course for the members of the TINI list and developed these materials for it ( Java course )

    This turned out not to be the problem :-) The problem is that most embedded developers spend so much time at the concrete levels of programming that they have a very difficult time dealing the significant amount of abstraction that Java has. The reason that Microchip had James focus his presentation on Java assembly language is that they considered that to be more concrete than normal Java.

    Posted by: tkosan on March 14, 2007 at 08:33 PM

  • Many years ago I used a language called PL360. It was an assembly language that had a syntax similar to Pascal. Not too surprisingly, it was authored by Niklaus Wirth. He showed that it was possible to write an assembler whose syntax was more of modern language instead of just alphabetic binary. Perhaps such a half-step would be helpful for embedded developers. After all, the capabilities of their controllers are probably similar to an IBM 360.

    Posted by: mcarney on March 15, 2007 at 07:52 AM



Only logged in users may post comments. Login Here.


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