

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.
Linux vs NT and 98 (Score:1)
(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' ?"
Re:Moore's law is not on Java's side (Score:1)
Re:cool (Score:1)
Re:I had the same experience (Score:1)
Long term futre of Java and Linux (Score:1)
Re:Moore's law is not on Java's side (Score:1)
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.
Sun and Microsoft (Score:1)
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!
Re:I write perl "applications" all the time (Score:1)
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.
Re:Linux inter-operability == horrible??!! (Score:1)
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.
Re:Liar (Score:1)
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...
Let's just use SNES9x instead. (Score:1)
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.
Re:Who uses java, and who decides what others use? (Score:1)
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...
uh, sun *dosn't* make money from Java... (Score:1)
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' ?"
Let's Just Get Along (Score:5)
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.
Re:Java Jargon! (Score:3)
Higher-order functions treat code as data. Functional languages such as Lisp [elwood.com] allow constructs like
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, 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.)
Re: GPL Java (Score:1)
cool (Score:1)
The Next Step For Java (Score:1)
Open Source (Score:1)
Re:Open Source (Score:1)
Write One Run Anywhere is a Vicious Lie (Score:1)
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.
Re:cool (Score:1)
"Bring your Penguin into the Sun" -- Linux on SPARC forever
Re:Parameterized types in Java (Score:1)
Re:The language needs help (Score:1)
Pre-2.0 Java already had some simple collection classes, like Vector
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.
Re:Open Source (Score:1)
Re:I write perl "applications" all the time (Score:1)
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.
Speedup.. (Score:1)
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.
Hotspot (Score:1)
Re:Sun and Microsoft (Score:1)
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.
Benifits of Java (Score:1)
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
"Subtle mind control? Why do all these HTML buttons say 'Submit' ?"
that dosn't *really* make sense... (Score:1)
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' ?"
Re:How to make Java work GREAT with Linux: (Score:1)
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.
Re:I may be displaying my ignertz... (Score:1)
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!
Re:Who uses java, and who decides what others use? (Score:1)
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
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' ?"
Re:I disagree about MS (Score:1)
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?
The 'Problem' with Java on Linux is Sun (Score:3)
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
It's still a trademark (Score:2)
Bruce Perens
old school java (Score:1)
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' ?"
Re:C++ Fake OO? hardy har-har (Score:1)
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...
No it's not a lie. (Score:1)
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.
GPL'd Java would work (Score:1)
uptime.... (Score:1)
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' ?"
Not Sincere (Score:4)
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
Re:cool (Score:1)
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++.
console java (Score:1)
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' ?"
Re:Not Sincere (Score:1)
Re:Things You Need To Know About Java (Score:3)
> 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.
Re:The language needs help (Score:1)
high-level bugs (Score:1)
Your proposal for versioned standards is intriguing. I imagine something like POSIX for dlls and GUIs.
However,
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.
Re:Mentiroso? ...almost (Score:2)
damn.... (Score:1)
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' ?"
What are you talking about? (Score:1)
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
Re:Thoughts about Java (Score:1)
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.
beacuse that would piss the fuck out of everybody (Score:1)
"Subtle mind control? Why do all these HTML buttons say 'Submit' ?"
Re:GPL'd Java would work (Score:1)
Re:Let's just use SNES9x instead. (Score:1)
You mean JScript, not VBScript (Score:1)
Re:Let's Just Get Along (Score:1)
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 =)
Errors, hung browsers, crashed PCs (Score:1)
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
Sun's credibility waning (Score:5)
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.
Re:The 'Problem' with Java on Linux is Sun (Score:1)
Play Nicely (Score:1)
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.
Inappropriate GPL... (Score:1)
The shotgun that can blow their foot off can blow your foot off too.
The GPL is no magic bullet.
Re:Play Nicely (Score:1)
Re:Thoughts about Java (Score:1)
What are you talking?
marc> uname -a ./configure ./config.cache /mvw/bin/install -c /mvw/bin/install -c ./config.cache ./config.status ./cdi_cygwin.cpp to cdi.cpp ./cdi_cygwin.h to cdi.h
CYGWIN_NT-4.0 PC_108 20.1 (0.3/1/1) 1998-12-3 20:39:18 i686 unknown
marc>
loading cache
checking for a BSD compatible install... (cached)
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...
checking whether ln -s works... (cached) yes
checking whether byte ordering is bigendian... (cached) no
checking size of long... (cached) 4 updating cache
creating
creating Makefile
creating config.h
linking
linking
marc>
Works like a dream.. allows for an easy portation, like here of the CD Index [cdindex.org] client to Win32.
Re:Not Sincere (Score:1)
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 ?
Re:Things You Need To Know About Java (Score:1)
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.)
Re:I write perl "applications" all the time (Score:1)
Re:How to make Java work GREAT with Linux: (Score:1)
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).
Re:Not Sincere (Score:1)
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.
Re:damn.... (Score:1)
Re:Benifits of Java (Score:1)
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.
Re:probably (Score:1)
Re:damn.... (Score:1)
Sun IS supporting Mac OS and Linux too (Score:1)
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.
Things You Need To Know About Java (Score:5)
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,
Re:Java has no functor overloading is the problem (Score:1)
Re:GPL'd Java would work (Score:1)
Re:damn.... (Score:1)
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.
Re:Linux inter-operability == horrible??!! (Score:1)
Re:Oh boy ... (Score:1)
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).
Re:Linux inter-operability == horrible??!! (Score:3)
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.
Re: (Score:1)
Re:Lier (Score:1)
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.
Re:Java Jargon! (Score:1)
Re:Things You Need To Know About Java (Score:1)
>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
-"stop...."
Java portability - hah (Score:1)
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.
Re:Lier (Score:1)
Thoughts about Java (Score:1)
Linux inter-operability == horrible??!! (Score:1)
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.
Moore's law is not on Java's side (Score:3)
Hmm. (Score:1)
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.
Read: Use Java on Solaris - Linux is for hobbyists (Score:1)
Re:Lier (Score:2)
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.
Re:Linux inter-operability == horrible??!! (Score:2)
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.
--
Re:Java Jargon! (Score:2)
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
Re:Lier? ...almost (Score:3)
"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.
And why SHOULD Sun help Linux? (Score:3)
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 disagree about MS (Score:2)
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
Re:Moore's law is not on Java's side (Score:3)
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.