Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Java Programming

Interview with James Gosling 194

mypointofview wrote to us with an interesting interview with James Gosling [?] . It's an interesting interview format, similar to Slashdot's style. Good questions about Java, but also the problems of getting Java and Linux to *ahem* play nicely with each other.
This discussion has been archived. No new comments can be posted.

Interview with James Gosling

Comments Filter:
  • Well, think of it this way. There are two different "distros" of the win32 operating system, NT and 9x. in the linux world there are many more. You would need to support at least Debian, Red-Hat, S.u.S.e, and TurboLinux. and any other homebrewed distros out there. You couldn't really be sure what things were going to be like.
    (note that I'm only using the 'distro' term for win32 metaphorically. NT and 9x are different operating systems with different kernels. but this matches more closely the troubles with developing applications. I *think*)

    The other, and much more obvious reason is that without windows support, there would be almost no point in trying to do Java at all. After all windows still has 90% of the desktop market. At the time linux was much, much less of an issue. Now that linux has grown, sun will probably put much more effort into getting it to work. (remember, sun doesn't even support the Mac itself)
    "Subtle mind control? Why do all these HTML buttons say 'Submit' ?"
  • When CPUs double in speed does the amount of GUI redrawing automatically double as well? The vast majority of the time for real apps (that is, exclusing most games, MPEG players, etc) very little is actually being redrawn. If we assume that Java GUIs are at least reasonably close to a constant percentage slower than C/C++ GUIs then Moore's Law helps Java just as much as anything else.
  • They can't officially call it Java due to trademark law, but they nevertheless use their bastardized, proprietary version as if it were the real thing, with the all-too-well-known Javascript errors, hung browsers, and crashed PC's as the inevitable result. As for me, I've banned Wintel from my house. My SPARCstation has been up and running for 271 days without so much as a hiccup.
  • Anyone know when we can expect 1.3 on Linux? Hotspot on Linux?
  • by Anonymous Coward
    What I find interesting is no one is considering The fundamental problems with java on linux. First the threads issue. As smp becomes more and more important robust threading begins to becomes a very important issue. I read and interesting article on threads in the solaris kernel and realized that Java must someday have the same abilities to do spinlock for example. Thus on one side the java threading apis need to be updated on on the other side it looks like over the long term the Kernel needs to be designed to specially support the demands of the JVM. Anyone who's launched say 5 jvm's at a time knows the current JVM do not scale in the process model. Interestingly the AS400 and Netware JVM designers recognized this and moved the JVM into the kernel. This simple change made for very fast JVM's. At this point the issues of Thread scheduling become important. Different types of programs do require different thread scheduling for optimum performance from Real Time schedulers to round robin. Not only that but one of the biggest problems with writing portable java is that incorrect threading code is very sensitive to the scheduling algorithm. Thus the inability to change scheduling algorithms is one of the biggest blows to WORA and debugging threaded code in general. I've seen a huge number of apps which run fine on one platform freeze on another. Moving on to other JVM resource issues it quickly becomes apparent that although the JVM allows dynamically loaded code it provides no real means to manage the resources used by the dynamically loaded code. It doesn't manage file handles, threads, memory, sockets etc to prevent dynamically loaded code from freezing the JVM. On the client from for Java to provide the best graphical performance possible it must bypass the Widow System layer and run directly on a low level graphics Api's. The overhead of running advanced java gui code and a Native windowing system is simply not a viable long term solution. Eventually java must support the equivalent of a graphics hotspot compiler running directly on the hardware this will probably require new vector/graphics instructions in the bytecode. Suns MAJC processor is but the first move along this route. I used to buy into the Sun line that Java doesn't need and OS but now I realize that the JVM must be as stable as a Unix OS to be successful. This means again that the JVM and OS need to have tightly coupled resource management. Since you will in time need to write OS functionality into the JVM. Now I suspect that Sun has considered these issues since I've seen several reports that Sun will build java into Solaris as time goes on. Also interesting is Apples Mach OS is well suited for future java implementations which is probably why there committed to java over the long term. This may also be one reason why Sun is very interested in the opening of Windows Api's. It's rather interesting that Windows and Linux will become increasingly poor host OS's for the JVM of the future. And as I said before IBM has already moved java into the kernel for some of there OS's. If this is the future of java consider Java not only on Linux but also windows. In each case I don't see strong support for such tight integration between the JVM and the host operating system being possible. Any mention of integration of java into the linux kernel is met with incredibly strong and short sighted resistance. I don't think they realize that the JVM represents the first time that and Operating System has been written using a top down approach. If Sun is thinking this way and there is no reason there not than it becomes clear to me that Java/Linux support will never be a high priority for them since it will eventually require the impossible tight OS/JVM integration. The Linux crowd will never back such integration regardless of licensing issues simply because they reject the top down OS desing of java. Thus I think its rather obvious and saddening why Sun is not working to support the Linux platform. Mike
  • > Java is a great language for writing distributed apps but distributed apps must include the client, after all thats where the rubber hits the road. I urge sun to recommit to the client end.

    The good news is, they are. JDK 1.3 by default uses a new client VM, and my experience shows the client running about twice as fast as the 1.2 version. They're also putting a lot of work into optimizing Swing and improving deployment with locally cached applets and versioning in browsers.

    And it now runs in Mozilla as the native applet handler, with some pre-release caveats.
  • We know that Microsoft quite often creates needles hassles by trying to make things *user-friendly* beyond the level of sanity. They try to create the impression that you can achieve anything you want, if you just keep on pressing Ok.

    All of this leads to programs with "Ok" -and "Yes/No" message boxes, deeply inside the nested loops, potentially firing at you a cacaphonious series of nagging "Are you sure?", "There is unknown memory error!", "Are you really sure?".

    All of which tends to degenerate in an unstoppable diarrhea of focus-grabbing, noise-producing "You will not ignore me!", "I'm sure you need to know this NOW!"-kind of childish and irritating man-machine conversation with the user.

    Now, let's try Sun. Are they any better?

    Well, Sun seems even worse; they don't even wait until they get to the end-user. No, they even do this with the developers. Java is nothing more than a belittling, annoying, arrogant, and development tool, that nags you all the time with ridiculous rules that may be useful in some circumstances, but seldom necessary.

    For example, try to read from a resultset, somewhere in a jdbc data source. First, you will have to handle all the details of the driver manager, the driver, the versions of everything, specifying all details, or else it will insist on sending diarrhea of error messages in your face. You aren't finished with the previous problem, created purposely by Sun, or the diarrhea starts again: you didn't catch the potential exceptions for your jdbc connection! Now Sun forces you to do a try/catch, because in all other cases nothing will compile. Maybe your connection is perfectly valid. Maybe there will be no error, but still, you will and must write the code to catch this exception, or else, f*ck you!

    Look at Solaris. For example, I will never forget that textedit utility. When you close it, by crossing it out, it will nag you with something like:

    "Do you want to close and then save or do you want to save and then close?"

    Microsoft is already bad, but of one thing I'm sure: if ever, Sun will be several degrees worse!
  • Perl is faster than Java on Unix

    Any stats. How can I do fast image processing code in perl ? Have any graphic engines written in perl you like to show me ? How about a web server written in perl to compare against the java ones.

    Perl has much better text handling functionality(remember what the web is made of ? yeah! text!)

    Sure, perl does, perl is a scripting language !!! Scripting languages are made for that type of stuff. Full blown programming languages will always suck at text manglin (Ada, C, C++, Smalltalk, Pascal) compared to scripting languages (perl, awk , etc)

    Perl has a much greater base ...

    Nobody is ramming anything down my throat. I use whatever tool fits the job. For what I do , perl doesn't cut it. For what you do it does. Great !

    Please *blah* *blah* Sun stats

    Whatever. I think there are more J programmers than what you think, but the user base for a language doesn't mean anything. If it did, then you should be using Visual Basic instead of perl.
  • The point about GUI toolkits is well taken. I don't do that kind of programming. But it sure would be nice to have a good awt-less Java engine for our servers.

    But maybe this prospect does not appeal to Sun. ;-)

    As for glibc versions, they are essentially the same as new OS releases. All your favorite OSes have new releases that break something or other.

  • Uh? So why do they have a license as close as they could imagine (while still releasing code)? Why don't they make Java a true vendor independant standard?

    Besides, talk to me in perfect Spanish before daring to talk about my spelling of your language...

  • When Java first came about, I thought, gee, this is gonna be great. We'll get all programmers to code in Java. It's a sweet, well designed language to program with. All programs will be cross platform and even if many programmers are still using Windows, I'll be able to run all the latest software on my Linux boxes.

    Several years later, Java still runs like crap almost everywhere. When I see a description for a really cool program announced on Freshmeat, I go to download and find it's written in Java, then think, oh damn, it'll run like crap because Java will slow it down, waste memory, be a pain to get running, and probably crash once in a while as well, even if the actual code the author of the program did the best job coding as possible. Hell, snes9x does a better job of fast, stable, cross platform run time executation of non-native machine code, and that machine code wasn't even designed for this like Java byte code. Arg!

    Java is most definitely not the holy grail of software. Linux and open source software is. If Sun would have gotten their head out of their asses and release all of the JDK under GPL, Java might have had a fighting chance. Instead, I look on to the great C/C++ coming out of the GIMP, KDE, GNOME, Koffice etc projects making Linux have all the wonderful software programs available that I dreamed about back when Java came out.

  • 99% correct, the 1% being that Netscape still enjoys roughly 80% market share. Microsoft flaunting its incompetence, having a browser built into 90% of the world's operating systems but being used by 20% of the people...

    Imagine my delight a couple of months back when Netscape, AOL, and Sun crafted a partnership. And Microsoft couldn't even use this effectively in their antitrust lawsuit - they'd have to admit that Sun was suddenly positioned to beat them!

    Now add Sun's recent acquisition of Star Division, creators of Star Office, perhaps the first Unix-based home/office productivity package capable of rivaling Microsoft Office, and you have to believe that Bill Gates and his minions are genuinely afraid...
  • Well, the do make a small amount of money for licensing, $250,000 I believe. this isn't that much however, because there are only a few licenses. What Java does, is keep them in the news, and Screw Microsoft.

    I'm *glad* sun used the community source license on Java instead of the GPL, why? because if they didn't Microsoft could fork Java to there hearts content without fear of reprisal.

    If Microsoft made there own linux distro, no one would use it, but if they forked Java, there would probably be more people using there implementation then Sun's.

    Code inoperability is paramount to Java's success. In this case, code control is more important then code freedom.
    "Subtle mind control? Why do all these HTML buttons say 'Submit' ?"
  • by DonkPunch ( 30957 ) on Wednesday September 08, 1999 @04:42PM (#1694378) Homepage Journal
    Deja vu all over again -- the same interview was on javalobby [javalobby.org] earlier today and I just had to bite on the "incompatible Linux distribution" bait.

    I assume that the "incompatibilities" he describes were differences in kernels (2.0.x vs. 2.2.x) and libraries (libc/glibc). If that's the case, I would simply suggest writing for the most recent stable version. It is possible to upgrade kernel and libraries, as we all know. Admittedly, upgrading is a drag -- especially on known-to-be-rock-solid systems. Version control is a problem on every platform, though. Let me tell you about Windows and oleaut32.dll one of these days....

    While "Java vs. Linux" does not rank quite as high as "BSD vs. Linux" or "KDE vs. GNOME" on the flamewar meter, it is getting just as tired. More importantly, it is counterproductive to both sides. There is no reason to pick one or the other, either -- Linux works well as a development platform for Java. The only drawbacks right now are somewhat sluggish performance with some JVMs (I saw where IBM's alphaworks JVM actually scored pretty well on the Volano benchmark), and the annoying tendency to be 6-12 months behind the latest version (which may not be a problem if you like waiting for the bugs to shake out first).

    I'm going to walk into the flamepit now:

    The Java vs. C arguments are also silly. I like C, I use C, C is my friend. If I need to do system programming (OS-level, device drivers, etc.) or anything where speed is absolutely, positively the overriding concern, give me C.

    But there is also application development. Here, I want short development time, easy maintenance, and a whole lot of functionality already built in. In this case, Java starts looking really good.

    Insert tired "right tool for the right job" cliche here.

    The "Java will soon take over" hype from 4 years ago has turned into a huge burden for the language. There are just some languages that do what they do so well that there is no need to replace them with anything (Perl, for instance). Java does have the potential, though, to move into areas where there are still some gaps. I think that Java has tremendous potential in distributed applications, for example. This is also an area where I would like to see BSD and Linux start playing larger roles. The combination will work if the two sides can quit flaming each other long enough to get it done.

    Thanks for letting me get that off my chest. Back to work for me, now.

  • by Anonymous Coward on Wednesday September 08, 1999 @04:50PM (#1694379)
    Collection classes such as Set, List, and Map simply contain other objects. If Java had real generics collections could be typesafe without expensive runtime checks.

    Higher-order functions treat code as data. Functional languages such as Lisp [elwood.com] allow constructs like

    (remove-if (complement (function plusp))
    #(0 1 -1 2 -2))
    => #(1 2)
    a simple way to ask for just the positive numbers from a sequence. In detail, it takes a function which returns true if and only if its argument is positive, passes it to a higher-order function which produces a new function that does the opposite, and passes that as a test function to another higher-order function which returns a sequence of just the elements for which the test fails. Putting control structures like iterating into a HOF that takes another function telling it how to behave is very simple and powerful and quickly becomes second nature, and the alternative,
    (let ((args #(0 1 -1 2 -2))
    (result (make-array '(0) :adjustable t)))
    (dotimes (i (length args) result)
    (when (> (elt args i) 0)
    (vector-push-extend result (elt args i)))))
    now seems ridiculous to me in any language.

    (Caveat lector - this code is off the top of my head, and I can't test it at the moment. Yeah, I remember #'remove-if-not, but ANSI deprecated it and given #'complement you don't need it.)

  • Plus, there are implementions already under the GPL - notably Kaffe [kaffe.org]. The copyright holders also sell/license a commercial version through the company Transvirtual [transvirtual.com], and apparently have licensed it to Micros~1 in a deal involving some of their technology (like J/Direct).
  • by whydna ( 9312 )
    it would be nice to see java and linux working well together... java's kinda cool...
  • I don't have a particular problem with having Sun being a major driving force behind Java but only having one company calling the shots is somewhat dangerous(ie corporate ambitions are sometimes wrong :-) ). IMHO, Java should be ANSI-fied by a "standards committee".
  • Am I the only one who thinks "pretty close to open source" is like "a little bit pregnant"?
  • Um, opensourcing things like say, the jre or certain parts is probably what they meant when they said "close to opensource"
  • I develop in Java full time and have been doing so for over a year now.

    The biggest Java lie is Write Once Run Anywhere. While it is true that if you stick to the simplest subsets of Java - i.e., no GUI whatsoever and very little file IO - you can write code which will work on all platforms about 95% of the time.

    But as soon as you add the more sophisticated features of Java to your code (especially anything GUI-related) you will lose. Bigtime. Applets are the worst in this respect. To get any applet at all, except the very very simplest applet, to run on all browsers is a nightmare.

    The bulk of code that one writes in Java will work on all platforms, but one could do the same thing in C or C++ by having a system-independent set of code which relied on the services of a set of system-dependent object files. I think that with some foresight it would be just as easy to write a program in C or C++ using one of the cross-platform GUI toolkits and get it to work well on all platforms as it would be to write a Java program using AWT which worked on all platforms. And the C/C++ version would run faster, I don't care what *anyone* says about Java performance and how it's getting close to native code. I write and use Java every day and while in certain limited cases (usually CPU bound code that doesn't interact with the system very much) you can get decent performance, in general Java is pretty poor performance-wise.

    Sun in fact realized what a nightmare AWT is, so they essentially dropped it and moved onto Swing, where they try to minimize the number of system services they rely upon for GUI stuff. Swing itself unfortunately is kind of big and bloated, and is still just as buggy as the rest of Java, which is to say, very.

    I think that Java is a very elegant language in that it's simple, consistent, and easy to program. Unfortunately the ease of programming of Java is generally cancelled out by the difficulty of making Java work and work well on all supported platforms.

    My prediction is that Java will end up like Pascal - a great language for teaching programming concepts (especially object-oriented programming concepts) but generally impractical for "real-world" work.

  • It would be nice to see Java and Java working well together. Until the inventor (Sun) and the primary user (Microsoft) can agree on one form of Java that works everywhere, it will never live up to its billing as a true platform-independent language. Alas, a great idea once again falls victim to corporate politics and the almighty dollar.

    "Bring your Penguin into the Sun" -- Linux on SPARC forever
  • Another alternative available to allow parameterised classes is Ada95. Using the AppletMagic [appletmagic.com] compiler one can make JVM compatible byte code from Ada95 source - Ada95 being an ISO standard Pascal like 3GL with built-in OOP, multi-threading, hierarchical generics (templates), namespaces, exceptions etc. The GNU Ada95 Compiler (GNAT) is expected to include a JBC backend soon - see this [gnat.com]. Ada compilers are _so_ strict (trust me on this) that when translating Java language demos into the equivalent Ada95 for compilation with AppletMagic, the authors found some bugs that the Sun Java compiler didn't!
  • Why do we need parameterized types to do collection classes? I know type safety is important, but every language features is a help in some ways and a hindrance in others, and I see parameterized types as more of a hindrance (due to complexity) than a help.

    Pre-2.0 Java already had some simple collection classes, like Vector ... true, Vector works on Objects so there is essentially no type safety. But you know what? In the 15 months or so that I have been writing LOTS of Java code full time I have *not even once* passed the wrong type of object into a Vector, or a Hashtable, etc. It's a very rare circumstance in which you have a vector and don't know what types are being stored in it. And if you have a vector which you store multiple types of objects in, there's always instanceof.

    instanceof takes the place of strong typing in many, many situations in Java, and while it makes code a little slower and a little more fragile, it's a big win when it comes to simplicity of the language and its implementations.

    As far as operator overload goes -- I think it's quite simply the shortest path to unreadable, unmaintainable code. I think the very worst feature of C++ is operator overloading. Period.
  • To my knowledge they haven't open sourced anything, SCSL is not open source.
  • > How can I do fast image processing code in perl ?

    I do not stand on the side of Perl, but ever heard of PDL (Perl Data Language)? How about Gimp module? Oh yes, they're optional modules with core part written in C, but the same goes for Java's Advanced Imaging API.
  • First of all, let me be happy to say there seems to be less of a "First Post" fiesta anymore.

    Now back to our original programming.

    If Sun makes the fastest java, this will definitely give MS a run for its money (Microsoft, not the condition). Especially that Sun is temporarily not able to do anything about MS's developing their own style, this could put MS out of our misery.

    And with this speedup of Java and of CPU's, I wouldn't be surprised if we got better java wordprocessors by next year.

  • The Hotspot VM is pretty amazing, especially considering how new it is. The speedups are really impressive. On our benchmarks, (middleware, lots of multithreading and network access), we're seeing 3-5x improvements on various benchmarks. The garbage collector is amazing. We used to find that pooling beat the (admittedly crude) JDK 1.1.x garbage collector by 2x; now the situation is exactly the opposite. Code volume stays reasonable -- hotspot doesn't compile everything in sight; it really does seem to focus on the hotspots. The stability is not perfect, but is very good for such an early release.
  • No, never. I'm a contractor, and I've never contracted for Microsoft. I've used both Microsoft's and Sun's products; both of which have their flaws. But there is one thing Microsoft has over Sun: both feet on the earth.

    You see, I'm never going to program against the API of someone who tells me: "Oh no! Parameterised classes are too dangerous for you!" or "It must be purely object oriented!", or "In your interest, we're going to prevent you from harming yourself!"

    In the world of closed source, you are forced to put up with the wrong decisions of someone else. Sun likes to shoot hard-coded rules, that they get from their Sun fundamentalist religious company rule book. They are trying to shove rules of thumb, good for a number of situations, bad in other, down the throat of everyone.
  • I don't love or hate Java. I just fail to see any benefits from it's use and wonder how Sun might act if Java were to become the next C.

    well there are two major ones, the first being that it is *a lot* nicer to program for, even much better then C++. If I could code in whatever I wanted, I'm sure it would be Java, it's just *so* much nicer then C, my god... but this is really beside the point we are discussing.

    Java is still a little better then C/C++ because the majority of computers run things like Mac OS and windows. While ./configure may work great in UNIX/Linux try using that to compile a program using the MFC library for a Macintosh. Or try getting DOOM to compile for a palm pilot. it's just not going to happen. Java gives you *much* better code inoperablity right now. I don't know if you've done much work in Java, but it is Very easy to get a program to work on any OS. in my experience Every Java program I've ever written that I tested on another platform/OS/Java implementation has worked. This was without any type of special work on my part in any way (well in one of my programs I had to put in a command line option to not use the GUI stuff to get my app to run on a UNIX box over Telnet, since there *was* no GUI)
    "Subtle mind control? Why do all these HTML buttons say 'Submit' ?"
  • If you would have read the interview, or known anything about java other then old sterio-types you would know that java can be as fast as C in some aplications. Unless conventional signal processing requires a lot pointer-arithmatic a Java implementation with Hot-Spot would probably have similar performance.

    What do you want to spend those clock cycles on: redrawing the GUI or signal processing?
    are you saying that C apps don't need to redraw the GUI? Java is only as dependant on a GUI as any other langage (exsept maybe visual basic, which needs it a lot more...)
    "Subtle mind control? Why do all these HTML buttons say 'Submit' ?"
  • I'm not trying to knock Java, I'm seriously curious. It was designed to be write once, run everywhere. Surely the concept of everywhere must have encompassed things like different X servers or sound systems? Or did Java always envision a narrowing of its market to just a few standard platforms, primarily Windows and Solaris?

    Isn't Gosling really saying that Sun doesn't have the time to write all the different JVMs and whatnot required? The bazaar model worked rather well to make Linux cross platform. The developers who knew the most about each platform wrote the code to support it. Like the original poster, I think it would help fulfill the "any/everywhere" promise for Java too.
  • I may be revealing a dangerous level of ignorance about Linux, but just exactly what ARE the problems with Linux that Gosling aludes too?

    His comments about the different distros are smoke. The real problem is the license. Nobody wants to pay it. Maybe one of you guys who bought Redhat at 14 and sold at 100? :-)

    The alternative is to not get a license, and try to clone [kaffe.org] it instead.


    ---
    Have a Sloppy day!
  • 99% correct, the 1% being that Netscape still enjoys roughly 80% market share. Microsoft flaunting its incompetence, having a browser built into 90% of the world's operating systems but being used by 20% of the people...

    I'm sorry to be rude, but HA! for startes Netscape's market share was NEVER more then 70%, even in the days back before IE1, I belive that netscape's market share is somewhere betwene %30 and %40, and going down every day. dispite the fact that AOL own's netscape, every AOL user uses IE. IE is also a *much* better prodcut (although I can't wait for Moz5.0 :). it's much faster and a lot more stable. When I got windows 98, I used netscape for everything exsept looking at microsoft's own site, then slashdot, then.... (I still keep netscape around, but).

    don't get me wrong, I hate Microsoft, but Netscape's market share is nowhere near 80%.
    "Subtle mind control? Why do all these HTML buttons say 'Submit' ?"
  • This is not blasphemy at all. During the original Java hype storm I wasn't impressed at all. I downloaded the Corel Java suite to play with it, and it was an utter piece of crap! Java has always been lame as far as I'm concerned.
    Linux, however, impressed me since I read my first full article about it. The article was in boot (now Maximum PC) and the CD included a distro of Debian. I installed it, but had no idea how to do a damn thing with it. Still, though, it was exciting. It was something new and interesting. Anyway, back to the point:
    Java is slower than native code, requires more memory, not platform independent as hyped, lowest common denominator functionality, and controlled by Sun (a company more interested in taking Microsoft's place than bringing true broad-based competition to the software market).
    Linux is an operating system that can run on slower "legacy" systems, runs on many architectures, free (think Beer and Speech rolled into one), fully functional, scalable, high performance, and Linux has actually lived up to its hype.

    So as far as I'm concerned, you're not blaspheming. You're preaching to the choir. We've got a cross-platform open source option that we really didn't have when Java was first released (at least as far as I'm concerned.)
    On an unrelated note, I see Windows 2000 going the same route as Java. See the cons above because almost all of them apply to Windows 2000.
    And on another unrelated note, wouldn't it be great if in the future all we had to worry about was Linux vs. BSD because MS and Sun's war of attrition ended in a hostile takeover resulting in both companies losing their top spots in the market?
  • by JRaven ( 720 ) on Wednesday September 08, 1999 @05:07PM (#1694407)
    I think it's pretty clear which lines of the interview people are going to have a problem with...

    Reading through the interview, it seemed like the usual chat-session fare -- a series of idiotic (You wrote assembler? So, did you ever write a virus?) questions, whose answers should have been obvious before the person even asked the question. And then we get to the Linux question... and Gosling's role as the "Mr Java Poster Child" marketing-boy starts to show through.

    Why are the JDK's on Linux so far behind what you can get on Windows or Solaris? Because of 'minor incompatibilities'? Hardly. There are plenty of other cross-platform languages out there that support even more platforms than Java and work quite well on Linux (oh, like Tcl, Perl or Python). As far as I can tell, the problem is just that Sun hasn't done squat to help the Java/Linux efforts.

    I mean, up until relatively recently Sun didn't even make their code available to porting efforts -- unless you wanted to shell out for a very pricey license, you had to start from scratch. Which doesn't exactly make it easy to catch up to the ever-moving target that is Java. That changed, finally, so that the Blackdown team is able to work from the Sun source now -- but as near as I can tell, that's the limit of their assistance, and it really seems to be a matter of too little, too late.

    Hell, has Sun even contributed any Linux-specific code to Blackdown? If not, I don't even know what Gosling had to base his statement on.

    JRaven
  • People keep saying the trademark fell through. That's not what happened. The Open Source Initiative decided they would not register the trademark. This doesn't change the fact that it's SPI's trademark, and legally it remains a trademark even though it's not currently federally registered. Now that OSI has publicly abandoned it, there's no ownership dispute, either.

    Bruce Perens

  • Bad news is that after some time Java evolution did not allow me to compile the source code anymore. I accept that.

    You should be able to get older versions of the JDK from java.sun.com, if you want. and you might be able to get the stuff to compile with just a little work.

    I'll agree though, that old code should still work, if it dosn't that's a pretty major bug...
    "Subtle mind control? Why do all these HTML buttons say 'Submit' ?"
  • No support for multiple inheritance should not be viewed as a negative. The technique they employed of using interfaces instead of multiple inheritance is a much better solution.

    Face it: C++ is a complete and total abortion, especially from an OO standpoint. If you look at it from a portability standpoint, it is even worse (one can't even link objects produced by different compiler vendors in many cases). The ANSI spec for C++ is bigger than ADA.

    I wonder who the real idiot is...

  • I think you're extremely mistaken with regards to getting Java to work on multiple platforms.

    No it's not just a "drop it in" change. Especially when dealing with a GUI, you have to tweak between platforms.

    But don't pull that crap on me that its easier to code a GUI in C and port it to Windows/Mac and UNIX easily. None of these GUI's have a common toolkit. End of story.

    Without a GUI, on a server-side app, there really shouldn't be a need to do any tweaking issues.

    Java isn't the perfect solution to right once anywhere, but it certainly is the best solution available.
  • It would because MS won't be able to include it in MS Explorer without releasing the whole thing as free software.
  • My windows (98) box has been up for:

    1days, 6hours, 43minutes and 8seconds (110588235 milliseconds total)

    sorry, I just wrote a little uptime program, now I'm infatuated by it

    1days, 6hours, 44minutes and 49seconds (110689407 milliseconds total)

    wee....
    "Subtle mind control? Why do all these HTML buttons say 'Submit' ?"
  • by Bruce Perens ( 3872 ) <bruce@perens.com> on Wednesday September 08, 1999 @05:15PM (#1694423) Homepage Journal
    Gosling isn't being sincere. Linux got itself in a bit of a pickle??? He's got to be kidding. We let distributions have a few differences between them, the cardinal sin!

    It doesn't seem to have kept X from running, or Netscape, or anything else. Does he want Linus to rule with an iron fist? Sure, Linux would be real successful if we did that. Thanks

    Bruce

  • They can't officially call it Java due to trademark law, but they nevertheless use their bastardized, proprietary version as if it were the real thing, with the all-too-well-known Javascript errors, hung browsers, and crashed PC's as the inevitable result.

    A Javascript error is nothing to do with Java. Java and Javascript have absolutely nothing in common, apart from the fact that both may be used to make web pages more irritating, oops, sorry, I meant interactive.

    Javascript is just a scripting language. Microsoft's bastard version of it is VBScript, not J++.

  • It shouldn't be to hard to just ignore the GUI, I've done Java development over a Telnet session to a to a UNIX box.

    I'm not familiar with Sun's community source license, but can you hack out the part that does the AWT from the C source? would you be able to distribute your changes if you didn't charge? (I *think* that the answer would be yes to both those questions, but I'm not sure)
    "Subtle mind control? Why do all these HTML buttons say 'Submit' ?"
  • man perens gets moderated up for sneezing...
  • by Per Abrahamsen ( 1397 ) on Thursday September 09, 1999 @09:32AM (#1694432) Homepage
    > 1. Java execution speeds are now approaching
    > and in some cases exceeding those of compiled C
    > and C++.

    It is a sad statement. Any properly implemented language will exceed C and C++ for programming idioms that are natural for that language, but not for C and C++. Evn AWK does so.

    > If you don't believe it's possible, you don't
    > understand optimization.

    The really sad thing is that some people insist that JIT compiled code in general will be able to compete with code compiled with an optimizer that can use as long time as it wants.

    Of course, Java compiled to native code by batch compilers should do well.

    > 4. Java has more in common with Smalltalk than
    > with C or C++. That's why serious object
    > developers use Java and not C++.

    And C++ has more in common with Simula-67 than with Smalltalk, that is why serious object developers use C++ and not Smalltalk.

    There is no "best choice" unless you are so narrow-minded that you believe one object paradigm (or programming paradigm) is superior independtly of the problem.

  • Exactly right. Parameterized types, operator overloading, and multiple inheritance are all "features" of C++ that I am happy that have been left out of Java.

  • Your proposal for versioned standards is intriguing. I imagine something like POSIX for dlls and GUIs.

    However,

    Program does a little bit more math calculation than the average. Some of the Developers found a useful libc function exported ( declared as extern void ) in some /usr/include/* file and uses it. Some month after shipping a newer libc is out (Version changed from x.y.z to x.y.(z+1) ). That one does no longer contain that routine. Program doesn't work on distribution X (new version out with that libc) or personally upgraded user systems. You know what happens: "new libc is GREAT, everything works fine except ...". Developer probably even gets blamed by the libc developers and others for having dared to have use that routine.

    That a declared extern function disappears from one z-version to the next is disappointing (what is your example? did it start with __?) but I think it really is the programmer's fault unless the function was documented in the libc manual. If it's not in the manual, developer should ask the list whether they intend to make it official one day (and ideally submit a doc patch). I am starting to think that a weak point of open source is the ease with which programmers can get at stuff that was never meant to be part of the API.

    To the taxonomy of bugs (you know, syntax errors up through logic errors) should be added a higher level: API bugs. Any program that uses an API service in a way that is not documented to work contains a bug.

  • Good call! I knew that sermon sounded a little too eager. I didn't notice that the question was one of licensing rather than one of Java on Linux. Sounds like Gosling has a bone to pick with Linux that sounds a bit jealous and bitter. Think it's because sales of Linux are biting into the revenue stream of his corporation?
  • That's some weird shit, man :)

    but what's so hard about typing a(b(x)) or:
    c(x){
    return a(b(x));
    }

    or am I missing somthing? (I assume I'm missing somthing)
    "Subtle mind control? Why do all these HTML buttons say 'Submit' ?"
  • IE has around 74 or 75 percent (and rising) of the browser market, while Netscape has around 23 or 24 percent (and falling).

    Sorry if I misunderstood you, but it really seemed like you were saying the opposite was the case.

    Cheers,
    ZicoKnows@hotmail.com

  • Sun wants to be in control just like Microsoft. That's the problem. As for Sun being good management, I doubt it. Look at the way Java was handled. I wouldn't call that good management. In fact, look at the companies that were big on the Java bandwagon. Notice how they dropped it like a hot rock when the Linux steamroller started gathering steam? There are two possible reasons for this.
    1. They (hey, let's name them: IBM, Corel, HP, etc) want the magic of the current big thing to rub off on them and their stock prices.
    2. Java just didn't pan out as all it was supposed to be. Linux looks like it may. The rats are all jumping ship (I think I mangled that metaphore, but who cares?).
    Oh, and to those who might be wondering, english is my first language, so I have no excuse. Fire away with the grammar flames.
  • Remember when Metroworks tried to release Code Warrior for Red-hat? everyone was up in arms, calling Red-Hat the next Microsoft. I don't think doing something like that would endear them much in the minds of the linux community (although I could be wrong). It also seems like a bad Idea. If I were them I would ether try to support Debian, Red-Hat, and S.u.S.e. if I didn't have enough money, I'd just wait for the LSB to do something.
    "Subtle mind control? Why do all these HTML buttons say 'Submit' ?"
  • by Anonymous Coward
    Further, Sun could, in addition, license it to other companies (ex. MS) under OTHER terms. (You may have understood this, but I want to state it so nobody misses this important point). Let's see how this works: Sun releases Java GPL. Java becomes more useful for a number of reasons I won't get into. Microsoft CAN'T fork Java, because they can't use the GPL'd version at all, unless they want to do a GPL release of IE. However, so that they can use GPL Java in proprietary IE, Sun can still sell them a different license, which of course specifically bans forking. Sun does the same for other companies who wish to use Java in proprietary products. Remember, everyone, that Sun still owns the copyright after a GPL release, and therefore can license Java under different terms as much as it wants.
  • Yeah, ok.. remember the processor speed of a Super Nintendo? Like 8 MHz? Its great how a 266 MHz computer with 64 Megs of ram can emulate a console that was made 9 years ago..
  • I imagine you know the difference and just had a brain cramp when you typed that. Addressing something else you said, though, it's interesting that the "bastard version" (your words) of JavaScript produced by Microsoft supports the actual JavaScript standard (formally known as ECMAscript) better than Netscape, the company that created JavaScript. Cheers,ZicoKnows@hotmail.com
  • bravo.. I'll second that cliche :)

    It gets really discouraging sometimes to watch people battle against one another with competing technologies.. especially since usually the ones battling in the open are the ones who are actually doing the least amount of productive 'work' helping their own side.

    I too hope that both Java and Linux find their niches, and find a peaceful co-existance. Some people run Windows to play games, I do it because I need solid java development tools. And, of course, to play games =)

  • I have a hard time believing that you've used many of the different JVMs out there. I think Java would have much greater acceptance on all platforms if every platform had a JVM that was as stable and had near the performance as Microsoft's JVM for Win32.

    Cheers,
    ZicoKnows@hotmail.com

  • by Roundeye ( 16278 ) on Wednesday September 08, 1999 @05:57PM (#1694449) Homepage
    About a year ago when Sun pledged its support for Java on Linux [sun.com] I was working to form a new business partnership for a software company to provide educational content. I am a professional programmer and had some experience with Java applications development (and had close associates who did/do Java applications for a living).

    Our needs included:

    portability - the application must be able to run on Windows, Mac, and Linux (if we get other *nixes as a bonus then that's even better)

    consistency - the interface must be as consistent as possible across platforms

    gui flexibility - the interface must be as customizable as possible

    html/XML support - the language or its libraries/runtime must support HTML content, and at least be pledging future support for XML.

    After doing our research, and delving into Sun's commitment to Linux, as well as its seeming support for Open Source [sun.com] we decided that Java was likely our best choice. The Swing components seemed to provide the desired customizability and consistency, Java supported HTML and was on its way to XML support, and the Linux support promised would guarantee us a presence on what we deemed the important platforms.

    So now it's a year later. The product is designed, mostly written, and really beginning to take shape. We are trying to put together our package to show to potential underwriters but have been plagued by a serious Java issue:

    The Windows and Solaris JDK/JRE packages, while still a bit slow and memory-intensive, provide most of the features we need to produce a stable and slick application which can usefully present our content. What bugs there are appear to be hot items ready for fixing in the next release. However, the Linux JDK/JRE packages are not stable, not well-supported, and not even at the same release level [blackdown.org] as the Windows and Solaris versions.

    Month after month we have watched the progress of JDK development (as supposedly supported by Sun) for Linux crawl forward. We have been programming steadily, working around bugs, redesigning interface features to not rely upon features which are not yet present in Linux. Generally acting as if Java2 for Linux is not coming any time soon.

    As we watch we have gotten the feeling that, despite press releases to the contrary, Sun could care less whether the Linux JDK ever gets finished, and doesn't appear to be devoting its resources at all towards the platform. Indeed, it seems as if they would prefer people forgot about Linux and its Java port altogether. Here's an example. java.sun.com [sun.com] is Sun's main website devoted to the Java language. Trying to actually find the Linux port from this page takes the patience of Job. Want some help? I'll locate you a few pages down in the right direction. See if you can find it from here [sun.com]. It doesn't help matters that Sun "reorganizes" their Java site periodically, essentially scrambling the links on the page -- reminiscent of the supermarket technique of seemingly random placement of necessities to make one wander through the store, hopefully buying non-necessities (or, similarly, the legendary placement of keys on the QWERTY keyboard to slow down the typist).

    "Bad site design" aside, after looking in more desperation for help we noticed other symptoms of "Sun support gone wrong.":

    Cryptic messages on Sun's message board about the availabili ty [sun.com] of Linux Java tools

    Rumblings on the Blackdown Java port mailing list [mail-archive.com] about lack of progress, with occasional hints that Blackdown is fixing bugs in Sun's code [mail-archive.com] which are getting folded in for later release. While that's great (they should report bugs and the bugs should be fixed in later releases), this forces us to ask the question, "What form is the press-released 'Sun support' taking?" Evidently it's not in the form of programming resources or even $ to support developers.

    Additionally, Blackdown appears to be in the lead as far as releases of the JDK go, with IBM purportedly not close to a Java2 JDK, and the other viable options being "for profit" and likely Closed Source. So, this is the net effect of Sun's much publicised "support for Java on Linux"?

    This interview, to me, gives me additional reason to doubt Sun's corporate motives. While there are (even discussed on the Linux/Java developers lists) difficulties in porting Solaris thread code to Linux, and difficulties testing graphical components under the numerous X environments available to the Linux end user, if Sun were truly "supporting" the port of Java to Linux this would not really be an issue. Sun could at least provide a more portable reference implementation if nothing else. Gosling is as aware of this as anyone, but uses this as his "out" ("Sun FUD" if you will).

    Similarly he straddles the fence by parroting the Sun party line -- why not truly Open Source Java (e.g., GPL it or release it under one of the BSD licenses?)? Well, it really is Open Source, but we have our own proprietary license because we want to maintain platform independence. But, ironically, the fact that Java is not truly Open Source is one of the reasons (determined from hours of sifting through user and developer mailing lists) why it isn't being ported more quickly to Linux. So, the Sun license is guaranteeing (at least for the moment) that Java is NOT platform independent.

    Take this together with some reconsideration [perens.com] of the recent StarOffice purchase, and one begins to wonder whether Linux support is, in Sun's eyes, great PR but bad business.

  • blackdown has always gone on the Sun code.. it was just that before they had to jump through the hurdles for every new release, whereas now they are given access to things like the Java Compatibility Kit (available only for paying licensees usually) so that they can officially be Java on Linux. A very nice move, but to get that the Linux Blackdown team had to negotiate a bit, including working under a slightly more stringent license than the SCSL.. I know they were under a tough license before the SCSL came out, I don't know if they were ever 'upgraded' though
  • I can't imagine that getting Java and Linux to play nicely with each other is nearly as difficult as getting Java users and Linux users to be friends. Computer technology tends to fall into top-down and bottom-up categories. Linux, Perl, C and TCP/IP are all bottom-up phenomena. Java, NCs, CORBA and OSI are top-down technologies. Although there are exceptions, techies from one side of the tracks generally disdain the products from the other side.

    Java is very much an Ivory Tower language that appeals to the same purists who previously were gung-ho over Smalltalk. These are not the sort of people that regularly recompile their kernels.

  • And by the same token, no commercial vendor could use it if they wanted to use JNI....

    The shotgun that can blow their foot off can blow your foot off too.

    The GPL is no magic bullet.
  • *grin* I'm actually a hybrid - I like everything but the middle ;-)
  • What's ./configure on Windows? The world isn't Unix only.

    What are you talking?

    marc> uname -a
    CYGWIN_NT-4.0 PC_108 20.1 (0.3/1/1) 1998-12-3 20:39:18 i686 unknown
    marc> ./configure
    loading cache ./config.cache
    checking for a BSD compatible install... (cached) /mvw/bin/install -c
    checking whether build environment is sane... yes
    checking whether make sets ${MAKE}... (cached) yes
    checking for working aclocal... found
    checking for working autoconf... found
    checking for working automake... found
    checking for working autoheader... found
    checking for working makeinfo... found
    checking host system type... i686-pc-cygwin
    checking for mawk... (cached) gawk
    checking for gcc... (cached) gcc
    checking whether the C compiler (gcc ) works... yes
    checking whether the C compiler (gcc ) is a cross-compiler... no
    checking whether we are using GNU C... (cached) yes
    checking whether gcc accepts -g... (cached) yes
    checking for c++... (cached) c++
    checking whether the C++ compiler (c++ ) works... yes
    checking whether the C++ compiler (c++ ) is a cross-compiler... no
    checking whether we are using GNU C++... (cached) yes
    checking whether c++ accepts -g... (cached) yes
    checking for a BSD compatible install... /mvw/bin/install -c
    checking whether ln -s works... (cached) yes
    checking whether byte ordering is bigendian... (cached) no
    checking size of long... (cached) 4 updating cache ./config.cache
    creating ./config.status
    creating Makefile
    creating config.h
    linking ./cdi_cygwin.cpp to cdi.cpp
    linking ./cdi_cygwin.h to cdi.h
    marc>

    Works like a dream.. allows for an easy portation, like here of the CD Index [cdindex.org] client to Win32.

  • Having differences and competing in package like system configuration tools and the set of available end-user applications is no problem. But to my point of view distributions should just stop competing in stuff like being the first once to have a first alpha version of a new libc in the distribution ( probably adding even some vendor specific patches to it ).

    The point is not about Linus himself ruling with an iron fist it's about lack of agreement on a version number that identifies a set of basic packages. Well RPM is at least a good thing to have, but it would be really nicer to have a common version number for the stuff that almost everybody uses.

    And it would also be nice to have some ways to separate the playground ( the field where we can experiment with new ideas in the software) from the end-user-ready-usable-stable-system area. The kernel already does that so why not doing it with something like a common base package.

    Getting up some kind of voting system for decisions like when is the right time for a feature stop in the playground version for getting a new version number for a stable-end-user-ready version should be possible, don't you think ? Having something to rely on does not necessarly imply having a single person to rule.

    Or to put it into annother type of view, do you really think that Linux should compete with Windows in the area of being the OS with the greatest combination of different sets of system library versions that can be found in the system directories of different users. Do you really want to encourage linux application programmers to override system files on application installation like it's already to often done on Windows ?

  • I have it working and it is as simple as setting up the proper classpath variables and such.

    Just get the JDK from blackdown working and then download swing, set up your classpaths and your gold. (Swing is written completly in Java so getting platform implementation is not necessary, ah the beauty of java.)
  • I've been working with the JAI. I really wish that your statement about the core part being written in C were true, but it really isn't. Too many functions are still in pure Java. The speed is actually pretty decent, but what makes it slow is the memory inefficient way you're forced to code when using the JAI -- it really slows things down when your system runs out of ram, and it starts to page the hard disk or stops to garbage collect. The Java garbage collection mechanism seems really unsuitable for working which large amounts of data -- when you're dealing with large data sets, you really want tight control over how the program uses memory.
  • The complaints about flavours of Linux are just a rationalisation - the problems are of Sun's own making.

    I have no problem writing code that runs on all the Linuxes - but I wrote a moderately large Java application and I had all sorts of compatibility problems between the JVMs. Not to mention JVM crashes and Win95 crashes, memory leaks, bugs in garbage collection etc. Back to C for me.

    And it is obvious why the Linux JVM is not getting the support it needs - noone wants to sign away their rights to a *not* open source effort (no, not 'almost open' just not open).
  • Linux's "few differences" don't stop X or Netscape from running. They also don't stop Netscape crashing more often than not (I managed to get www.java.sun.com to crash Netscape 4.5something under GNOME/Enlightenment earlier today, which was a major achievement :)

    I agree that, in day-to-day running, the minor difrerences between Linux distros and kernels has very little effect on me. But you simply can't trust your life to things working fine after you've tweaked Linux in any major, MAJOR way.

    Java has to be completely secure and robust, or it wouldn't be Java. If Linux can't offer it that, then you can't really blame Gosling.
  • Flexibility in the way you code is a good thing (the more tools in your toolbox the better you handle cramped situations). This sort of thing also comes up in computability theory...
  • Java gives you *much* better code inoperablity right now.
    interoperablitity...sigh...
    It is generally good, but you can occasionally come across errors--it's not perfect. If you have something tweaked and optimized with threads on one os, uh-oh some of that native thread stuff works a little different someplace else. There is also the problem of just plain bugs that can happen in the Java logic itself (unrelated to native code dependency) that only occur on one distribution, making funny effects across different machines.
  • You can certainly in terms of license terms, but you need a lot more than just releasing your source code. After all, proprietary companies release their source code to other companies ... The real point is the spirit, and to my understanding of the SCSL, Sun basically retains control. Just making the licensing terms similar to a free license and adding a clause that closes it down doesn't make you any closer to free software in spirit than a proprietary license. I admit it's something, and there are many questionable free software license clauses and issues, but the issue is still a wide chasm of philosophy between the two. The analogy is not perfect, but I certainly think "close to open source" does not describe the SCSL. I don't think it's even possible to be "close".
  • Using a higher-level function makes it easy to reconfigure the two compose()'ed functions at *run-time*, instead of at compile time.
  • Flame me if I'm wrong but I believe Sun began actually supporting both the Mac MRJ team and the Blackdown JRE teams sometime over the last year with actual programmers. Adding one or two programmers however will not transform the porting timetables however. Java 2 support is going slowly with IBM and Apple as well as Linux but it will come.

    I still can't get MkLinux to usefully install on my Powerbook 1400 but I'm not flaming everyone here as Apple hating-hippies. I can't help so I wait. Contribute to Blackdown or Japhar, or be patient.
  • by Em ( 18925 ) on Wednesday September 08, 1999 @08:42PM (#1694474)
    I've been writing code for a living for 10 years or so. For a while now, I've been reading the various Slashdot discussions about Java. The signal-to-noise ratio is really low.

    1. Java execution speeds are now approaching and in some cases exceeding those of compiled C and C++. If you don't believe it's possible, you don't understand optimization.

    2. Our developers compile on NT or Linux, pick up the binaries and run them on our Solaris servers. Or the OS/390 mainframe upstairs. They love it and it saves them time and effort (and that means money too).

    3. The IBM JDK for Linux works fine. There are some minor issues. Who cares? Stop worrying about it! Get on with the coding.

    4. Java has more in common with Smalltalk than with C or C++. That's why serious object developers use Java and not C++.

    If you want to write professional object software now, on PCs or mainframes, Java is your best choice. Smalltalk second. Then maybe Eiffel or Python if you're not bothered about performance, JPython if you are. C and C++ are not in the picture. Don't even think about Perl.

    Now don't get me wrong - I love Open Source, and Linux is one of the best things to happen in personal computing for years and years. I would love to see a genuinely free JDK, and I wish I had the time to do it.

    Free or not, Java gives you the chance to write clean, elegant and most importantly *simple* code for object systems that work.

    Anyway that's my advocacy spout over with. One more thing though: some Linux people here spread FUD about Java the way MS spreads FUD about Linux. It's sad to see. We should be above that by now.

    Apologies for ranting,
  • Eh. The problem is, once you get into operator overloading you do get into some issues with readability of your code. Sun made a design decision when they excluded that from the specification, and I'm not yet sure whether or not it was the right decision.
  • except all your changes to the java source are nil, you cannot get Sun to accept your patches because they could then not do their massive relicensing (since you own some of the code). You would have to license it all to them. They also would have to defend the copywrite and trademarks very vigurously, because of people getting the source to compile on linux, releasing it 'hey, I got java to compile, it runs my hello world program super-fast!' and it doesn't run anything else at all. In other words- without a stricter license than the GPL they lose control of the language growth, the value of their trademark, and the perceived value of their code (which is VERY high, many enterprise applications using java). What is the benefit to them again over the SCSL? To make the Linux community happy? ha! Guess what, the FreeBSD community would be pissed off at having it GPL'd as well, so there would still be open source initiatives to do a clean-room implementation of java. Wow, we've come so far... Also finally, note that the GPL specifically ALLOWS for linking against system files, for instance.. with Internet Explorer, in a DLL.
  • That's some weird shit, man :) but what's so hard about typing a(b(x)) or: c(x){ return a(b(x)); }

    What happens if the way the functions are combined can't be determined until runtime or if one of the functions can't be determined until runtime(a(x) = x+y where y is something that depends on the system state). In scheme (and probably lisp also) you would do something like:
    ((compose a (lambda (x) (+ x y))) x)
    and since lambda lets you create functions on the fly, the result of the compose can be determined at runtime.
  • As I said before, developing for one toolkit just causes others to be left out. I don't have the kde libs, so I can't run kde apps (yet, 'till I install them). So to get java working, I have to install something I dont' want?
  • I have never gotten a SINGLE program to use configure correctly on Windows. I have also had problems with it on Linux, with GIMP, GTK, GNOME, and several other programs.. Linux/x86, isn't that their development platform even?

    C++ is processor-portable sourcecode. It is not platform independant, you still have to find out every platform's details and hack those in. That does not compare at all to platform independant and binary-portable code of java.

    If you are going to compare anything being better than java, choose perl, or Emacs LISP (which is by the way one of the things Java bytecode is based on from my understanding).

  • by sab39 ( 10510 ) on Thursday September 09, 1999 @12:42AM (#1694482) Homepage
    Their license is NOT open source except for this issue (interoperability). It is FAR from it. See below.

    First of all, there is an EASY way for Sun to make Java open source and maintain compatibility, because they own the *name*. They can license the code, but only grant licenses to use the *name* java if you are compatible.

    Secondly, there are such things as Test Suites. If Sun were even remotely serious about being "open", they would make their test suites freely available. If they did this, too, the compatibility thing would be a non-issue, because every news magazine and hacker would run the compatibility tests on every new JVM released - there would be no way to be incompatible without it being public knowledge *very* fast. As it is now, we pretty much have to take Sun's word for it that a JVM is incompatible (except for Microsoft, who boast about it).

    There are at least two other issues apart from the compatibility testing issue where the license falls far short of open source. First is the fact that you are licensed to use the code only for research purposes; you can't even use it internally to your business without that being considered commercial use. Or give a copy to your neighbour. You *certainly* can't include it in your Linux (or xBSD) distribution.

    Secondly, there is the matter of what you have to do to escape those restrictions. It's *not* just a question of "keep your version compatible, and pass a test to prove it". You have to get a whole fresh license from Sun, which you have to *pay royalties for*. It's not even just a nominal fee to cover the cost of testing (which is ridiculous anyway - see my earlier point about free test suites) but fully fledged license fees of the same sort as they were charging people for licenses before the SCSL came out.

    If Sun were serious about being open, there is a LOT they could do. Don't be fooled by their blurb.

    Stuart.
  • Comment removed based on user account deletion
  • by mvw ( 2916 )
    You have got to be kidding. Sun doesn't make money on Java. It's a huge money pit.

    I don't know what money flows back to Sun, but certainly it generated a big market that sells lots of books and allows some lots of ompiler companies like Borland, Symantec and (to a degree) IBM to stay in business.

    Compare that diverse landscape to the C++ sitiation on Win32: there are only two serious compilers left Microsoft Visual C++ for the masses who depend on perfect interfacing to the latest Windows gizmos and gcc (cygwin, mingwin) for those who value portability and free software.

  • Also, one difference between the new Collections and the pre-existing collection classes such as Vector and Hashtable is that the older classes were entirely threadsafe, while the newer ones are not. Thus, if you can guarantee that your collection will only be exposed to one thread at a time, you can gain a slight performance benefit by using them.
  • >. Java execution speeds are now approaching and
    >in some cases exceeding those of compiled C and
    >C++. If you don't believe it's possible, you
    >don't understand optimization

    One small point about optimizations is that it generaly can be done to anything.
    It's like the Micro-kernel versus Monolithic kernel argument: once Micro-kernels got well enough optimized to equal Monolithic kernels, someone adopted the same optimization algorithms to Monolithic kernels and Micro-kernels were back to square one.
    Anything you can do with a bytecode language can be done with a compiled language, with the advantage of less one layer of software.
    *However* java is a brilliant language, maybe yhe best IMHO, and it's a pity that Sun doesn't see it as such, because it would be a 'Cool Thing(tm)' to have binary code compilers for java for the multiple plataforms.
    I don't *mind* compiling the same code once for each plataform.

    This is a personal opinion, not a statement of fact! take it as such.
    (I hope this doesn't start a flame war)
    No, I can't spell!
    -"Run to that wall until I tell you to stop"
    (tagadum,tagadum,tagadum .... *CRUNCH*)
    -"stop...."
  • Every Java program I've ever written that I tested on another platform/OS/Java implementation has worked.

    Sorry, but I have different experiences.

    I wrote an applet that displayed chemical data and tried it in various Java environments. This being Netscape 3, Netscape 4, Sun jdk, MS Explorer 4 and Explorer 5, under Windows 95, Windows NT, Solaris, and FreeBSD.

    Good news is, that it worked on most of platforms, albeit good only under jdk appletviewer and Netscape 3 as these were the environments I developed on. Even there it was not perfect, small things like the behaviour of the little boxes on the scrollbars was not the same.

    I admit it was a delightful experience to see it working on so different platforms.

    Bad news is that after some time Java evolution did not allow me to compile the source code anymore. I accept that.

    But what really gets me mad is that is not possible to execute the class binaries from an app written in mid 97 two years later. This is a very bad thing.

  • I thought that this was to prevent others from modifications to the language or worse, theft of code.
  • by Anonymous Coward
    I think Sun had dreams of being the originator of *the* defacto programming language. What a fantastic thing for a company to have in it's possesion, a world standard. But, C was already a universal standard. With ./configure, it's write once run anywhere(TM) already. Not to mention, Sun wanted to remain in control of the thing. The Zaar of *the* language. I don't love or hate Java. I just fail to see any benefits from it's use and wonder how Sun might act if Java were to become the next C.
  • The inter-operability problems with Linux are just horrible. You have to be excruciatingly careful because all the different flavours of Linux are all slightly different.

    What problems can possibly be so bad? Have they heard of GNU Autoconf [gnu.org]? And what's wrong with just concentrating on one distribution? I bet RH would cooperate. And us Debian users would find a way to make it work on our systems too.

  • by heroine ( 1220 ) on Wednesday September 08, 1999 @03:49PM (#1694494) Homepage
    Every time a faster processor comes out, developers think of a way to saturate it in C long before the clock speed ever helps Java. What do you want to spend those clock cycles on: redrawing the GUI or signal processing?
  • You assume too much. I've been professionally programming Java since 1996. Of course, it's so easy to write someone off by just saying "feh! Amateurs..." instead of actually arguing the points.

    I defend Java's portability because I use it every day. One of my first projects was maintaining an applicaiton on Mac, Linux and Windows.

    It was using AWT on Java 1.0.2. Yes, _programming_ in AWT 1.0 was annoying, and I'd much rather use the 1.1 event model, but this application needed to run on all web browsers, from Netscape 2.0 up.

    It worked well, in the end. AND I NEVER HAD TO TWEAK IT for Mac or UNIX. Just for the different web browser VM's. Netscape reallllly has bugs in their VMs. BUT, even that wasn't a WHOLE lot of work - maybe a few days.

    So, Java is NOT 100% portable. But it *IS* way more portable than anything else out there. Which was my original point.
  • The Java community has got itself into a bit of a pickle. I think they could have avoided it, but it's now going to take time, and it'll be a painful thing for them. They're going to go from taking cheap pot-shots at Linux to understanding that we've been developing mission-critical applications all along. On top of that, they're going to have to realize that they can't just plug their ears singing, "The inter-operability problems with Linux are just horrible.", when everyone else is already developing for Linux without any problems. The road may be a little bumpy.
  • by Anonymous Coward

    You have got to be kidding. Sun doesn't make money on Java. It's a huge money pit. I know, I'm there, that's why this is anonymous.

    They hope, someday, to make money by selling more hardware because folks had Java available to them. They honestly want to provide an alternative to the Wintel platform, because they don't want Wintel to eat their lunch.

    The Java vision is very pure. Mildly incompetent, but pure.

    Better work on your spelling, too.

  • No, they adopt a real Open Source license, develop for the toolkit with which they are most comfortable, and let the GTK fans provide GTK widgets. Let the QT fans provide QT widgets (if this is legally possible). Let those running libc5 supply patches so that it will build cleanly on libc5 systems.

    The fans will be there--the Java fans are already there, but their team hasn't shown up to the game yet. If the team bus arrives, they'll have all the enthusiasm they could ask for. Right now, the bus driver is lost somewhere out of town, and he doesn't know where he's supposed to be going.

    --

  • by Anonymous Coward
    Don't know about "connection classes", but "higher-order functions" are functions that take other functions as arguments or return functions as a result.

    An example of a higher-order function is "compose", a function with two functions (a and b) as arguments, that returns a function(c). The function (c) it returns takes a single argument (for argument's sake), and to it first applies b and then a. So if:

    a (x) = x * 3;
    b (x) = x + 4;
    c (x) = (compose (a, b)) (x);

    then:

    c (3) ==> (3 + 4) * 3 ==> 21
  • by Cycon ( 11899 ) <steve [[ ] thePr ... m ['at]' in gap]> on Wednesday September 08, 1999 @04:14PM (#1694533) Homepage
    I would not go so far as to call the man a liar, but let's take a quick look at his responce to once question:

    "Zombiehead: James, what's your stance on Java in relation to open source?

    It's one of the reasons Linux is successful. Do you see this as a future possibility?

    JG: We'd like to deal with the problem of Java not working on Linux. It's a somewhat complex problem.

    The inter-operability problems with Linux are just horrible. You have to be excruciatingly careful because all the different flavours of Linux are all slightly different."

    The questioner points out the success of linux as proof of the power of Open Source, and asks for the authors stance of the question of Open Sourcing Java.

    His answer has *nothing* to do with answering this quesiton, he merely dodges the question by saying that Java has problems with Linux because the differences between distributions. The question was in regards to Java's License, *not* Java on Linux!

    All I know is right now I have C, C++, Pascal, Basic, LISP, Perl, and a few other program language compiliers/interpreters that don't seem to have any problems with "interoperability" between distrutions on my Debian, SuSE, and Redhat machines.

    Some smells fishy to me.
  • by jabber ( 13196 ) on Thursday September 09, 1999 @02:52AM (#1694540) Homepage
    Sun has a vested interest in pummeling Microsoft. It stands to benefit from a variety of other movements in the industry as well.

    It does not want to bolster the viability of another *nix!

    Why should they support a free OS, and alternative to Solaris, with a free JDK?

    Sun, like everyone else, is in business to make money, first and foremost. Turning out a great product is secondary, and the good of all mankind comes in a distant third.
  • I'll probably get moderated down for my blasphemy, but I really don't see Java becoming much of a threat to Microsoft. I don't think Java is dying anytime soon, either - but if Sun were to make the hands-down, "fastest" Java, I doubt it would really affect Microsoft.

    The problem for Java, is that cross-platform capability has a way of limiting what it can do. Unfortunately, IMO, Sun misread the demands of the industry. Sure, there are many shops out there which use both Unix and Win32 systems. But given a type of computer (workstation, server, whatever) - you'll find that they are often all using the same platform within an organization.

    But, people say, Java also fills a need for rapid, safe application development. No mucking about with pointers and such. Less mistakes = more productivity. Certainly, that is true, and people are relatively expensive compared to hardware. So the runtime speed / development speed tradeoff is often a good one.

    However, Microsoft recognizes this very well. They will certainly market something to fill the gap (aka Cool). They aren't really interested in cross-platform support, so odds are, whatever they implement is going to blow Java out of the water, in both speed and capability, on a Win32 platform.

    Whether customers will jump onboard or not remains to be seen.

    SEAL

  • by Malcontent ( 40834 ) on Wednesday September 08, 1999 @04:24PM (#1694549)
    Speed of execution is not and should not be the overriding criterea when choosing a language. If a language can save you hundreds of man hours of developement, thousands of man hours in maintenance and debugging then it's well worth giving up the speed of execution. Having said all that: The speed problems in java have to do with the GUI. If you write gui-less business objects the speed is not THAT much slower then your typical C++ app.

    IMHO what sun really needs to do is to recommit to the original WORA premise. They seem to have abandoned java on the client end (browser) and are pushing it heavy on the server end. WORA is a moot point on the server. If you have control over the server then you can program in anything that will get the job done.

    Java is a great language for writing distributed apps but distributed apps must include the client, after all thats where the rubber hits the road. I urge sun to recommit to the client end.

Math is like love -- a simple idea but it can get complicated. -- R. Drabek

Working...