Interview with James Gosling
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.
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' ?"
ReadThe ReflectionEngine, a cyberpunk style n
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.
"Bring your Penguin into the Sun" -- Linux on SPARC forever
Anyone know when we can expect 1.3 on Linux? Hotspot on Linux?
RateVegas.com - Vegas Reviews
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.
- sigs are for wimps.
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...
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...
"Bring your Penguin into the Sun" -- Linux on SPARC forever
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' ?"
ReadThe ReflectionEngine, a cyberpunk style n
Deja vu all over again -- the same interview was on javalobby 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.
Save the whales. Feed the hungry. Free the mallocs.
Higher-order functions treat code as data. Functional languages such as Lisp 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.)
Plus, there are implementions already under the GPL - notably Kaffe. The copyright holders also sell/license a commercial version through the company Transvirtual, and apparently have licensed it to Micros~1 in a deal involving some of their technology (like J/Direct).
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"?
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.
Another alternative available to allow parameterised classes is Ada95. Using the AppletMagic 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. 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.
... 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.
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.
> 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.
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.
-
ping -f 255.255.255.255 # if only
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.
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.
./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)
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' ?"
ReadThe ReflectionEngine, a cyberpunk style n
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' ?"
ReadThe ReflectionEngine, a cyberpunk style n
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.
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 it instead.
---
Have a Sloppy day!
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
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...
:). 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).
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' ?"
ReadThe ReflectionEngine, a cyberpunk style n
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?
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
Bruce Perens
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' ?"
ReadThe ReflectionEngine, a cyberpunk style n
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.
-Stu
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' ?"
ReadThe ReflectionEngine, a cyberpunk style n
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
Bruce Perens.
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' ?"
ReadThe ReflectionEngine, a cyberpunk style n
man perens gets moderated up for sneezing...
-- your knees hurt, don't they?
> 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.
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.
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' ?"
ReadThe ReflectionEngine, a cyberpunk style n
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' ?"
ReadThe ReflectionEngine, a cyberpunk style n
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
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
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 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 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 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. 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 of Linux Java tools
Rumblings on the Blackdown Java port mailing list about lack of progress, with occasional hints that Blackdown is fixing bugs in Sun's code 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 of the recent StarOffice purchase, and one begins to wonder whether Linux support is, in Sun's eyes, great PR but bad business.
"Cause there's 40 different shades of black, so many fortresses and ways to attack, so why you complainin'?"
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.
The difference between theory and practice is that, in theory, there is no difference between theory and practice.
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.
"You know you want me baby!" - Crow T Robot
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 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.
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".
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.
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,
__ Em
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.
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?
-
ping -f 255.255.255.255 # if only
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).
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.
My Swing apps inproved double fold from 1.2.1 to 1.3beta.
There are two changes that lead to this. First, and most obviously, Hotspot is now the default compiler. Secondly, the changelog mentioned that they reimplemented swing. The first design was really bad so they are doing a rewrite of how it works.
I'm not sure on all these details, but I do know that my apps are much nicer with 1.3... I can't wait for a 1.3 final to come out for Linux. That will indeed be a good day.
Civ CTP is awesome! Thanks Loki!
Romans 10:9-10
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.
"UNIX" is never having to say you're sorry.
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.
-
ping -f 255.255.255.255 # if only
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.
What problems can possibly be so bad? Have they heard of GNU Autoconf? 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.
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.
-Stu
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.
Tcl/TK and Perl/Tk have my utmost respect.
I think Swing is a little more rich, though.... but sometimes you just don't need that level of richness.
-Stu
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.
So many things to pick apart, so little time. ./configure is beautiful when it works but you are obviously oversimplifying "C" portability. ./configure or no ./configure ,compiling accross different platforms is just a mess.
As an example, we tried compiling the TAO ORB for AIX 4.1.5 last weekend. The compile took almost 2 days, failed many times, we modified makefiles, removed features (templates, etc), UPGRADED THE COMPILER AND RUNTIME LIBRARIES, and what did we get at the end ??? nothing. After so much time wasted, the final step of linking everything together just did not work at all.
Java is not magical, but I do develop faster with it not only because I don't have to worry about damned memory pointer magic, core dumps, fake OO (C++), #ifndef #define #endif blocks, etc, but that it really works in the platforms I use at home and at work ***WITHOUT*** having to recompile (AIX, Solaris, Linux, Win98, WinNT).
Any questions ?
- sigs are for wimps.
One of the major points always missed in these interviews: Java needs parameterized types!
To make a good container class in a statically typed language, you just need them. It's as simple as that. The question I would have asked, then, is why don't we have it? The answer is more complicated than how it would initially seem. The main reason I can see Java lacking parameterized types right now is because there is no support for operator overloading in the language.
Suppose I wanted to make a valarray class and wanted a method that would sum up every element. It could be useful to do this with int, double, and BigInteger. The problem is, to add primitives you have to use +, and to add BigIntegers, you have to use add(). We'd still have to write two versions of the valarray class, one for primitives and one for objects.
Why doesn't Java include operator overloading, then? Well, it already does: Sun hacked the language so String could work with + and +=. Geeze, since that was so useful, why not generalize it? "Because it's dangerous." What arrogance on Sun's part, and what shallow thinking it is when it comes to language design. Ironically, if Java had operator overloading, it wouldn't have any of the problems found with C++'s implementation of it.
Luckily, a paper by Gossling was talking about better supporting numerical programming in Java, and he mentioned operator-overloading is being considered. If only as much thought was put into the language and AWT as it was to the virtual machine.
-Mac
I don't see Java becoming the universal platform Sun wants it to be, simply because of this grasping control they maintain over it. Who owns C? Who owns C++? But Java will always be married to Sun in everyone's mind, and a single company simply cannot muster the kind of critical momentum needed to make a language the "standard." At this point, Perl is way closer to "write once, run anywhere" than Java, and it wasn't even intended to be! (BTW-- who owns Perl? Ok, I guess the point is made :-) ).
None of the above is meant to be an attack on Sun, or any sort of "Java sucks" flamage, but hopefully, a coherent analysis of the situation. I just wish more companies would spend some of the effort they spend imagining all the horrible things that could result from going Open Source trying to imaging benefits they might reap from it...
----
We all take pink lemonade for granted.
There is no K5 cabal.
I am not the real rusty.
Actually, the new collections classes give you the option of being threadsafe or not.
By default they are not synchronized (so they will not incur synchronization overhead, how many people have had to write a FastVector class?).
They also provide synchronized wrappers however if you want to have the classes play well with other threads. They also have read-only wrappers too, so you don't have to worry about them being modified elsewhere if you care.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
- Release a development kit under a real Open Source license.
- Accept the patches that will come back to you.
It's really not that hard. I will even commit myself to doing any work to make the JDK compile nicely under Linux, including Makefile changes or general portability clean-ups that may be needed. It's not that hard to write clean code that compiles across all Unixes, let alone all Linuxes. The "henious differences" between different Linux distributions are myths; you write ANSI C and it will work.--
What he means, I think, is that The number one platform for Java is Microsoft's Internet Explorer. As long as IE is the number one browser, most people will be using whatever implementation of Java that MS uses.
The poster before stated that Microsoft and Sun needed to work out there differences before they Java could work as advertised. The problem, however is that Microsoft doesn't want Java to reach that potential. So the longer they stall, the better for them. (the sad fact is, MS's Java runtime is still faster, *and* more compatible than Netscape's...)
Anyway, Ms's and Sun's actual implementation aren't that different, it's the major 'windows binding' that J++ puts in by default that are the real killers. Any competent programmer would test his application on more then one platform, and avoid stuff that doesn't work on all. If they don't then they are not.
"Subtle mind control? Why do all these HTML buttons say 'Submit' ?"
ReadThe ReflectionEngine, a cyberpunk style n
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
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.
Your Brain + EEG + LEGO Robots = Brainstorms
Actually, I was referring more to the user experience as way of broadening its use, rather than the programming tools, since users are the people who actually drive development. For a lot of people, when they think of Java apps, their mind associates them with "those programs that crash my Netscape." So, most people are happy to avoid Java; this lack of demand means that companies don't put a huge effort into improving their JVMs, since a great JVM isn't much of a selling point for most users; and the less than ideal quality of the current JVMs means that a lot of users see performance and stability problems. Rinse. Repeat.
Cheers,
ZicoKnows@hotmail.com
Comment removed based on user account deletion
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.
-- What you do today will cost you a day of your life.
(For whatever it's worth, one of the GJ designers, Philip Wadler, works for Bell Labs, a division of Lucent, my employer.)
They presented a paper on the subject at OOPSLA '98, last October. According to the GJ page linked to above, adding generic types to Java is one of the top twenty-five requests for enhancements.
send all spam to theotherwhitemeat@ropine.com
I don't. "Open Source" can be defined by many things, (since the "open source" trademark fell through). As defined by the OSI, open source comprizes many diffrent qualitys. Sun's comunity licens matches some of them, therefor it's 'close' to open source
"Subtle mind control? Why do all these HTML buttons say 'Submit' ?"
ReadThe ReflectionEngine, a cyberpunk style n
I don't understand why a virtual machine wouldn't be happy on any distro as long as its statically linked and stuff...
Any insights?
License: By reading this you are agreeing that you agree with me.
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