Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×

Simon Phipps on the Process of Opening Java 152

twofish writes "Simon Phipps, the chief open-source officer at Sun Microsystems, has reaffirmed Sun's commitment to Open Source in an interview with computerworld. The focus of the interview is Simon's efforts to fully open source Java. He points out that many problems need to be resolved before Java can be open sourced — ownership, legal, access, encumbrances and relationships with Java licensees. It took Sun a full five years to solve these issues with Solaris. However Simon predicts that it won't take anything near this amount of time to complete the task with Java. Of course, one of the other concerns for OS Java is the resulting incompatible versions and breaking of the Java WORA model (Gosling himself has always been particularly concerned about incompatible forks resulting in the introduction of an open source version of Java) and this opens up additional problems for the open source Java model."
This discussion has been archived. No new comments can be posted.

Simon Phipps on the Process of Opening Java

Comments Filter:
  • Quit the talking (Score:4, Interesting)

    by Alphager ( 957739 ) on Monday July 24, 2006 @02:11PM (#15771175) Homepage Journal
    or at least talk about some facts. All we hear from Sun is blabla about how they will open-source parts of Java in one or two years. What i want to know: -Which parts of Java? -WHICH LICENSE ?
  • by IflyRC ( 956454 ) on Monday July 24, 2006 @02:25PM (#15771282)
    I wonder at times if Sun really messed up by challenging Microsoft. If Sun had allowed J# to continue as it was the java runtime updates would more than likely be included in every windows update package.
  • by Andy Dodd ( 701 ) <atd7NO@SPAMcornell.edu> on Monday July 24, 2006 @02:31PM (#15771320) Homepage
    In my experience, the WORA model was broken from the beginning.

    The majority of "interesting" Java applications I've seen were restricted to a single platform for various reasons, mostly because they apparently (somehow) were making platform-specific system calls. (I don't know the exact details of this, all I DO know is that there are plenty of Java applications out there that are restricted to a single platform for whatever reason. I may be wrong about the reasons, but the fact is that WORA failed on the desktop)

    What about WORA for J2ME (i.e. on mobile devices)? The situation seems even worse. If you go to the download site for nearly any Java game designed for mobile phones, they will list different downloads for every model of phone they support, with varying filesizes. Not a single Java application designed for other phones has worked with the JVM available for PalmOS 5 devices such as my Treo 650.

    If WORA had ever actually worked, I'd accept Java's unwillingness to break it. Unfortunately for that excuse, it's hard to break something that is already broken.
  • by CherniyVolk ( 513591 ) on Monday July 24, 2006 @02:47PM (#15771423)

    Please.... someone, tell me why there needs to be an "officer"--much less a "cheif"--within a corporate environment. Aside from convention, what practical use would such a high paying position render? Management? Bah, the realities of management... is a given with shuttles exploding on international television and multi-billion dollar corporations such as Enron, to the everyday corporate life of meaningless and unproductive meetings setting deadlines, project goals and planning... it's all crap, and never useful.

    But, even if it's "management"... it's interesting that a corporation would feel the need for such heirarchy to "manage" any aspect of a system which itself, has no such structure.
  • by Anonymous Coward on Monday July 24, 2006 @02:48PM (#15771437)
    There are times when you'll need to install two different versions of Sun' JRE to be able to run two different applications, because Sun did something to break backwards compatibility. (Something to do with "endorsed libraries" - essentially, Java's version of DLL Hell, where they made incompatible changes with their libraries that broke application's libraries. I'm not going to pretend to be an expert, the bottom line is that fixing it involved running two different JREs for two different applications.)

    When you can't get applications to run on the same version of the Sun JRE *on the same computer* it's fairly safe to say that WORA has never been achieved.

    Another good hint is when developers have to "port" their application from their own desktop to work properly on the test server. "WORA" was at best a dream of how code should work rather than a reality.

    (Although I've never had a problem getting Perl, Python, or PHP scripts working on different OSes. In fact, the only environment I've ever had massive problems getting to run on different systems, even when running the same OS, was Java.)
  • by jilles ( 20976 ) on Monday July 24, 2006 @03:28PM (#15771720) Homepage
    I don't know about your definition of interesting but most of the java stuff I work with on a daily basis works unmodified on the three big desktop platforms (and probably everything else that runs java 1.5) and does so for the ten or so years I've been developing Java. This stuff combined is probably several million lines of code. Also all of the stuff I write in Java is 100% crossplatform, barring the odd jdk bug that somehow fell through the 60000 or so unit tests they unleash on the jdk nowadays (just a disclaimer, can't recall ever encountering one). In my previous company we developed on windows, had staging servers running linux and deployed more or less blindly to our customer sites running windows 2000, 2003, various flavours of linux and even some sun machines. Worked every time. Portability was never an issue. Not even having to test for portability issues is a huge time and cost saver.

    A good example of a portable J2ME app is opera mini which exists in only two variants the both of which work across pretty much all java capable phones except maybe for the really crappy ones, such as your Palm based one (blame Palm, not Sun). J2ME is a modular specification which unfortunately leads to the interesting situation that the more of the modules your app uses the less portable it becomes. Pretty much all of the modules are optional and with MIDP 1.0 many vendors added loads of vendor specific APIs as well. Many applications written for that mixed bag of standard and non standard extensions are not portable.

    MIDP 2.0 mostly removes the need for vendor specific APIs (though many vendors still ship them). Upcoming MIDP 3.0 is even better apparently. of course many games need to make assumptions about device specifics (e.g. screen size, number of colours, keyboard layout) which unfortunately leads to many portability issues. These problems are hard to solve and currently J2ME seems the best solution the market has come up with. Most device specific binaries of J2ME apps merely include some minor modifications, optimizations and packaging. I agree that testing for all that is a major PITA for developers. If you have a better solution that works for non trivial applications across the thousands of different brands and types of mobile phones, get some venture capital and get rich!
  • by fmoliveira ( 979051 ) on Monday July 24, 2006 @04:55PM (#15772327)

    If J++ were created with an GPL-like opensouced java, it would be easy to port J++ to run in linux and firefox, which was the whole point of making J++ incompatible.

    It's not Microsoft trying to kill java like with J++. They want their java to continue being theirs. They dont want to give it away.

  • Re:Java is a toy (Score:1, Interesting)

    by Anonymous Coward on Monday July 24, 2006 @05:01PM (#15772357)
    Until then, it's a good language to teach to begining comp.sci students, and those too timid to program to the bare metal.


    No, it's not. It's a horrible language to teach to beginning students, and there are plenty of scripting languages to use for people who can't use low-level languages.

    The problem with Java is that there's too much crap you have to teach people before they can learn to use it. A good beginning language allows people to learn simple logical structures before moving on to data types and structures. When it comes to learning a language, the number of lines Hello World takes is a good metric to how much "glue code" you have to teach before a new learner can start to learn even the very basics.

    Java's Hello World:

    public class HelloWorld {
            public static void main(String[] args) {
                    System.out.println("Hello World.");
            }
    }


    Five lines, only one of which has to do with the task at hand (displaying the text "Hello world."). You have to show access modifiers, explain classes, potentially explain packages, and explain methods, all to get to Hello World.

    Python, on the other hand, takes just one:

    print "Hello World."

    Python allows you to slowly introduce concepts and build up to an understanding of data structures and other more complicated things. Python is a good language to start learning. (Some people disagree due to the indentation requirements for Python, but my feeling is forcing people to use proper indentation while learning probably helps in the long run and makes the code easier to read and understand.)

    Anyway, Java's a horrible language to teach new CS students, although unfortunately most colleges do anyway. But they shouldn't. Start with a scripting language to teach fundamentals, then move to C to teach more complicated tasks. Move to Java only when getting ready to prepare students for common "real world" tasks.
  • by Dolda2000 ( 759023 ) <fredrik@dolda200 0 . c om> on Monday July 24, 2006 @09:47PM (#15773480) Homepage
    I agree with the OP in sticking to C, Python and Perl, and it is for exactly some of the reasons that you listed. Java is, indeed, adequate for just about every programming task. For almost any programming task, however, there will be a language which is a perfect fit, which makes Java, in its adequateness, inferior for that particular task. I am lazy (as programmers should be), so I really dislike the wordieness of which you speak. I do work as a Java developer, and I have felt very hindered by the language in almost anything I do. Quite often I encounter subproblems that take 10+ lines in Java, which could be solved in a single, small and elegant s-expr in Scheme, or a single line of Perl. It is also quite cumbersome to do serious data structure mangling in Java, considering that you either have to define an entire class just to do simple things, or do so much type casting with the java.util structures that half of the code will just be type casts (and it isn't made any better by the facts that type names in Java tend to be very long and that the java.util collections can't store primitive data types).

    I do find Java a good fit for a certain class of programming tasks -- namely those which require the software to run on a diversity of platforms. In that regard, I don't think anything can beat Java. If only Windows shipped with a good JRE...

    However, I do disagree with some of your points. For example, no matter how good Swing is for programming, it will always suck since it renders widgets itself. Even though it has pluggable look-and-feel, it isn't possible to always make it look like a native application (try to write a look-and-feel for "the currently selected GTK2 theme", for example...). Also, even though Java's library support may be good, it quite much sucks that it is impossible to do OS-specific calls. I realize that that is because of the WORA principle, but it quite much sucks that it is impossible to, for instance, write Unix programs that use setuid in Java. I cannot imagine that it would hurt to add OS-specific calls for programs that just don't care about being OS-independent (especially not if they were added in seperate packages, like os.posix or os.win32, so that they won't be confused with OS-independent classes), right? By the way -- yes, I know about JNI and, no, I don't think it counts.

    Basically, I think that the JVM and the class library are pretty nice (not perfect by a long shot, however), but the Java language itself just sucks. I have often considered making an alternative language that compiles to Java class files.

  • by espressojim ( 224775 ) <eris@NOsPam.tarogue.net> on Monday July 24, 2006 @11:32PM (#15773769)
    I haven't had to cast an object since I started using java 1.5 18 months ago. Generics, look into them. Also, you can put primitives into collections (via autoboxing).

    Java 1.5 made the language a LOT nicer and more expressive.
  • by chromatic ( 9471 ) on Tuesday July 25, 2006 @01:42AM (#15774124) Homepage
    Even then, how long has Perl6 been in development? "It's ready when it's ready" is not good enough to much of the corporate world.

    The corporate world can deal with it, or it can fund development. As a multi-year volunteer on Perl 6 design and implementation, I can proudly say that the corporate world's opinion doesn't matter unless it's willing to do something about it.

  • by LizardKing ( 5245 ) on Tuesday July 25, 2006 @04:28AM (#15774592)

    sure, which is only slightly different from the current truth: "write once, debug everywhere"

    It's not that I disbelieve you, but could you give me examples where you've needed to do something platform specific with code written for J2SE or J2EE? I have written several very large Java apps (both standalone and web applications) but never had issues with running the resulting code on different platforms. Heck, the last system I worked on ran out of the box on Solaris, Windows, Linux and NetBSD. The only time I've run into platform specific issues is with handheld devices running a third party JVM. I do keep on seeing these complaints about "write once, debug anywhere", but never had an opportunity to find out why.

Top Ten Things Overheard At The ANSI C Draft Committee Meetings: (5) All right, who's the wiseguy who stuck this trigraph stuff in here?

Working...