Slashdot Mirror


Will Sun Open Source Java?

capt turnpike writes "According to eWEEK.com, there's an internal debate going on at Sun whether to open-source Java. (Insert typical response: "It's about time!") Company spokespersons have no official comment, as might be expected, but perhaps we could hear confirmation or denial as early as May 16, at the JavaOne conference. One commentator said, "Sun should endorse PHP and go one step forward and make sure the 'P' languages run great on the JVM [Java virtual machine] by open-sourcing Java." Would this move Java up the desirability scale in your eyes? Could this be a way to help improve what's lacking in Java?"

700 comments

  1. If they do, it will all depend upon the license. by khasim · · Score: 5, Insightful

    "Open Source" covers a LOT of licenses.

    What changes and how would depend upon which license was chosen.

  2. This would help by k8to · · Score: 1, Insightful

    There are two major reasons I do not run java programs if I can help it in any capacity.

    1. Restrictive licenses make it more difficult to reasonably deploy than any competing technology in a linux environment.

    2. JVM is fat fat fat, it uses way more RAM than is reasonable.

    Other than these two issues, it would be reasonable to run java software on linux, even if I don't love the language, environment in some ways.

    --
    -josh
    1. Re:This would help by aliquis · · Score: 1, Informative

      1) Yeah, it's really so hard to download Java, I mean, where do I start? http://www.microsoft.com/java maybe? oh fuck, it worked. http://www.java.com/ maybe? Oh shit, it did. Hey, even http://java.sun.com/ worked, what is this?

      2) Says who? It is a virtual machine afterall, and if you run more Java apps all of them won't use as much memory as the first one did. Also memory are cheap and who cares. It's a good and safe language and you probably ends up with less bugs.

      It is very reasonable to run Java in Linux. It's harder/more painful/whatever in the BSDs but it works.

    2. Re:This would help by pebs · · Score: 2, Informative

      It is very reasonable to run Java in Linux. It's harder/more painful/whatever in the BSDs but it works.

      FreeBSD now includes Sun Java as part of the distro, so it should be easy. Any Linux/BSD/etc distro can do this, it just requires spending the money to get it certified.

      --
      #!/
    3. Re:This would help by rm999 · · Score: 2, Insightful

      "Also memory are cheap and who cares"

      I do... I knew a few other people who may also ;)

      For a good comparison of what c is capable of compared to java, compare the speed and memory footprint of azureus with utorrent. They have very similar functinality and interface, but utorrent uses about 1/5 the memory!

    4. Re:This would help by WebMink · · Score: 5, Informative
      it just requires spending the money to get it certified.

      Actually, FreeBSD were given a license at no cost by Sun, and any not-for-profit organisation with a need for access to a Sun-maintained compliance test kit can get it at no charge. So it's really just a matter of having the motivation to ask.

    5. Re:This would help by mycall · · Score: 1

      So you are saying that the Sun JVM can be part of EVERY OS if the price is met? Doesn't Sun say NO to some distributions or companies?

    6. Re:This would help by WebMink · · Score: 1

      Some communities decide not to apply for ideological reasons, but I'm not aware of any bona fides request being declined, no.

    7. Re:This would help by Anonymous Coward · · Score: 2, Insightful

      You are failing to recognise the hidden costs here. Memory is cheap, paying a programmer is not.

    8. Re:This would help by Anonymous Coward · · Score: 0

      They have very similar functinality and interface

      Azureus is cross-platform, utorrent is not. Therefore there's a rather large functionality difference on Linux, *BSD, etc.

    9. Re:This would help by Anonymous Coward · · Score: 0

      The GPL is viral and not free enough, but we'll include Java becasue it's popular. Nice.

    10. Re:This would help by Billly+Gates · · Score: 1

      No it doesn't.

      You have to go to some guys website with an unofficial patch, get the community source code from sun, apply the patch, then bootstrap it with linux-java and hold your breath that it works.

      Also according to that site only FBSD-4.12 works with java5.x and applets wont work with firefox 1.5 in that platform. It sounds very beta quality and I for one perfer to find my own bugs rather than FreeBSD ones in my java programming.

    11. Re:This would help by XaXXon · · Score: 5, Insightful

      Please don't forget that utorrent requires Windows to run.

      uTorrent is NOT self-contained. It requires the Windows API to run. This part of its footprint is not shown when you look at its memory usage, but that first 256MB of RAM that windows uses is the reason uTorrent looks so small.

    12. Re:This would help by Billly+Gates · · Score: 2, Insightful

      mod up!

      Windows is loaded at startup as well as several services. Java initializes and caches its 100,000 methods in the JVM when a java applet starts which gives the appearance that its slow. However if you start a second app in java you will notice it will take ALOT LESS ram than if you just ran the second app seperately.

      This is because of the loading and caching of the JVM and most of the core dlls that windows apps use are loaded at startup. Its kind of an unfair comparison.

    13. Re:This would help by Hooya · · Score: 4, Interesting

      you are correct. but whatever we saved using java to get the project started, we have already spent trying to figure out why, oh, why java croaks on OutOfMemoryException when we have more than 8G of ram most of which is not being used.

      on a more philosophical level, there is already an excellent VM that *can* use all the 8G and then some. it's called linux. using java to build apps because it's easy to program in is like using tonka trucks because those trucks are so much easier to handle than the real thing. after all, why pay commercial driver rates to drive a multi ton truck when you can get you own kids (for free) to 'drive' the tonka trucks.

      i learned java back around '95, '96 and was really excited about it then. but after having used it on some really large projects, i have been really really disappointed and came to the conclusion that the only real contribution of the JVM was a serious neutering to most modern advances in the OS.

      forget portable programming languages - use a portable OS - linux. and forget the V, use the M (tm).

      anyhow, Guy Steel was right. i am looking at lisp right now (mostly for emacs tho).

    14. Re:This would help by synthespian · · Score: 1

      NetBSD and OpenBSD can also run Java through ports.

      The FreeBSD situation is special: the FreeBSD foundation has negotiated a license and now has certified Java 1.5 JDK and JRE binaries for FreeBSD 5.4 and 6.0.

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    15. Re:This would help by synthespian · · Score: 1

      You don't know what you're talking about!

      Installing certified Java SDK on FreeBSD now is as simple as:
      #pkg_add diablo-jdk-freebsd6-1.5.0.06.00.tbz

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    16. Re:This would help by icebattle · · Score: 5, Informative
      "1. Restrictive licenses make it more difficult to reasonably deploy than any competing technology in a linux environment."

      Pretty meaningless comment, unless you can supply some examples. I've done consulting and development for a number of large, lawyer heavy organizations, and none of them had a problem deploying Java solutions on linux. None.

      "2. JVM is fat fat fat, it uses way more RAM than is reasonable."

      Sadly uninformed, probably due to severe lack of experience with large applications. Per example, a couple of years ago I worked in a team that bid on and developed an application that, in a nutshell, receives up to 20Megs per sec of market data, breaks it up into itty-bitty messages, and then makes it available to any number of subscribing clients. Call it a proxy, if you will. We developed the app in pure Java, using the new NIO functionality. We competed with another team who started out in C, moved to C++ midway through, and were barely in a position to go alplha when we were ready to deploy. The client, since they were paying and had a lot of anti-Java staff, insisted on waiting, even though the delivery date had long since passed. When they finally had something to show, the apps were launched on identical hardware, and allowed to run 24/7. Our app ran smoothly, uninterrupted (except for a blown network interface) for the duration of the test. The other team had to restart their app several times a day, resulting in unnacceptable outages. Their restart time was, likewise, poor. Their app required 2Gigs to run. Ours ran happily under a Gig.

      The client paid both teams for their efforts, then licensed our solution.

      So, my quesion then is, where's the fat?

    17. Re:This would help by k8to · · Score: 1

      Great, now how do I install sun's java on LinuxPPC?

      For another example, compare installing java on debian linux vs installing all open languages on debian linux. With everything but java it's a single command. This is _not_ because Debian is being all nitpicky as some would suggest, but because distributing it is against the terms of the license and thus illegal.

      --
      -josh
    18. Re:This would help by TrekCycling · · Score: 4, Interesting

      All of this is terribly ironic to me. I've worked with Java for about 6 years now. It's considered the Enterprise Open Source solution (because admin types typically confuse open source with "free and runs on lots of platforms) usually. So it's either Java or Microsoft in every shop I've ever worked for. No PHP. No Ruby. And often Java is paired up with Linux, MySQL, etc. So I find it funny (although I understand the point, but it's still funny) that people consider Java to be so difficult because it's closed source. In every shop where Microsoft is the choice, the decision is usually made because the stack is predictable. It's predictable because Microsoft controls every aspect of it from the database to the app server to the language you use to code on it. So open sourcing Java would probably have the unintended consequence of giving Java a perception problem in the eyes of manager types. It would become risky on the same level as Linux and MySQL and so instead of being the safe, "adult" part of that crazy open source stack, it would just become one more piece of it. Albeit a powerful one, but it would probably push more people into the arms of Microsoft. Sorry, but that's been my experience, given what I've witnessed in the industry lately.

    19. Re:This would help by IntlHarvester · · Score: 4, Insightful

      Problem with this argument is that almost nobody runs Windows just to use uTorrent, while quite a lot of people run Java just for Azureus. The resources required for Windows are used by all applications (*including Java*), but most desktop users only infrequently use Java apps.

      --
      Business. Numbers. Money. People. Computer World.
    20. Re:This would help by k8to · · Score: 2, Insightful

      As for the second point, there _are_ other portable execution environments in the world, such as the python runtime, which do not have the same order of magnitude of memory fragmentation and very poor garbage collection that java tends to exhibit. Sun java has an amazing ability to lock hundreds of megabytes in core when very little is going on in the running application. It somehow manages to achieve nearly pathologically bad cases of memory use fragmentation and page faults to keep hundreds of megs allocated even under significant memory pressure.

      Even when writing the most boneheaded python code with extremely naive object creation strategies that end up hitting the VM ceiling, I never manage to lock more than a few tens of megabytes in real RAM. There are some types of applications which will tend to exhibit this type of pattern unavoidably, but the Sun JVM seems to maximize the potential for this poor condition.

      Many people point out that the cost goes down as you share the jvm across multiple applications. I have some reservations about the abandoning of memory space seperation between different servies, but practically speaking in many cases the intial hundred or hundred and fifty megs loss is simply too high to care about the much lower cost of the second java application. On a server where a box may be dedicated to a single task or set of tasks, throwing 2, 4, or more gigs at the problem may be totally reasonable. For ad-hoc tasks, desktop tasks, etc, it often a dealbreaker.

      --
      -josh
    21. Re:This would help by k8to · · Score: 3, Interesting

      I address question 1 elsewhere. There are legal barriers to convenient redistribution of the JVM.

      Your second comment is a nonsequitor. My point is the Sun JVM is extremely greedy in allocating memory. You relate a story about a C/C++ project going poorly. Whether or not Java is a superior language and deployment environment for some types of applications (an argument I do not contest) is irrelevant to the fact that the Sun JVM significantly more memory than an equivalent program in a variety of other languages. There are many causes contributing to this, from the java gui classes, to common java programming style, to the Sun JVM memory fragmentation behavior and garbage collector. None of them is "fundamental". You could write better java code; you could clean up the gui classes or write better ones. The Sun JVM could be fixed or improved to have better behavior. On second thought I don't really know if the garbage collector semantics have any fundamental flaws, although I suspect they do not. In practice, however, all these problems do exist, and contribute to relatively plain longrunning java programs balooning to many tens of megabytes when other similar technologies (for example smalltalk) do not have any problems of the sort.

      You may counter that java is nontheless a more practial virtual development environment than other available systems, a point I do not care to argue at this time. That is completely aside from the fact that the other comparable virtual execution evironments of comparable complexity do not suffer from nearly the same level of allocation bloat. Squeak for example executes a large virtual system complete with a wide variety of applications, runtime debugger and modifier, entire virtualized framebuffer, a comparably complex foundation library all within a few tens of megabytes, even when used over very long sessions. Java in similar situations will consume hundreds.

      --
      -josh
    22. Re:This would help by chthon · · Score: 5, Interesting

      I have the impression that the last couple of months I see more people on Slashdot mentioning Common Lisp as a replacement for Java.

    23. Re:This would help by chthon · · Score: 1

      Don't forget to checkout CLISP, SBCL and CMUCL, which can be run inside Emacs with SLIME or ILISP.

    24. Re:This would help by Lehk228 · · Score: 1

      I don't know much about kernel or OS programming, but if java were to be released in a GPL-compatable license, a linux kernel patch or fork to tightly integrate the kernel and the JVM could boost performance and security by having the kernel more aware of what is going on "inside" the JVM and thus being able to predict resource needs and such?

      --
      Snowden and Manning are heroes.
    25. Re:This would help by asserted · · Score: 3, Informative
      Apparently not so.

      Quoting Deb Goodkin of FreeBSD Foundation (from here):

      We spent close to $35,000 for this release. It is hard to estimate the future costs of maintaining the Java releases since we expect to build updated distributions in response to all security advisories released by Sun.

      So, while the license itself might have been given gratis, this clearly shows that the process of obtaining it was cumbersome and costly, and the result is still a limited, version-dependent, binary-only distribution.
      Yes, Java is still evil. Changing license for something more liberal would certainly help much with adoption here.

    26. Re:This would help by kwark · · Score: 1

      All it would take to install Sun's JVM on Debian is a small script like we already have seen for ttf fonts, nvidia and flash to wrap a wget to the binary distribution and run make-jpkg on it.

    27. Re:This would help by Anonymous Coward · · Score: 2, Insightful

      So, my quesion then is, where's the fat?

      Lets follow the logic here. We take 2 different sets of programmers, 2 completely different sets of designs and implementations, and by the way, because they are implemented using 2 different languages, this proves what exactly? Does the fact your competitors changed languages half-way through the project not give you a clue that competence might be a determining factor here?

    28. Re:This would help by LarsWestergren · · Score: 3, Informative

      2. JVM is fat fat fat, it uses way more RAM than is reasonable.

      1) You do know that tools such as top and ps report a lot more memory than is really used? This has been adressed in the upcoming Java 6, which will more accurately report the memory used, you will likely see a decrease of 25-55% reported memory use on Linux/Unix, and at least 11% of real memory used.
      2) You can use jvm startup parameters to limit memory usage and still get acceptable performance.

      --

      Being bitter is drinking poison and hoping someone else will die

    29. Re:This would help by Anonymous Coward · · Score: 0

      In more efficient (smaller) applications where the (fixed) overhead of the class libraries' memory use is unacceptably large in comparison with the normal memory usage of the application, in applications with a high degree of concurrency or that are mostly network-bound, so that the Java network libraries perform very poorly, or in any applications that necessitate a rapid start from cold.

      In short: Java is fine for a server backend, but horrid for a client.

      A simple comparison of, for example, Torrent versus Azureus, gives you about the worst-case scenario here.

    30. Re:This would help by ultranova · · Score: 2, Insightful

      you are correct. but whatever we saved using java to get the project started, we have already spent trying to figure out why, oh, why java croaks on OutOfMemoryException when we have more than 8G of ram most of which is not being used.

      Because you forgot to give the JVM a permission to use that memory (with the "-Xmx8G" parameter) ?-) I hate it when that happens...

      on a more philosophical level, there is already an excellent VM that *can* use all the 8G and then some. it's called linux.

      Linux is a virtual machine ?-o And here I've thought all this time that it is an operating system kernel.

      using java to build apps because it's easy to program in is like using tonka trucks because those trucks are so much easier to handle than the real thing. after all, why pay commercial driver rates to drive a multi ton truck when you can get you own kids (for free) to 'drive' the tonka trucks.

      More to the point, using Java (or any garbage-collected mandatory bounds-checking language with no way for the programmer to overflow the buffers no matter how hard he tries) is like using a seatbelt rather than just trusting the driver not to crash the thing.

      i learned java back around '95, '96 and was really excited about it then. but after having used it on some really large projects, i have been really really disappointed and came to the conclusion that the only real contribution of the JVM was a serious neutering to most modern advances in the OS.

      Such as ?

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    31. Re:This would help by IDontLinkMondays · · Score: 4, Informative

      Can't speak on the licensing, I'd say that the technology itself however is the complication in deployment. Java has a tremendous number of rough edges and that is was is the problem.

      Now, before I take a moment to rag on your ridiculous RAM comment, let me assure you that I hate Java from that ground up. I find it to be little more than a virus.

      JVM is thin thin thin. The fact is that most non-Sun implementations of the JVM are tight and small. In fact, from a performance perspective, Java is typically superior to compiled languages because of how it handles RAM. Before you blow me off, let me justify my comment. Thanks to the Java license and NDA agreements, I in fact can not say where I learned this information, but I have extensive experience in this topic since I was forced for extended periods to suffer the Java VM on embedded devices.

      Java is a relatively simplistic (though strangley complete to the point of OVER KILL!!!) architecture/language/etc... It provides a language matched to a virtual machine matched to a set of somewhat poorly written libraries.

      What makes Java superior to compiled languages is that it compensates for several key factors. First I'll refine my definition of a compiled language to clearly specify C/C++/Pascal/other non-garbage collected languages.

      1) Application Developers are not System Developers
      Using C++ as an example, most application developers use the standard implementation of new and delete. This is fine, but the first thing to keep in mind is that memory allocation for a C++ application that makes use of a lot of small objects tend to pay a huge performance price. C developers regularly shoot down the performance of C++ without realizing that it's the limitation in the C allocation routines.

      Object oriented programming is typically very heap intensive. In many cases, developers insist on iterating through strings and lists far too much. Students are even taught in the university that data structures should be used absolutely everywhere. Of course they are taught Big-O and Little-O, but unless you're actually implementing the data structure classes and types, very little importance is placed on performance of these classes.

      Strings are abused regularly since even though the allocation unit size of the heap allocator is limited to blocks of 16 bytes (for example), programmers will actually reallocate the buffer for a string to resize it from 8 to 9 bytes in length. By reallocating, I mean they will in fact allocate a new 9 byte string, then copy the original to the new buffer and delete the original buffer.

      Application developers pay very little attention to the actual internal mechanics of the classes and functions which they use. To a certain extent, I can forgive them since an application developer is expected to think differently than a system developer. When we depend on system developers to write applications, they're often extremely fast, but relatively unusable.

      So here's where Java shines, because of the garbage collection system and because of the relocatable memory architecture, memory is managed in such a way which decreases the cycles spent in allocation and deallocation of buffers. A well written JVM actually will actually either when necessary or when time is available compress the heap to maximize performance and minimize heap consumption.

      So although Java seems like a memory hog, it's actually not that bad given the number of allocations and deallocations being performed by the developers. Sadly, the extreme memory use you're talking about is related to the poor system level development skills of application developers stacked on the additional layer which abstracts even more from the developer therefore making it less practical for the developer to understand the internals of the system.

      2) System Developers make Terrible Applications
      A system developer is typically biased towards raw high level languages such as C (not C++) because their used to making use of the stack whereever po

    32. Re:This would help by Anonymous Coward · · Score: 0

      uTorrent actually runs great under Wine. The problem with an application like uTorrent is it'd never be worth porting to *nix, once you take the sockets and UI out of the mix how much is there actually left worth keeping when you consider libTorrent and other implementations already exist on *nix?

      uTorrent doesn't need to be portable, it sits in a niche on the Windows platform.

    33. Re:This would help by m50d · · Score: 1, Flamebait

      uTorrent is doing exactly what you should do - use the platform library rather than reimplementing everything yourself. If java would do the same - use the system window drawing functions, high level network access, etc, rather than a few primitives and then reimplementing everything else in java, we'd be a lot better off.

      --
      I am trolling
    34. Re:This would help by Anonymous Coward · · Score: 5, Insightful

      Programmer time is much more expensive than processor time these days. Therefore, many current programming languages are optimised to save programmer time first. C and C++ were designed in a time when processor cycles were extremely expensive, and therefore are optimised to save time at runtime instead.

      As you have seen, java typically gets you results more quickly than C. In this case, since you simply took less time to get to your basic functionality, you could take more time to think about how to code more efficiently, and ended up actually writing faster code in the end.

      However, java is not the only modern programming language out there. People have designed several new languages in the past decade. It seems reasonable to assume that some of those people deliberately set out to improve on java. Compared to such languages, java might appear to be very inefficient.

      I'll leave it up to you to compare and decide. For instance, here's a comparison for web applications, done at JPL. (YMMV):

      http://oodt.jpl.nasa.gov/better-web-app.mov
    35. Re:This would help by ajs318 · · Score: 1

      That's a bit of a problem, though, when your processor is not binary-compatible with the architecture for which the binary was compiled.

      Unless you wrote the Java interpreter in a truly cross-platform language like Ja ..... oh, bollocks.

      --
      Je fume. Tu fumes. Nous fûmes!
    36. Re:This would help by Pienjo · · Score: 1

      NetBSD and OpenBSD can also run Java through ports

      But only if you run i386, and only if you don't mind installing almost half of a SuSE installation.

    37. Re:This would help by Whiney+Mac+Fanboy · · Score: 1

      uTorrent is doing exactly what you should do - use the platform library rather than reimplementing everything yourself.

      And that's why uTorrent is stuck on one platform, while azureus runs everywhere.

      The win32/aqua APIs are only useful if you want you software to only run on a single platform.... forever.

      --
      There are shills on slashdot. Apparently, I'm one of them.
    38. Re:This would help by Anonymous Coward · · Score: 0

      That's very nice. But it's damn annoying, because I can download everything else with just

      emerge mozilla-firefox bittornado mutt vim gaim skype eric3 doom

      I need to actually... go to a website to get the jvm.
      (this actaully turns out to be much more annoying than it sounds!)

    39. Re:This would help by HaydnH · · Score: 1

      A good example of this is the Java telemetry system McLaren F1 use provided by Sun, if done right Java can fly.

      --
      Time is an illusion. Lunchtime doubly so. - Douglas Adams
    40. Re:This would help by LizardKing · · Score: 2, Interesting

      Half a SuSE installation? I haven't even got Linux compatibility compiled into my kernel.

      $ uname -a
      NetBSD tietokone.panews.press.net 3.0_STABLE NetBSD 3.0_STABLE (LAPTOP) #0: Fri Apr 14 22:31:45 BST 2006 root@tietokone.panews.press.net:/usr/src/sys/arch/ i386/compile/LAPTOP i386
      $ pkg_info jdk14
      Information for jdk14-1.4.2.8:

      Comment:
      Java Development Kit 1.4.2

      Requires:
      openmotif>=2.2.3
      xorg-libs>=6.9.0

      Description:
      This is Sun's Java[tm] Development Kit, version 1.4.2, made buildable
      and usable natively on *BSD/i386 by Greg Lewis and a host of others.

    41. Re:This would help by Anonymous Coward · · Score: 0

      In more efficient (smaller) applications where the (fixed) overhead of the class libraries' memory use is unacceptably large in comparison with the normal memory usage of the application, in applications with a high degree of concurrency or that are mostly network-bound, so that the Java network libraries perform very poorly, or in any applications that necessitate a rapid start from cold.

      You are ignorant. Java has excellent concurrency and networking libraries (NIO). It is fascinating to watch how /.ers build myths upon other myths, without doing any research. Java will use 15MB extra compared to a small app written in C, but is 15 MB such a price to pay when you have 1GB RAM? As for Java apps consuming hundreds of megs of RAM, you can only blame the programmers for storing hundreds of MB of data in memory. The application just happens to have been written in Java.

    42. Re:This would help by owlstead · · Score: 2, Insightful

      Azureus already uses SWT as underlying library, so this argument is a bit moot. SWT *is* using the underlying Windows functions for drawing. Nevertheless, Java will always use some more memory than a comparative (well written) C++ program, due to the class meta information that is included. You get a lot back in readability and in descriptive error messages, and several runtime advantages because of reflection (e.g. plugins). You need C# with .NET to get the same in a Windows only environment, and I wonder if such a program compares favourably.

    43. Re:This would help by Anonymous Coward · · Score: 0

      I have the impression that the last couple of months I see more people on Slashdot mentioning Common Lisp as a replacement for Java.

      Gosh. People on Slashdot are saying that? The language that has all of 100 or so projects on Sourceforge? Sun must be quaking in their boots.

    44. Re:This would help by Anonymous Coward · · Score: 0

      If the Java telemtry system in a McLaren F1 is flying, something has gone horribly wrong.

    45. Re:This would help by shutdown+-p+now · · Score: 2, Insightful

      Who cares how many projects are written in it, if it works better for you and does the job?

    46. Re:This would help by m50d · · Score: 1

      So you pick a better platform, like Wx or Qt. Doesn't invalidate my point. Call me when you have azureus running on an Alpha (the official, Wx client works fine and uses a lot less memory).

      --
      I am trolling
    47. Re:This would help by Whiney+Mac+Fanboy · · Score: 1

      WHy don't you reply to this guy - his point was better then mine.

      But in answer to your question - java runs on alpha, so it will run just fine. uTorrent will not.

      --
      There are shills on slashdot. Apparently, I'm one of them.
    48. Re:This would help by novus+ordo · · Score: 2, Funny

      I don't know if it would replace Java, but it would definitely empty many cups of it.

      --
      "You're everywhere. You're omnivorous."
    49. Re:This would help by Pienjo · · Score: 2, Interesting

      You forgot to mention the fact that you *still* need the sun jdk to build the package, the fact that this is an 1.4 jdk, and you conveniently snipped the bit of the Description where it says that, really, "using it in a production environment is at your own risk".

      But that's all irrelevant - just like the fact that this is a pkgsrc-wip package, which is a more or less independant addition to the package set, and in practice means that you cannot use the quarterly stable branches - the fact still remains:

      ===> jdk14-1.4.2.8 is not available for NetBSD-3.99.18-x86_64

      Or anything else but -i386. Really: I want coffee with my toast! ;)

    50. Re:This would help by Anonymous Coward · · Score: 0

      Nevertheless, Java will always use some more memory than a comparative (well written) C++ program, due to the class meta information that is included.

      Please inform the "Java is not big" Java fans about that, as they keep saying it is not true. Maybe a Java-guy such as yourself can convince them.

    51. Re:This would help by Anonymous Coward · · Score: 0

      You mean it's good enough for the job?

    52. Re:This would help by Anonymous Coward · · Score: 0

      Just for the last few months huh?

      Sorry but people have been recommending Lisp as the solution to all problems for ages. About as long as Lisp has existed actually.

      That doesn't make it any better than it ever was. Nobody uses it for many a reason.

    53. Re:This would help by LarsWestergren · · Score: 1

      I have the impression that the last couple of months I see more people on Slashdot mentioning Common Lisp as a replacement for Java.

      Oh no, people on Slashdot are saying that!? But those guys are always right!

      --

      Being bitter is drinking poison and hoping someone else will die

    54. Re:This would help by LizardKing · · Score: 1

      You forgot to mention the fact that you *still* need the sun jdk to build the package.

      About a year ago I did. However, I've boostrapped all subsequent builds from the native one.

      ... and you conveniently snipped the bit of the Description where it says that, really, "using it in a production environment is at your own risk".

      I did snip it, but the post I was replying to emphasised a requirement for SuSE packages and Linux compatibility to run Java. I snipped the output from pkg_info because I was interested in showing the availability of a native JDK and the dependencies - X11 and openmotif. As for risk, I use the native JDK in a production environment with Tomcat 5.5.x, and I haven't encountered a single problem.

    55. Re:This would help by quintesse · · Score: 1

      Jeez, there should be a Godwin's Law for the word "evil" being used in postings.

    56. Re:This would help by squiggleslash · · Score: 1
      There are some pretty awful arguments being used to defend Java here, and I'll not bless them. Java's run-time is a little larger and slower than it could be, though these days it's not as bad as it was when Java came out, comparing like with like. Given the average Java program has a limit of 64Mb which it needs to keep well within (and almost all Java programs do seem to keep within), and that most substantial non-Java applications, these days, seem to have something like that as their working space (16-256Mb seems to be normal), the increase in memory we have today and the sheer bloat attached to applications in general seems to have dealt with that "advantage".

      That said, if it's a choice between a BitTorrent client that uses 1Mb in C++, and a BT client that uses 4 in Java, I'll just the Java version. Why? Because Java is more secure.

      A lot of programmers diss this advantage claiming any language can be free of hidden stack overruns and other bugs popular in C programmers, it just takes more effort. This is true, but it's not the point. It's not about me trusting my own code - though, having coded since I was 14 and now being in my mid-thirties, I'm old enough to know it's quite simply bullshit for anyone to trust their own coding - it's about me being able to trust someone else's code. Java lets me do that. It's still, in many ways, half-arsed, the security model could be improved, but at the very least a programmer would have to go out of his or her way to put a hole in the code. You don't get one by accidentally calling something that doesn't care how large the memory space is it's writing into, and passing it a local auto array.

      If Firefox was written in Java, despite the fact I know such a program would be slower, I'd use the Java version in its place.

      Incidentally, as many people are also complaining about the fact Java isn't Free Software (yet), I'd like to point something else out. AT&T never, to my knowledge, ever made C Free Software. But it didn't matter, because by the late eighties, many implementations of C were out that were Free. In the Java world, to name but two, we have Kaffe (largely 1.4 compatible today) and GCJ + GNU CLASSPATH. If Sun makes its own implementation of Java Free, then that's great, but there ought to be less focus on persuading Sun to do that and more focus on making the Free implementations the best they can be. Who the hell wants to rely upon a single vendor with its own proprietary interests in the first place?

      --
      You are not alone. This is not normal. None of this is normal.
    57. Re:This would help by tonigonenstein · · Score: 1

      It's like sex really. Some talk about it, the others do it.

      --
      The sooner you fall behind, the more time you have to catch up.
    58. Re:This would help by barcodez · · Score: 1

      Because you have to hire staff to maintain it once it is written. Not many developers are happy to base their careers on Lisp developement (as compared with Java) so you are going to have long search to resource it once the original developers move on to bigger an better things.

      --

      ----
    59. Re:This would help by nwbvt · · Score: 1
      "1. Restrictive licenses make it more difficult to reasonably deploy than any competing technology in a linux environment."

      You are kidding, right? Java is more difficult to deploy on linux than, say, .NET? Why, because you have to download a whole JVM?

      --
      Mathematics is made of 50 percent formulas, 50 percent proofs, and 50 percent imagination.
    60. Re:This would help by HotBBQ · · Score: 1

      Honestly, how hard is it to install Java after you install an OS. Java doesn't come installed on Windows machines and all the desktop drones seem to be figuring it out. Also, it may not be the lastest and greatest, but http://www.blackdown.org/ gets the job done. As far as speed and memory requirements; Java is as good as it's programmer, same as any other language.

    61. Re:This would help by Anonymous Coward · · Score: 0

      As the saying goes:

      "Any sufficiently complicated C or Fortran program contains an ad hoc informally-specified bug-ridden slow implementation of half of Common Lisp"

    62. Re:This would help by Anonymous Coward · · Score: 0

      And that's why uTorrent is stuck on one platform, while azureus runs everywhere.

      uTorrent may be stuck on one platform technically, but I have never been able to run a program under wine as easily as I have with uTorrent.

      I use uTorrent in linux all the time and it never has slowed down my machine to a point where I have noticed. An emulator such as wine (even though Wine is not an emulator ;) ) can easily solve the problem of uTorrent not working across platforms (at least for me)

    63. Re:This would help by Nikker · · Score: 1

      I think the most valuable asset is the ability to write code that runs on any system. Sun's Java language started the ideal, now if any programming language could be compiled to speak 'Java' then regardless of the syntax it would run on the machine with a JVM. This would truly be write once run anywhere.

      What do you think?

      --
      A loop, by its nature, continues. If that didn't make sense, start reading this sentence again.
    64. Re:This would help by jcnnghm · · Score: 1

      When more projects are written in a language, that usually leads to documentation, language help, and example code being much easier to come by.

      A google search for "php tutorial" returns 73,700,000 results and a search for "c tutorial" returns 92,900,000 results, whereas a google search for "ruby on rails tutorial" returns just 2,390,000 results.

      In my experience over the last few days, php and c/c++ documentation (not just the api's, but actual usage and example code) is vastly easier to find than rails stuff. This does make some difference in the usability of the language until you are fully up to speed.

      --
      You don't make the poor richer by making the rich poorer. - Winston Churchill
    65. Re:This would help by shutdown+-p+now · · Score: 1

      I won't point fingers at any specific technology in particular, but what if your less-popular language of choice is inherently more maintainable than a more-popular mainstream one? In other words: yes, you won't easily find as many developers to maintain the project; but you will not need as many in the first place.

    66. Re:This would help by mgblst · · Score: 1

      Ok, so your solution was so good that it blew the network interface (these things don't just go on their own, you know) and that is just fine. Just tell em to have a bunch of replacements ready!

      Seriously, bad programmers can come in all shapes, sizes and languages. Maybe Java is easier to program in, but the C/C++ implementation smacks of bad design and coding. Not a huge win to hold up, if you ask me.

    67. Re:This would help by adavies42 · · Score: 2, Funny

      New NIO--is that like a PIN number for an ATM machine?

      --
      Media that can be recorded and distributed can be recorded and distributed.
      -kfg
    68. Re:This would help by k8to · · Score: 1

      Let me get this straight. Sun Java is not fat. But wait! San Java 6 will be up to 55% thinner!

      Meanwhile, top and ps may be _misleading_, but the resident size they report is not incorrect. Often the values you see are partially made up of libraries and allocations which are not the fault of the program, and VSize can be relatively meaningless for evaluating footprint, a couple of anonymous mmaps that you never use and your virtual size baloons.

      All that said, the _resident_ memory allocated by the JVM is typically in the realm of hundreds of megs for applications which certainly do not require this. This is the kernel pages which are resident in real ram and not moved out. Java _does_ consume an exceedingly large amount of real RAM on linux systems currently, without using it as an efficiency boost.

      I'm glad to hear that Sun is finally getting around to slimming down Java. That will eliminate the second major glaring problem with the platform.

      --
      -josh
    69. Re:This would help by Anonymous Coward · · Score: 0

      Java can certainly use 8 GB of memory. We do it regularly. We got Out of Memory because Java ran out of permanent memory. This is a fairly small space that is separately managed. The size needs to be set by one of the jvm arguments. I would bet that this was your problem as well. There's a pretty easy way to see what is going on with memory allocation. There are both commandline and graphical tools to watch what is happening with each of the memory spaces.

    70. Re:This would help by k8to · · Score: 1

      It may be funny but it's actually a legitimate approach. If you write a translator in language X that can get from language X to binary via some path, then you can write the compiler / vm for language X in language X. This has been accomplished in smalltalk with very impressive results. PyPy is coming along.

      Java could do it too, should it be deemed useful and/or necessary.

      In most cases it ends up being a rather pragmatic step, producing more efficient code/runtimes than the non-automated approach.

      --
      -josh
    71. Re:This would help by k8to · · Score: 3, Insightful

      Why are you arguing as if I stated that java uses more memory than C? Has downsides, sure, but the point is that Java is _the most memory hungry language in the entire world_.

      You can go look at language shootouts showing example code and note how java always allocates the most memory. You can look at real world server applications (tomcat vs medus vs apache) or real world client applications (bittorrent vs rufus vs azureus). You will find that java is always using way more memory than the competition.

      Java uses more memory than C.
      Java uses more memory than C++.
      Java uses more memory than Common Lisp.
      Java uses more memory than Smalltalk.
      Java uses more memory than Self.
      Java uses more memory than Erlang.
      Java uses more memory than Icon.
      Java uses more memory than Pascal.
      Java uses more memory than Simula.
      Java uses more memory than Python.
      Java uses more memory than BCPL.
      Java uses more memory than Perl.
      Java uses more memory than TCL.
      Java uses more memory than Haskell.
      Java uses more memory than Ocaml.
      Java uses more memory than javascript.

      There is _no_ common denomonator to these languages. Some have virtual machines as sophisticated as the jvm. Some have simple hand-hacked runtimes. Some are compiled. Some have features and dynamicism Java cannot hope to touch. Some are terse. Some are verbose. Some are forgotten and old. Some are quite new. Java uses more memory than every single one, and that is a major weakness of java in practical terms at this time.

      --
      -josh
    72. Re:This would help by abdulla · · Score: 2

      Who the hell would switch languages mid-project? C to C++ isn't a trivial switch, that or you ended up with some seriously shit code out of that wise move. Sounds to me like you're talking out your ass.

    73. Re:This would help by Frumious+Wombat · · Score: 1

      Amusingly, "Fortran Tutorial" returns as many hits as "Ruby on Rails". I don't hear any great clamor around here to drop silly languages such as Ruby, and start writing web-apps in Fortran.

      However, PL/I only returns 69,000 hits, which seems to indicate that it's safely dead.

      --
      the more accurate the calculations became, the more the concepts tended to vanish into thin air. R. S. Mulliken
    74. Re:This would help by Aceticon · · Score: 1

      we have already spent trying to figure out why, oh, why java croaks on OutOfMemoryException when we have more than 8G of ram most of which is not being used.

      a) The Sun JVM will not use all available memory unless instructed to do so. You can give it a start parameter to set it's maximum used memory to a value other than the default (which is 512M i believe)
      b) It's perfectly possible to have memory leaks in Java. Basically as long as a reference to an Object is still being hold by a "live" Object, then it, plus all the other Objects it references will not be garbage collected. Things like registering API Objects as Observers/Listeners in allways-in-memory model objects and then not unregistering them when you don't need them anymore (even though you've closed the window or such) are a great way of getting memory leaks.

      Been doing Java for as long as you and haven't reached the same conclusion as you did. This is probably because the other languages i have worked with (C, C++, PHP to name just a few) have shown themselfs to, in the hands of average/below-average programmers, be more prone to result in hard-to-maintain/bug-prone code that Java is. Since 50% of software developers are below-average, that single characteristic saves me and others like me (senior designer/developer, problem-solver) a lot of time and stress.

    75. Re:This would help by m50d · · Score: 1
      WHy don't you reply to this guy - his point was better then mine.

      Because he's right. I have no more arguments (other than that the small benefits he lists are not worth the massive memory cost, which the reader can judge for themselves), and replying with "yeah, you win" just looks lame.

      But in answer to your question - java runs on alpha, so it will run just fine. uTorrent will not.

      Where's a JVM for alpha that will run Azureus then? Sun doesn't have one listed, at least for 1.5 (earlier versions might work, but IIRC Azureus needs a pretty new one) and last I checked, Azureus won't run in Kaffe or anything like that.

      My point is that whateve platform you target, be that posix, win32, Wx, Java or something else, you're at the mercy of that platform's maintainers. Having everything interpreted (yes, dynamically recompiled, but it amounts to the same thing) doesn't change that - you're relying on porting the interpreter exactly the same way as I'm relying on porting the library. But it doesn't matter whether that's a port of everything but the basic functions or a reimplementation in native functions - the former may be easier on the maintainers, but the latter is far more efficient for the user, and Wx (or indeed SWT) shows that it can work. Using only the basic primitives is laziness on the part of the Java maintainers, and users pay the price in memory and performance.

      --
      I am trolling
    76. Re:This would help by Whiney+Mac+Fanboy · · Score: 1

      Hmmmn, you make a good point.

      You're not very specific about what you mean by Alpha - there's modern JVMs (from HP) for true64 on alpha, I have no idea if you can run Azureus in them.

      I think Java is available on more platforms then QT or wx - and I have to add that I misunderstood your original post, thinking by 'platform' you meant the API provided by an operating system.

      --
      There are shills on slashdot. Apparently, I'm one of them.
    77. Re:This would help by thePowerOfGrayskull · · Score: 1

      2. JVM is fat fat fat, it uses way more RAM than is reasonable.
      That's an issue that I've had as well, until I actually thought about it. Look at the name -- "Java Virtual Machine"; each JVM is an environment complete unto itself. Generally, well-written applications that the JVM runs do not have to go outside of that JVM for any reason. One JVM can run multiple applications, without significant increase in memory usage.

      The problem is that people see 20-30MB usage for a simple app, and they don't understand what it is that they're actually running .

    78. Re:This would help by Anonymous Coward · · Score: 0

      you never explained why you hate Java and think it's a virus... care to?

    79. Re:This would help by llama_al · · Score: 1

      That means the problem is most likely not the actual allocated heap size (Xms/Xmx), but rather another memory area. The most common culprit is the MaxPermSize. If your application is big enough, when its classes are all loaded into the Perm area on startup, it may not all fit. It may also gradually tip over the the Perm area size as reflection is used, and the reflected elements are added to the Perm area. Just try increasing the allocated Perm Size and see what happens, or if you are actually methodical and trying to get a solution that lasts, try using JVMstat to check your memory usage.

      In essence tune your JVM more.

    80. Re:This would help by Marlow+the+Irelander · · Score: 1

      Surely they could do that already, using GCJ or Kaffe as a base?

    81. Re:This would help by Anonymous Coward · · Score: 1, Funny

      If you can' figure out why java croaks, you are completely fucking out of your league. I mean, jesus christ, it's a virtual machine. IT CREATES IT'S OWN MEMORY SPACE.

      Want it to not crash with an OOM? Start your app with the right X flag:

      java -jar Xmx512M yourApp.jar.
      To find all the flags and what they mean, type:
      java -?

      Not so hard, now is it?
      Linux is not a virtual machine.

      And just because you are a fucking tool, doesn't mean that portable languages suck. No, rather it means that you do.

    82. Re:This would help by macshome · · Score: 1

      Holy crap! That's one fast typist!

    83. Re:This would help by chris_mahan · · Score: 1

      So you're saying there have been requests that have been declined?

      --

      "Piter, too, is dead."

    84. Re:This would help by Anonymous Coward · · Score: 0

      And Common Lisp IS a great replacement for Java. I'm writing all my new code in it, and already see some cool benefits:

      1. Similar language features: garbage collection, full OOP, packaging, native compilation, linking to C/Fortran/etc., exceptions, etc.

      2. MORE language features: macros, multi-methods, much better collections framework (lists, sequences, etc.), debugger/profiler.

      3. My personal favorite: not locked into a single VM. With Java 1.2+ I was stuck with Sun (and derivative) JVMs, each with their own significant bugs depending on platform, user language, and SQL engine. With Lisp, so far I've managed to get by without significant problems on three different implementations, and there are two more free implementations and a couple good commercial ones if these aren't feasible for some reason.

      Personally, I don't care much that Common Lisp isn't all that popular right now. There was a time when C was unpopular compared to Pascal, when Perl was unpopular compared to C, and now when Ruby is unpopular compared to Python. Each tool has its pros and cons. Right now Lisp seems to be making a comeback in the open-source world with lots of Wikis springing up providing better documentation and better community code.

    85. Re:This would help by WebMink · · Score: 1

      No requests have been declined as far as I am aware, Chris.

    86. Re:This would help by m50d · · Score: 1
      You're not very specific about what you mean by Alpha - there's modern JVMs (from HP) for true64 on alpha, I have no idea if you can run Azureus in them.

      Sorry. I mean the alphastation 600 currently sitting next to my left foot. It's got gentoo installed until I find something better, and I haven't found a single working JVM for it, even GCJ wouldn't compile.

      I think Java is available on more platforms then QT or wx - and I have to add that I misunderstood your original post, thinking by 'platform' you meant the API provided by an operating system.

      I think any API with enough functions to implement a program in it counts as a platform. Even the win32 API could be ported, and is to a certain extent by wine - if the utorrent codebase is really clean, you could compile it against winelib on pretty much any machine and it would work. I think Wx probably supports a similar number of platforms to Java - the only thing I can think of it's missing is BeOS, and Java only goes up to 1.3 there (IIRC). Qt, perhaps not.

      --
      I am trolling
    87. Re:This would help by Decaff · · Score: 3, Insightful

      There is _no_ common denomonator to these languages. Some have virtual machines as sophisticated as the jvm. Some have simple hand-hacked runtimes. Some are compiled. Some have features and dynamicism Java cannot hope to touch. Some are terse. Some are verbose. Some are forgotten and old. Some are quite new. Java uses more memory than every single one, and that is a major weakness of java in practical terms at this time.

      I know. This is a real weakness in Java. It would have been great if it was a far more memory efficient languages, because then it could have been used in a wide range of low-memory situations like embedded devices, PDAs or mobile phones....

      Er - something wrong with this argument, perhaps?

    88. Re:This would help by jonabbey · · Score: 1

      This allegation is really too bare to refute, but I will say that Java explicitly trades memory loading (and performance) for multi-threaded safety. The biggest single thing that causes Java to use more memory than C++ is that all Strings are immutable. This is essential for a multithreaded environment.. if a String is passed to another thread, that thread must be able to depend on the String not changing out from underneath it after it has done preliminary validation.

      When in doubt, Java trades performance and memory for safety and programmer time. And don't forget that 'safety' does double duty by providing both correct behavior and reduced programmer time at debut time.

      If you're not willing to pay the runtime costs for a language and library corps designed for pervasive multithreading and runtime error checking, you shouldn't be using Java.

    89. Re:This would help by Anonymous Coward · · Score: 0

      Just execute
      java -Xmx 8192M $main_class
      and your VM will have access to 8 GB of memory.

    90. Re:This would help by Anonymous Coward · · Score: 0

      -Xmx. Idiot. Don't bitch and moan because you're a moron. I'll bet you can equally suck balls using any language you want.

    91. Re:This would help by Anonymous Coward · · Score: 0
      Let me get this straight. Sun Java is not fat. But wait! San Java 6 will be up to 55% thinner!
      No, he said that Sun Java is not fat, and that the standard diagnostic tools will find they more accurately report memory usage with Sun Java 6.
    92. Re:This would help by k8to · · Score: 1

      Other languages trade memory for performance, and better. Python has immutable strings but doesn't bloat anywhere like java.

      Yes it has some nice features but none of these featurse explain why the java runtime is so damn monstrously large. At least right now.

      --
      -josh
    93. Re:This would help by k8to · · Score: 1

      What has happened that has enabled java to be used on "embedded" devices such as phones and PDAs is that they have stopped being low memory devices.

      Typical embedded design memory space was in the 512k to 4 meg range when companies first started trying to deploy java into the space in 1997. I was there working with Wind River and transvirtual in that space. Java designs could barely manage to squeeze into 30 meg boards with the bare minimum of functionality.

      Nowadays phones and "embedded" PDAs have 64 megabytes of memory and more, and have the most basic of computing functionality.

      Traditionally "embedded" referred to devices which were not explicitly computers. Java is only performing strongly in devices which are becoming quite explicitly computers, and which have bountiful RAM for their tasks. There are some reasons why Java is a good fit for this space, but the memory footprint is not really the selling point.

      --
      -josh
    94. Re:This would help by Decaff · · Score: 1

      What has happened that has enabled java to be used on "embedded" devices such as phones and PDAs is that they have stopped being low memory devices.

      Typical embedded design memory space was in the 512k to 4 meg range when companies first started trying to deploy java into the space in 1997. I was there working with Wind River and transvirtual in that space. Java designs could barely manage to squeeze into 30 meg boards with the bare minimum of functionality.


      The main form of Java for these situations is J2ME, which can be very small indeed - take a look at the J2ME JSR(30) -

      "This configuration provides standard platform for small, resource limited, connected devices characterized as follows:

              * 128K to 512K total memory available with not a bare minumum of functionality (obviously Swing is not there).

      Traditionally "embedded" referred to devices which were not explicitly computers. Java is only performing strongly in devices which are becoming quite explicitly computers, and which have bountiful RAM for their tasks.

      Not true. There is a rapidly growing market for Java is low-memory situations. J2ME development is strong, and it is targetted specifically at low-memory devices. The thriving mobile phone app/game market is not targetted at devices with tens of megabytes of ROM and RAM available for Java and its applications.

      Also, Java is sometimes chosen as the language for extremely low memory devices because it has a highly compact bytecode, which can take up less space than native code.

    95. Re:This would help by Anonymous Coward · · Score: 0

      No, sun is working to make ps tools reporting the right stuff on jvm.

    96. Re:This would help by daikokatana · · Score: 1
      I couldn't agree more. I see far too many posts and topics here and elsewhere discussing the fact which is the better language, and whether or not language x is better than language y.

      The question one should ask is: which language is best suited for this project, or this type of project?

      Somehow I always get the impression that some people are too focussed on a single language, and are therefore defending it above all, because that's all they know. It would be better to take a step back, learn additional languages, and choose wisely because of the benefits of one language in a project.

      --
      http://jcsnippets.atspace.com/ - a collection of Java & C# snippets
    97. Re:This would help by jonabbey · · Score: 1

      What sort of application are you seeing this memory difference on?

    98. Re:This would help by Anonymous Coward · · Score: 0

      That link has paid for the years of my wasted middle age reading slashdot. Thank you, Thank you, Thank you.

    99. Re:This would help by kiwipom · · Score: 1

      I would suggest that the reason you're getting out of memory exceptions is because your maximum heap size is set too small when you start your JVM. Maybe you should RTFM before you bitch about the product.

      --
      Dum spiro spero
    100. Re:This would help by chthon · · Score: 1

      I have even only touched Java a little bit, I find LISP much more interesting.

      Right now, I am doing mostly benchmarks in Common Lisp, to test the performance of the SBCL and CMUCL compilers, against C (and sometimes other compiled languages).

      Thus far those are only small things, but it seems that SBCL and CMUCL (depending upon the right type declarations for an (optimize (speed 3) (compile-speed 0))) (too much parentheses, you say ?) compare very favorably against C (-O3), a certain implementation compiled by CMUCL is even faster than the equivalent in C.

      What I am really looking for now are some things a little bit more complex, but not too much, which can be easily written in Common Lisp, but also easily ported to C.

      The only current downside I have with Common Lisp implementations, is the lack of POSIX process control primitives, and a good documented binding against Qt/KDE.

    101. Re:This would help by aliquis · · Score: 1

      Well all I did where to go to www.opensolaris.org and get the Solaris Nevada Build 38 disks at 7MB/s and then install the OS which came with bundled Java ;)

      I get the point, but it's not a big deal. With both portage and freebsd ports you have to get the files and then the package manager handles the rest doesn't it? If that is the only reason to discuss why Java must be open-source, well, when it's a weak point.

      Also when people complain about memory usage, how would open-sourcing Java help? I think Sun got some skilled engineers inhouse aswell.

      Just think about if you ran Windows, when you would have to go our and take a walk to the store to get the software!

  3. too little too late by mycall · · Score: 2, Informative

    Phalanger is going to support Mono in their next release, which already support IKVM.

    1. Re:too little too late by giliath · · Score: 2, Interesting

      Caucho has been working on PHP compilation called Quercus inside their application server Resin. This is fairly new, but they already have some fairly complicated applications like Drupal and Mediawiki working in it.

    2. Re:too little too late by mycall · · Score: 2, Interesting

      Interesting find. Imagine running Quercus within Kaffe, which would be comparable to Phalanger within Mono as both would be using GNU Classpath for Java support. GNU Classpath's development is moving along fast. Now that Linux distributions are incorporating Mono and GCJ, the .NET vs Java camps are beginning to merge, which is fascinating.

    3. Re:too little too late by alext · · Score: 0, Flamebait

      "too little too late"

      I'd say this tag better fits Mono. Mono will always be behind Dotnet by definition, and Java applications outstrip Mono by approximately 1000 to 1.

    4. Re:too little too late by nrc · · Score: 1


      If it puts a bullet in the head of the programming roach motel that is "Mono" it will be JIT as far as I'm concerned.

    5. Re:too little too late by alext · · Score: 1

      So the drooling Miguelites are out in force...

      mindless copying can get boring after a while I guess...

  4. Third-Party JVM by GetSource · · Score: 2, Insightful

    I think this could be an excellent idea, if only to allow for third-party JVMs.
    I, for one, have always seen Sun's JVM as bulky and slow on Windows PCs, and this is a large reason that I don't advocate its usage.

    1. Re:Third-Party JVM by aliquis · · Score: 1

      Wasn't Java called slow because people used Microsofts JVM in the begining? I could accept that you said that Java used lots of memory when you start the first application, but would you really say it's slow? Anything to back that up with?

    2. Re:Third-Party JVM by Forbman · · Score: 1

      No, having 3rd-party langs run on the JVM could be nice, and would prove how tied to Java (the lang) it is. Oh, but that would make it slightly more feature-equivalent with .Net. Can't have that now...

    3. Re:Third-Party JVM by IntlHarvester · · Score: 4, Informative

      Microsoft's JVM was actually one of the fastest in the day and had extentions for a native GUI similar to eclipse. (Of course those extentions relied on illegal JVM tricks.) It was certainly much better than Netscape Java or early releases of Sun Java.

      The main reason Java has a terrible reputation (IMO) is/was it's tendancy to hang/lockup/freeze your browser when an applet loads, and general clunkyness with Swing.

      --
      Business. Numbers. Money. People. Computer World.
    4. Re:Third-Party JVM by Reverend528 · · Score: 0, Flamebait
      There are two main causes of java slowness. The most well-known is swing, the java graphics api which has one too many layers of indirection to be useful. The other main problem is Checked Exceptions, which force a programmer to write "try{" before the body of every method and "} catch (Exception e) {}" after the body. Although relatively useless (if not harmful), these checked exceptions lead to a minimum of 122 extra CPU cycles per method invocation.

      Luckily, you there are workarounds, such as using Eclipse instead of swing and a different language to avoid checked exceptions.

    5. Re:Third-Party JVM by twiddlingbits · · Score: 2, Interesting

      Ever think part of that is Windows itself? Compare the same Benchmarks for JVMs on Windows and Solaris, you'll see Solaris and also Linux perform better than Windows.

    6. Re:Third-Party JVM by east+coast · · Score: 1

      I think this could be an excellent idea, if only to allow for third-party JVMs.

      Yeah, let's bring back Microsoft's VM... It did wonders for the reputation of Java.

      --
      Dedicated Cthulhu Cultist since 4523 BC.
    7. Re:Third-Party JVM by TummyX · · Score: 1

      Uh, in its day, Microsoft' VM was the fastest. Microsoft was shipping JIT for Java whilst sun was still shipping their slow-ass interpreted runtime.

      How about less heresay and more facts next time eh?

    8. Re:Third-Party JVM by feijai · · Score: 2, Interesting
      Although relatively useless (if not harmful), these checked exceptions lead to a minimum of 122 extra CPU cycles per method invocation.
      Mmm, the sweet tastiness of a piece of malarky. Care to back up the 122 cycles bit? Last I checked on Hotspot there is literally *zero* overhead for wrapping something in a try { ... } catch (Exception e) { }. And why should there be? When an exception is thrown, all Hotspot needs to know is where to unwind the stack. It can look that up in the exception table (a one-liner), and only needs to bother with that after an exception has occurred.
    9. Re:Third-Party JVM by dubl-u · · Score: 1

      The other main problem is Checked Exceptions [mindview.net],

      It depends on what kind of software development you're doing. Well-designed checked exception declarations force you to consider sad-path cases while coding. For high-reliability software development, I absolutely want them.

      On the other hand, for something quick and dirty, checked exceptions are mainly an annoyance. You just want to put in a high-level exception handler and throw up a generic message. Then maybe you go in and add some special case handling here and there.

      I'd be happy if they were optional. Perhaps an @FastAndLoose declaration at the top of your main class?

    10. Re:Third-Party JVM by a.d.trick · · Score: 1
      general clunkiness with Swing

      Definitely. From my experience as a user I rarely use applets, and I didn't really notice speed issues (random slowness is normal in windows), but the UI thing screwed me up the worst. For some inane reason they had to be different from everyone else, and the things that they tried to do the same, were done poorly. In Gnome on linux this is even worse, and the bugs are more obvious.

      On top of that, the java software UI's I've used look like they were designed by the clinically insane. Take, for example, Eclipse (on Gnome):

      1. Preferences. It would be nice if they were under Edit, but since this is designed for windows people and the Linux version is mostly accidental, I'm not surprised it's not there. So then I go and look for the 'Tools' menu, as that's what Windows normally uses. It dozen't exist. Confused I search through 'Project', 'File', 'Navigate', and even 'Run'. Nothing. Eventually, after much frustration, I find it under 'Windows'. What it was doing there I'll never know. I don't know any regular app that does that.
      2. So I want to find were to set the paths for extensions. Of course it's under Preferences so I open that up and start to peruse though there massive tree list. It wasn't there. I look again, and again. I couldn't find it. I looked again trough the menus to see if there was somewhere it might be, but no avail. Several minutes later by brother find it under 'Software Updates' which was under 'Help'. On every Operating System I've used (various linuxes and windows) Help was for Help Files, not configuration.

      Java's a cool idea, but for the love of everything good and holy I don't want to have to sacrifice my first born to do some simple configuration. Till then python and wxWidgets looks promising.

    11. Re:Third-Party JVM by Anonymous Coward · · Score: 0

      Checked Exceptions and Swing are two of the few reasons I prefer Java over Python for tasks a bit more complicated tasks. It's really a blessing to actually have to consider (and handle sensibly) any possible exception you might have to encounter, because you never have the ability to test something with every possible test data before it goes into production, and handling an error beforehand is better than encountering it in production.

      For all of you complaining about Swing being slow, have you actually tried writing anything in Swing? If you use the Swing MFC model as intended, it's really not that slow. And I think the widgets are really good and customizable. It might lack some very, very nice widgets with all the bells and whistles like SWT or other GUI toolkits, but if you need to customise something, it's just really nice.

    12. Re:Third-Party JVM by Call+Me+Black+Cloud · · Score: 5, Informative

      People must be tired to mod you up. Performance isn't really an issue anymore and hasn't been for a couple of years. Blaming any perceived slowness on Swing is like saying C++ is slow because of Windows overhead. Most Java code doesn't make use of Swing (think server-side). As for the "122 ms", well, you just made that up.

      Other problems with your post: Eclipse is an application; Swing is a language feature. A Smalltalk derivative (Squeak) is not a suitable replacement for Java. I'd go so far as to say Ruby and Python aren't either, though both are very powerful and are better suited to some tasks than Java.

      Nice try at a troll...subtly nonsensical.

    13. Re:Third-Party JVM by Anonymous Coward · · Score: 0

      Swing is not the cause of slowness of Java. You dont have to use swing to use Java. There is a thriving community of Enterprise Java developers that have no qualms about Java except probably the large memory requirements. Java's collections API implementations have near native performance. Eclipse is an IDE not a implementation technology. I am guessing you mean SWT. The SWT Vs Swing debate is only applicable when you are developing UI applications, the premise of which itself is questionable, because Swing is considerably faster than it used to be, and the slowness of Swing has to do more with perception and implementation than the technology itself. As for exceptions, they may be an overhead (I dont see any corroborating evidence, but taking it on face value), but they save a lot in programmer productivity and coding time. Which is really important in a commercial setting. Companies pay programmers to crank out software that just works, and the software consuming a little more CPU cycles is far less expensive than developers trying to manage all kinds of race conditions in their code.

      Please get your facts straight before posting.

    14. Re:Third-Party JVM by Anonymous Coward · · Score: 0

      I guess you've never used visual studio then. Eclipse is a marvel compared to that in terms of finding settings. It sounds like you just want to complain (my guess is because eclipse is a million times better than glade).

    15. Re:Third-Party JVM by LarsWestergren · · Score: 5, Insightful

      The other main problem is Checked Exceptions, which force a programmer to write "try{" before the body of every method and "} catch (Exception e) {}"

      No, not EVERY method. Just methods that that can reasonably fail (for instance I/O related operations), and that doesn't "know" how to handle the problem themselves. This helps you create well defined APIs, which in my opinion is one major reason there are so many frameworks and open source projects for Java.

      Although relatively useless (if not harmful), these checked exceptions lead to a minimum of 122 extra CPU cycles per method invocation.

      Evidence of this? Besides, it has been said so many times, but appearently it has to be said again. Processing cycles keep getting cheaper. Programmer hours keep getting more expensive. Trading a few cycles for a feature that helps you create more stable and transparent code is sensible.

      catch (Exception e) {}

      That is just about the worst thing you can write. Ok, maybe catch(Throwable t) {} is worse. That the first editions of Bruce Eckels Thinking in Java books were littered with those is evidence he just doesn't get checked exceptions.

      --

      Being bitter is drinking poison and hoping someone else will die

    16. Re:Third-Party JVM by forgotten_my_nick · · Score: 1

      > Microsoft's JVM was actually one of the fastest in the day

      That day being 7 years ago or so.

      Java doesn't have a terrible reputation except from those people who used Java so many years ago and still think it is as cludgy.

      Take your comment about Applets for example. As far as most Java developers are concerned Applets are rarely used. The money is on the server/applications side.

    17. Re:Third-Party JVM by IntlHarvester · · Score: 1

      As far as most Java developers are concerned Applets are rarely used.

      Of course, but the only place an average endluser ever sees Java is in an applet. Which is why just the word Java brings out all the flamers on slashdot.

      I do think that if MS & Sun weren't so pigheaded and could have come to agreement about something like the MSJVM, that Java would much more accepted on the client-side.

      --
      Business. Numbers. Money. People. Computer World.
    18. Re:Third-Party JVM by mabinogi · · Score: 2, Insightful

      What the hell do your problems with the Eclipse UI have to do with Java?

      Basically, your reasons for disliking java come down to - it sometimes looks a little ugly, and some applications written in java have confusing (to you) UIs.
      The one you mention doesn't even use Swing - java's standard GUI. It uses a third party GUI library - IBM's SWT.

      There's hundreds of applications with confusing and horrible UIs written with many tools and in many languages. In fact, I would say that the number of applications with well thought out and intuitive UIs compared with the some total of all GUI applications over all toolkits and languages is vanishingly small. (Especially if your minor issues with Eclipse rate being "designed by the clinically insane" - I'd hate to think what you thought of Office 2000's disappearing menu items)

      You don't see people bashing C just because there exist crappy GTK+ applications do you? ...and on the ugliness issue - Most of the time that's laziness on the part of the developer. It is quite possible to develop a Java Swing application that looks perfectly fine, and does a pretty good job of blending in (better than some non java applications in fact). And Java 5 improves the situation even more. And if it's still not good enough, then use SWT - you can't even tell you're using a Java application when you're using an SWT application.

      --
      Advanced users are users too!
    19. Re:Third-Party JVM by MemoryDragon · · Score: 1

      The only place the average end user sees java nowadays either is by downloading azureus or one of the other java client side tools, or by hitting the web and getting the pages from one of the myriads of j2ee servers. In either case he wont notice that he is running java.

    20. Re:Third-Party JVM by ultranova · · Score: 1

      As for the "122 ms", well, you just made that up.

      If your CPU runs at 1 kHz, you might want to consider upgrading - I heard that 8086 (4 MHz) are cheap nowadays ;).

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    21. Re:Third-Party JVM by tkinnun0 · · Score: 0

      Although relatively useless (if not harmful), these checked exceptions lead to a minimum of 122 extra CPU cycles per method invocation.

      I didn't see that number mentioned in the article you linked to. Where did you get that?

    22. Re:Third-Party JVM by mattyrobinson69 · · Score: 1

      unfortunately, some people still do (for buttons, as far as i can tell!):

      http://www.nomoreaolcds.com/

    23. Re:Third-Party JVM by owlstead · · Score: 1

      Hmm, I currently use Java command line tools for multiple applications. Although you would notice slight speed downs if you use these applications in a loop, performance is not an issue at all. Some GUI's took some time to speed up, although even that has improved a lot for the last couple of years.

      With the default classes nicely compiled and cached, a lot of performance improvements have been made in 1.5. With 1.6, there is a new VM for x86 architectures that is better in utilizing registers. There is also a new, much more advanced verifier underway (Java has build in security, takes some time and memory as well). I've seen performance improvements of about 40%.

      Still, I would applaud an Open Source JVM, as long as Sun is able to provide a nice, consistent platform to work with. This will allow others to improve the VM and build in some interesting features. Previously, I was very afraid that there would be too many splits from the platform, but the JVM is so established nowadays that that should hardly be an issue anymore. Especially now MS has disappeared from the Java radar.

      Of course, third party JVM's have been around since - well - forever?

      http://en.wikipedia.org/wiki/List_of_Java_virtual_ machines

    24. Re:Third-Party JVM by kiddygrinder · · Score: 1

      My god, i've never so wanted to mod someone down... And by mod you down i mean fire you into the sun... And btw i HATE java, so yah take that as you will.

      --
      This is a joke. I am joking. Joke joke joke.
    25. Re:Third-Party JVM by quintesse · · Score: 1

      So now I wonder what you _do_ like, because if you "HATE" Java, you mustn't like C, C++, C# and just about any C-like language either because they're all somewhat similar. So what are you into?

    26. Re:Third-Party JVM by Anonymous Coward · · Score: 0

      Heh... performance is a huge issue. In my line of work, we occasionally hear of Java being used where C++ was as "they are the same speed." Then we run a simple benchmark on real data of the codes, and the C++ variant is 10x or faster than the Java variant. Of course, any OO language sucks rocks when raw performance is mandated, you need serious procedural languages without extra fluff at that point.

      I also hear lots of "Java blows the doors off of Python|Perl|Ruby" and other useful (not) statements. In Python and Ruby's case, this might be true from a performance issue. Neither of these languages are compiled, so you are paying an interpreter overhead for execution unless you hit the compiled libs. Perl is another story. Good Perl code is quite fast. The losers without a clue will start in with the "write-once" idiocy, blissfully unaware that any code can be obfuscated.

      From a performance and portability standpoint, looking at modern Java, modern Perl, and a few others, I am hard pressed to see the rationale for using Java, considering that the latest versions of Java are not running on all platforms (Itanium2 with Linux, AIX, ... ), or to be more precise, any platform that Sun does not bless. Perl (and Python and Ruby) run *everywhere*. Same code, unaltered.

      There may have been a case once, a number of years ago, for Java, but that case has largely evaporated over time.

    27. Re:Third-Party JVM by kiddygrinder · · Score: 1

      Python atm, but i like languages in this order, python, C++, C, vbscript, Perl, C#, java

      --
      This is a joke. I am joking. Joke joke joke.
    28. Re:Third-Party JVM by Reverend528 · · Score: 1
      Nice try at a troll...subtly nonsensical.

      Yeah. It would appear that adding excessive hyperlinks to a comment is enough to make it "Informative".

    29. Re:Third-Party JVM by squiggleslash · · Score: 1
      Can you come up with a link that justifies your 122 CPU cycles claim? Because I'm not seeing it, and try as I might, I can't see how such a thing would happen.

      There are several ways in which a Java system might implement exceptions, checked or otherwise. The least efficient I can think of that would have a per-method-call overhead is this: One might be using a reserved register to store a returned exception. ie (call it A1 in the below):

      call method
      test A1
      jump_if_z next
      read D0 from type(A1) ;; Read type
      compare D0, #IOExceptionType
      jump_if_eq ioexception_handler
      :
      :
      unlink
      rtn ;; Unhandled exception, return it to whoever called this method

      next:
      Note that in the above, most of the pseudo-assembly isn't called unless an actual exception occurs. We're looking at two minimal instructions (test and jump_if_z) if it is. Maybe we should also add the instruction that clears A1 in each method. I don't know what CPU you program for, but try as I might, I can't think of one with those kinds of overheads.

      But I don't think Java does it this way. The other way that springs to mind is to constantly store and maintain a big-ass jump table (which is how I believe Java actually does it) where throw simply extracts a stored stack pointer and memory address to jump to, puts the address of the Exception object in whatever register is usually used to store this kind of thing, and jumps to it. The only overhead this introduces is on the setting up of the try {} block. It doesn't cause any per-method-call overheads whatsoever.

      Is Java using some third technology for try...catch I can't think of that's horrendously ugly and slow? Is there some benchmark that proves that a simple test and jump on the ix86 CPU would add 122 processor cycles? Could it be people are confusing Java exceptions with CPU exceptions, which are an entirely different thing, and usually are quoted as being that big because they're often accompanied by MMU reprogramming, something clearly that wouldn't be the case in Java?

      I simply don't believe the 122 cycle thing. It's stupid. It'd make Java unusably slow (they'd never have been able to implement Jake2 with that technology), and none of the ways I can think of of implementing exceptions at an assembler level would entail any such overheads. They're ridiculous.

      --
      You are not alone. This is not normal. None of this is normal.
    30. Re:Third-Party JVM by eraserewind · · Score: 1

      He'll notice when it kills his firefox, which Java still does far too often.

    31. Re:Third-Party JVM by forgotten_my_nick · · Score: 1

      He wasn't talking about applets at all which was the whole point.

    32. Re:Third-Party JVM by Decaff · · Score: 1

      Then we run a simple benchmark on real data of the codes, and the C++ variant is 10x or faster than the Java variant.

      This is simply bad coding. This kind of thing often happens when the Java is written in a more OOP way than the equivalent C or C++ applications. Even C++ can be made slow by such coding.

      Java is not slow. There are some standard international benchmarks used to test language speed. One of them is Linpack:

      http://www.shudo.net/jit/perf/

      Typical results (MFLOP values - the higher the better):

      C/icc (-O3 -xN) 402
      C/Visual C++ (/Ox /G7 /arch:SSE2) 399
      C/gcc (-O3 -funroll-loops) 393
      Java/Sun JDK 1.5.0 Server VM 379
      Java/Sun JDK 1.4.2 Server VM 379

      Java is within a few percent of gcc speed, and pretty close to better C compilers.

      I remember exactly the same arguments raised against C++ in the 80s - it was 'too slow' to use compared with C. It was all a matter of coding style.

    33. Re:Third-Party JVM by Anonymous Coward · · Score: 0

      Oh, yes you can tell an SWT application is a Java application!

      It's easy. It'll take far longer to start than you expect for your computer (especially if it's RCP based, because then you're loading the Java libraries and then the massive RCP libraries on top of that). Plus it will randomly freeze as Java starts another massive GC cycle that you'd expect wouldn't take so long but, apparently, does. Plus, if you minimize it and then remaximize it, you can expect it to cruch away doing nothing for several seconds while staring at a blank window.

      Yeah, it's really not that hard to tell that something's an SWT application and not a native application. Other "minor" things like Preferences being under the Windows menu and Updates being in Help kinda give it away too, but that's just because "write once test everywhere" doesn't really apply to GUIs. Even Firefox alters their UI for use on different platforms - under Windows, it's Tools / Options. Under Linux, it's Edit / Preferences.

      Write one run anywhere is completely useless for GUI applications. You might be able to make a portable core, but you really need to create a completely unique GUI for each platform. Not doing so will make it completely obvious that your application doesn't REALLY belong on the OS you're using.

    34. Re:Third-Party JVM by Anonymous Coward · · Score: 0

      Actually, Eclipse is a platform. The Eclipse "Rich Client Platform" (RCP) can be used to write completely new applications. Examples include - ummmm... Well, you can. Just because only Eclipse uses the Eclipse RCP, doesn't mean that it can't be used by other applications.

      (No, Azureus doesn't use the Eclipse RCP, it uses SWT in "standalone" mode.)

      Oh, and by the way, on the exception overhead, yes, it does exist, although the 122 cycle figure seems to be a bit spurious. It shouldn't take too long to Google for papers on it. You can try searching for Optimizing Java Programs in the Presence of Exceptions for a paper on the overhead exception handling causes.

    35. Re:Third-Party JVM by synthespian · · Score: 1

      Wow! Amazing! It's no wonder people are starting to consider Java for numerical code.
      Great, usefull post.

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    36. Re:Third-Party JVM by Decaff · · Score: 1

      Wow! Amazing! It's no wonder people are starting to consider Java for numerical code.
      Great, usefull post.


      There is a problem, though... OOP and numerics really don't go well together. To write high performance numerical Java you have to code a lot like pure C, or even worse - like Fortran.

    37. Re:Third-Party JVM by Anonymous Coward · · Score: 0

      > Oh, yes you can tell an SWT application is a Java application!
      > It's easy. It'll take far longer to start than you expect for your computer ...
      > you minimize it and then remaximize it, you can expect it to
      > cruch away doing nothing for several seconds while staring at a blank window.

      You need to get a better computer with more then 256mb memory, or one that is less then 3 years old. Also your only experience of SWT appears to be eclipse (and probably not recent builds either).

      As a troll I rank you 2 out of a possible 10 though. Keep trying.

    38. Re:Third-Party JVM by tool_sharpener · · Score: 1
      As for the "122 ms", well, you just made that up.
      As Marshall would say to Barney:
      You've been lawyered!
    39. Re:Third-Party JVM by loquacious+d · · Score: 1

      I think you meant to say, "Java is not a suitable replacement for Smalltalk". :)

    40. Re:Third-Party JVM by Anonymous Coward · · Score: 0

      Yeah, just like I need a computer that's brand-spanking-new to run most desktop software. Wait, no I don't, my computer is more than fine for anything that's not Java based. I wonder if that may, just possibly, indicate some flaw in Java?

    41. Re:Third-Party JVM by mabinogi · · Score: 1

      > It's easy. It'll take far longer to start than you expect for your computer (especially if it's RCP based, because then you're loading the Java libraries and then the massive RCP libraries on top of that). Plus it will randomly freeze as Java starts another massive GC cycle that you'd expect wouldn't take so long but, apparently, does. Plus, if you minimize it and then remaximize it, you can expect it to cruch away doing nothing for several seconds while staring at a blank window.

      Wow, I didn't know Explorer.exe was written in Java! ;)

      --
      Advanced users are users too!
    42. Re:Third-Party JVM by Anonymous Coward · · Score: 0

      He was talking about where the average web user will encounter Java, which was the whole point.

  5. No by aliquis · · Score: 5, Insightful

    "Will Sun Open Source Java?"
    No, haven't they already said that? Like hundreds of times? And does it really matter?

    "Sun should endorse PHP and go one step forward and make sure the 'P' languages run great on the JVM [Java virtual machine] by open-sourcing Java."
    "No", who would run PHP on Java anyway? Why? Why would open-sourcing it help?

    "Would this move Java up the desirability scale in your eyes?"
    No, Java is already desirable in my eyes.

    "Could this be a way to help improve what's lacking in Java?"
    No, what is lacking?

    People who complain that Java is slow, should be open-sourced, and so on have never seemed to had a clue.

    1. Re:No by Anonymous Coward · · Score: 0

      People who say Java isn't slow and so on have never seemed to have a clue.

    2. Re:No by Enonu · · Score: 5, Insightful

      Hear Hear!

      Will people stop trying to move Java towards a culture that won't keep Java up to the same standards Sun has? There's a reason why the top two server side platform these days are .NET and Java, and it's because a there's a quality standard and completeness not found elsewhere. The next time I look at another configured by altering it's code, hard tied to MySQL, non-tiered POS LAMP application, I'm going to cry.

      The only place I ever see Java going is perhaps to be bought by another bigger company who has a similar path. My only hope is that it's IBM because their Java apps are of a higher quality than Sun's, and they've done such good work with the Eclipse platform.

    3. Re:No by JanneM · · Score: 5, Insightful

      People who complain that Java is slow, should be open-sourced, and so on have never seemed to had a clue.

      Irrespective of any ideological issues, there are a few reasons the current situation hurts Java a bit.

      Foremost for quite a few readers of slashdot is that free Linux distributions can't include Java in their default install. That means Java-based apps are not going to be included either. And since users need to jump through quite a few hoops to get Java installed (don't say "it's easy" - for most people anything beyond using their package manager is too high a hurdle), you can't assume it will be available on desktops in general.

      The second issue is that Java does not really play well with the desktop. I have set up my desktop to run fine using three languages - English, Swedish and Japanese - and made sure everything from localization to character input works smoothly. But Java does not cooperate; it has its own way of dealing with CJK characters and needs its own fonts and separate setup to work. I have fiddled a little with it, but have never gotten it to work properly (especially being able to run an app in Swedish while still being able to input Japanese). And since it uses its own input method, it does not share the local dictionary so typing becomes frustratingly different from any other application I use. And since the code is not open, distributions can't fix these interoperability issues.

      Both of these issues serve as disincentives from using Java apps and from writing them in the first place.

      --
      Trust the Computer. The Computer is your friend.
    4. Re:No by Surt · · Score: 4, Interesting

      "Will Sun Open Source Java?"
      No, haven't they already said that? Like hundreds of times? And does it really matter?


      Sure it matters. A lot of people have issues with it because of the license. It would clearly expand the number of potential adopters to go open source. More adopters will mean better tools.

      "Sun should endorse PHP and go one step forward and make sure the 'P' languages run great on the JVM [Java virtual machine] by open-sourcing Java."
      "No", who would run PHP on Java anyway? Why? Why would open-sourcing it help?


      Well, I agree with the first part. But presumably integration will get better/faster in open source.

      "Would this move Java up the desirability scale in your eyes?"
      No, Java is already desirable in my eyes.


      But a lot of people would find it more desireable. You can trust that java won't go away in open source, whereas you can't really say the same as long as SUN is at the helm.

      "Could this be a way to help improve what's lacking in Java?"
      No, what is lacking?


      Mostly modernizing. The pace of java development is glacial, compared to say what is going on in C# or Ruby. People with specific integration issues that can't get sun to address compatibility problems are stuck.

      People who complain that Java is slow, should be open-sourced, and so on have never seemed to had a clue.
      There's no doubt java is still slow in a number of contexts. There are also obvious opportunities for performance enhancement that could be addressed in an open source process. I recently benchmarked ten of my applications in c++ and java, java is about 2x slower for most of the cases I tried, and never faster. To me, that's perfectly acceptable, but java could make more inroads into other areas of computing if it was more competitive in performance. More inroads means more developers, and that means better tools, which is what I yearn for.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    5. Re:No by IntlHarvester · · Score: 1

      I'm not going to defend LAMP garbage, but I think there's the reasonable criticism that Java does not scale down well to smaller webapps, and even the smallest thing seems to end up with a half-dozen third party frameworks.

      That might be mainly programmer culture more than anything else, because you certainly can write PHP-style JSP code.

      --
      Business. Numbers. Money. People. Computer World.
    6. Re:No by jnana · · Score: 1
      Those people who care about their PHP running up to 6 times faster might want to think about PHP on the JVM: http://www.theserverside.com/news/thread.tss?threa d_id=38144.

      But everybody knows that Java is slow (I tested it myself in 1997, so I speak from experience), so that must be total bullshit, huh?

    7. Re:No by TheWama · · Score: 4, Insightful

      How about the people who claim it's tedious and sprawling*?

      Simple example...

      Java: BufferedReader in = new BufferedReader(new FileReader("foo.in"));
      Python: in = open('foo.in')
      Ruby: in = File.open('foo.in')
      C++: ifstream in; in.open("foo.in");

      To be fair, I'm no Java expert, but in my experience with it, I'd have to be masochistic to look at it all day...

    8. Re:No by Anonymous Coward · · Score: 2, Funny

      Oh please, no one would do that in Java. You need to have control of the character encoding. A real example would be:

      import java.io.BufferedReader;
      import java.io.FileInputStream;
      import java.io.IOException;
      import java.io.InputStreamReader;
      import java.io.Reader;
       
      ... and later ...

      try { Reader in = new BufferedReader(new InputStreamReader(new FileInputStream("input.file"), "utf8")); } catch (IOException ioe) { /* handle this? */ }

      See - nice and terse.

      (Of course if you think that's bad, you should see how many wrapped objects Swing uses!)

    9. Re:No by killjoe · · Score: 1

      "No, haven't they already said that? Like hundreds of times? And does it really matter?"

      Well they say a lot things and then contradict themselves. They also say java is already open sourced as they define open source. Sun executives don't live on the same planet as you and I do. They make up their own definitions as they go along. Here is a nice diagram of sun's strategy.

      Does it matter? I think it does. I mean I just tried for a couple of days to get java 1.5 loaded on to ubuntu PPC. Is there a reason why it has to be so difficult? Doesn't it help Java programmers if the JRE and the JDK can be redistributed freely.

      --
      evil is as evil does
    10. Re:No by Anonymous Coward · · Score: 0

      The pace of java development is glacial, compared to say what is going on in C# or Ruby.

      Most of your post is either correct or arguable, but this is just flat out wrong. Java development has proceeded at a pace faster than any other language in history. Each version that comes out (about one every 1.5 years) contains a boatload of new features and APIs. Besides those that are integrated into the core, there are thousands of mature APIs available from Sun and third parties. Everytime a new technology hits the scene, Java has a stable or leading API before every other langugage.

      If Java's pace seems glacial, it's because everyone else is still playing catchup. Java's trying to break new ground while they're working on adding even a tenth of the functionality.

      The only other area of contention is the matter of features like Operator Overloading. Most long-time Java coders are actively standing in the way of such features as they screw with the basic tenent of the language. That tenent is that the language itself should be minimal, and that EVERYTHING else should be implemented in libraries. If you have a problem with that, you're free to use one of the few hundred languages that target the JVM, or create your own to meet your needs.

    11. Re:No by Anonymous Coward · · Score: 0

      > "Could this be a way to help improve what's lacking in Java?"
      > No, what is lacking?

      Decent startup times. If java started up as fast as python or perl or php it would rock my socks off. When in memory and given enough ram, Java runs fine, but the slow startup time sure doesn't make it feel "tight", even though when running it's faster than the interpreted languages.
      Unsigned native datatypes would be great for embedded devices.
      Menu accelerators, when doClick()ed, pause the GUI thread for 68 milliseconds. Don't hold down an accelerator key for too long or else the GUI locks up (if your KB repeat rate is faster than 14cps). This is just retarded. (get around this by overriding doClick or using some keyboard manager stuff I don't remember the names of)
      How 'bout something in Sun's API to make JComboBox popups a different width than the control. In the native look & feel. I don't want to subclass and write 5 pages of code to work this basic functionality in.
      Menu drop-shadows in the native look and feel, like every other native app does in say winxp.

      Ah well. I like java anyway. Actually it would be proper to say I hate it less than some other languages.

    12. Re:No by Anonymous Coward · · Score: 0

      Simon Phipps was interviewed in http://lugradio.org/episodes/45 and stated that Sun's policy was to open source everything (including java) within the next 2 years or so; however it was up to each project to come up with their own roadmap to facilitate this.

    13. Re:No by iabervon · · Score: 4, Interesting

      I'm not sure if you're complaining about development of the language and standard library API, or development of Sun's implementation. The language evolves about as fast as is prudent, because they're committed to having the language not have badly-designed features that need to either be incompatibly dropped or painfully maintained. So Java gets features essentially as soon as C++ has made all the mistakes related to those features.

      On the other hand, Sun's Java compiler has always had broken dependancy tracking (at least since I started using it heavily in 1999). (If a build has an error, the set of output class files may be such that the next run of the compiler skips a source file which needs to be compiled; this is mainly that it can generate the public class without generating other classes in the same file.) I think it's likely that, if Sun does open source the JDK, they'll get fixes for a number of annoying flaws of that sort pretty quickly, and things that are clearly wrong but aren't considered worth working on will be improved substantially.

      Of course, there's essentially no chance that they'll relax their grip on the language standard, and they probably shouldn't, unless they turn it over to a standards body due to no longer being able to employ good language designers.

    14. Re:No by dubl-u · · Score: 1

      No, what is lacking?

      Are you serious?

      One of my favorite interview questions is "What would you change about Java?" I've never hired a Java programmer that didn't have some good answers for that. I'm sure I could name off the cuff 20 things, big and small, that I'd change tomorrow if I could.

    15. Re:No by Anonymous Coward · · Score: 1, Informative

      If someone wants to fix a specific bug (for example, in dependency tracking) they can download the source code of Java, fix the bug, and submit a patch. Sun doesn't promise they'll apply the patch, but if you have an improvement to Java I can't see why they'd turn it down.

      There's no reason the license for Java needs to change if all you want to do is fix specific flaws in the current implementation. The only reason Java would need a more open license is to allow people to copy, modify, and redistribute the JVM (or the SDK tools).

    16. Re:No by Anonymous Coward · · Score: 5, Funny

      The next time I look at another configured by altering it's code, hard tied to MySQL, non-tiered POS LAMP application, I'm going to cry.

      Of course, any equivalent app in Java would have more lines of opaque XML configuration than the "POS LAMP application" has code. It will also be slower, eat several times as much memory, and depend on specific versions of two dozen frameworks.

      The Rails version, OTOH, would be about 4 lines long and deployed before the Java guys managed to fire up their Eclipse bloatware. It would, however, be about the same speed as the Java app.

      The Lisp version would never fail, would have source code in the form of a haiku, could tell the future and control the weather. It will never be written because all those parentheses look funny.

    17. Re:No by still_nfi · · Score: 1

      The second issue is that Java does not really play well with the desktop

      Is this just an artifact of AWT/Swing? Does SWT address this. Eclipse appears to be the poster-child of the java desktop apps thanks to SWT but i only input english.

      As for open source...are we talking about the java libraries or are we talking about sun's implementation of the JVM?

      --
      "I have been around the world and found that only stupid people are breeding" -- Harvey Danger
    18. Re:No by William+Robinson · · Score: 1
      You have made concrete valid points... specially about distributions. I can not agree more.

      Apart from all the problems you have listed, IMHO, there is an interesting possibility that, Java might become useless if Sun Microsystem does not make it FOSS.

      Java provides a unique advantage of "Write once run everywhere". JVM provides a layer above real OS, so that bytecodes see the VM on which they are running.

      Similar (or better) advantage is available on Linux. For example, gnome need not be rewritten to make it run on different machines. The programs written once can run on any machine running Linux. Only difference is, you have a real OS, instead of VM.

      Recently, I installed Linux on Intel Mac Mini, and found how easily I could recompile whatever I needed.

    19. Re:No by Anonymous Coward · · Score: 0

      Better tools? What about Eclipse? For me that's is the best development environment I've ever laid hands on. Well... perhaps not for GUI-stuff (altough it keeps getting better and better), but surely in all other areas.

      I just wished it would have just as good support for other languages as well.

    20. Re:No by Marcos+Eliziario · · Score: 1

      Not so fast. have you ever read the license? Basically merely by looking at sun JVM code you are agreeing to a lot of things that basically means that you'll never be able to work in a competing VM for the rest of your life, unless you want SUN lawyers coming at your heels.

      --
      Your ad could be here!
    21. Re:No by el_womble · · Score: 2, Informative

      But that brings in the biggest problem with Java, when to use it. I completely agree with you that Java, for small apps, is a nightmare. Compare getting a single JSP running under Tomcat 5.0 to getting an rhtml page running in Ruby on Rails, or a PHP page with mod_php.

      The problem is worse with medium scale apps because Java offers something most frameworks don't: choice. Do you use Spring, Hibernate, JSF/EJB3, JSP/EJB2, Struts or a mixture of all of the above (shudder). Thats one man month gone already and you haven't even written a prototype. This makes finding your team hard too, as even if you are Sun Certified, each framework is a language in itself with its own quirks and thats before you get inhouse arguments over which patterns you are going to use and where. Thats before we even start to talk about writing the same code three times (interface(s), bean, XML)

      I think Java has lost the small to medium enterprise battle, but then it never really wanted to win those battles. XDoclet and hibernate take some of the hardwork out of Java programming, but the battle isn't with the frameworks so much as the language itself. Compared to C/C++ Java might look light, but compared to Ruby/Python/PHP its nightmare of repitition and bordom. Arguments about speed of execution are as relevent with Java/Ruby(et al) as they were with Java/C and C/Assembler. Thats not to say that Java isn't faster than modern scripting languages (although just as in Java vs. C that is debateable), its just that the time to support and build a scripting language is so much less that the additional hardware is cheap in comparision.

      If you find yourself writting a Java webapp for a project whose volumetrics don't mean that you need to be running on at least 3 Sun Servers (or equivalent), then you're almost certainly using the wrong tool, and even if you are the chances are that Ruby on Rails is still probably worth a look.

      --
      Scared of flying, pointy things snce 1979!
    22. Re:No by Anonymous Coward · · Score: 0

      You're also no C++ expert:

      C++: ifstream in("foo.in");

    23. Re:No by beemishboy · · Score: 1

      Many many development shops use PHP at the front-end and Java at the middle/back-end. If they were to interoperate better in clever ways, that would be appealing to those companies. I would personally be more inclined to use PHP at the front end if there were clever ways to do that. Also, Eclipse, with version 3.2 is branching out more to be a multi-language environment. Zend and others are putting some weight behind making Eclipse a decent PHP editor alongside Eclipse's great Java environment. I would think the PHP or Pxxxx language integration with Java is a big shot in the arm.

      Open sourcing Java would also help Sun in that it can't do everything - Swing is a perfect example of this. They have invested development time and money into Swing off and on for years and developers have suffered when it wasn't a priority. If Sun were to Open Source Java, there is a possibility, a good possibility I think, that those who hold to more "free" ideals would use the language and contribute to some of those areas.

      Will Sun Open Source Java? They've said that they won't do it for now. I don't think *any* company on this planet, especially a software company can say they will never do something. Just look at Apple/Intel. Sun also said that they are going to Open Source their entire software stack, which they are doing - Solaris, Dev tools, etc. It makes perfect sense that this would be a good time, when Schwartz needs some good PR as people are questioning his leadership credentials as an insider. People are criticizing the choice because they don't think he's willing to make the necessary changes that someone from outside the company would have made. One of those choices might be to Open Source Java in a reasonable way. He and Scott McNealy could have been saving that decision for when he would take over so that an initial bold move that would bring a likely success would give Schwartz some good karma for his start.

    24. Re:No by mikaelhg · · Score: 1

      "No", who would run PHP on Java anyway? Why? Why would open-sourcing it help?

      Hellooooo, Caucho Quercus already implements PHP in Java.

    25. Re:No by nissu · · Score: 1, Troll
      Java: BufferedReader in = new BufferedReader(new FileReader("foo.in")); Python: in = open('foo.in') Ruby: in = File.open('foo.in') C++: ifstream in; in.open("foo.in");
      Big deal. Write a utility class with a method called "open", use that utility class everywhere and just get over it. Java streams might be intimidating at first, but once you get the hang of using them they are very convenient.
    26. Re:No by Hugo+Graffiti · · Score: 1
      I recently benchmarked ten of my applications in c++ and java, java is about 2x slower for most of the cases I tried, and never faster.

      Did you remember to do a "warm-up" phase for java to enable all JIT-compilation to take place before doing the real test? (See here for more tips on this).

    27. Re:No by Anonymous Coward · · Score: 0
      Java: BufferedReader in = new BufferedReader(new FileReader("foo.in")); Python: in = open('foo.in') Ruby: in = File.open('foo.in') C++: ifstream in; in.open("foo.in"); Big deal. Write a utility class with a method called "open", use that utility class everywhere and just get over it. Java streams might be intimidating at first, but once you get the hang of using them they are very convenient.

      Anal sex might be intimidating at first, but once you get the hang of it then its very joyful.

    28. Re:No by Anonymous Coward · · Score: 0

      No, haven't they already said that?

      Well just over a month ago on http://www.lugradio.org/ (season 3, episode 10) Simon Phipps said that that all Sun software will be open-source eventually.

    29. Re:No by Anonymous Coward · · Score: 0

      # I could do that, or, in the same amount of code in (for instance) python,
      # create a new (simple) oodb and fill it with data. :-P

      import shelve

      db=shelve.open("mydb.shelf")
      for item in stufftoadd:
           db[item.get_some_key()]=item

    30. Re:No by Cederic · · Score: 1


      You had to recompile. With Java there's no need to recompile.

      That makes a big difference in corporate environments. Write on windows. Build on linux. Deploy on solaris.

      Mix and match according to the hardware you have.

      This is particularly useful when re-using third party libraries. Many are commercial (IBM / BEA in particular) and many are open source. But you can download a jar file and use that straight off, on any OS. No need to find the source, build it.

      This makes java quick and easy to use in a corporate environment. Linux has many strengths, but wont replace Java's portability in this regard.

    31. Re:No by Cederic · · Score: 5, Insightful


      Sorry, but when I'm dealing with code written offshore by developers of mixed ability in a system integrating my mainframe to my fulfilment systems with customer web access, online payments, content management and back office consolidation thrown in then I want a language that's immediately readable.

      Perl is exceedingly brief to write. It's also very difficult to read.
      PHP/Python are better, but most code I see is frankly horrible.

      With Java the APIs and libraries - even third party, even open source - have descriptive names. They make sense. You can figure out what's going on from the method and classnames, without having to go and read them.

      This makes unfamiliar code easier to read. I've done Delphi/C/C++/perl/PHP programming, and none of them have as easy to read code as Java. I value that a lot.

      That you have to type an extra 32 characters to open a file? Good! Hell, you're not typing enough already - 'in' is a bad name for a variable. How about making it descriptive, tell the reader what you're reading.

      Modern IDEs do most of the typing for you. The clarity of the code that's written is more important than the extra two seconds you need to write it.

    32. Re:No by shish · · Score: 5, Insightful
      Why do none of your other language examples have an explicit buffer layer? You should add that, then see what the result is :P People in other languages have become used to reading chunks of a file into a buffer then parsing a bit, then reading a new chunk -- java people can just read what they want, when they want; IMHO adding a bufferedreader is a small price to pay to get rid of all the manual buffering~

      While you're at it, make it read objects from a gzip compressed network stream:

      new ObjectReader(new GZipReader(new SocketReader(new Socket("1.2.3.4", 42))));

      (I'd really like someone to demonstrate this in other languages; having started with java and moved to C, things like gzip stream reading and network access seem like such unnecessary pains in the ass that I've never bothered to learn them properly...)

      --
      I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
    33. Re:No by Anonymous Coward · · Score: 0

      I recently benchmarked ten of my applications in c++ and java, java is about 2x slower for most of the cases I tried, and never faster.

      I don't want to suggest that you can't code properly. But you have to understand and know how the platform works "under the hood" to get acceptable results.
      I distinctly remember an example in a computing magazine where they benchmarked the very same algorithm in C and java.
      The java version ran awful when directly ported. But after rewriting the code to fit the concept of the language and JVM it was pretty much the same performance.

    34. Re:No by mwvdlee · · Score: 1

      The whole idea of Java being portable becomes moot, however, in server environments where Java code is strongly tied to the application server it's supposed to run with.

      It's still a hell of a lot more portable than the GP's Gnome example though, which is tied the the OS. It's like saying any Windows application can run fine on any other Windows system with recompilation, which is also true.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    35. Re:No by Decaff · · Score: 1

      Did you remember to do a "warm-up" phase for java to enable all JIT-compilation to take place before doing the real test? (See here for more tips on this).

      This is almost always forgotten. I have seen reports that complain how slow Java is based on running benchmarks for less than a second. The JIT (or these days, Hotspot) doesn't stand a chance. I took the same benchmarks, and ran them for 5 or 10 times longer and Java easily matched C performance.

    36. Re:No by owlstead · · Score: 1

      "Of course, any equivalent app in Java would have more lines of opaque XML configuration than the "POS LAMP application" has code. It will also be slower, eat several times as much memory, and depend on specific versions of two dozen frameworks."

      Opaque XML configuration? Most of the time you only see opaque XML configuration if you are a) creating something out of the ordinary and b) not using a tool to generate the XML configuration. And even then it depends on your framework. And I've never seen an implementation rely on more than one framework for equivalent functionality.

      Calling Eclipse bloatware completely makes your argument moot. For it's functionality, you could even call it sleek. I've tried ruby, and after trying that, I went crying back to Java. IMHO, ruby is currently the buzz, but it will never replace something as robust as a Java enterprise app. I don't see many corporations switching to ruby either (even though these people are generally slow switchers). Maybe for single web-developers, but for teams...

      Lisp has been around for long. So long that I cannot see it gain much market dominance (for web applications) at this day and age.

    37. Re:No by Anonymous Coward · · Score: 0

      Your Python version won't run ("in" is a keyword) and the C++ version really should be: ifstream in("foo.in");

    38. Re:No by Decaff · · Score: 1

      Sure it matters. A lot of people have issues with it because of the license. It would clearly expand the number of potential adopters to go open source. More adopters will mean better tools.

      I really don't think that a lot of people do have issues with the license. Sure, a lot of OSS supporters do, and a reasonable number of Slashdot posters seem to, but that is, I am afraid, a small fraction of the total developer community, and hasn't stopped Java becoming dominant.

      And as for better tools, well one of Java's strengths has always been the quality of tools. There are products like Hibernate, and IDEs like Eclipse or NetBeans. No-one can complain about the quality of tools.

      But a lot of people would find it more desireable. You can trust that java won't go away in open source, whereas you can't really say the same as long as SUN is at the helm.

      Java isn't going away with or without Sun at the helm. To state otherwise is to neglect the fact that other companies have invested hugely in Java, like IBM.

      There are also obvious opportunities for performance enhancement that could be addressed in an open source process. I recently benchmarked ten of my applications in c++ and java, java is about 2x slower for most of the cases I tried, and never faster. To me, that's perfectly acceptable, but java could make more inroads into other areas of computing if it was more competitive in performance. More inroads means more developers, and that means better tools, which is what I yearn for.

      It is wishful thinking to believe that a mass of open source developers could add much to the performance. Can you show me an example of any equivalent open source language that is respected for its high performance? OSS C/C++ and Fortran compilers are not known for being top of the range in this area, and OSS attempts to replicate Java lag well behind in terms of VM performance.

      I regularly benchmark Java against C, as I do serious numeric work, and I find that recent VMs are very close to C, and nowhere near as slow as half the speed. This not just my experience - there are products out there that illustrate this speed - high-performance pure Java databases for example, and the Java app server Tomcat can come close to Apache speed in serving pure web pages. I don't think performance is an issue anymore.

    39. Re:No by owlstead · · Score: 1

      I've been sick and tired of these "simple examples". I don't care if you can do such a thing with less characters. What I do care about is readability and robustness for larger applications.

      I've been programming Java for some time now, and even in Java it is possible to write ugly code. That said, most of my C++ colleagues have no trouble at all reading my code, or understand the error messages (nicely including a stack trace even on the production platform). They always create applications that get stuck "for some reason or other" or generate very helpfull general protection errors. And I am always guessing what it does.

      Sometimes I hate Java for trying to get too complicated as well, but in the end you are left with robust code. The only thing I really hate is the exception handling. Then again, if you let all your methods throw a general exception, you can forget about all that required exception handling. Of course, just like those languages, if anything goes wrong you are probably in a tight spot.

      final INFILE = "foo.in";
      try {
          final FileReader fileReader = new FileReader(INFILE);
          final BufferedReader in = new BufferedReader(fileReader); // ... do stuff here ...
      } catch(IOException e) {
          throw new IOException(String.format("Could not open %s", INFILE));
      } finally {
          try { fileReader.close() } catch(IOException e) { /* OK, we cannot close the file */ }
      }

      Sounds complicated? Look at the messages you get from C++ if anything goes wrong. Most of the people I know do not even use the STL because of the level of understanding you need to use that. Anyway, try and use any language and you will find things are not as easy as they seem. If you think that new BufferedReader(new FileReader("foo.in")); is complicated: well, think again.

    40. Re:No by Anonymous Coward · · Score: 0

      You miss the point with your code example. Java's IO API's are VERY flexible with what you can and can't do with them. Since everything is based on Streams, you can abstract out what kind of stream you are dealing with in related objects regardless of whether it is on the local file system, or on a server 6000 miles away.

    41. Re:No by penguin-collective · · Score: 1

      Does SWT address this.

      No, because SWT isn't part of the Java platform--SWT is an external add-on library--and because many people are writing Swing apps.

      Furthermore, speaking just as a user, SWT applications don't seem to integrate that well with the desktop either.

    42. Re:No by penguin-collective · · Score: 0, Flamebait

      Will people stop trying to move Java towards a culture that won't keep Java up to the same standards Sun has?

      Indeed. It would take the open source community years to beat Sun Java into shape: both the platform and the implementation are far below the quality that successful open source projects would tolerate.

      The next time I look at another configured by altering it's code, hard tied to MySQL, non-tiered POS LAMP application, I'm going to cry.

      The bloat and wasted man-years behind every J2EE application used to want to make me cry, but I just take it in stride. Of course, I see fewer and fewer of them percentage-wise.

      There's a reason why the top two server side platform these days are .NET and Java,

      "Top" in arrogance and pay, at least, if not in the number of sites based on it.

    43. Re:No by Anonymous Coward · · Score: 0

      "Foremost for quite a few readers of slashdot is that free Linux distributions can't include Java in their default install. That means Java-based apps are not going to be included either. And since users need to jump through quite a few hoops to get Java installed (don't say "it's easy" - for most people anything beyond using their package manager is too high a hurdle), you can't assume it will be available on desktops in general."

      Very sorry to sound like a troll, but do you have any idea how irrelevant the Linux market is in the corporate desktop world? Java installation on Windows is very, very easy, and I'm afraid to say that that's all that matters right now.

    44. Re:No by killjoe · · Score: 1

      I just installed ubuntu PPC on a mac mini and it didn't come with java. Sun does not offer a java which runs on PPC. You have to go and download the java from IBM and then install backported libraries, mess with alternatives by hand, and much with your bashrc just to install java so you can run a java program.

      So much for write once run anywhere.

      --
      evil is as evil does
    45. Re:No by killjoe · · Score: 1

      See my other post about trying to install java on a PPC linux. It's not write once run anywhere, not even close.

      --
      evil is as evil does
    46. Re:No by jrumney · · Score: 2, Interesting
      Does SWT address this.

      From the accounts I've read, SWT addresses the artifacts of Swing and AWT by making applications work really well on Windows, and really badly elsewhere. It targets the features of the lowest common denominator platform, instead of targeting the lowest common denominator features of all platforms like AWT does. Swing is better if you use a recent JVM with all the performance bugs fixed, and use the look and feel package that matches your platform.

    47. Re:No by Cederic · · Score: 1


      Not run anywhere. But it does run in plenty of places.

      I must admit, not tried getting it onto a PPC linux setup. If you can get the VM to run though, everything else written in Java has a good chance of just working. That's nice. And lets face it, Linux didn't run on PPC until someone did a lot of work to port it.

      Simple fact is, I can download a library from the net. I don't know whether it was compiled on linux, PPC linux, an IBM mainframe, Windows or HP-UX. I don't care. It will work anyway.

      The code I write is equally portable. Usable as-is, with no modifications.

      No, java portability isn't ubiquitous. But don't underestimate it either.

    48. Re:No by Anonymous Coward · · Score: 0

      Look's like sense of humor did not gain much dominance in your brain either.

    49. Re:No by kolpackov · · Score: 1

      Well, if you are really into compactness here, then

      C++: ifstream in("foo.in");

    50. Re:No by Cederic · · Score: 1


      Even when tied to app servers.. Code written to run in Weblogic will run in it on Windows, or on Solaris, or on HP-UX.

      It means you can still deploy on top-spec midrange servers without having to develop on them. You can test on cheap linux boxes while giving your developers the productivity tools offered by Windows (ack, am I really saying that? :)

      Does it mean you can deploy straight into Websphere or JBoss or Oracle App Server? Nope, not without 'porting'.

      If you don't use server specific capabilities (because you have a lightweight web-app) then the intention is that you'll be able to re-use in a different app server with ease. I haven't tried that myself though - I haven't tried to create products in Java, so support for multiple app servers hasn't been necessary, and thus it's been better to optimise to the server than retain portability.

      Of course, whichever app server you use, you can still use struts, or log4j, or hibernate, whatever your OS, without recompilation - that's a big big advantage as it does drastically reduce the risks of using third party libraries, and that translates to a cost saving.

    51. Re:No by sperxios10 · · Score: 1

      It is obvious that you hate exception handling by the way you code it; it does not even compile!

      • At the finally clause, you invoke fileReader.close(). But fileReader variable is not visible.
      • The buffered reader is never closed.
      • Also you throw a new IOException throwing away the original. Thats is bad!

      I would code it much more simple:

      final INFILE = "foo.in";
      FileReader fileReader = new FileReader(INFILE); // The 'final' is unecessary with current compilers.
      try {
      BufferedReader in = new BufferedReader(fileReader);
      try {
      // ... do stuff here with 'in'.
      } finally {
      in.close();// IT IS NOT OK, when we cannot close the file!
      }
      } finally {
      fileReader.close();
      }

      Exception Handling is the topic that most java programmers find hard to grasp. Thats why most programms misuse them. It is not a design issue, it is educational.

    52. Re:No by alext · · Score: 1

      But your other post referred to installation problems, not porting problems.

    53. Re:No by Anonymous Coward · · Score: 0

      Swing is better if you use a recent JVM with all the performance bugs fixed, and use the look and feel package that matches your platform.

      Better being the important word in that sentence. Recent JVM with perf bugs fixed: Swing apps run like shit and look monsterous. Previous JVM/libs: Swing apps run like cold shit and look grotesque.

      So it has improved. It's just a shame that Sun has been at it for ten years, and Java still sucks a big fat one. Maybe one day, Sun will be able to make a Java that doesn't piss away RAM like water and start you machine swapping just from running one app... but I doubt it. Java is just pathalogically broken by design -- unless you happen to be running a machine dedicated to just one Java app, and have multi-gigs of RAM.

    54. Re:No by Anonymous Coward · · Score: 0

      > Very sorry to sound like a troll, but do you have any idea how irrelevant the Linux market is in the corporate desktop world? Java installation on Windows is very, very easy, and I'm afraid to say that that's all that matters right now.

      You're not troll, you're just wrong.

      The fact that java is not avalaible by default in all the linux distributions means that quite a lot of hobbyist code is not written in java.

      I use freebsd (among windows and mac os x). I don't have java installed on it. I know it is possible, but this have not always been possible. Sometimes it is easy to get installed, then, the freebsd version stalls behind for legal versions. You have to manually download something, at the place is not always the same.

      Now, when I write a new tool, will I use java or C/C++ ? Guess.

      When I look for a library doing something (kinetics for instance), do I look for java libs ? Guess.

      As a result, the java ecosystem is smaller. And that is a stupid thing that hurts java.

    55. Re:No by Evro · · Score: 1

      Java: BufferedReader in = new BufferedReader(new FileReader("foo.in"));
      Python: in = open('foo.in')
      Ruby: in = File.open('foo.in')
      C++: ifstream in; in.open("foo.in");


      Is the file being opened for reading or writing? Does it matter if we're writing characters or bytes? What encoding do we want to use? Are we intending to read the file in byte by byte or line by line? The Java version seems much clearer to me.

      And a big item in the "pro" column for Java as far as I'm concerned is the Javadoc, rivaled only maybe by PHP's documentation.

      --
      rooooar
    56. Re:No by Anonymous Coward · · Score: 0

      since users need to jump through quite a few hoops to get Java installed (don't say "it's easy" - for most people anything beyond using their package manager is too high a hurdle), you can't assume it will be available

      Umm, I really don't think we have to worry about people who can't clear the hurdle of installing a JVM attempting to write code. In any language. At least I hope not. Unless you're talking about sysadmins installing java for developers. But last I heard it took more chutzpa than being able to run 'apt-get' to get those jobs.

    57. Re:No by Threni · · Score: 1

      > Basically merely by looking at sun JVM code you are agreeing to a lot of things

      Is that true in the US? It's not true in the UK as far as I know - you don't passively agree to any contract. If I say "unless you say something *now* you agree to be bound by the terms and conditions of this contract" and you say nothing, and then later I attempt to take you to court for breach of contract, it'd get laughed out of court. I'd be very surprised if things were different in the US (although I'd be less surprised than I'd have been 10 or so years ago).

    58. Re:No by joshv · · Score: 2, Funny

      "especially being able to run an app in Swedish while still being able to input Japanese"

      Well, in that case, I have to agree, for most people then, Java will be entirely unusable. Why just yesterday I was attempting to use a Russian keyboard, on a middle eastern version of Windows, running a Hebrew language Java application, and it just wouldn't allow me to input Chinese. Useless.

    59. Re:No by Anonymous Coward · · Score: 0
      Not so fast. have you ever read the license?

      Have you?

      Basically merely by looking at sun JVM code you are agreeing to a lot of things that basically means that you'll never be able to work in a competing VM for the rest of your life, unless you want SUN lawyers coming at your heels.

      Oh RLY?

      18. Does the JRL prevent me from being able to create an independent open source implementation of the licensed technology?

      The JRL is not a tainting license and includes an express "residual knowledge" clause which says you're not contaminated by things you happen to remember after examining the licensed technology. The JRL allows you to use the source code for the purpose of JRL-related activities but does not prohibit you from working on an independent implementation of the technology afterwards. Obviously, if your intention is to create an ÒindependentÓ implementation of the technology then it is inappropriate to actively study JRL source while working on such an implementation. It is appropriate, however, to allow some decent interval of time (e.g. two weeks) to elapse between working on a project that involves looking at some JRL source code and working on a project that involves creating an independent implementation of the same technology.


      From the license:

      B. Residual Rights. If You examine the Technology after accepting
      this License and remember anything about it later, You are not
      "tainted" in a way that would prevent You from creating or
      contributing to an independent implementation, but this License grants
      You no rights to Sun's copyrights or patents for use in such an
      implementation.


      So stop spreading FUD, and download the code today!
    60. Re:No by Daytona955i · · Score: 1

      Perl is exceedingly brief to write. It's also very difficult to read.

      Perl code is only hard to read when you don't know the language or the programmer deliberately obfuscates the code. Yes, Perl does some things differently and if you don't know that $& contains the matched string in a regular expression, of course it's going to look funny.

      Even though we do most of our programming in PHP here at work, I much prefer Perl. I find it more elegant.

    61. Re:No by JanneM · · Score: 1

      Umm, I really don't think we have to worry about people who can't clear the hurdle of installing a JVM attempting to write code. In any language. At least I hope not. Unless you're talking about sysadmins installing java for developers. But last I heard it took more chutzpa than being able to run 'apt-get' to get those jobs.

      I was a bit unclear; I meant that as a linux developer you limit your audience for your application since many in your audience can not (or will not bother) install java to run what you made.

      --
      Trust the Computer. The Computer is your friend.
    62. Re:No by rjstanford · · Score: 1

      On the other hand, Sun's Java compiler has always had broken dependancy tracking (at least since I started using it heavily in 1999). (If a build has an error, the set of output class files may be such that the next run of the compiler skips a source file which needs to be compiled; this is mainly that it can generate the public class without generating other classes in the same file.) I think it's likely that, if Sun does open source the JDK, they'll get fixes for a number of annoying flaws of that sort pretty quickly, and things that are clearly wrong but aren't considered worth working on will be improved substantially.

      Of course, since the Java class format is standard, you can also use a compiler such as Jikes (or indeed the Java compiler of your choice, including one that took PHP files as source for that matter) with the current runtime. While open-sourcing would improve the standard Java compiler, its not like there's no other choices...

      --
      You're special forces then? That's great! I just love your olympics!
    63. Re:No by Anonymous Coward · · Score: 0

      Well, to be fair, the Python and Ruby open calls provide line-oriented reading capabilities as-is, while you have to specifically ask for that feature in Java by wrapping your Reader in a BufferedStreamReader. While I actually like Java's IO facilities for a lot of things, the Perlish/Pythonic/Rubyish "line-oriented by default" approach gets you really far without a lot of code, and it ends up hitting the sweet spot for most of what I do when I'm processing text.

    64. Re:No by JanneM · · Score: 1

      I did not say it was unusable for everybody. I said this is the particular hurdle that turned me off Java in linux. Take the more general case of a desktop in a western language while you still want to input a CJK language. Not that unusual anymore.

      And in any case I took this as an example of how Java is not integrating with the desktop; all my other apps, in any other language, work fine when I've set it up, but not Java apps.

      --
      Trust the Computer. The Computer is your friend.
    65. Re:No by Nurgled · · Score: 1

      Perl, and I'd guess PHP too, both do buffering by default. In Perl land you can disable this by doing something really stupid an non-obvious like $|=1 (?!). I don't really like Perl's way to disable it, but I do like that Perl optimizes to the common case. Java has a tendency to be generic to the point of insanity, which is nice from an interface design perspective and lets you do neat things like your example, but does start to get tiresome when you're trying to do something simple.

      I wouldn't go so far as to say that Java is bad because of this, though. Sometimes that extra bit of verbosity is useful, even if you don't realise it when you're writing the code the first time.

      As for examples of doing this in other languages... Perl's OO is a bit to weak for this to work well -- its object-based streams really only work due to a peculiarity in the way objects are represented in the language. PHP has a generic streams API internally, but since it's a relatively recent addition it hasn't really worked its way into the API much yet. Most things are a pain in the ass in C, but the C++ iostreams library provides a generic streams API that you can wrap and extend to provide an interface like the above. The main difference is that you'd probably not want to wrap it all up in one call like that since you've got to make sure to free all those objects when you're done with them. Aren't garbage collectors fun?

    66. Re:No by Jesus_666 · · Score: 1

      PHP/Python are better, but most code I see is frankly horrible.

      Unfortunately PHP's tendency to encourage bad code has given it an extremely bad image. I use PHP as my main scripting language (for hypertext preprocessing as well as on the shell) and when using some care one can write either quick-and-dirty throwaway scripts or well-organized code. It's not much slower than Ruby or Python either, as far as I can tell (although not being slower than Ruby is not that great a feat).

      I think PHP should be forked; the fork would clean up the function signatures (which lack consistency), probably modularize the language and maybe add GUI capabilities by default (probably using wxWidgets instead of GTK). And of course it would lose the ability to mix HTML and PHP code, which is one of PHP's greatest misfortunes; a template engine designed for simplicity would be a superior replacement in my opinion.
      Such a fork might gain more credibility with developers who don't like PHP's inconsistency and/or have been put off by craptacular PHTML websites. The reorganization of the functions would probably increase readability, as well.

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
    67. Re:No by Anonymous Coward · · Score: 0
      (I'd really like someone to demonstrate this in other languages; having started with java and moved to C, things like gzip stream reading and network access seem like such unnecessary pains in the ass that I've never bothered to learn them properly...)

      Well, there's no ObjectReader in Ruby's standard library, so I'll have to make one. Aw, heck, let's make it bidirectional, just for fun.
      class ObjectStream
        def initialize(stream)
          @stream = stream
        end
        def write(object)
          Marsal.dump(object, @stream)
        end
        def read
          Marshal.load(nil, @stream)
        end
      end
      With that out of the way:
      ObjectStream.new(GzipReader.new(TCPSocket.new( '1.2.3.4', 42)))
    68. Re:No by WWWWolf · · Score: 1
      Why do none of your other language examples have an explicit buffer layer? You should add that, then see what the result is :P

      Ruby now: in = File.open('foo.in')

      Ruby after adding the buffering layer: in = File.open_buffered('foo.in')

      You see, Ruby, being a dynamic language, has extensible classes. You can add new operations and features to existing classes. In Java, if you want a new way of reading stuff, you make a new class to do that, like a BufferedReader, then demand that class to be used in all situations anyway, because you never integrate the core features to the existing classes.

      In a sane Java environment, you'd have a File f and you could ask for reader = f.getBufferedReader(); or whatever. But you can't. That would imply that File class would have to be somehow aware of the existence of BufferedReader, right? In dynamic languages, you could do this dynamically. In Java, you have to program it in the core API. It's doable. Yet they refuse to implement this, because you don't need these syntactic shortcuts to survive, and not specifying any specific relations is more flexible and more to the spirit of object orientation, right? People are opening BufferedReaders by hand all the time! ...yet few people remember the frigging syntax by heart.

    69. Re:No by int19h · · Score: 1

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

      compared to

      print "Hello, world!"

      The above code is not a result of the cleverness of the developers, but of how the languages are constructed. Now, which one is clearer and easier to read?

    70. Re:No by Anonymous Coward · · Score: 0

      >"Could this be a way to help improve what's lacking in Java?"
      >No, what is lacking?

      First class closures.
      Operator overloading (anytime I see a.plus(b) I want to cry)
      Some method to write a method _without_ making it a member of a class. Your golden hammer keeps breaking my screws.
      Type inference (not possible, I imagine, but it is a very useful thing that Java doesn't have).

    71. Re:No by Cederic · · Score: 1


      Oh please. Who evaluates languages on the simplicity of a "Hello World" application.

      However, just to play along: They're both equally easy to read. One of them has a lot of context; the other doesn't. A fairer comparison would have been the call to System.out against the print statement.

      Even now I don't know whether your second example will append a carriage return to the output..

    72. Re:No by aaronl · · Score: 1

      No, it sounds more like you have your head rammed too far up the rear-end of Java to see things more objectively.

      The supposed point of "Java was write once, run everywhere". Without it being open source, it's "write once, run only where Sun feels like it". That's why it doesn't work on Linux x86-64 native, Linux/BSD on non-x86 systems, OpenBSD on any system, etc. Sun promised to open source it, or at least release control of it, when they came out with Java; they lied. That lie helped to get the ball rolling for Sun. So *YES*, it really does matter, and it can make it very annoying to deal with Java.

      Agreed on the PHP. You can already run it as nobody, and it's interpreted. There doesn't seem to be a point to this.

      Open source would make Java more appealing, but not running PHP through it, as explained above.

      YES, it would certainly help improve Java. It could be ported to platforms that Sun hasn't bothered with, the non-server performance could be substantially improved, and alternative implementations may finally be complete. Plus, it could be included in distributions that won't ship non-free software.

      YES, Java can be slow. When you're running Java servlets, you only instantiate the VM one time. When running applications, you create a new one for each app. This wastes quite a bit of memory, and makes things slower, especially when the app is first launched. Java UIs also tend to be horribly slow.

      I *hate* when I have to launch a Java application for something. I actually cringe at the thought. The app ignores my native widgets, styles, colors, fonts, etc, etc. I might as well be running the app on another machine through VNC. Drag and drop doesn't work right, cut and paste doesn't work right, and the UI is slow.

    73. Re:No by k8to · · Score: 1

      The opposite of verbose is not confusing. The opposite of verbose is concise.

      --
      -josh
    74. Re:No by Hard_Code · · Score: 1

      You've just lost a powerful abstraction in the Python and Ruby syntax (in C++ I think the concept of buffering is "built-in" to all the stream classes, but I'm not sure). The BufferedReader in Java can wrap *arbitrary* readers (and streams), whether they originate from a file, or socket, or simply a byte array in memory. I don't buy the verbosity argument. For one, auto-completion solves that almost entirely...with Eclipse, I rarely ever have to type out the entire class name, just Buf{ctrl-space}. Furthermore, verbose code is more documenting. If I'm in a deadlock situation, I know to start looking to see if something is doing some blocking buffering. So really verbosity is the least of Java's problems, if one can even consider it a problem.

      --

      It's 10 PM. Do you know if you're un-American?
    75. Re:No by Anonymous Coward · · Score: 0

      > No", who would run PHP on Java anyway?

      Those who are fed up with the JSP crap: http://www.onjava.com/pub/a/onjava/2004/06/09/jsf. html?page=1

      > Why?

      Because Apache/PHP on Tomcat delivers java based content more than two times faster than Tomcat standalone: http://php-java-bridge.sourceforge.net/NEWS

      > Why would open-sourcing it help?

      So that we don't have to re-invent the wheel everytime a new API comes out: http://php-java-bridge.sourceforge.net/server/docu mentation/API/javax/script/Bindings.html. Note that it is (C) by Nandika Jayawardana , Sanka Samaranayake, a clean-room implementation of the abandoned JSR223 API from SUN: http://www.jcp.org/aboutJava/communityprocess/edr/ jsr223/

      Also note that the JSR223 API is *not* part of the official java, rather a re-written API which has been inspired by JSR223. If java were free software (not necessarily open-source) that crappy JSR223 API whould have never appeared.

      > No, what is lacking?

      Support for Unix Domain Sockets. Because of this the FreeBSD Java implementation is 300 times (!) slower than the Java implementations on Linux, Solaris or Windows:

      http://groups.google.de/group/comp.lang.php/browse _frm/thread/1eeeddb37086688/8d3414d188a327a9?rnum= 2#8d3414d188a327a9

      And

      http://php-java-bridge.sourceforge.net/snaps/FreeB SD/TestServ.java

    76. Re:No by Anonymous Coward · · Score: 0
      As a member of the human race, but not a Sun shareholder, I hope Sun does open source Java. :)
      It would take the open source community years to beat Sun Java into shape: both the platform and the implementation are far below the quality that successful open source projects would tolerate.
      I'm calling bullshit on this.

      Go look for yourself: Sun's Java source is of uniformly moderate-to-high quality, both in design and implementation, and always fully documented. Contrast with some of the big name Apache project Java sources and there's no comparison: the open source stuff is replete with empty catch blocks, not a line of Javadoc to be seen, upgrading a jar silently changes the contract of preexisting public methods, etc.

      I'd argue that the quality of the development team (including prevailing practices and culture) matters far more than how the code is licensed.

      What do you consider to be "successful open source projects" with better code quality than Sun's Java code, anyway? Fetchmail? Matt's Script Archive? Both quite successful in their day, by any metric.

      Personally I think Dan Bernstein's C code (qmail, djbdns) is very high quality -- all edge cases checked; poorly-designed libc mechanisms avoided/replaced; his C source reads like Haskell -- but it's poorly documented, non-idiomatic, very difficult to read, aging, and not as widely used as its more "successful" competitors.

      There's a reason why the top two server side platform these days are .NET and Java,
      "Top" in arrogance and pay, at least, if not in the number of sites based on it.
      By "sites" I assume you mean "web sites". Knowing that you think "sever side" equals "web sites" explains much about your tool preferences. There's no question that EJB is laughably unsuited to that particular problem (as long as you don't need eg. distributed transactions), or that Rails nails it perfectly.
    77. Re:No by Anonymous Coward · · Score: 0

      I modded you interesting, because it really is, Ruby is interesting. !!!HOWEVER!!! I still wouldn't be caught dead pitching Ruby as a production language to my bosses. Ruby's a nice toy language, but it's a long long long way from gaining acceptance in the workplace.

    78. Re:No by Anonymous Coward · · Score: 0

      Remember the syntax by heart? Ha!

      Of course nobody remembers everything; the important thing is that you have at least a vague recollection of which object does what you need to do, or even just the fact that such an object exists in the library. After you locate the appropriate object and method, that information will be stored in your brain/cache for a decent period of time.

      If you are bitching about opening only a single file in your entire program, then deal with all the 30 extra keystrokes you'll have to type. If you find yourself opening files as buffered streams all over the place, then be a smart programmer and create a subroutine to handle opening of files.

    79. Re:No by P3NIS_CLEAVER · · Score: 1

      write your own 'open' method. Is it that hard?

      --
      Please sign petition to restore sanity to our banking system!!!

      http://financialpetition.org/
    80. Re:No by poot_rootbeer · · Score: 1

      BufferedReader in = new BufferedReader(new FileReader("foo.in"));

      If it really hurts your eyes that much to see this line of code every time an input stream is opened, you could always just create a convenience class whose constructor does the above for you...

    81. Re:No by Britz · · Score: 1

      Thank you for that one.

      Very good laugh!

    82. Re:No by Surt · · Score: 1

      The problem is that I'm better in java than c++.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    83. Re:No by Surt · · Score: 1

      Yes, this is benchmarking based on real world usage, but discounting jvm start time, which actually gives java an unfair advantage.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    84. Re:No by Falkkin · · Score: 2, Informative

      Some quick examples in Python (not fully tested, but this is the basic idea):

      bufferedFile = open("foo.txt", buffering=True) # or specify an integer if you want to manually set the buffer size

      sock = socket.socket() # then set it up
      objectReader = pickle.Unpickler(gzip.GzipFile(fileobj=sock))
      obj1 = objectReader.load()
      obj2 = objectReader.load() ...

      I will admit that setting up the socket in Python follows a painful, C-like method (bind(), connect(), etc.); however, for any real networking application, you'd probably be using the Twisted library anyways, which does a whole lot more.

    85. Re:No by x_codingmonkey_x · · Score: 1
      While your comment is somewhat valid, you have remember that one must choose the best tool for the job. So, if your going to make a small simple web application then go ahead and use Ruby, Python, PHP, Perl, whatever. However, if your planning on making a massive enterprise level application that's going to have tens of thousands of lines of code then the best tool for this job is Java because you have so many tools at your disposal to assist you (Enterprise Java BEANS for business logic. Struts for your backend and display. Eclipse for an awesome free IDE, etc).

      Again, for quick and dirty jobs you use scripting languages. For massive projects, you use Java or .NET.

      BTW, you do realise that Java is on almost all occations faster than any scripting language, and using JIT compiling you can increase your Java applications speed far beyond any scripting language.

    86. Re:No by arodland · · Score: 1

      People who complain that Java is slow, should be open-sourced, and so on have never seemed to had a clue.

      Java is slow, regardless of how many times you say it's not, because Sun's implementation is a gigantic piece of shit, and because Java programmers use the pieces of Sun's implementation that make it pathetically slow. Yes, I know all about JIT. Yes, I know you can get fantastic performance from it. But no one writing a real world Java app ever has. They all take at least 2 minutes to load and are pathetically unresponsive on fast, modern systems with lots of RAM -- and the problem gets vastly worse on less-capable machines.

      As to your other point (and the topic of discussion, I suppose), I want to see open-source Java, not Java open-sourced. If Sun's code never sees the light of day I won't mind. If every copy of Sun's code is wiped out in a freak accident I'll be happy. But I do want to see a free reimplementation reach the point of general-purpose usability. The VMs seem to be pretty mature now; we just need more support for projects like Classpath.

    87. Re:No by Anonymous Coward · · Score: 0

      I did try pitching RoR at a couple co-workers for some small app (doesn't need to be fast or to scale - at all)...

      They're still laughing at me for that one :(

    88. Re:No by bnenning · · Score: 1

      While you're at it, make it read objects from a gzip compressed network stream:

      Sure, that's cool. But while Java often makes hard things possible, it makes easy things hard. The large majority of the time if I'm reading a file I don't care about buffering and don't need a pipeline of readers; I just want the file's contents as a string or array of lines. This is trivial in Perl and Python, and irritating in Java. Thus, everybody ends up with their own (incompatible, buggy) utility classes to do the simple stuff that it should do out of the box.

      --
      How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.
    89. Re:No by Coryoth · · Score: 1

      So Java gets features essentially as soon as C++ has made all the mistakes related to those features.

      The depressing part is that there are languages like Eiffel that had multiple inheritance, generics, and more, for a long time, and they were done better way back then than Java's implementation now (honestly, compare generics in Java to how Eiffel handles such things, or look at how clean and simple multiple inheritance can be when done right). And then there are all those extra features that Eiffel picked up over time like agents (first class functions and closures) that fit very naturally into the language but Java is yet to pick up. The latest thing I ran into was concurrency in Eiffel which is achieved by adding a single keyword and instantly provides incredibly natural concurrency that integrates perfectly with the language and is remarkably easy to reason about.

      Sure you can compare Java to C++ and say they are learning from the mistakes that C++ makes. On the other hand you could compare yourself to a well designed and language that has a knack of adding features that seem perfectly natural and work well right from the outset and find that Java looks a lot like C++ in comparison.

      Jedidiah.

    90. Re:No by Coryoth · · Score: 1

      This makes unfamiliar code easier to read. I've done Delphi/C/C++/perl/PHP programming, and none of them have as easy to read code as Java. I value that a lot.

      Try Ada or Eiffel if you want code that's easy to read and maintain. The langauges have downsides in that they aren't as flexible as things like Perl or Python (there often is only one way to do it), but then that pays back in terms of readability - no bizarre little idiomatic tricks, or idiosyncratic code from a 1337 coder trying to show off how compactly he can write straighforward things. Honestly, if you value readability, take the time to look at either or both seriously. You might be surprised.

      Jedidiah.

    91. Re:No by WWWWolf · · Score: 1
      If you are bitching about opening only a single file in your entire program, then deal with all the 30 extra keystrokes you'll have to type. If you find yourself opening files as buffered streams all over the place, then be a smart programmer and create a subroutine to handle opening of files.

      Once upon a time, there was a country of Fictivia. They were known for their military might.

      Imagine a really good-looking fighter airplane, Alkaline Tactical Fighter 50, the new pride and joy of FAF (Fictivian Air Force). Really streamlined, can go Mach 20 and do loops all over the place and the pilot won't even blink. Marvel of technological ingenuity.

      Then, next year, comes a new radar system. The thing is, the plane was never designed to be extensible. None of the FAF's planes are designed to be extensible; they're not even compatible with FAF's own stuff. All planes have only their own, custom design parts, designed only for those specific planes.

      FAF's engineers have no choice but to bolt the new system just behind the cockpit. On the outside. It looks really ugly in the airshows, but to surprise of everyone, the plane still flies at mach 20. The reason for that is that for this particular radar model, they this nice, aerodynamic compartment. They just have to make these in mass production, and slightly redesign them for all models of the planes. No problem at all. It's just that there's a lot of suppliers for these parts and they all seem to do the bits a bit differently, that's all.

      The country of Fictivia has a neighboring country and military ally, Dramatia.

      Dramatian Air Force Technology Center (DAFTCEN) solved this problem by having a modular design for all of their stuff. Their new plane, Gemdust Interceptor 180, is fully modular. The module system, CANARD, is interesting in that it doesn't matter if there's a module plugged in or not; the system will notice if something is missing and works around it. It will also not care what the module really is, as long as it can respond to certain inputs in a certain way. Not that anyone would want to plug in anything but the supplied modules, they're well designed anyway. New radar system? Just plug it in.

      That's basically the difference between Java and Ruby.

    92. Re:No by mrroach · · Score: 2, Informative
      In python, the thing that is usually done is for libraries to operate on "file-like" objects, meaning objects that implement some useful subset of the methods of the built in "file" object.

      As an example, the GzipFile object's constructor doc says:
      """The new class instance is based on fileobj, which can be a regular
                    file, a StringIO object, or any other object which simulates a file."""


      And the socket object's makefile() method documentation says this:
      """Return a regular file object corresponding to the socket."""


      So we should be able to create a socket and do

      GzipFile(fileobj=s.makefile('r')).read()

      However, the python GzipFile implementation seems to want to be able to seek within the file object, but the object returned by socket.makefile() does not have a tell() method. The easy solution is to fix GzipFile so that it doesn't need to seek, the real solution probably won't happen till Python3000 brings the interface magic to everything... (coming RSN)

      That said, in case someone wants to know a way to stream zlib data (the compression method used by zip and gzip):
      s = socket()
      s.connect((hostname, port))
      decomp = zlib.decompressobj()
      def recv():
          return decomp.decompress(s.recv(1024))
      then run recv() until it runs out of data

      You could actually do the same with gzip data, you'd just have to know the magic number of gzip header bits to skip before you start decompressing. The nice thing with the Java code you list above, of course, is that it's already implemented for you.

      -Mark
    93. Re:No by nissu · · Score: 1
      write your own 'open' method. Is it that hard?
      Apparently it is. I suggested that already, but my reply was immediately flagged as "Troll".
    94. Re:No by qwix · · Score: 1

      So you're arguing that some random pre-defined behavior in reading files is better than a flexible and modular approach?

    95. Re:No by Cederic · · Score: 1


      I've written working software in Eiffel. It's a bit tedious, but that doesn't mean you couldn't get productive with a good IDE.

      The biggest problem is skillsets. Not many Eiffel experts out there, especially compared to C++/Java/Perl/PHP and even .NET

      I'm not worried about my own code, my own personal projects. I'm looking at what to recommend to 30 man development teams..

    96. Re:No by kurtdg · · Score: 1
      My only hope is that it's IBM because their Java apps are of a higher quality than Sun's, and they've done such good work with the Eclipse platform.

      You've not tried NetBeans lately.
    97. Re:No by Anonymous Coward · · Score: 0

      > In python, the thing that is usually done is for libraries to operate on "file-like" objects, meaning objects that implement some useful subset of the methods of the built in "file" object.

      file-like objects are merely interfaces. Java could easily do the same, but for that it lacks type inference. Type inference could be added to Java without changing the JVM one bit, but you will never EVER see it added.

      C++ has type inference with templates, mostly as an accident of how they're instantiated.

    98. Re:No by killjoe · · Score: 1

      Simple. I can't run your great java application on my linux machine.

      How does that help you?

      --
      evil is as evil does
    99. Re:No by WebMink · · Score: 1
      Not so fast. have you ever read the license? Basically merely by looking at sun JVM code you are agreeing to a lot of things that basically means that you'll never be able to work in a competing VM for the rest of your life, unless you want SUN lawyers coming at your heels.

      Have you read the Java licenses recently? They were all updated a while back to be explicitly non-tainting, allowing people to study the reference implementations and still work on other VM implementations. Take a look at the JRL for example, FAQ item 18. They may not be open source but they're not actually out to get you either...

    100. Re:No by Anonymous Coward · · Score: 0

      Go look for yourself: Sun's Java source is of uniformly moderate-to-high quality, both in design and implementation, and always fully documented.

      Anybody who looks at Sun's source code by clicking on that link is a fool because they're agreeing to Sun's licensing terms. When I had the chance of looking at it without selling my soul, it was full of just the defects you complain about: empty catch blocks, other exception handling problems, poor documentation, etc. Of course, the problems with memory management, collection classes, etc. speak for themselves.

      I'd argue that the quality of the development team (including prevailing practices and culture) matters far more than how the code is licensed.

      Indeed. And Sun's development teams have traditionally produced awful code: NFS, RPC, the Sun compilers, NeWS, SunView/OpenLook, to name just a few. That's one of the reasons GNU was such a success: most people traditionally replaced almost their entire user environment on Suns with GNU utilities, gcc, and X11 because Sun's versions sucked so badly.

      Knowing that you think "sever side" equals "web sites" explains much about your tool preferences.

      I don't think it equals "web sites", I'm merely pointing out that it includes web sites.

    101. Re:No by Anonymous Coward · · Score: 0
      No, what is lacking?
      import java.swt.*;
      Open source Java would be one way to get rid of the abomination that is AWT and replace it with SWT. This needs to happen before Java can be taken seriously as a non-server environment.
    102. Re:No by Anonymous Coward · · Score: 0

      The Rails version, OTOH, would be about 4 lines long and deployed before the Java guys managed to fire up their Eclipse bloatware. It would, however, be about the same speed as the Java app.

      That is until there were more than 6 concurrent users accessing the application. Java is designed to scale up much more so that Rails is.

      Meanwhile, Java developers can develop a true-POJO business layer that is in no way tied to the web or our data layer. And that business logic that is 100% portable can be adapted to the web and database using frameworks which are dead simple to configure (which is not to say that the average Rails user will think so).

      Rails is the new PHP. Once you reach a certain level of complexity and a certain level of performance demands, people will realize eacty what they have about PHP...it just doesn't cut it. Meanwhile, those of us with a truly portable business layer will happily scale up as far as we need.

      So...yeah, the first 4 lines of a Rails application equal the first 500 or so of a Java application. But just wait until your rails application is 200k lines long...you'll have ten times the nightmares that we have with our 1m+ line Java app.

    103. Re:No by Anonymous Coward · · Score: 0

      Meanwhile, Java developers can develop a true-POJO business layer that is in no way tied to the web or our data layer.

      Wow! No, wait, you can do that in any language. People who code in real languages don't talk about it because it's not a big deal. If you get all excited about that, go learn Smalltalk or Lisp. You'll probably spooge.

    104. Re:No by 1110110001 · · Score: 1

      While you're at it, make it read objects from a gzip compressed network stream:
      new ObjectReader(new GZipReader(new SocketReader(new Socket("1.2.3.4", 42))));


      http://php.net/manual/en/filters.compression.php

      The examples are a bit short, but you can read the whole manual about streams and filters. It's also possible to append filters later in the communication - i.e. after a handshake. You'll see it has enough to offer and adding new stream wrappers and filters is easy.

    105. Re:No by int19h · · Score: 1

      I agree that they are about equal in readability. Python is briefer and nicer, but java tend to be more explisit and well organized. (But, I think System.out.println is overly explisit).

      However, as I'm sure you'll agree, the quality of the code is a trait of the programmers, not the languages, which was the original point I wished to get through. :)

    106. Re:No by owlstead · · Score: 1

      True enough. I did have to type it from my head on the internet PC (ugh) :). On my development environment, it's automatically inserted. You forgot one thing I forgot as well. If there are any exceptions thrown before the variable is initialized, it does not hurt to check for a null reference either. Oh well, better take it from a book or an internet reference somewhere.

    107. Re:No by owlstead · · Score: 1

      Ah, ok. There are so many people that state things like that - for real - that my auto-defense mechanisms were triggered.

    108. Re:No by GigsVT · · Score: 1

      Because it's an encumbered license, you open yourself to SCO-esqe copyright infringement suits.

      Sun is much like SCO was a few years back, falling fast and becoming obslete. It's just a matter of time until some "we make money by suing people" company buys Sun's assets.

      --
      I've had enough abrasive sigs. Kittens are cute and fuzzy.
  6. might finally be willing to try it! by Xtifr · · Score: 2, Insightful

    > Would this move Java up the desirability scale in your eyes?

    It would certainly bring it across the threshold to something I might be willing to install on my machine. I'm not sure I'd actually be interested in using it for anything, but at least it would no longer be in the "completely unacceptable" column.

    Of course, I'd probably wait till it was "apt-get"able. But I suspect that an actually-Free Java(tm) wouldn't have to wait long to find a Debian packager.

    1. Re:might finally be willing to try it! by Anonymous Coward · · Score: 0

      You can try to get the debian package from
      http://debian-unofficial.org/

  7. Desirability by apathy+maybe · · Score: 1

    This would definitely make Java more desirable to Free Software users. If any licence were compatible with GNU GPL (or at least LGPL) then it makes it easier to justify using OpenOffice.org. I would encourage Sun to free Java as it would improve it and mean that less effort would have to go into programs such as the GNU implementation (assuming a decent licence).

    --
    I wank in the shower.
  8. Evil? by SurturZ · · Score: 0, Troll

    What is it with tagging pretty much every story on Slashdot "evil"? Is Evil the new black* or something?

    -SurturZ
    *Which was the old pink, which was the new black when black was the old black

    1. Re:Evil? by Anonymous Coward · · Score: 0

      Simple. Most front page articles are troll topics designed to fire up the reactionary majority here. And their simple brains can only understand things in the utmost simple terms: binary. When every topic they're presented with is either threatening or enraging or both to them, is it real suprising almost everything gets tagged "evil"?

  9. Alternate VMs by Flounder · · Score: 3, Insightful
    Could an open source be faster, more stable, and have better resource management than the Sun VM?

    Certainly couldn't do worse.

    --

    No boom today. Boom tomorrow. There's always a boom tomorrow. - Cmdr. Susan Ivanova

    1. Re:Alternate VMs by ghakko · · Score: 3, Informative

      gcj (the GNU Java compiler) allows Java programs and bytecode to be compiled into native code. It can even generate statically-linked executables which do not require a runtime. These executables tend to start up much more quickly.

      Sun, on the other hand, does not allow anything of the sort with their own Java stack and has held off on open-sourcing because it sees its Java runtime environment as a beachhead through which it can colonize your system (especially on Windows, where it comes bundled with all sorts of seemingly-unrelated stuff, like browser toolbars). Allowing third parties to ship stand-alone executables would undermine this.

      This is probably to the long-term detriment of the Java platform because the runtime environment is now large and unwieldy enough to really complicate app deployment.

      I believe Sun intentionally obfuscates the issue by pointing out that native code is not portable, is somewhat more fragile (because it is not insulated from system dependencies by a VM) and does not necessarily perform better than bytecode in a VM with an aggressive JIT. All these are true, but is besides the point.

    2. Re:Alternate VMs by linuxrocks123 · · Score: 1

      Ha ha ha!

      It's funny because it's true :)

      I was once writing a search engine in Java, and it took a gig of RAM to index 40MB using a standard TreeMap. A FREAKING GIG OF RAM!! I had to switch to doing something brain-dead simple and slow to bring it within anything resembling sane memory usage.

      --
      vi ~/.emacs # I'm probably going to Hell for this.
    3. Re:Alternate VMs by Anonymous Coward · · Score: 0

      That says more about your skill as a programmer than anything else. Go back to your helpdesk matey.

    4. Re:Alternate VMs by Anonymous Coward · · Score: 0

      So you're saying that your ineptitude in Java made it use 1 GB of RAM ? How come that you had allowed Java to use 1 GB in the first place - which you must have, since the default Java install comes with a limit of 512 MB.

    5. Re:Alternate VMs by linuxrocks123 · · Score: 1

      > ... your ineptitude in Java ...

      I used the standard data structure classes. This was a class assignment, and everyone using the *Set and *Map classes had memory problems, so it wasn't ineptitude in my code. Apparently, the Java standard classes just use a ton of RAM.

      > How come that you had allowed Java to use 1 GB in the first place...

      It would crash unless I manually set [-Xmx1024mb] with an OutOfMemoryError.

      More details about why it's Java that sucks and not my code:
      My partner in the project actually profiled the memory usage in our TreeMap implementation. Most of the memory usage in our program came from Java's class bloat; 50 bytes just for the object identification, etc. We had to do a brain-dead StringBuffer implementation to make it work.

      --
      vi ~/.emacs # I'm probably going to Hell for this.
    6. Re:Alternate VMs by linuxrocks123 · · Score: 1

      Well, first, my partner in the project and I eventually made it work (with the brain-dead StringBuffer), and it performed reasonably well.

      Second, see my reply to your sibling poster.

      (Note to self: stop feeding the trolls.)

      --
      vi ~/.emacs # I'm probably going to Hell for this.
    7. Re:Alternate VMs by tkinnun0 · · Score: 0

      Someone mod the parent funny, please!

    8. Re:Alternate VMs by vegetasaiyajin · · Score: 1

      I believe Sun intentionally obfuscates the issue by pointing out that native code is not portable, is somewhat more fragile (because it is not insulated from system dependencies by a VM) and does not necessarily perform better than bytecode in a VM with an aggressive JIT. All these are true, but is besides the point.?

      So, by your logic, is the JVM somewhat more fragile because it is written in native code?
      So one way of making the JVM less fragile and probably faster is making it run on top of another VM?
      But, what about this other VM?

      --

      My heart is pure, but make no mistake, it's pure evil
    9. Re:Alternate VMs by karot · · Score: 1

      For a very long time I was in the "needs more speed and more stability" camp when it came to Java. Then a colleague of mine wrote a performance test suite in Java to load-test SMTP, HTTP, POP etc... And then wrote equivalents in Perl and Python. All 3 were equally maitainable, and we stuck with the Java version because it had the best performance running multiple threads/processes (memory settings DID need tweaking).

      I _Believe_ that the real problems with Java occur when adding either a Graphical interface (it tries to be all things to all OSes, and fails miserably) or embedding it into a webserver (I assume we see crashes because the API is not sufficiently open/documented)

      So an open source license may well help in some respects - Better API visibility and transparency, and the option to switch to an open-source graphical component that has been beaten on and fixed, and throw out the umpty-three existing graphical widget sets.

      Just my 2c.

      --
      Enjoy Y2K? Roll-on Year 2037!
    10. Re:Alternate VMs by Cederic · · Score: 1


      I completely agree that graphical UIs are not something I'd want to write in Java.

      However, "embedding it into a webserver" describes a significant percentage of java development. You rarely see crashes on most corporate sites using it, and the standard APIs are freely available - most people use JSPs and Servlets, both APIs for which you can download the source code from Suns website, quite apart from the extensive documentation.

      Most people also use struts, or JSF or Spring, or other frameworks that sit on top of the core Java platform. These tend to be less well documented. They also tend to be open source. Your point thus escapes me entirely.

    11. Re:Alternate VMs by Cederic · · Score: 2, Interesting


      Allow me to translate:

      "I was once writing a serach engine in a language I didn't know how to use, and it took a gig of RAM to do something stupid that I told it to do"

      Please, don't blame the language for your incompetence. I have this horrible feeling that the Flyweight pattern would have saved you much grief.

      I haven't checked, so I could accept that Treemap is suboptimal for what you were trying to use it for. There's nothing that says you have to use it.

      Disclaimer: I have in my possession (propriety commercial) code for a search engine that searches across over a gig of data. It takes up about 20MB of ram more than the data takes on disk in a flat file. It was written in a couple of hours.

      Further disclaimer: I didn't write it. Although I did suggest a performance optimisation. It was returning results in under 10ms before the optimisation.

    12. Re:Alternate VMs by penguin-collective · · Score: 2, Informative

      Of course, you can write efficient code in Java if you're more careful than in other languages and don't use their library for anything that is performance critical. But that kind of defeats the purpose of using Java in the first place.

    13. Re:Alternate VMs by mrtrumbe · · Score: 1
      You *already* have alternatives. Check out the following benchmarks for different Java Runtimes:

      http://www.usenix.org/publications/library/proceed ings/javavm02/full_papers/jacob/jacob_html/node12. html

      http://www.shudo.net/jit/perf/

      IBM's VM looks very favorable in these tests. You can get it for Linux (also available for windows and other platforms) here:

      http://www-128.ibm.com/developerworks/java/jdk/lin ux/download.html

      Enjoy!

      Taft

    14. Re:Alternate VMs by karot · · Score: 1

      This is now an old thread, but in case you are interested, my point is that i DO see LOTS of corporate websites spewing java stack traces up the screen, demonstrating an apparent screwup embedding java into webservers. :)

      Perhaps I am just unlucky.

      --
      Enjoy Y2K? Roll-on Year 2037!
    15. Re:Alternate VMs by KarmaMB84 · · Score: 1

      I have a feeling that it was rapidly adding and removing data from the TreeMap and the JVM doesn't garbage collect that often or simply couldn't keep up. IIRC, a programmer can force garbage collection in code, though.

    16. Re:Alternate VMs by Anonymous Coward · · Score: 0

      Somebody needs to learn that String.substring is a constant-time operation that creates a String object that still references the original character buffer.

    17. Re:Alternate VMs by Cederic · · Score: 1


      I'd suggest that's sloppy coding - if nothing else, one of the first things you should do is provide a default 'oops' page that hides such details from the user.

      You see the same issue with LAMP or ASP based websites too. It's a common curse :(

    18. Re:Alternate VMs by Anonymous Coward · · Score: 0

      Put your code online, and I'll tell you what you did wrong.

    19. Re:Alternate VMs by linuxrocks123 · · Score: 1

      > "I was once writing a serach engine in a language I didn't know how to use, and it took a gig of RAM to do something stupid that I told it to do"

      Please read my replies to your fellow ignorant posters regarding this.

      > [cut further examples of your idiocy]
      > I haven't checked, so I could accept that Treemap is suboptimal for what you were trying to use it for. There's nothing that says you have to use it.

      Yes, we could have written our own replacement for a standard library class, and if we cared enough about it (it was just a class project), we would have. It still reflects poorly on Java that its standard classes are such memory hogs.

      > Disclaimer: I have in my possession (propriety commercial) code for a search engine that searches across over a gig of data. It takes up about 20MB of ram more than the data takes on disk in a flat file. It was written in a couple of hours.

      > Further disclaimer: I didn't write it. Although I did suggest a performance optimisation. It was returning results in under 10ms before the optimisation.

      That sounds about like how ours performed after we started doing things the stupid way. Of course, you don't mention the machine, so those stats are meaningless...

      Gosh, I really should stop responding to trolls like this.

      --
      vi ~/.emacs # I'm probably going to Hell for this.
    20. Re:Alternate VMs by linuxrocks123 · · Score: 1

      That is, actually, completely irrelevant to what we were doing.

      --
      vi ~/.emacs # I'm probably going to Hell for this.
    21. Re:Alternate VMs by linuxrocks123 · · Score: 1

      My professor probably wouldn't look kindly on that, seeing that almost this exact assignment is given each semester. Also, the code was written in collaboration with another person, and I don't have his permission to give the code out to random AC's on Slashdot.

      Remember that we solved the problem eventually by using a slower (although not noticeably on the size data set we used) and stupider method. Object fat was taking the bulk of the memory in the original design, and that is Java's fault.

      I can almost guarantee that if I implemented this EXACT SAME DESIGN in C++, there wouldn't be memory issues.

      --
      vi ~/.emacs # I'm probably going to Hell for this.
    22. Re:Alternate VMs by Anonymous Coward · · Score: 0

      Your loss. I've done a lot of professional C++ and Java programming, and I can guarantee you did something wrong. The String.substring comment is probably more relevant than you think.

    23. Re:Alternate VMs by linuxrocks123 · · Score: 1

      > I've done a lot of professional C++ and Java programming, and I can guarantee you did something wrong.

      Ha! Of course you have. And I REALLY work for the NSA as the head of their quantum computing division (of course it exists). This is just a cover.

      > The String.substring comment is probably more relevant than you think.

      Nope, we explicitly dealt with the issue of multiple String copies when attempting to fix the memory usage problem, and it was a quite graceful solution iirc.

      This will be my last response to ANY anonymous poster on this issue. IHBT HAND.

      --
      vi ~/.emacs # I'm probably going to Hell for this.
    24. Re:Alternate VMs by Cederic · · Score: 1


      The machine was someone's laptop. Of course, that tells you nothing of the complexity of the search.

      Put another way: The search was functionally the same as one written in SQL running on an Oracle database hosted on a Sun F15K with approx. 16 CPUs and a few gig of RAM.

      The java in-memory search ran faster than the Oracle search.

      That is also a pointless comparison; I know for certain I could optimise the Oracle search quite considerably, and simplify it massively. To do so without changing the results it returns would be an extensive and painful exercise. Also, the Java search dealt with a specific class of search; the Oracle PL/SQL was handling multiple classes of search (hence its complexity).

      All good fun. But still demonstrates the ability of the language to handle the issue, in a sensible and performant manner.

    25. Re:Alternate VMs by Anonymous Coward · · Score: 0

      I actually was recruited by the NSA out of high school, but I turned them down because of the government pay scale.

      You seem to wish to remain ignorant. Whatever.

    26. Re:Alternate VMs by linuxrocks123 · · Score: 1

      > The java in-memory search ran faster than the Oracle search.

      Unless the Oracle search was also in memory, it damn well had better run faster.

      > All good fun. But still demonstrates the ability of the language to handle the issue, in a sensible and performant manner.

      No, all it means is that the search engine programmer was able to work around and overcome the deficiencies in Java.

      Now that I know you were doing something with databases, what you said makes more sense to me. I was searching and indexing web pages. The smart way was to use this would be to build an index of words you can search for and store them in a TreeMap. The words would be mapped to a set of records. Each record would hold a URL, and another record holding which words followed it at which places (integer) on the page. This should NOT HAVE TAKEN as much memory as it did. Think about it: for each record, we're storing a pointer to the URL (4 bytes) (only one global list of the URL's; the records just hold a pointer to it), a list or array of integers (4 bytes each), and with these a pointer to another record (4 bytes each). There will be no more of these records than there are appearances of words indexed. So, a high estimate is 12 bytes per word. (Yes, I'm taking into account the fact that there can be more than one integer per record. That's an optimization. In the worst case, every word gets its own record.) ASCII words usually take 4 or 5 bytes, so memory use should be AT MOST 3 times the data on disk. It was more like 30 or 40 times the data on disk. Guess why? Java allocates >50 BYTES PER RECORD for overhead!

      If I did this in C++, it would have worked. As it is, we ended up doing things the stupid way, which is to build a list of web pages and iterate over EVERY SINGLE WEB PAGE, searching for appearances of the word or phrase. This worked, and it was fast for the small data set we had, but it wasn't scalable. The smart way was to index based on word.

      --
      vi ~/.emacs # I'm probably going to Hell for this.
    27. Re:Alternate VMs by Anonymous Coward · · Score: 0

      Yeah, that's why things like lucene are possible. You don't know how to program effectively in Java. Get over it.

    28. Re:Alternate VMs by Cederic · · Score: 1


      TreeMap is a red-black tree implementation. To store a single node you need to store
      - key
      - value
      - red or black
      - child nodes (left and right)

      I haven't checked up red-black trees for a while, so i can't remember whether this is necessary or just more efficient, but you want to also store
      - parent node

      Java uses an object to wrap this lot together. So already we have five object references, a boolean and an object. Each reference is 4 bytes in size, so that gives you 16 bytes, plus the size of the object (a minimum of 8 bytes) and a couple of bytes for the boolean (red or black). So already every entry in the tree is 26 bytes in size before you even add any data.

      Could you implement a red-black tree using less memory in another language? Almost certainly. Could you implement your search in Java using less memory? You said so yourself.

      Is a red-black tree the correct mechanism to use for your purposes? I don't know; I do know that if I'm asked to write a web search engine I'll do some research on algorithms first, and use the one that makes the most sense.

    29. Re:Alternate VMs by linuxrocks123 · · Score: 1

      Yes, I made it use less memory by using a stupider algorithm; that's not the point. My point is that Java's fatness made it very difficult to implement the data structure I needed in a tractable amount of memory. Perhaps hacks to use primitives instead of objects (where objects would be preferred conceptually) would have cut down on the fat; given enough time and motivation it's possible to work around the brain damages of almost any language, even Java.

      As far as algorithm research, THAT WAS THE WHOLE POINT OF THE ASSIGNMENT! I did this project for a data structures and algorithms class. We tried out many different implementations for the search engine index, and the only ones that worked with the default size of the Java VM were stupid, flat, and returned results in linear time over the number of pages, which amazingly was still fast over 40MB of data. Storing the whole page in a StringBuffer mapped to its URL (still through TreeMap) was the least stupid thing that worked. That's why I'm so fed up about this, really. We came up with this GREAT algorithm; it would have worked given reasonable (as in, C-like) memory usage for structures/objects, and we couldn't do it in Java because Java is so fat it needs 50 FREAKING BYTES for an object with no data in it.

      --
      vi ~/.emacs # I'm probably going to Hell for this.
  10. Maybe I can finally get this bug fixed.. by doormat · · Score: 1

    Using JVM 1.4.x or 1.5 I get display artifacts when scrolling in various controls - datagrid, text boxes, etc. It only seems to happen when my display is in portrait mode.

    --
    The Doormat

    If you're not outraged, then you're not paying attention.
    1. Re:Maybe I can finally get this bug fixed.. by Anonymous Coward · · Score: 0

      This is a bug in your graphics card or driver. Java uses directx rendering pipeline by default in 1.4 and 1.5. You can turn it off with some property. The opengl pipeline is even better, but it's disable by default because lots more opengl drivers are buggy.

  11. Re:If they do, it will all depend upon the license by SoloFlyer2 · · Score: 5, Informative

    I currently avoid Java like the plauge, my reasons are the same reasons that java isnt included in debian... http://www.debian.org/doc/manuals/debian-java-faq/ ch5.html#s-license-concerns if they address those license concers i would be much happier...

    --
    "I reject your reality, and substitute my own" - Adam Savage
  12. Save Apache some time ... by SickLittleMonkey · · Score: 5, Insightful

    ... and just do it.

    WINE did it for Win32 and Mono did it for .NET, so Java *will* be open source some day anyway. Sun needs to get at least J2SE out there before .NET runs on every electronic device available.

    Now that Sharp's Zaurus has dropped Java, .NET is looking like the only alternative for managed coding on handheld platforms. (Cellphones are not yet good PDAs, ok?)

    SLM

    --
    main() {1;} // zen app
    1. Re:Save Apache some time ... by feijai · · Score: 1

      Um... Wonka? SableVM? And the best open-source small Java VM out there: JamVM? How hard were these to google?

  13. Open Sourcing Java makes sense... but php? by junkgui · · Score: 1

    Open source Java would be great, swing and J2EE would really benifit from more community engagement... I would love to see a linux distro that really endorsed java (like fedora is going), swing is a very powerful platform, and it would be nice to see some real desktop apps built on it... With the proper licence we might start to see companies see linux as the best platform to run java and that would really spur java desktop and linux desktop development. But why would they endorse PHP? Arguably J3EE deployment is simpler then php, and if it were open source I think the kind of cheep hosting that is available for php would become available for java. What is so great about php or python or perl, they have VMs but they just arnt as fast... What does php have that JSF or tapasrty don't, besides dynamic typing. JSF is about as easy to learn as Ruby on Rails... But at the end of the day the HotSpot JVM is a really kick ass technology, that could really be used for the next big thing....

    1. Re:Open Sourcing Java makes sense... but php? by Anonymous Coward · · Score: 0
      I wonder, are all Java fanbois as retarded as you are? Or is it just you? You must fucking drool allover your keyboard 24/7 man...

      DUDE, LIKE, THIS BE SOME BAD POTATO JUICE, MAN!

  14. Bad idea by cpuh0g · · Score: 5, Insightful
    Why do people just assume that saying the magic words "open source" will automatically improve a particular piece of software? Rarely do the most vocal proponents of "open sourcing" something actually get involved and start contributing to the codebase. It's all about religion for the most part, unfortunately.

    I still fail to see the benefits of "open sourcing" Java. How will it be improved? It's not as if the engineers at Sun are stupid and don't know how to engineer enterprise software. Don't you think Sun has heard that same complaint from some major league/big $$$$$ customers and done everything they could to improve said performance?

    Even if they *do* open it up, Im sure the slashdot community will still hate them because they don't use a GPL variant license. Its a lose-lose situation for Sun, I don't get why they would even consider it. Is there a business case that will generate a 9-figure revenue jump from giving away the source for Java? I don't see it, but Im sure someone around here will happily clue me in.

    1. Re:Bad idea by Slayk · · Score: 1
      I still fail to see the benefits of "open sourcing" Java. How will it be improved?
      Porting the JVM to something other than x86, sparc, and amd64 would be a good starting place. It would be spiffy-keen to have a decent JVM on my PPC box running linux, and I'd imagine that java having an official VM for OSX isn't a bad idea either.

      I'd imagine fixing the write-once-run-anywhere-that's-one-of-three-archit ectures issue would be high on the TODO list if/when Sun opens up java.
    2. Re:Bad idea by goldsounds · · Score: 5, Insightful
      Rarely do the most vocal proponents of "open sourcing" something actually get involved and start contributing to the codebase. It's all about religion for the most part, unfortunately.

      Rarely do the most vocal critics of "open sourcing" something actually understand the rationale behind free software, which is NOT to have the best code, NOT to have the most secure code, NOT to ship a product the fastest, NOT to contribute to the code, NOT to get something for free, or even to become the "commodity" implementation of a specification.

      The best reason to "open source" something is purely and simply the freedom to access the code behind the software you are running; the freedom to change, or port to another platform, the software that you purchased or downloaded. This is the original philosophy of the Free Software Foundation, and the GNU project, who were collectively the inspiration for the "open source" movement.

      So if you're wondering why anything less than a GPL license is unsatisfactory to the hairy, unwashed free-software factinista, why don't YOU look up the facts and get a clue about the software freedoms that may, one day, mean that your descendants can read e-books, watch movies and examine the collected creative output of humanity unencumbered by the imposed obscurity of closed-source software, DRM and other impositions on our freedom.

      Yes, this is about religion. It's about an idealogical divide between people who would rather have free-as-in-beer convenient software, rather than free-as-in-freedom software that preserves your rights. Frankly, your arrogant pragmatism nauseates me.

    3. Re:Bad idea by TheDreadSlashdotterD · · Score: 1

      Its a lose-lose situation for Sun I didn't know that THEY were the village bicycle.

      --
      I have nothing to say.
    4. Re:Bad idea by TheDreadSlashdotterD · · Score: 1

      Oops. That was actually right. Now I'm the idiot. Congrats to me!

      --
      I have nothing to say.
    5. Re:Bad idea by Anonymous Coward · · Score: 0

      Nicely said, goldsounds.

      Too bad the Microsoft trolls have taken over Slashdot and you won't be modded up to +5 insightful like you should be.

    6. Re:Bad idea by theantix · · Score: 1

      How it will help: it may stem the tide away from Java that is right now going towards LAMP. There should be little doubt that if Java had been open source from the start, LAMP would have never taken off the way it did -- but LAMP had the advantage of being free and clear distributed with all major Linux distributions and complex solutions could be drawn up around them. It's too late for Sun to turn back the clock by open sourcing Java, but it's not too late for them to realize that Java's acceptance on the Linux market will be helped by having distributers able to include copies free and clear. Red Hat in particular would likely embrace a Sun Java solution as they are hostile towards adopting Mono in RHES and often market Java-based solutions (though with gcj/gjc instead of Sun Java). This would not help Sun directly, but it would help grow the market for server side Java solutions, which is their whole point right?

      --
      501 Not Implemented
    7. Re:Bad idea by Anonymous Coward · · Score: 0

      Anyone can download the Java source code and recompile it to their hearts content on any platform they want.

      The "Open Source" aspect in this discussion refers to idelogical issues surrounding control. Java's source code is already out in the open.

    8. Re:Bad idea by Slayk · · Score: 1

      Yes, but it's not redistributable. I may be able to take the code and port is to any arch I care to dream of, but what's the point when everyone in that same situation has to do that insane amount of work themselves?

    9. Re:Bad idea by despisethesun · · Score: 1

      I want to echo the AC whose post is below most people's thresholds. The parent post should be modded up, he knows the score with regards to free software.

      --
      This poo is cold.
    10. Re:Bad idea by Anonymous Coward · · Score: 0

      It's not impossible to redistribute, just more paperwork. Lots of companies already do so.

      I guess you could say that Java is fairly "open" from a commercial POV, probably not that friendly to individual hackers.

    11. Re:Bad idea by dubl-u · · Score: 4, Interesting

      I still fail to see the benefits of "open sourcing" Java. How will it be improved? It's not as if the engineers at Sun are stupid and don't know how to engineer enterprise software.

      Honestly, that's part of the problem.

      Enterprise developers are used to a very particular envelope. That involves putting up with a lot of large-company bullshit and unfriendly tools. People in other environments have different needs that are poorly served by Java. And actually enterprise people have those needs too; they're just used to suffering.

      Take all of the C#-inspired improvements in Java 1.5, for example. Many of them are about programmer convenience and improved expressiveness, neither of which mattered much until C# was a threat. Or consider EJB 3.0. EJB sucked for years until Hibernate, an open-source project, came along and beat the snot out of it. EJB 3.0 is basically a straight import of Hibernate.

      Or take Ruby on Rails: you can't write that in Java. Why? My theory is that in large companies, they'll let you go away for three months and build infrastructure. Plus, neither Sun nor an enterprise architecture group trusts programmers with the kind of heavy wizardry that Rails uses to make things happen. So again, Sun gets its ass kicked by an open-source project.

      If they really open it up, perhaps Sun can harness some of that power. But I'd bet they won't do it properly; Java reeks of "cathedral" thinking, and that papa-knows-best mentality is hard to shake.

    12. Re:Bad idea by Anonymous Coward · · Score: 0

      Actually, he's flaming the ESR/IBM Open Sores club from a Free Software perspective. Absolutely no reason to drag microsoft into a family dispute.

    13. Re:Bad idea by bladesjester · · Score: 1

      We understand the rational behind open source software. We just realize that not all of the software world needs to be (or indeed should be) open sourced.

      as far as your nausea at us pragmatists, without us, nothing would ever get done. Tell me - how's HURD coming along?

      --
      Everything I need to know I learned by killing smart people and eating their brains.
    14. Re:Bad idea by Brandybuck · · Score: 2, Insightful

      As a FreeBSD user, I can see a huge advantage to open sourcing it. Until a couple of weeks ago, it was ILLEGAL to distribute a FreeBSD binary of Java. Before then it was necessary to get an register at Sun, download the source, and build it. Since building Java requires Java, it also meant one had to temporarily use a Linux Java to bootstrap a native Java. I don't know if you've ever built Java, but it takes a DAMN LONG TIME!

      But now there is *ONE* version of Java approved for *ONE* version of FreeBSD. Sigh.

      --
      Don't blame me, I didn't vote for either of them!
    15. Re:Bad idea by Anonymous Coward · · Score: 0

      It might mean that StringBuffer memory leaks don't take *a year* to get fixed.

    16. Re:Bad idea by Anonymous Coward · · Score: 0

      Open Source provides a marketplace for software. A much more free marketplace than with proprietary lockin. HURD lost in the marketplace.

    17. Re:Bad idea by goldsounds · · Score: 2, Insightful
      We understand the rational [sic] behind open source software. We just realize that not all of the software world needs to be (or indeed should be) open sourced.

      Absolutely. Nothing needs to be open-sourced, made free, at all, ever. There is no need for software freedom. It's just highly desirable, in much the same way as freedom of the press, the freedom to own property, the freedom to tear apart your car and turn it into a battlemech, the freedom to form a political party or the freedom to move about constant surveillance. Now, nobody is asking for legislation to require software freedom - despite attempts my major software and media players to legislate in the other direction. We are simply asking people to make a choice, instead of blindly accepting closed-source software as the most pragmatic solution.

      as far as your nausea at us pragmatists, without us, nothing would ever get done. Tell me - how's HURD coming along?

      Wow - zing. Ouch. You sure put me in my box. How's IIS coming along? How's Windows Vista coming along? How's IE coming along? To be honest, even if no free software project had ever been completed, ever, I would still be a free software advocate. People didn't found the free software movement because they'd discovered some kind of development-methodology magic bullet. They did it because they wanted to ensure that the users of software had more freedom, more choice, with the code that ran on their computers. And they decided to implement that vision whether or not it made software development any easier or more economically viable.

      Did you use MSN circa 1995? Before Microsoft was forced to embrace the web because open protocols running largely on free-software platforms threatened their dominance? It was a dull, closed, unimaginative world where you had to pay to play and everything went through Microsoft as the gatekeeper. Whenever I try to imagine a world without free software, that's what I imagine. You're welcome to it.

    18. Re:Bad idea by kg4czo · · Score: 1

      HURD's a nice idea, but turned into a piece of crap because of the developers. :) But hey, the Linux Kernel is going nice and fast. So are most of the BSD kernels. Tons of OSS programs, under the GPL, LGPL, BSD, and various other licenses are going great. Take a look at freshmeat.net or sf.net and you'd see what I mean.

      Of course, you pragmatists would try and take credit for spuring other people into do something. Strange thing is, most individuals involved in OSS do it for the love of it, and not because anyone motivated them otherwise. I won't hold it against ya though, some just never get OSS and that's fine.

      On the subject at hand, SUN can do what they want, it's their code. In the mean time, I'll choose something else like python or Ruby. I just think if I come up with something that's interpreted and want to release it, I should be able to package to interpreter or VM freely for platforms that it doesn't come with.

    19. Re:Bad idea by Keen+Anthony · · Score: 1
      I still fail to see the benefits of "open sourcing" Java. How will it be improved? It's not as if the engineers at Sun are stupid and don't know how to engineer enterprise software.
      Maybe the benefit of open sourcing Java isn't in improving the platform itself, but in the creation of other technologies evolving from Java that Sun would not otherwise create because it's either not enterprise focused or isn't profitable. I was considering Java for a web app project of my own recently, but decided against it because of the cost and the added complexity (PHP and Python are cheaper for me). Maybe open sourcing Java can lead to the creation of an ultra-light, uber-fast Java that works great in a commodity web hosting environment alongside the LAMP stack. I think I wouldn't mind seeing a Java based personal blog app.
    20. Re:Bad idea by Anonymous Coward · · Score: 0

      Or take Ruby on Rails: you can't write that in Java. Why? My theory is that in large companies, they'll let you go away for three months and build infrastructure. Plus, neither Sun nor an enterprise architecture group trusts programmers with the kind of heavy wizardry that Rails uses to make things happen. So again, Sun gets its ass kicked by an open-source project.

      Gets its ass kicked? I don't see many people moving from Java to Ruby. From Perl, Python, and PHP, people are switching to Ruby in hordes. But from Java? A trickle, if anything.

      That's because the same large companies that want to build their own infrastructure instead of being forced to use the simplistic system that Rails requires you to use, and the same enterprise that wants code they've designed themselves instead of code generated for them by a mysterious and untrustworthy Rails framework, also rely on little things like performance and safety, which Java provides and Ruby does not provide, and do not care about Ruby's ability to give lone coders the ability to work miracles in minutes, because they don't have any lone coders and they don't trust code that only took minutes to write.

      So Java marches on in industry, while Ruby poaches users from the previous hobbyist hotbeds and wonders, as did Perl, Python, and PHP before it, how the enterprise can ignore a project with such momentum among loners and amateurs.

    21. Re:Bad idea by Anonymous Coward · · Score: 0

      I have to agree. I'm playing around with RoR, and even very basic infrastructural stuff like XML is dire. Beyond the simple usecase of a 1-Table CRUD form and some AJAX doodads there's really nothing about it that isn't done better in the Java/NET world. So don't expect enterprise developers to pickup this thing anytime soon.

    22. Re:Bad idea by lasindi · · Score: 1

      Yes, this is about religion. It's about an idealogical divide between people who would rather have free-as-in-beer convenient software, rather than free-as-in-freedom software that preserves your rights. Frankly, your arrogant pragmatism nauseates me.

      Consider this question: why does software exist? Because it makes life easier. It's convenient to be able to, for example, type up a paper electronically and save it. It's pragmatic to go search Google for something I need to learn about. These aren't fundamental rights; they are just practical, convenient tools.

      Ultimately, the only value software has is when it's *used.* A program is good not because it can be modified, or because you can see how it works; the only important thing is that you can *use* it somehow. Sometimes being able to see and modify the source code of a program is useful because you can *use* your modified version later. Sometimes the benefits of modifying the software are not worth all the time you would have to spend making them.

      I like open source because I think it makes *better* software that is more *useful* to me, not as part of some moral struggle. Look at it like renting a house. Yes, you give up the "freedom" to add a new room, remodel the kitchen, and install a new sink, but perhaps that is worth only spending a couple hundred dollars a month instead of buying a house for hundred thousand dollars. You use the word "freedom" to invoke ideas like the "free speech," which is somewhat misleading. You should say "freedom" as in "own, not rent." Yes, I like to have control over my software and own things instead of rent them, but if you were offered the chance to rent a million dollar mansion for $1 a month, versus buying a $100,000 smaller home, you choose the option with less "freedom" but more convenience.

      Anyway, for you this might be about religion, which is, to be honest, silly; being religious about things like software completely insulates your views from ration and reality. For the rest of us, this is a question about economics and technical merit: does open source, through larger, unpaid developer communities, build better software than the proprietary model, through smaller groups of royalty-paid developers? Personally, I prefer the former, but there is no completely obvious winner. On the other hand, if one adopts your view, a useless but open source "Hello World" would be morally superior to any proprietary software that actually makes people's lives easier. Remind yourself that software exists to be convenient, not so that you get to label someone as unethical.

      --
      I have discovered a truly remarkable proof of this theorem that this sig is too small to contain.
    23. Re:Bad idea by rjshields · · Score: 1
      To be honest, even if no free software project had ever been completed, ever, I would still be a free software advocate. People didn't found the free software movement because they'd discovered some kind of development-methodology magic bullet. They did it because they wanted to ensure that the users of software had more freedom, more choice, with the code that ran on their computers.
      I agree with what you're saying but I just wanted to point out a contradiction...
      --
      In this world nothing is certain but death, taxes and flawed car analogies.
    24. Re:Bad idea by dubl-u · · Score: 4, Interesting

      Gets its ass kicked? I don't see many people moving from Java to Ruby. From Perl, Python, and PHP, people are switching to Ruby in hordes. But from Java? A trickle, if anything.

      You are missing my point. I am saying the enterprise approach to things only applies to a selection of software projects. Sun has ignored the ease-of-use and low-barrier-to-entry criteria for years and years. This means that small projects correctly don't use Java because it's not economical. They uses PHP, Rails, and the like.

      But large projects often start as small projects, so Sun is, presumably accidentally, driving a lot of users away from Java. There is no good reason for this; the world wanted Rails, and Sun missed the boat. When I look at the Alexa Global 100, none of the up-and-comers I recognize seem to be using Java. I know that Craigslist, MySpace, and Flickr are built on those non-enterprise technologies you disdain; in a few years I'd bet will see some Ruby on Rails entries, but none for, say, Java Server Faces or Struts.

      Enterprise developers are, by nature, unlikely to use Rails yet because they are relatively conservative. Java is, in many ways, the new COBOL. But Rails, which used Ruby's greater power to dramatically increase ease of use, now has created a substantial user base for Ruby.

      And unlike Perl and PHP, Ruby has the potential to be an enterprise-scale language. It's a much better OO language than Java in many ways. With a few improvements, some supporting tools, and another five years, you will see Ruby invading enterprise shops if Sun doesn't counter effectively.

    25. Re:Bad idea by Cederic · · Score: 1


      "I like open source because I think it makes *better* software that is more *useful* to me, not as part of some moral struggle. "

      The point of many people posting here is that open sourcing java wouldn't necessarily make it better. There is even a viewpoint that it would make it worse.

      The point of the person you replied to is that frankly it doesn't matter how good or bad it is, they wont use it because they don't agree with the restrictions it imposes upon them. That's a valid choice, and a more logical viewpoint than your own.

      If you can demonstrate that making it open source will improve it then I'll concede the validity of your point. But even then, unless it's GPL, it still wont be acceptable to some people.

      Me, I just wish I could program more.

    26. Re:Bad idea by Anonymous Coward · · Score: 0

      What contradiction?

      The "more choice" one, unless tied to the other highlighted section can only mean that you decry the denial of the choice of closed source in the name of choice.

      That's like saying "choose to be killed" or "choose to harm another". YOU don't choose closed source, the supplier does. They choose to make you a slave, having to obey their whims not your own.

    27. Re:Bad idea by Cederic · · Score: 1


      You can't write Ruby on Rails in Java? Oh. Best tell these guys: https://trails.dev.java.net/

      Enterprise developers deal with inadequacies in Java by doing what everyone else does: Writing their way around it. This is where struts, hibernate, ant, junit came from. Most enterprise shops use open source code extensively, in addition to the core language.

      This doesn't make the language bad.

      As a senior technical person in a large enterprise I too seek the holy grail of letting business people enter their business processes into a pretty front-end and getting a fully featured website with full supply chain integration automatically generated.

      I also know that this just isn't yet possible. There have been many advances towards this, and certainly developer productivity has risen massively even in the last few years.

      Does Ruby on Rails help? No. For a data driven system, it's great. For a complex system integrating with multiple other systems, it's no easier to use. And because it does so much magic under the skin, if that magic doesn't meet your needs, you struggle more to change it.

      Java is not the answer. But I can happily recommend its use for server-side development, along with PHP or .NET or even Ruby, according to the situation, the skillsets, the other factors involved.

    28. Re:Bad idea by dubl-u · · Score: 4, Insightful

      You can't write Ruby on Rails in Java? Oh. Best tell these guys: https://trails.dev.java.net/ Enterprise developers deal with inadequacies in Java by doing what everyone else does: Writing their way around it. This is where struts, hibernate, ant, junit came from.

      I'm sure the Trails guys will be the first to admit that Trails (like peers RIFE, Sails, and Stripes) is not as simple as Rails is. We Java developers are used to looking past the 30 lines of getter/setter boilerplate and other mysterious Java incantations. But that's not true for a lot of devs.

      Both Struts and Hibernate prove my point in different ways. Struts gets around Java's limitations with reams of XML, a cure frequently worse than the disease. Hibernate is closer to the spirit of RoR, but that's not really Java either; they have to do heavy wizardry with bytecode manipulation and dynamic subclassing because Java doesn't give them the necessary power. And note that Hibernate came from outside Sun. Sun's attempt at the same the same thing was EJB, which has been deservedly, if belatedly, shot in the head.

      As a senior technical person in a large enterprise I too seek the holy grail of letting business people enter their business processes into a pretty front-end and getting a fully featured website with full supply chain integration automatically generated.

      Actually, that's not what I seek at all. I believe that software development is inherently complex; you can't ever automate the thinking away. What you can do is give the developer tools to aid their productivity, to make simple things easy and dangerous things hard. Let them focus their brainpower on the things that are actually worthy tasks.

      For a data driven system, it's great. For a complex system integrating with multiple other systems, it's no easier to use.

      Exactly. At the low end, it's easier; at the high end, it's the same (or perhaps a little worse). But what Sun is missing is the idea that development need not always be hard. Pehaps they'll learn that from Hibernate, which comes from an attitude very like RoR. If not, I hope they learn it from Rails.

      And because it does so much magic under the skin, if that magic doesn't meet your needs, you struggle more to change it.

      I agree completely. This is where I'm waiting to see how the RoR and Ruby communities mature. They've got the entry-level system taken care of, but can they provide a path to complex systems without the kinds of complexity cliffs that you see amateurs using Access or VB run smack into? I think that Ruby the language has horsepower that other easy-to-use tools don't, but we'll see if they can turn that potential into actual results.

    29. Re:Bad idea by lasindi · · Score: 1

      The point of many people posting here is that open sourcing java wouldn't necessarily make it better. There is even a viewpoint that it would make it worse.

      I very much see the merit of keeping it closed. I agree that keeping it closed does prevent forking, which would be a bad thing for Java (it's a bad thing for most software projects). I merely suggest that the benefits of opening it will outweight the risks.

      The point of the person you replied to is that frankly it doesn't matter how good or bad it is, they wont use it because they don't agree with the restrictions it imposes upon them. That's a valid choice, and a more logical viewpoint than your own.

      It's a "valid choice," but then again, almost anything is a valid choice. I disagree that it's "more logical" than my own. I simply didn't elaborate on why I think that open source would be good for Java (many of the reasons have already been stated in the article and in other posts); that doesn't make my view "non-logical." If you want me to elaborate, I'd be more than happy to.

      The person I replied to did, however, elaborate on why they believe what they do, and I think it is hardly logical at all. Their belief is that the restrictions of Sun's license are morally offensive, not just too restrictive for what they want to do technically (which is, presumably, make a modified version of Java). Because they believe these restrictions are a "religious" issue, they believe that these restrictions are unacceptable under any circumstances whatsoever. If I don't particularly care that I can't modify the source code to Java, since I didn't want to anyway, why should these restrictions be unacceptable? I wouldn't even want to violate them, whether they were placed on me or not.

      Again, if I need a home, I would prefer to own it, not rent it. But it's easy to imagine circumstance under which I would rather rent, not buy, a home. Do you consider the viewpoint "Renting is unethical because it sacrifices freedom for convenience. Therefore, I refuse to rent anything under any circumstances and will only own what I use." to be very logical?

      --
      I have discovered a truly remarkable proof of this theorem that this sig is too small to contain.
    30. Re:Bad idea by MythMoth · · Score: 1

      The best reason to "open source" something is purely and simply the freedom to access the code behind the software you are running; the freedom to change, or port to another platform, the software that you purchased or downloaded.

      This is like arguing that I should give you my money because it gives you various freedoms that you wouldn't otherwise have. So what? It's still my money - you have to give a reason that matters to me.

      Similarly, when arguing that Sun should open source Java, you'll have to present a reason that makes sense to Sun's bottom line. "Hey, it would be nice" doesn't cut it.

      Yes, this is about religion. It's about an idealogical divide between people who would rather have free-as-in-beer convenient software, rather than free-as-in-freedom software that preserves your rights. Frankly, your arrogant pragmatism nauseates me.

      Tough shit. Want a free Java? Write one yourself. Want Sun to give you one? Explain to them in their terms why they should.

      Corporations do not get religions. Corporations that give away their assets without a damned good business reason get sued by their shareholders, and so they bloody well should.

      And if you have a problem with me using free-as-in-beer software, then that's entirely your problem, because I really couldn't care less.

      --
      --- These are not words: wierd, genious, rediculous
    31. Re:Bad idea by killjoe · · Score: 3, Informative

      "very much see the merit of keeping it closed. I agree that keeping it closed does prevent forking, which would be a bad thing for Java (it's a bad thing for most software projects). I merely suggest that the benefits of opening it will outweight the risks. "

      Microsoft already forked java and called it C#. Now C# is evolving faster then Java and is making serious inroads into the java development market. Furthermore there are at least two open source implementations of java. So there are three forks right there.

      Being closed source has not prevented anybody from forking java. Whats more being open sourced has not caused python, ruby, php, perl, ocaml, or haskell to fork.

      I don't know where people get this meme from really. It makes no sense at all.

      --
      evil is as evil does
    32. Re:Bad idea by killjoe · · Score: 3, Insightful

      "Tough shit. Want a free Java? Write one yourself. Want Sun to give you one? Explain to them in their terms why they should."

      Because open source languages such as php, perl, python, ruby and C# are eating into your market share every day. People have already abandoned java for most web applications and it never even got off the ground on the desktop.

      Finally Sun does not make any money off of java. They have said so themselves.

      --
      evil is as evil does
    33. Re:Bad idea by goldsounds · · Score: 1

      Your analogy is fundamentally flawed. When you rent a house, if you don't like any aspect of the house, you have a wide variety of different houses to choose from and, yes, if you choose to, you can build your own. But imagine a world in which 95% of the population was periodically forced to move to a new house in order to continue to receive mail. Or, imagine a world in which you couldn't simply buy a bare-bones house and modify it as you wished, but had to buy ONLY off-the-shelf, unmodifiable houses which couldn't be changed in any way.

      I for one am thankful to the free-software programmers (of which I am not one), who gladly provide the cement, bricks, lavatories, occasionally complete houses (see Debian) that force the renters to at least afford the rest of us some flexibility in what we have to choose from.

      You may say it's pragmatic to settle for non-free software so you can use the web, or whatever. But imagine if, tomorrow, everyone insisted that they would only buy free software from now on. Just a simple choice. Do you think the world would be a better or worse place? Do you think that convenience and interoperability would improve or go down? Do you think the longevity of data, the ability to read files on multiple platforms, or any other aspect of what you call convenience and I call freedom, would be affected negatively? Do you REALLY THINK that the software industry would collapse?

      Particularly now that there are VIABLE alternatives to the closed-source monopolists, now is the time for people to put their foot down and insist on free software. I HONESTLY don't believe it will happen, but to be honest I'd rather have principles and vision that blindly accept the (unsatisfactory) status quo.

    34. Re:Bad idea by cpuh0g · · Score: 1
      . But imagine if, tomorrow, everyone insisted that they would only buy free software from now on. Just a simple choice. Do you think the world would be a better or worse place? Do you think that convenience and interoperability would improve or go down? Do you think the longevity of data, the ability to read files on multiple platforms, or any other aspect of what you call convenience and I call freedom, would be affected negatively? Do you REALLY THINK that the software industry would collapse?

      This is a strawman argument - you are proposing something that will never happen and then propping it up with rhetorical questions that cannot be answered. One thing is for sure, not all software is ever going to be free. The world would be a better place if more software actually WORKED and was released with no bugs. That's not going to happen either, regardless of whatever religious tag is associated with the code. There is plenty of shitty open source software out there, just as there is plenty of shitty proprietary software. This line of reasoning leads nowhere.

    35. Re:Bad idea by synthespian · · Score: 1

      And unlike Perl and PHP, Ruby has the potential to be an enterprise-scale language

      You mean, Perl, as in Amazon?
      C'mon...don't be such a fanboy.

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    36. Re:Bad idea by synthespian · · Score: 1

      the freedom to change, or port to another platform, the software that you purchased or downloaded. This is the original philosophy of the Free Software Foundation, and the GNU project, who were collectively the inspiration for the "open source" movement.

      No. This is how it was in the Unix world before the Web. This was/is the spirit behind Unix and the BSD license. This at a time when "sharing code" meant senting tapes through the mail.

      Get your facts straight, and learn a little bit about the history to which the Linux crowd and GNU are tributaires. Free software existed before the FSF. Read the following article:
      "BSD Unix: Power to the people, from the code"
      http://dir.salon.com/story/tech/fsp/2000/05/16/cha pter_2_part_one/index.xml?pn=1

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    37. Re:Bad idea by Anonymous Coward · · Score: 0

      Ahah, a few hours ago I was wishing to have mod points to mod both of your previous comments up, when suddenly, after a refresh: "You have 5 Moderator Points! Use 'em or lose 'em!". :-) It's just amazing how so many people fail to understand the free software movement.

    38. Re:Bad idea by goldsounds · · Score: 1
      This is a strawman argument...

      No, sir, it is YOU who used the "strawman" argument, right here: "Why do people just assume that saying the magic words "open source" will automatically improve a particular piece of software". I'm a free software advocate, yet I certainly never claimed that the GPL license automatically improves a piece of software. On the contrary, it probably often makes it worse. Maybe it makes certain software commercially unviable, though I doubt that's as certain as many people seem to think it is.

      Next time, put your brain in gear before you start spouting mindless slashisms in the hope that one of them will stick and make you look intelligent.

      Incidentally, to respond to your completely shabby and infantile line of so-called "reasoning":
      One thing is for sure, not all software is ever going to be free.
      You know what else? Not every country is going to be a true democracy, not every person on earth is going to live in peace, not every child is going to be born free of the AIDS virus, and not everybody with a keyboard is going to have a brain wired to their fingers. Just because the world isn't perfect is no reason to let go of your ideals - on the contrary, it's all the more reason to have them.

      Dolt.

    39. Re:Bad idea by goldsounds · · Score: 1
      No. This is how it was in the Unix world before the Web. This was/is the spirit behind Unix and the BSD license.

      Oh, spare me. How far back do you want to go? If you like, let's go on a merry treasure hunt for the man or woman who came up with the idea of sharing or altruism. Heck, let's talk about Jesus for a while, shall we? He certainly had some strong ideas about putting the collective interest before yourself, but I'm pretty sure he didn't put the bible out under the BSD license.

      The success of GNU/Linux and, to a lesser extent, the BSD's, inspired the modern Open Source software movement. Yes, they had predecessors, both directly and in spirit. How is your argument any more than tangentially related to what I was trying to say, anyway? Why did you pick out such an irrelevant tidbit to nit-pick? My overarching point, in case you were too busy gazing at the patterns in the carpet, was that free software has ideals beyond the creation of better software in less time. Simple. And, I would think, rather hard to refute, since those ideals are enshrined in black and white.

    40. Re:Bad idea by cpuh0g · · Score: 1
      Dolt.

      Nice.

      Look, Mr. Ideals, this is a basic argument of pragmatism versus idealism. I prefer to be a pragmatist, I have jobs to do and need the tools to do them. I don't give a shit if the tool is free or costs me some $$ or is encumbered by a restrictive license. If it is the best tool for the job, I'm going to use it. And, I don't give a shit if you never use a piece of proprietary software again or not. If you get everything you need from the "free" ( beer or speech, whatever), then good for you.

      It's just fucking annoying to hear the same tired arguments from idealists who try to push their version of "free" (beer/speech/lunch) on everyone piece of software that doesn't fit their vision.

      Go enjoy your idealistic religion, that is cool with me. Just don't come knocking on my door handing out pamphlets from Richard Stallman.

    41. Re:Bad idea by goldsounds · · Score: 1

      No, this is not an argument of pragmatism verses idealism. This is an argument about you fundamentally misunderstanding why many people would want to open source Java. There is no war between pragmatism and idealism. I would hope that we can have both. It's just that given a choice, I would ask that Sun open source Java. That is all.

      And the reason why I called you a dolt is because you are one. If your best argument against free software is that the arguments are "tired", then you're flat out intellectually lazy. There have been plenty of people here making valid points regarding forking, on both sides of the debate. Plenty of people talking about standardisation. Again, plenty of valid points on both sides. My point was that I enjoy the freedom that comes with open sourcing software. If you want to make the point that having that freedom is a bad thing, by all means take me on. But don't just call my point "tired" and treat it as case closed.

      I'm so sorry that it's so annoying to you to hear the real reasons why many people want Java to be Open Source, in this discussion forum about whether Java should be Open Source. Oh, I apologise for taking up valuable brain space that could be consumed by admiring the sound of your own voice, mister "I live in the real world, with real problems, spare me your highly relevant point in what is, at least in part, an idealogical debate".

    42. Re:Bad idea by LarsWestergren · · Score: 1

      Because open source languages such as php, perl, python, ruby and C# are eating into your market share every day. People have already abandoned java for most web applications and it never even got off the ground on the desktop.

      Pfft. A lot of people like to believe that, but I have yet to see any evidence.

      Lets see, in Sweden out of four major newspapers, three now use java:
      www.expressen.se
      www.aftonbladet.se
      www.dn.se

      My bank, the tax authorites, my railway company...

      --

      Being bitter is drinking poison and hoping someone else will die

    43. Re:Bad idea by cpuh0g · · Score: 1
      If your best argument against free software is that the arguments are "tired", then you're flat out intellectually lazy. There have been plenty of people here making valid points regarding forking, on both sides of the debate. Plenty of people talking about standardisation. Again, plenty of valid points on both sides. My point was that I enjoy the freedom that comes with open sourcing software. If you want to make the point that having that freedom is a bad thing, by all means take me on. But don't just call my point "tired" and treat it as case closed.

      I never said I am against the freedoms of open sourcing or that having freedom is a bad thing. I am against using an idealistic line of reasoning to argue in favor of "freeing" a bit of software. Arguments about forking and standardization and fracturing the community are all valid and, IMO, pragmatic arguments for keeping *some* software closed. Arguments for opening Java simply because one believes strongly that all software should be "free" are never going to be resolved because it then becomes a religious issue. Explain to me, in practical terms, how opening Java will make your life easier or better. That is what I am not getting from your position. I get that it would be nice because it would fit your world-view, but how exactly would that benefit Sun and how would it improve the software? I just haven't read alot of convincing arguments as to why it would be a good thing, from you or anyone else.

      I am not an anti-opensource person, I use it and enjoy it. I've contributed code to mozilla and gnome, and you and I probably agree on more than you would expect (I read your blog). On this matter, however, we are getting nowhere as you apparently think I am an intellectually lazy dolt.

    44. Re:Bad idea by goldsounds · · Score: 1
      Okay, NOW you've given me a point we can argue about. How will having an Open Source Java make my life better?

      By licensing Java's code with the GPL or similar, you essentially ensure that the code base will be free to look at, modify or do whatever you wish, provided you offer others the same rights on your derived code.

      This means that if someone (say, Sun) decides that the next "official" version of Java will only run on Windows and OSX, but not Linux, I or someone else can still maintain the old Linux version, fixing bugs or enhancing it as necessary, perhaps keeping it up to date with the spec, and not be stuck in the past because we have no way to modify the software.

      Another reason: say in the next version of Java Sun decides to include DRM software which restricts what I can do with my media files in order to comply with US laws. But I live in Australia! In your pragmatic world, maybe Sun would release a version for Australians which doesn't have the DRM restrictions, but in my pragmatic world this rarely happens, so let's assume in this case that it doesn't. So what do I do? I don't have the resources to re-implement the Java spec (as some others are doing, thank heavens), so I'm simply stuck - my Java-based media player software won't let me exercise my legal rights over the content, and there's simply nothing I can do about it.

      In other words, maintaining your freedom to modify software that you use is not about what's happening right now. It's about maintaining the freedoms necessary to prevent these sorts of things happening in the future. My life is certainly happier knowing that, for example, my Linux system is produced by an ecosystem of vendors who all know that introducing artificial restrictions in their software will simply encourage their customers to go elsewhere for compatible systems without those restrictions.

      What kind of a world would it be if Microsoft Office had always been licensed under the GPL? A much, much better one - Microsoft would never have had the opportunity to create a false economy, and an illegal monopoly. And please, don't argue that the industry would have been smaller, or jobs lost - people are certainly prepared to pay for something that's of value, delivered to them by a company that offers good support and user experience. And you can't argue that MS's countless billions in stockpiled cash is generating too many jobs right now.

      Anyway, I certainly am not about to start letting other pieces of software teach me the same lesson as MS Office.

      If you must argue that it's "pragmatic" to keep some software closed, I would argue "only in the case in which they could never, ever become an indispensible piece of the world's information infrastructure". Software that falls into that category is likely to be so marginal in functionality that it wouldn't be pragmatic to use it anyway.

    45. Re:Bad idea by dubl-u · · Score: 1
      And unlike Perl and PHP, Ruby has the potential to be an enterprise-scale language
      You mean, Perl, as in Amazon?
      C'mon...don't be such a fanboy.


      Oh, please. Who's the fanboy here?

      I started writing Perl somewhere over 15 years ago, and I wrote some yesterday. I still love it, but I think I know its strengths and weaknesses. There's a list of reasons they're building Perl 6: Perl 5 is not well suited for certain kinds of development.

      As to Amazon, their jobs pages make it pretty clear that Perl is a secondary language there. Perl was a great thing in the early days of the web, but it's been a loooong time since I've seen a new company doing serious web work in it. I hope Perl 6 fixes that, but for now if you think Perl 5 is just as good as anything else for large projects, you need to get out more.
    46. Re:Bad idea by poot_rootbeer · · Score: 1

      Rarely do the most vocal critics of "open sourcing" something actually understand the rationale behind free software, which is NOT to have the best code, NOT to have the most secure code, NOT to ship a product the fastest [...]

      If I'm understanding you correctly, what you're saying is that those who insist on having the best code, or the most secure code, or shipping a product the fastest--all of which are completely valid and reasonable business and ideological goals--should not look to Open Source software as a solution.

      Frankly, your arrogant pragmatism nauseates me.

      Ditto your arrogant idealism. Jerk.

    47. Re:Bad idea by MythMoth · · Score: 1

      Because open source languages such as php, perl, python, ruby and C# are eating into your market share every day. People have already abandoned java for most web applications and it never even got off the ground on the desktop.

      I've never seen any evidence to back that claim. If you can point me at it I'd be interested in reading it. That's evidence, note, not anecdotes.

      But this argument has at least the merit that it is an argument in favour of Sun's opening up Java. I am not saying that they shouldn't. I'm saying I don't care all that much. If you want them to, you have to present them with arguments in their terms. Whereas the poster to whom I was responding had an argument amounting to "gimme".

      Finally Sun does not make any money off of java. They have said so themselves.

      My sofa is an asset. I do not make money off my sofa, but it doesn't follow that I should give it away.

      Java is an asset. If Sun don't make money off it, it doesn't follow that they should open source it.

      In my opinion it is moderately likely that Sun will eventually open source Java. But they won't do it just because some open source zealots think they should. They'll do it because they decide, in the end, that it's good for their business.

      --
      --- These are not words: wierd, genious, rediculous
    48. Re:Bad idea by ievans · · Score: 1

      And note that Hibernate came from outside Sun. Sun's attempt at the same the same thing was EJB, which has been deservedly, if belatedly, shot in the head.

      Absolutely not true. First of all, Hibernate came after EJB, and neither Hibernate nor EJB does any bytecode manipulation or other JVM tricks. Second, EJB is very much alive (3.0 was just was voted final by the JCP, yesterday, along with the Java EE 5 platform spec), and was designed with a lot of the features of Hibernate in mind (Gavin King is on the EJB 3.0 expert committee). EJB 3.0 beans are much simpler to write (they're regular Java classes decorated with annotations) and configure (no more XML deployment descriptors, and the container provides reasonable defaults that you change on a case-by-case basis via annotations).

      You should really check out the features in Java EE 5. It was designed to make developer's lives easier.

    49. Re:Bad idea by drew · · Score: 1

      If they at least put it under a license that would allow Debian, Ubuntu, FreeBSD, et al distribute the JVM and JDK without restrictions, they would massively increase their developer base. I've considered experimenting with Java development a few times, but it is such a pain to get a meaningful Java environment set up on my FreeBSD servers, that I've never made it beyond the consideration stage, and I've sworn off trying again until there is a (up to date) freely redistributable Java package for FreeBSD.

      Even if they get no other benefit whatsoever from open sourcing Java, increased developer mindshare in itself would help them substantially.

      --
      If I don't put anything here, will anyone recognize me anymore?
    50. Re:Bad idea by killjoe · · Score: 1

      Ok java is an asset. An asset they make no money off of (by their own adminission). If they open soure is how does it not become an asset? They still own the trademark, they still own the brand, they still own the compliance tests, they still own everything else.

      --
      evil is as evil does
    51. Re:Bad idea by MythMoth · · Score: 1

      Their competitors now have something they didn't have before. Sun have lost the opportunity to sell the exclusive rights to Java. And so on.

      Sun own Java. That confers benefits. Open Sourcing it will certainly have adverse effects. The only question is whether Sun will accrue sufficient benefits to outweigh them.

      If you're not addressing those issues, don't expect anyone of significance to be very interested in your views on open sourcing Java, because it's not your decision to make.

      --
      --- These are not words: wierd, genious, rediculous
    52. Re:Bad idea by dubl-u · · Score: 1

      First of all, Hibernate came after EJB

      This is true. I meant that EJB and Hibernate were both attempts to solve the object persistence problem.

      either Hibernate nor EJB does any bytecode manipulation or other JVM tricks.

      This is incorrect. Hibernate uses CGLIB and ASM to do runtime magic. They explain this in their FAQs. Rails is possible because Ruby gives developers power that Java denies unless you do magic like that.

      Second, EJB is very much alive [...], and was designed with a lot of the features of Hibernate in mind. [...] You should really check out the features in Java EE 5. It was designed to make developer's lives easier.

      Yes, this is exactly my point. For years, EJBs were hideous to use and bad performers; I made several "enterprise" systems perform 10x better (and, as a bonus, much easier to work on) by ripping out the EJB crap that others put in when EJBs were fashionable. The Hibernate guys showed years and years ago that there was no need to suffer like that, and Sun has finally come around.

      This is exactly the sort of good influence open source can have on Sun's cathedral-style, enterprise-bunker view of the world. But both C# and Hibernate show that Sun needs to keep getting their noses rubbed in it before the realize that making developer's lives easier is the primary point of a programming language. Hopefully Rails will give them a kick in their web-framework keister the way that Hibernate's independent success made them realize their persistence sucked.

    53. Re:Bad idea by killjoe · · Score: 1

      "Their competitors now have something they didn't have before. Sun have lost the opportunity to sell the exclusive rights to Java. And so on."

      So what? They don't make money on it now anyway.

      "Sun own Java. That confers benefits. "

      What benefits?

      "Open Sourcing it will certainly have adverse effects. "

      Again what and how? I certainly don't see any adverse effects.

      "If you're not addressing those issues, don't expect anyone of significance to be very interested in your views on open sourcing Java, because it's not your decision to make."

      Java will be open sourced. Sun has said repeatedly that they are now an open source company. The open sourced openoffice, netbeans, their application server and solaris. All of these (especially solaris) were profitable businesses.

      It's just a matter of time and what license they use.

      --
      evil is as evil does
    54. Re:Bad idea by ievans · · Score: 1

      This is true. I meant that EJB and Hibernate were both attempts to solve the object persistence problem.

      Before 3.0 there were three types of EJBs: session beans, for business logic; message beans for messaging; entity beans for object persistence. Entity beans have been replaced by the Java Persistence API, which is, essentially, Hibernate.next (Hibernate now is a Java Persistence provider, as is TopLink). So the more correct phrasing would be "Entity EJBs and Hibernate were both attempts to solve the object persistence problem."

      This is incorrect. Hibernate uses CGLIB and ASM to do runtime magic. They explain this in their FAQs. Rails is possible because Ruby gives developers power that Java denies unless you do magic like that.

      That's not what I meant, and it's a non-sequitor anyway. Hibernate uses CGLIB to do runtime optimization, which they admit provides a very minor improvement over the JVM's reflection API. A Hibernate user doesn't deal with any bytecode optimization. That is, these are backend performance improvements completely separate from the developer, and are in no way special to Hibernate or EJB containers or whatever. I fail to see what this has to do with either the end developer or with Ruby, especially since Ruby is no performance champ. The fact that there's bytecode optimization happening in the JVM at runtime neither proves nor disproves that Java APIs are powerful/easy to use. I imagine the Ruby interpreter does optimization, just like the JVM, so the same could be said of Ruby. What does this have to do with the APIs that developers are coding to?

      Regardless, you're right that Hibernate and TopLink and other alternate object persistent frameworks caused Sun to rethink the existence of entity beans. Session and message beans are a different story, though.

    55. Re:Bad idea by angel'o'sphere · · Score: 1


      The best reason to "open source" something is purely and simply the freedom to access the code behind the software you are running; the freedom to change, or port to another platform, the software that you purchased or downloaded. This is the original philosophy of the Free Software Foundation, and the GNU project, who were collectively the inspiration for the "open source" movement.

      All that yo have with Java.
      The sourcecode of the platform is included (except for the JVM and some tools). missing parts can be downloaded, but require a "I accept this license" click-agreement.
      Bottom line: if you are *interested* in *Java* you can do anything with it, you want (except making big buggs by selling your derivate of it).
      Most ppl wanting Java to be OOS ... are not even interested in Java!!! After Java is OSS they will run to the next "project" and proclaim: make it free, make it free!!!

      And basically you made this clear with the rest of your comment. Its nice that you feel so concerned, I don't feel so concerend .... After all I don't read e-Books ... and never will.


      The best reason to "open source" something is purely and simply the freedom to access the code behind the software you are running; the freedom to change, or port to another platform, the software that you purchased or downloaded. This is the original philosophy of the Free Software Foundation, and the GNU project, who were collectively the inspiration for the "open source" movement.


      For all this you can write your own free Java version, like classpath does, and Sun is not required to throw their multi billion investment into the dust.

      angel'o'sphere

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    56. Re:Bad idea by MythMoth · · Score: 1

      I don't make money off my sofa either, but it still has a value.

      If Java is valueless, why are the clamours for its open sourcing so loud? Are you really stupid enough to think that the rights to Java aren't worth anything? IBM or Microsoft would pay plenty for control over it.

      --
      --- These are not words: wierd, genious, rediculous
    57. Re:Bad idea by adah · · Score: 1

      Rarely do the most vocal critics of "open sourcing" something actually understand the rationale behind free software, which is NOT to have the best code, NOT to have the most secure code, NOT to ship a product the fastest, NOT to contribute to the code, NOT to get something for free, or even to become the "commodity" implementation of a specification.

      The best reason to "open source" something is purely and simply the freedom to access the code behind the software you are running; the freedom to change, or port to another platform, the software that you purchased or downloaded. This is the original philosophy of the Free Software Foundation, and the GNU project, who were collectively the inspiration for the "open source" movement.

      Yes, this is your GPL'd paradise, as RMS advocates.

      First, what you have stated is not everybody's ideal. Linus, for one things, would not agree here. Second, what has this do with SUN? SUN has no duty to invest in your paradise. SUN is a corporation, and will do whatever benefits a corporation. If open-sourcing Java does not help SUN survive, SUN will never open-source Java, whatever you GNU advocates feel or say! It seems that you never understand that ideals alone cannot make open-souce software thrive.

    58. Re:Bad idea by goldsounds · · Score: 1
      First, what you have stated is not everybody's ideal. Linus, for one things, would not agree here.

      Uhh.. wouldn't he? Linus chose to use the GPL for Linux. Doesn't that endorsement (and huge personal sacrifice) say anything to you about his opinion of free software? Way to back up your argument, argu-man.

      Second, what has this do with SUN?

      Absolutely nothing. It is merely the opinion of many people calling for Sun to open-source Java. Sure, there are many business reasons why it would be a good idea for Sun to license the Java source under the GPL. One is securing the support of the vast army of open-source programmers to ensure that Java works on all of the (increasingly common) open-source platforms. Another is countering the encroachment of .NET. Having free source code available is a very good way to gain mindshare among the technical elite of the computer world, as these people enjoy being able to tear code apart and put it back together again, and many of them also have a say in the business decisions made by their employers.

      But those are not my reasons. At least, not those alone. Let me draw an analogy: There is no pragmatic reason why I would call on the US government to try or release Australian Guantanemo detaineee David Hicks. I just call for that because it seems like the right thing to do. It's not pragmatic for the US government to do it, but it just seems like the right thing to do. No, I'm not equating closed-source to the failure of justice, but I am saying that sometimes people call for things despite the fact that it's not in their target's interests to comply. But in the commercial world, as in democracy, if enough voices start saying the same thing, the rules change.

      At least, I still like to hope so.

      Geez, where do you people get off anyway, dissing this particular point of view? There's a whole bunch of reasons why people are pro-Free-Software - most of them either because they like to get stuff for free or they like tweaking the code or they want to become the commodity implementation of Specification-X whatever. I'm not pretending my reasons should be Sun's reasons. But they're still my reasons, and they're still valid.

    59. Re:Bad idea by dubl-u · · Score: 1

      So the more correct phrasing would be "Entity EJBs and Hibernate were both attempts to solve the object persistence problem."

      Sort of. Hibernate also encourages the kind of approach you see in books like Domain-Driven Design, and in places where people talk about POJOs. That includes putting most of the business logic in the business objects. (Really, that's day one in an Object-Oriented Design class: object = data + behavior.) Ergo, a lot of the session bean shennanigans I have seen in EJB apps become unnecessary.

      You're right that EJB's messaging stuff and some of the session stuff is untouched by Hibernate, and I more accurately could have said "most of EJB" in the places where I said "EJB". Given that that most people I've talked to picked up EJB to solve the persistence problem, this seems like a minor quibble to me, but I'm glad to take your word that this was worth thrashing out.

      That's not what I meant, and it's a non-sequitor [sic] anyway. Hibernate uses CGLIB to do runtime optimization, which they admit provides a very minor improvement over the JVM's reflection API. [...] I fail to see what this has to do with either the end developer or with Ruby

      That's not all they do. As one of the FAQs I linked you to mentions, to make a class persistent they dynamically create magic subclasses at runtime using CGLIB. This is because you can't write Hibernate in pure Java. (Don't believe me? Go try it.) Ruby on Rails, on the other hand, only requires Ruby because Ruby is a more powerful language. Sun's cathedral-style thinking means that we lose out on both the features that they should be stealing from other languages and the innovation those features enable.

      And that's my main point here: a more open-source attitude would mean that Sun doesn't have to be years behind the curve, like they were with Hibernate and all of the stuff they stole from C#.

    60. Re:Bad idea by adah · · Score: 1
      Uhh.. wouldn't he? Linus chose to use the GPL for Linux. Doesn't that endorsement (and huge personal sacrifice) say anything to you about his opinion of free software?

      So you do not know the differences between Linus and RMS? You really should google for it. Linux does not appreciate the Four Freedoms of RMS, and RMS calls Linus "only an engineer without an ideal". You might also have interest to know the conflict between Eric S. Raymond and RMS, specifically the former's question "if you have the power, would you prohibit all software unless it is licensed under GPL?", which RMS could not, or dared not, answer.

      The quotations are not the original words, but the essence should be there.

      Absolutely nothing.

      So you know your "ideal" has nothing to do with SUN, and I could not say too much about it, but only SUN needs practical reasons to open-source Java.

    61. Re:Bad idea by goldsounds · · Score: 1
      So you know your "ideal" has nothing to do with SUN, and I could not say too much about it, but only SUN needs practical reasons to open-source Java.

      Wow, what a concept. That I could desire something for different reasons than Sun does. Of course they're not going to Open Source java for my reasons, but that's no reason for me not to hope they do anyway - whatever their reasons are.

      I also hope that Microsoft opens the source to MS Office. Now, I'm not an idiot. I know they're not going to do it for some kind of free-software ideal. But they may do it if the market starts insisting on Open-Source software. Or they may do it because an open-source alternative is eating their lunch, just to compete. Microsoft released a free (as in beer) web browser because Netscape changed the rules of the marketplace. MS's move would normally have been commercial suicide, but they were forced to do it because of market conditions.

      Sun won't open Java for altruistic reasons, but it doesn't mean they won't do it. We, as consumers, are the marketplace. If we want an open source Java, we just have to change our spending habits.

      As for the whole thing about Linus' opinions on open source, I'm sure they're more nuanced than "RMS is a fool, every idea he ever had is unrealistic". It's possible for two people to disagree but still fundamentally be on the same side. I am sure Linus would rather live in a world of Open Source software than one in which the majority is closed, he's just not as extreme as RMS in that view.

      Again, the disagreement between Eric Raymond and RMS is not one of absolute moral polarisation, but rather of degree and methodology. Both support the opening of source code, and their reasons may overlap. RMS is more idealistic, ESR more business-focused, but they're both in our camp. This kind of debate is healthy for the free software movement, and we are stronger for it, but I think it's a bit of a stretch to then say "this means that we shouldn't open source anything whose functionality is not going to be materially improved by it".

    62. Re:Bad idea by killjoe · · Score: 1

      Sofa is not software.

      "If Java is valueless, why are the clamours for its open sourcing so loud? "

      Because the java programmers would benefit from a java that is ubiquitus on all platforms. It's better for the developers. Sun doesn't think it's better for them so they have resisted the call of the java developers. Java developers want people who are running linux, windows, mac, solaris etc to have equal access to their programs, that's why they chose to program in a cross platform language in the first place. Right now it's a royal pain to distribute java on linux.

      "Are you really stupid enough to think that the rights to Java aren't worth anything?"

      Are you stupid enough to think that Sun would lose it's trademark, copyright, test suites or any other rights if they open source the language? You must be.

      "IBM or Microsoft would pay plenty for control over it."

      MS doesn't care. They already forked java twice, one is called J++ the other is C#. They no longer care about java. IBM already has a JVM for their PPC chips (sun refuses to write one for it) so they don't care either. Paying a few thousand dollars for a license is pocket change for IBM.

      It's the java developers who are getting the shaft, not MS or IBM.

      --
      evil is as evil does
    63. Re:Bad idea by lasindi · · Score: 1

      Microsoft already forked java and called it C#. Now C# is evolving faster then Java and is making serious inroads into the java development market. Furthermore there are at least two open source implementations of java. So there are three forks right there.

      Calling C# a "fork of Java" is, frankly, ridiculous. C# is not supposed to interoperate with Java, it's not supposed to support Java in anyway, and there is absolutely no code from Java that's in MS's C# implementation; it's merely Microsoft's way of doing the same thing Java does. If C# is a fork of Java, then GNOME is a fork of KDE. In fact, there's probably actually been some code traded between GNOME and KDE, so even there C# is still a completely different beast.

      Second, yes, there are open source implementations. However, has it gained wide acceptance? No, not really. These implementations have always lagged behind, and probably will forever. If Java was opened tomorrow, a fork would have 100% of the functionality Sun has right from the start. If Sun released an update, forks might have to do some work to adapt them to their specific code, but it would be easier than reimplementing it from scratch. So, forks would be able to keep up with Sun's Java much more rapidly than now if Java were open.

      But really, what Sun is worried about isn't some small groups using their own Java compiler and classes, especially when the goal of projects like gcj and others is complying with Sun's specifications. What they are most worried about is someone like Microsoft coming in, adding their own proprietary extensions to the language and API, and then using their huge userbase to push their competing version of Java. This is kind of like what MS did with the web and Internet Explorer. What's wrong with Microsoft pushing a competing version? Microsoft has no desire to hold to the "write once, run anywhere" mantra of Java. Look at .Net: write once, run only on Microsoft platforms.

      So in short, yes, forking will be easier if Java is open. What Sun really should do is go to ISO and get Java standardized, like C++. Look at how it has benefited C++. C++ is very widely used, because it can be used in any software, open source or proprietary. It is platform-independent, which gains more users. There are no forks of C++; at worst, there are extensions to individual compilers (__gnu_cxx::hash_map, as an example), but this could be fixed by just including hash maps in the standard library. C++ has withered use by proprietary software that might try to push changes on other people, and it's survived the forking that can take place in the open source world. Why? Because an independent standards body like the ISO is essentially untouchable.

      I'm sure we also agree that if Java were open, it would become a major tool in the hands of open source, and would become a hallmark feature of Linux distros, like another Sun product (OpenOffice.org) has become. Java already has a large community, but it would explode in size if it became open source.

      --
      I have discovered a truly remarkable proof of this theorem that this sig is too small to contain.
    64. Re:Bad idea by adah · · Score: 1
      But they may do it if the market starts insisting on Open-Source software.

      Brave idea! I dare say you are as enthusiastic as RMS himself. I really wonder how the market can insist on open-source software.

      Again, the disagreement between Eric Raymond and RMS is not one of absolute moral polarisation, but rather of degree and methodology.

      You did not get the essence of the debate. While RMS wants a whole GPL'd software world, ESR does not want it. The basic question is how programmers earn a living then. Do they live on supporting? (I would rather pay once for a good application that never needs support, and I believe at least most of the non-developers are on my side.) Or do they live by government allowances? (Who decides who gets how much and how the decisions are made?)—A completely GPL'd software world is simply unrealistic, infeasible, and unwanted by most people. Linus and ESR realize this and are willing to co-operate with the corporate world, and RMS does not confess it and just let himself marginalized.

  15. all the things java was supposed to be great for.. by vacorama · · Score: 3, Interesting

    all the things java was supposed to be great for, all the portability, consumer gadgets, smart coffee machines, etc. there's where Sun could really benefit most from open sourcing. There just isn't that much of a reason to use it on the net anymore, unless you work at a financial institution, the technology at large is just moving too slow. But when hobbyists can easily adopt java to connect the things around the house, that will be a big push forward for everyone. and open sourcing java only speeds up that barrier that keeps most java programmers working on desktops and servers...

  16. Are you kidding me? by Anonymous Coward · · Score: 5, Funny

    Open sourcing Java? Are you kidding me? Chaos would reign. Every month new features would crop up and we have to keep learning and learning and learning. Look at Ruby on Rails, new features every couple of days. Nobody can keep up.

    No no no. Let Sun handle Java.

    1. Re:Are you kidding me? by Anonymous Coward · · Score: 0

      Every month new features would crop up and we have to keep learning and learning and learning.

      Yeah, because the "new features" that microsoft added to Java worked wonders...

    2. Re:Are you kidding me? by Vyvyan+Basterd · · Score: 1

      Ruby on Rails is a flavor of the month web framework, not a language. Adding features to a language takes actual knowledge, so it'd be safe from the web 2.0 crowd.

    3. Re:Are you kidding me? by Anonymous Coward · · Score: 0

      No no no. Let Sun handle Java.

      And let everyone else run .NET / Mono. It will have a greater chance of actually getting to implement once run anywhere, than Java "implement once, run on Solaris, Windows or RedHat".

    4. Re:Are you kidding me? by welshie · · Score: 2, Insightful

      Like Sun do with the various flavours of the JDK.

      I have on my machine at least four versions of Sun's Java runtime. I need at least four versions to run the various Java applications that I need. This is because Sun keep deprecating and eventually breaking API calls that were previously in favour.

      Some will only run on 1.1.3
      Some will only run on 1.3.1
      Some will only run on 1.3.2
      Some will only run on 1.5

      Write once, run anywhere, yeah right.

  17. gcj, gnu classpath? by icydog · · Score: 1

    What would happen to the GCJ and GNU Classpath projects if Java goes GPL-style open source?

    1. Re:gcj, gnu classpath? by Anonymous Coward · · Score: 0

      Darwinism, baby. Survival of the fittest.

    2. Re:gcj, gnu classpath? by bhav2007 · · Score: 1

      It would still have incomplete support for awt and swing

    3. Re:gcj, gnu classpath? by Anonymous Coward · · Score: 0

      they'd reuse what's worth reusing from Sun's code and go on.

      cheers,
      dalibor topic

    4. Re:gcj, gnu classpath? by squiggleslash · · Score: 1
      Don't know. It's a little like asking what would happen to MacDonalds if Subway started selling hamburgers. You can't answer that question without a hell of a lot more information.

      For example, if Sun releases Java under the SDDL, then GCJ, GNU CLASSPATH, Kaffe, and Apache's Harmony project, would probably remain under development for licensing issues. As I see it, GCJ will stay on regardless, it's much more than just a re-implementation of Java. The other three... they may be rendered obsolete, we'd have to see.

      --
      You are not alone. This is not normal. None of this is normal.
  18. Someone once said... by Reverend528 · · Score: 2, Interesting
    1. Re:Someone once said... by LarsWestergren · · Score: 1

      Someone once said...It'll be a cold day in hell before Sun releases the source code to any software that people actually use.

      Yes... it seems it was you. And you was modded 0 - flamebait, and the posts that pointed out that you were wrong got +5 informative.

      Let me give you one recent counterexample - dtrace. A REALLY cool tool, and Sun paid developers to port it to BSD, and they have said they welcome anyone porting it to Linux under GPL.

      --

      Being bitter is drinking poison and hoping someone else will die

    2. Re:Someone once said... by Bacon+Bits · · Score: 1

      So... Java goes OSS in 2009?

      --
      The road to tyranny has always been paved with claims of necessity.
  19. same here by r00t · · Score: 2, Insightful

    Today, as far as I'm concerned, Java is:

    1. gcj (the gcc that does Java-to-JVM and JVM-to-native)
    2. GNU classpath
    3. Kaffe?

    I've never seen it do anything, either in a browser or in OpenOffice. Oh well.

    (not that language which overloads "+" for string+number is sane; that ought to be a compile error)

    1. Re:same here by Michael+Wardle · · Score: 1

      not that language which overloads "+" for string+number is sane; that ought to be a compile error

      Do you think there should be a string concatenation operator at all?

      I find

      string message = "Error parsing " + filename + ":" + lineno + ": " + strerror(errno);
      much better than
      string message;
      char line[32];

      message = "Error parsing ";
      message.append(filename);
      message.append(":") ;
      sprintf(line, "%d", lineno);
      message.append(line);
      message.append(": ");
      message.append(strerror(errno));
      or even
      string message;
      message = "Error parsing " + filename + ":" + new Integer(lineno).asString() + ": " + strerror(errno);

      How would you do it?

    2. Re:same here by shutdown+-p+now · · Score: 1
      String concatenation is more handy as an infix operator, of course. But there's no reason to overload + for that, it's asking for trouble. A distinct operator (e.g. binary ~ as used in D) is better.

      Of course, now that Java finally has printf, you'd hardly ever need to write code like the above anyway.

    3. Re:same here by JesseMcDonald · · Score: 1

      I much prefer this form myself:

      (let ((message (format nil "Error parsing ~A: ~A: ~A"
                             filename lineno (strerror errno))))
        ...)

      --
      "The state is that great fiction by which everyone tries to live at the expense of everyone else." - Bastiat
    4. Re:same here by marcosdumay · · Score: 1

      I have alreay use this combo on a project. Worked just fine for me, no perceptible differences from the Sun's JDK. But, I've already seen it fails on a program that I downloded and tryed to use. Of course, now I have the same functionality using a program written in C.

    5. Re:same here by r00t · · Score: 1

      That last example looks sane, though I think the period (".") makes a better concatenation operator. Many languages use the period for string concatenation.

      What is really foul in Java is what happens when you add strings and numbers.

      In math, the "+" operator is normally commutative. You have to be doing some rather exotic math before A+B != B+A. Try it in Java, using strings that consist of decimal digits.

      Doing such an operation in C is commutative, though of course with a very different meaning. The C behavior could actually work for Java, but you might prefer a compile error.

      I think that "new Integer(lineno).asString()" is a bit wordy, but at least it doesn't suffer the problem of integers being illogically and irregularly added to non-integers. I'd prefer a simple "string(lineno)" or "asString(lineno)" notation.

    6. Re:same here by Michael+Wardle · · Score: 1

      Why does it need to be commutative? Do you expect it to be? What would you expect string1 + string2 to do?

    7. Re:same here by r00t · · Score: 1

      I do naturally expect addition to be commutative. Maybe that is another reason why "." makes a better concatenation operator.

      The problem is severe with the string+number situation though, because order determines if the string gets converted into a number or if the number gets converted into a string. This leads to screwy code like one of the following:

      foo = "" + num + str; // this one I think
      foo = str + num + ""; // not this one, I think

      Adding "" to something is just plain wrong. It's a kludge. Compare:

      foo = num + integer(str); // order does not matter
      foo = str . string(num); // both orders are useful

      Grabbing "." might present a conflict. Alternatives, if you must use a symbol for this: $ ! % ^ ~ _

  20. No; Too Little, too late by Anonymous Coward · · Score: 0, Insightful

    No, Sun will not open source Java, they've repeatedly shown they have no interest in open sourcing Java (beyond the current incredibly restrictive license).

    Even if they do, it won't solve the main problems Java has:

    1. Massively bloated library. The current JRE I have installed has 77MB in the "lib" directory - those are simply ".jar" files that contain the core libraries!

    2. Massively bloated VM. Thanks to the massive class library I just mentioned, it takes FOREVER for the VM to start, because it has to first load the class library. The VM takes something like 5 seconds and 5MB just to do a simple "Hello World" application. That's not right.

    3. Massively broken VM. The VM is designed basically exclusively for use with Java. Yes, other languages can be shoehorned into the class format, but the VM is designed around Java's OO model. If your language doesn't use Java's messed-up "everything is a Java" model, combined with "except for static methods which belong to an object's static instance" - the class format won't work.

    Java is simply too bloated and too slow to be useful as an open source application. Maybe if it was open sourced before it ballooned out of control, but now, I doubt there's anything useful outside of Java in there.

    1. Re:No; Too Little, too late by rbanffy · · Score: 1

      1) The runtime and libraries are huge because it is a very complete library set. They encompass many things (some of them I wonder if are ever used) that other frameworks (or even OSs) don't offer. It reimplements many things because it does rely on the guest OS for almost nothing, as different OSs tend to do things differently.

      2) VM bloat has nothing to do with core library size. The memory footprint you are complaining about is probably due to the optimizing VM itself plus the code that had to be loaded for the Hello Wold application. I suspect most of it is for the VM and very little for the Hello application. The same VM can also run NetBeans with the same VM memory footprint (of course, the rest of NetBeans takes a whole lot of memory)

      3) The VM start-up time is only a problem for desktop applications. For server-side stuff (which os where Java excels) the VM is started about, say, once every year. I don't run many Hello World applications when at work, so, if the VM takes 5 seconds to load and 50 to load the application, I don't complain.

      Of course, there are other tools (I just love Python and Zope and I am exploring Twisted and TurboGears) that may have a faster start-up times or smaller memory footprints, but Java is a more than good enough "OS within the OS" coupled with a good enough language.

      Even if it's not fit for writing poetry.

  21. Make sure 'P' Languages run on JVM.....huh? by ip_freely_2000 · · Score: 3, Interesting

    "One commentator said, "Sun should endorse PHP and go one step forward and make sure the 'P' languages run great on the JVM [Java virtual machine] by open-sourcing Java."

    Explain that to comment to me, please. It makes no sense.

    1. Re:Make sure 'P' Languages run on JVM.....huh? by SixDimensionalArray · · Score: 1

      I am not the person who made the comment, but I THINK what they were trying to do was comment on the relationship between Zend (the private company that supports PHP) and Sun that has been growing for several years. Zend recently released a PHP to Java bridge, and there have been folks who have said that PHP presents a lower barrier to entry, extremely large developer base and easier syntax than JSP. As far as I am concerned, JSP, ASP, PHP, etc.. are just tools.. pick the right one for your environment.

      I think, perhaps, the comment may have been referring to a better integration of PHP with Java-supporting web servers, such as Apache Tomcat or JBoss, in addition to increased PHP and JVM integration. Since PHP is so widely supported as a web-scripting language, and Java is so well supported as middleware, server-side software, etc.. well I think you get the idea.

      Just my 2c.

    2. Re:Make sure 'P' Languages run on JVM.....huh? by danharan · · Score: 1

      Googling "PHP JVM", my second hit was Caucho Resin adds PHP: "Caucho, the company behind the open source application server Resin and the open Web Services protocols Burlap and Hessian, has recently added PHP to its list of supported features. Apparently, the PHP pages are compiled in the background to byte-code, and the resulting performance is six times that of Apache mod_php!"

      Being able to call some of the Java libraries from PHP or even Ruby would be pretty nifty; there's some really top-notch stuff that has been developed in Java.

      --
      Information: "I want to be anthropomorphized"
    3. Re:Make sure 'P' Languages run on JVM.....huh? by therevolution · · Score: 1
      An example is Jython, a Python implementation for Java. It lets you write Python code that can interact with pure Java classes.

      http://www.jython.org/
      http://en.wikipedia.org/wiki/Jython

      As for why you'd want to mix Python and Java... I'm really not sure. Perhaps someone else can describe a situation where it would be warranted.

    4. Re:Make sure 'P' Languages run on JVM.....huh? by eegreg · · Score: 2, Informative

      The P's and R (Ruby) are ran by an interpreter, which essentially interprets the text into machine language. Java programs are first compiled into bytecode that is then interpreted by their JVM. This compilation step gives a big performance increase, and is the biggest reason why Java is faster than P's and R. If you could compile P's and R into Java bytecode, you could run the finished product on the JVM with great performance increases. Or you can get the benefit of mixing and matching the different languages (mostly you could use Java's libraires with P's and R). I know there is a Ruby project (JRuby) which is actually already has the ability to do this for most of Ruby's code, although it has not been optimized yet, so right now it is more a way to program in Ruby with Java libraries than a way to speed up a Ruby program.

    5. Re:Make sure 'P' Languages run on JVM.....huh? by the_womble · · Score: 2, Insightful

      I assume it means that Sun is better off persuading language developers to run the "P" of the LAMP stack on the JVM (instead of their own byte-code interpreters), growing with LAMP rather than competing head-on with it and losing market share to it.

      If Sun is to do that, they should do it before Parrot and the language implementations for it are finished - so that gives them plenty of time.

      There are a already lot language implementations that already target the JVM, Sun would not lose by throwing a bit of money at OSS projects that might improve them and add a few more.

    6. Re:Make sure 'P' Languages run on JVM.....huh? by Daniel+the+Great · · Score: 1
      I think the 'P' means PHP, Perl and/or Python. Probably also should throw Ruby in as well.

      The benefits might be that you could mix and match modules from each language in the JVM. So you could use that great perl module you found at CPAN in your PHP front end or your business logic Java backend.

      I'm not sure if I read this somewhere or just made it up. Anyhow it would be pretty cool.

    7. Re:Make sure 'P' Languages run on JVM.....huh? by jadavis · · Score: 2, Insightful

      The P's and R (Ruby) are ran by an interpreter, which essentially interprets the text into machine language.

      That comment is misleading. The text is never translated to machine code. The interpreter reads the code and the interpreter does the work according to the rules of the language. Java takes an intermediate step and translates the code to bytecode, which can be more easily interpreted. However, so can python.

      Also, your performance analysis is lacking. Code size is a big factor here. A perl program may, in a few short lines of code, accomplish something that would take a lot more java code. If you have a complex text processing program, perl may well be much faster. That's because the few short lines of perl code call a lot of highly optimized C text processing routines. The java code may do more of the work in Java code.

      So, when evaluating the speed of a language, you should ask yourself: "Does parsing take a significant amount of time for my application?". Java may be fast, but if it doesn't call into the optimized C routines quickly enough, it's going to lose to players like perl, python, and ruby.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    8. Re:Make sure 'P' Languages run on JVM.....huh? by Anonymous Coward · · Score: 0

      There is this rebranding of the JVM going on in some circles, in order to reposition the JVM for the fight for eyeballs with dynamic languages. It's largely being promoted by people who aren't exactly known for implementing performant programming languages on top of the JVM, or JVMs in the first place, so there is a lot of wishful thinking involved.

      The basic idea is to rebrand the JVM as the ueber-runtime-technology for the future, that all the other languages should compile to, in order to get some hypothetical performance benefit. Nevermind that the JVM language is a pretty bad choice as an intermediate language to compile down to for very-Java-unlike languages, as you have to work around the deliberate limitations of JVM's type system, and so on, which eats away potential performance benefits, anyway. Nevermind that no mainstream language that compiles down to the JVM or runs interpreted on it has been able to reach the performance of the native runtimes in the first place in the past 10 years.

      The whole rebranding show is useful for giving potential converts away from Java something to hold on to while the JVM design gets a bit of fresh paint here and there, with heavily hyped, but largely pointless new bytecodes like "invokedynamic". Note the marketing-driven nomenclature: with "invokedynamic" the JVM will be totally well-suited for "dynamic languages" that are currently competing for new developers' eyeballs with Java.

      Ahem.

      cheers,
      dalibor topic

    9. Re:Make sure 'P' Languages run on JVM.....huh? by Jesus_666 · · Score: 1

      For example when you're writing a complex Java application that supports scripting. Using Jython, you can expose parts of your application to the scripting interface, giving the scripter a great deal of control over the app.

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
    10. Re:Make sure 'P' Languages run on JVM.....huh? by k8to · · Score: 1

      I agree with your comments about perl. In its application domain, with its usual idioms, perl is extremely fast. Especially when you consider "the typical program", rather than some theoretical optimized case that rarely appears from real programmers.

      Sadly Python, a language dear to my heart, has a lot more overhead in simply walking through the typing rules for objects macking stack frames, and the like. I feel all this overhead is very much worth it because the speed is often not important and it afford both safety and dynamicism. But it is a speed loser in nearly any benchmark. And Ruby is even slower (this is difficult for me to believe.)

      Mind you, the incremental loss on these activities can completely come out in the wash in an application-sized body of code where python and ruby can lend themselves to simpler designs, but they will not win your proposed race.

      --
      -josh
    11. Re:Make sure 'P' Languages run on JVM.....huh? by Anonymous Coward · · Score: 0

      I think it largely means that the person who said it is on crack (or maybe acid), because it's about the dumbest idea I've ever heard.

    12. Re:Make sure 'P' Languages run on JVM.....huh? by jadavis · · Score: 1

      My point was that when you are measuring the performance of a high level language like perl, python, or ruby, the normal use case does not really test the performance of the language. Mostly those languages quickly jump into optimized C routines, which are hard to beat (admittedly, ruby and python aren't as heavily optimized as perl).

      However, the normal use case for java can test the speed of the language itself. Generally, a higher proportion of the work is done in the JVM versus the perl interpreter, so the speed of the JVM matters much more. In perl what matters is the speed of the C routines that are called.

      In ruby, if you have a sophisticated, performance critical algorithm, the correct thing to do is write it in C as a module. Then just call it with a couple lines of ruby code. You can do that in Java, also, but it's not quite the normal process.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
  22. It already is by Tweekster · · Score: 0, Troll

    It is opensource.

    if you want to ask an open ended (and useless question) atleast get the correct format...

    it should have been "should Sun change the open source license java is currently under?"

    Can we just not have these trolltastic lame open ended articles that begin with a question.

    --
    The phrase "more better" is acceptable English. suck it grammar Nazis
  23. Confused on the "p-language" part by timecop · · Score: 0

    "Sun should endorse PHP and go one step forward and make sure the 'P' languages run great on the JVM [Java virtual machine] by open-sourcing Java."

    What? I read this sentence like 10 times, what exactly are they trying to say here?
    'p' as in pseudocode? p-code? huh? p as in php, perl, in that case what does that have to do with a JVM... Confused/lost here halp.

    1. Re:Confused on the "p-language" part by mlk · · Score: 1
      P as in PHP & perl (etc)

      Both are dynamic typed languages. The JVM does not do dynamicly typed, so making The P Languages work on the JVM is a pain.

      Java 7 might be including extra instruction codes in its Byte Code (which will not be used by Java (the language)) which will let dynamicly typed languages run on the JVM without the pain currently required.

      I'm guessing that this is how the Open Source thing got started again.
      Sys.out.prtln( slastdot.manage( "Sun might make it easier to run Open Source languages " ) );
       
      Sun is thinking of opensourcing teh Jav!!
      --
      Wow, I should not post when knackered.
  24. a tool for the job by b17bmbr · · Score: 0

    like all religious zealots, open source purists just marginalize themselves and the overall community. look, java is a tool, and while hardly "open source", is overall a helluva lot better than any microsoft license. but that's not the point. java is a very good tool for certain things. it has strengths and weaknesses. the license should be one of the last things to worry about. refusing to use a tool simply based on a license is not wise. no tool is perfect. use what is best suited for the job.

    --
    My problem? I was perfectly gruntled, until some numbnuts came by and dissed me.
    1. Re:a tool for the job by bladesjester · · Score: 1

      That would make too much sense. We can't make sense - we have to be different.

      There are three arguments against java that make me shake my head. That's one of them. The other two are that the code isn't portable (it is as long as you aren't stupid. In fact, sun publishes guidlines for writing portable code which includes things like not hardcoding file separators) and that it's a slow memory hog (which it isn't).

      --
      Everything I need to know I learned by killing smart people and eating their brains.
  25. Yes by zx-15 · · Score: 1

    >No, haven't they already said that? Like hundreds of times? And does it really >matter?
    Yes, they said that, if they hadn't said that, it wouldn't have matter.

    >"No", who would run PHP on Java anyway? Why? Why would open-sourcing it help?
    Yes, because you would be able to use middleware such as JBoss and Hibernate API directly from PHP, Perl and whatever else there is. For example, there is a nice implementation of Python under Java so you can use Swing/AWT api, that makes a big difference, of course you can always use wxWidgets instead.

    >No, Java is already desirable in my eyes.
    Yes. I'll worship the person who would implement multiple inheritance in java.

    >"Could this be a way to help improve what's lacking in Java?"
    >No, what is lacking?
    Yes, change "Write once debug anywhere" to "Write once, run anywhere"

    And what about that thing that every P language has to re-invent the wheel of translating script into its own format bytecode(I'm using Python as an example) and garbage collection if developers of that language could just use and/or improve already existing jvm. Little late, but not too late, plus, I'd really like to see a chip in a sell phone or such that understands java bytecode natively, since there are so many people who are using and developing applications under java on mobile platform, someone could actually make it run there fast.

    1. Re:Yes by Anonymous Coward · · Score: 1, Informative

      Yes, change "Write once debug anywhere" to "Write once, run anywhere"

      Java already has the best "Write Once, Run Anywhere" technology on the market today. Programs that fail to be portable are usually due to:

      1. Idiot programmers who can't figure out that "c:\\My Files\\data.txt" is not portable across Operating Systems.

      2. Hardware inconsistencies that screw up many more programs than just Java. Hyperthreading is the worst offender, but general SMP can wreak all kinds of havoc on unsuspecting code.

    2. Re:Yes by roman_mir · · Score: 1

      Yes, because you would be able to use middleware such as JBoss and Hibernate API directly from PHP, Perl and whatever else there is. For example, there is a nice implementation of Python under Java so you can use Swing/AWT api, that makes a big difference, of course you can always use wxWidgets instead. - what a waste of time.

      Yes. I'll worship the person who would implement multiple inheritance in java. - as long as this is not part of the standard, I don't care, but if someone decides to add this to the standard, I will have to disembowel the bastard. Java gains plenty and loses nothing by ditching multiple inheritance. I would ditch inheritance alltogether and only allow interfaces, the code would not get as convoluted as it is allowed to get today. Most of what people write does not require inheritance and if multiple inheritance is used, the design is getting out of hand.

      Yes, change "Write once debug anywhere" to "Write once, run anywhere" - in 8 years of java, not a single time did I have a see a problem like this unless the Runtime.exec() was used with platform specific commands.

      and as if 'P' languages matter.

  26. Open Java by gatzke · · Score: 1


    Kaffe and GCJ are open source Java implementations, but I don't know how active or good they are.

    Real men write FORTRAN...

    1. Re:Open Java by Anonymous Coward · · Score: 0

      While I agree with you that FORTRAN has its strengths, what makes it particularly desireable in this context?

    2. Re:Open Java by SickLittleMonkey · · Score: 1

      Probably not active or good enough.
      Otherwise why would Apache have the Harmony project to recreate J2SE?

      I'm saying there is no time to lose. Newton is gone, Palm has hit the wall ... .NET mobile will be the only binary compatible handheld platform unless Sun act now.

      --
      main() {1;} // zen app
    3. Re:Open Java by WebMink · · Score: 4, Informative
      Otherwise why would Apache have the Harmony project to recreate J2SE?

      Kaffe and GNU/Classpath are excellent, active projects with dedicated developers. Notably, GNU/Classpath has recently passed the 99% code coverage mark measured against the Java SE specification. Apache Harmony was started because Apache won't use code licensed under the GPL, not because of any technical defect in the work of the Kaffe and GNU/Classpath developers. Harmony is also making excellent progress and has a skilled and active community. Both are committed to making compatible implementations of Java, but licensed under the licenses their communities need.

    4. Re:Open Java by pchan- · · Score: 3, Informative

      I'm saying there is no time to lose. Newton is gone, Palm has hit the wall ... .NET mobile will be the only binary compatible handheld platform unless Sun act now.

      As an embedded systems developer who has recently been dealing with Windows CE, let me tell you that Microsoft is pushing .NET for embedded devices, and they're pushing it *hard*. The first words out of the mouth of every new MS guy I meet are "are you using managed code?". Every single presentation I've seen, block diagrams, feature lists, tools descriptions, every one has a block dedicated to managed code, c-sharp, and the portable dotnet framework right next to native code. It's pretty obvious that there was a directive from high on up of what to do and how to do it (I've never seen Microsoft so organized about something before). On the desktop side, they expect to kill Java by pushing out the dotnet framework with the next version of Windows, so things are currently pretty relaxed. On the server side, they are working on strong integration into all of their server products and all of their development tools (vb and asp replaced by dotnet versions). On the embedded side, they are pushing dotnet like it's the cure for every development issue ever.

      The Java market is fragmenting. All these groups are taking it in different directions. The Apache people are re-implementing it, the GNU people won't deal with Sun Java, distribution is a mess. Microsoft offers a consistant product, a consistant platform, and a hard sell. Java is losing ground on the server side. On the embedded side, Microsoft is determined to "fucking kill [java]", and they're not resting. It's not all doom and gloom, Java will be around for a while. But it wouldn't hurt if Sun got off their asses and removed the obstacles in the way of their allies in the war against dotnet.

    5. Re:Open Java by steve_l · · Score: 1

      I think its a shame that there is a split between the apache and gnu projects, a split that cuts both ways. Gnu classpath has its own XML parser and XSL engine, even though Java1.5 bundles the Apache ones. If classpath adopted Xalan and Xerces then they could tick that bit of compatiblity off and worry about other problems.

      Some Apache groups do support Kaffe. Ant (which I work on), tries to avoid any imports of sun.* and com.sun.* classes, and we happily field bugreps that surface on Kaffe+classpath. The big apache Gump clean-build-off-open-source-Java tool does a nightly build on kaffe/classpath too. The more the projects work together, the better things will be.

    6. Re:Open Java by david.gilbert · · Score: 2, Informative
      Here are some activity stats for GNU Classpath:

      http://www.object-refinery.com/classpath/statcvs/

      Progress, over the last two years in particular, has been astonishing.

    7. Re:Open Java by Anonymous Coward · · Score: 0

      It's not much of a split, it's more of a licensing nuissance preventing us from exploiting the fruits of each others work fully, which is pretty annoying, if you care about building bridges across communities and stuff like that, and deadly boring otherwise.

      Basically, GPL2 and ASL2 don't mix well together, so merging in ASL2 licensed software into GPL2 licensed projects creates some problems, as you can't distribute the resultas one could not satisfy both licenses' requirements simultaneously. That would not be a problem per se for GNU classpath, since its license, GPL+linking exception, permits linking with code under any license. But, in practice, having ASL2 licensed components within GNU Classpath would bite the people in the rear who want to use gcj, jcvm and other ahead-of-time compilers to compile their GPLd applications to native code: The resulting native binary could contain both GPL2 and ASL2 licensed sections, and then one could not redistribute it. Not being able to use FSF's gcj with FSF's GNU Classpath to create redistributable GPLd software would be kinda ... uh ... contrary to the goals of many people writing GPLd software. :)

      In the other direction, Roy Fielding did not like FSF's GPL2+linking exception licensing construct used in gcc, GNU Classpath, etc., so that prevented Apache from reusing GNU Classpath's code directly. None of the other licensing alternatives (LGPL, dual licensing/MIT-license, ...) were considered as acceptable by Apache developers, in part due to ASF procedural constraints (everything going out of the ASF must be under ASL2, so dual licensing/MIT/* is not an option: the choices are ASL2 or ASL2 :), and in part due to ASF's ongoing work on classifying licenses as Apache-friendly not being finished when we started off Harmony, so the set of potential compromise licensing choices was not defined yet.

      Anyway, Roy's concerns should be fixed with the GPL3, which will include an explicit "you really can add exceptions to the license to grant people more freedoms on your own code if you like" clause. The concerns regarding GPL2/ASL2 compatibility should be fixed with GPL3, as well, which will explicitely allow the sort of patent retaliation constructs used in ASL2 as permissible restrictions wrt to GPL3.

      So, in brief, I believe that the licensing nuissances will be resolved by the GPL3 sometime next year, and then it will boil down to re-evaluating the policy decisions at the FSF and ASF. That should be much less of a problem than the legalese gymnastics we had to go through to figure out what the actual legalese issues are. :)

      Meanwhile, nothing prevents third parties (i.e. Sun :) to mix and match code from both Apache Harmony and GNU Classpath as they like, as long as they comply with both licenses, which is pretty trivial in general, other than in the not-exactly-everyday "I want to be able to create native exeecutables from GPLd Java code" scenario, and "I want to have everything licensed under ASL2 alone" scenarios.

      Personally, I think the strategy of having two different prongs attacking the problem is a pretty good one, as they attract different sets of contributors: Harmony attracts contributors interested in eventually basing their own closed source implementations of J2SE off it (i.e. IBM :), while GNU Classpath is less concerned about the needs of that particular group, and appeals more to contributors needing a full free software J2SE stack without necessarily desiring to enter the proprietary J2SE implementation market themselves (i.e. Red Hat :). Therefore the goals are somewhat differently prioritized: for Harmony, passing the J2SE certification is very high on the list, as it is important for contributors wishing to certify their own forks as compatible, while for GNU Classpath passing the proprietary J2SE compatibility test suite & certification is largely seen as a

    8. Re:Open Java by BalkanBoy · · Score: 1

      You need to forward this comment directly to sun.com's forums, and possibly to Jonathan Schwartz or whoever handles his email. Mod him up to 5.

      --
      'A lie if repeated often enough, becomes the truth.' - Goebbels
  27. Re:If they do, it will all depend upon the license by BrainInAJar · · Score: 3, Insightful

    "Open Source" + "Sun Microsystems" almost certainly = "CDDL"

  28. Oh, geesh..... by deanj · · Score: 2, Insightful

    "Would this move Java up the desirability scale in your eyes?"

    Java isn't the answer for everything. Either is C, C++, Perl, Python, Ruby, or PHP. Each language has it's strengths and weaknesses.

    Nobody should be making decisions about what programming language to use based on whether it's open source or not. There are freely available implementations of those languages.

    If you've got your company, that's another story, do what you want. If you're basing decision on open source ideology instead of what's best for your employer, you're not doing your job.

    Is the employer always right? Hell no. But making decisions based on open source ideology instead of the right technical decision, you'll be no better than the managers "upstairs" you like to complain about.

    1. Re:Oh, geesh..... by Anonymous Coward · · Score: 0

      I don't agree with the Flamebait modding on your post, but I think you're not looking at a wider picture.

      Essentially, the question is "would this make Java better in some way (such as allowing wider 'free' linux adoption of it) and thus make it a more reasonable choice in some situations where you otherwise would have chosen something else?"

      Or it could be "are you an open source zealot who goes nuts over licence changes?" I don't really know... in that case you're modded down for not being a good little open source fanboy.

      By the way, mods, I think microsoft stinks and opensource is awesome! Kill Bill! Something else!

    2. Re:Oh, geesh..... by marcosdumay · · Score: 1

      Open Source is normaly better for your employer. Taking that point into account when chosing a language is often a sign of wisdon that the last generation needed more than 2 decades to gater. But, well, your boss probably doesn't have that wisdon.

      Anyway, there are always some exceptions out there. But if you are starting a project, you are probably not one of those exceptions.

  29. out of curiosity, how does sun make money??? by thechronic · · Score: 1

    I don't see how open sourcing Java would help Sun, it's the only thing they have left. They've open sourced everything. I mean, yeah, great, thanks...but they've turned themselves into something like Xerox PARC. Anyway, if they do choose to open source it, this will help increase Java's presence in the development world. It really is a great language (and virtual machine).

    1. Re:out of curiosity, how does sun make money??? by smash · · Score: 1
      Hardware and support contracts.

      smash.

      --
      I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
  30. Why Should Sun Do This? by javacowboy · · Score: 5, Insightful

    Writing a fully compliant JVM takes a lot of time and a lot of effort, especially the class libraries. Sun spent years writing that code, and none of the JCP partners can be bothered re-writing it themselves.

    IBM, BEA, Oracle, etc pay Sun to license their source code so they can release compliant JVMs.

    So, it should be no suprised the the open *cough*IBM*cough* source community "demands" that Sun open source Java. Guess how much money a certain company would save getting free source code that they're paying to license now? In the same of "the open source community", they'd like nothing better than to get the #1 competitor's hard work for free so they stop having to pay them for it.

    The Java spec is open for anybody the re-implement, the source code is viewable by all, and the JDK is a free download. Sun has stated that they won't stand in the way of Apache Harmony or any other open source project that aims for a full open source implementation of the JVM/JDK spec.

    So what exactly is the problem?

    --
    This space left intentionally blank.
    1. Re:Why Should Sun Do This? by typical · · Score: 4, Interesting

      So what exactly is the problem?

      I don't have the Sun JDK on my Fedora system by default because of the Sun license.

      Meanwhile, Microsoft has been adopting ocaml as the next big language. For once, Microsoft is technically ahead of its competitors -- ocaml (which Microsoft did not produce) is very fast and safe, and from a technical standpoint is much more impressive than C# and Java.

      Plus, ocaml can be used as a pure functional language -- such languages eliminate almost all the reason to use (error-prone, difficult to guarantee correctness with) threads. Pure functional code is inherently parallelizable any time the compiler can say "hey, no data dependency here".

      Ocaml is picking up quite a bit of steam -- there are a slew of open-source libraries for it out there, it's the only safe language that I'm aware of that provides performance comparable to C and C++, yadda yadda yadda. The INRIA ocaml compiler is open source (though, annoyingly, QPL instead of GPL). The runtimes and the stuff that you stuff into your code is LGPL. I didn't realize that Microsoft was backing it and integrating ocaml support into Visual Studio until quite recently, though. There have been gtk+ bindings for ocaml for a while, but MS may actually be ahead of the OSS world in providing complete ocaml bindings.

      If you've never used ocaml before, wait until the first time you break in the debugger at a problem...and then step *backwards* to watch the problem occurring. It's simply delightful. :-) Plus, it's even more concise than C (which is saying quite a bit), is safe and garbage-collected, has very strict typing (I've heard one ML fan say "If your code compiles, it's correct" in only half-jest)...ah.

      What's particularly satisfying is that C was well-designed -- for a specific set of systems and circumstances that don't apply to most application software development today. Ocaml is the first language in a long time that I've seen where I can say not just that the language has good ideas, but that it is really well-designed. It's also a lot better-suited to application development than C is.

      Gah...sorry. Ocaml gives me the warm fuzzies.

      --
      Any program relying on (nontrivial) preemptive multithreading will be buggy.
    2. Re:Why Should Sun Do This? by synthespian · · Score: 2, Informative

      SML with MLton (optimizing compiler) fares better than Ocaml, according to this:

      http://shootout.alioth.debian.org/gp4/ml.php
      http://shootout.alioth.debian.org/gp4/ocaml.php

      Two SML implementations are SML/NJ, MoscowML.

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    3. Re:Why Should Sun Do This? by IntlHarvester · · Score: 1

      Where did you read that F# would be included in VisualStudio?

      --
      Business. Numbers. Money. People. Computer World.
    4. Re:Why Should Sun Do This? by typical · · Score: 1

      All right, fair enough -- but to achieve that, MLton requires whole-program compilation, which is probably going to be too expensive for large projects.

      --
      Any program relying on (nontrivial) preemptive multithreading will be buggy.
    5. Re:Why Should Sun Do This? by killjoe · · Score: 1

      You have explained why it's good for sun to have a closed source java. Can you explain to us why it's good for the java developers?

      --
      evil is as evil does
    6. Re:Why Should Sun Do This? by ufoot · · Score: 1, Informative
      > So what exactly is the problem?

      The problem, exactly, is that SUN only implements its JDK on the platforms it judges as "interesting enough". Running a non-mainstream OS on some non-i386 hardware will always end up with you unable to run any SUN JDK -> simply doesn't exist. Well, Blackdown can help and hacking and going all sort of self-punishment you might end up in getting it to work, but well, compare the number of platforms GCC or Perl run on, and compare the number of platforms supported by SUN JAVA, and well, you'll see that SUN JAVA's portability is purely theorical. Now the usual answer "but nobody does this!". Some vendors, and SUN is no exception, are very smart at knowing what people want, without even asking them. Should you want to do something they didn't plan, you cease to exist.

      Now it's perfectly true people have the specs, people are free to implement. Look at the efforts made by GCJ and Classpath and you'll see that even with many talented developpers involved, it's hard to catch up with SUN.

      What could SUN benefit? Obviously, get many free software developpers to get interested in Java at all. Many software developped in C++ could have gone the Java way, if there had been a way to run Java programs freely, using the *latest* JDK. For now, people have to beg SUN (and possibly IBM) to port the JDK to this or that platform to get a chance to run their Java 1.5 program on *any* platform. Not to mention the fact that some people care about freedom and the right to know what they are running on their computers...

      IMHO, SUN will publish Java under a Free (as in freedom) and/or Open Source licence the day the concurrent implementations (GCJ,Kaffe,Classpath...) will catch up. On that day SUN's JVM will have absolutely no added value but the stamp "this is SUN software" (which is what counts more for many). Think of Motif, it got free the day GTK and Qt/KDE where ahead of it. Same for OpenSolaris which comes at a time the Linux kernel is pretty advanced in term of features and is obviously (even if not technically fully equivalent) taking significant market shares so that, well, Solaris is dead.

      Sun will "Open Source" Java the day it's dead, because another "Open Source" project took the lead. So if SUN ever publishes a free software JDK, you could interpret this as a signal that means something like "GCJ+Classpath is ready for production use".

    7. Re:Why Should Sun Do This? by Hugo+Graffiti · · Score: 1
      The Java spec is open for anybody the re-implement, the source code is viewable by all, and the JDK is a free download.

      Not quite anybody. If you've ever seen Sun's source code (or even worse, like me, worked on it) then you can't for instance contribute to Harmony. (See here for details on the restrictions). There's a lot of paranoia around about IP contamination from exposure to Sun's code.

    8. Re:Why Should Sun Do This? by Anonymous Coward · · Score: 0

      SCO made a lot of people very, very careful about legal agreements for proprietary software that are wide open to interpretation.

      Sun's legal department has been pretty good at crafting ambiguous licensing agreements in the past, which I assume were crafted that way to have a huge stick to hit Microsoft with, if necessary. Unfortunately, such agreements also make it unsafe for other parties to work with the code, unless they really, really have to, and/or assume that the right holders for the code will perpetually be benevolent. That is, as the Unix licensing wars between AT&T & the world, and SCO and the world, have shown, not necessarily very likely for technologies with large financial interests.

      Since open source projects on the net can't realistically employ the sort of clean room mechanisms with limited communication, that one can employ in a proprietary software development company, they need to make sure that their contributors are aware of the legal issues surrounding the use of other people's proprietary code. In general they try to draw very bright lines between what's permissible, and what's not, in order to avoid ambiguities that may lead to the project & the contributors being dragged to court by a non-benevolent rights holder.

      The 'don't look' line is a very bright one, that avoids a ton of potential legal issues surrounding reimplementing patented methods, or non-verbatim copying, or disclosure of trade secrets, etc.

      For example, Sun's legal department regards their J2SE implementation's source code as a trade secret, which means even telling someone else what Sun does internally in order to implement some functionality can be problematic, unless there is a prior unchallenged publication of the details to refer to.

      Given Sun's experience with Microsoft, the legal minefields around their J2SE implementation are understandable. Unfortunately, they also make it very hard for Sun's J2SE developers to collaborate with the world outside Sun, and vice versa. There is little anyone outside Sun can do about it, other than to chart out the minefields, i.e. draw those bright lines between what's known to be safe, and what's potentially very dangerous.

      cheers,
      dalibor topic

    9. Re:Why Should Sun Do This? by Anonymous Coward · · Score: 0
      I don't have the Sun JDK on my Fedora system by default because of the Sun license.


      That's Fedora's problem -- not Sun's.

      GPL is the problem, not Sun's (current) licensing terms.
    10. Re:Why Should Sun Do This? by Wizarth · · Score: 1

      Thank you for your description of Ocaml. I've seen one program implemented in it (MLDonkey) and read a little about it, but had filed it under "Yet Another Niche Language".

      If I ever get any free time (ha!) I'll look closer at it.

    11. Re:Why Should Sun Do This? by squiggleslash · · Score: 1

      This AC post says better than I can why this isn't an issue. Sun has been clear in its wording that "taint" simply isn't an issue. Yes, you can disbelieve them, but the fact is they'd have difficulty arguing a tainting case in court if, at the very least, a developer can argue a two week seperation occured between them seeing Sun's Java code, and them developing the supposedly infringing code. And, yes, there are legal mechanisms to ensure that if a company says something means something, someone who interprets it the obvious way doesn't get sued if the company then claims it doesn't.

      --
      You are not alone. This is not normal. None of this is normal.
    12. Re:Why Should Sun Do This? by Ash-Fox · · Score: 1

      > the problem, exactly, is that SUN only implements its JDK on the platforms it judges as "interesting enough".

      The funny thing is, Sun doesn't see MacOSX as interesting.

      --
      Change is certain; progress is not obligatory.
    13. Re:Why Should Sun Do This? by Ash-Fox · · Score: 1

      > I don't have the Sun JDK on my Fedora system by default because of the Sun license.

      I have it on my copy of Mandriva.

      --
      Change is certain; progress is not obligatory.
    14. Re:Why Should Sun Do This? by Anonymous Coward · · Score: 0

      You seem to forget that IBM has developed both and independent JVM and a cleanroom class library implementation. Yes, IBM does license Sun's Java class libraries but it also has it's own implementation so your comment doesn't make any sense.

      Plus, if you look at who's donated code to Apache Harmony you'll see that IBM has given most of the class library code.

      Hope that clears some things up.

  31. I'd like to see IBM or Sun's JDK shipped w/ Linux by Anonymous Coward · · Score: 0
    I understand the ideology. I even appreciate it and I totally respect kaffe and gjc but if you're really doing java and shipping it, you're using one of those 2 JDKs (most likely)


    They are much better than the competition. Java with those JDKs is compelling, java with Kaffe, isn't. I also think using java like technologies to make more complex apps, more reliable apps, safer apps is key to furthering the adoption of linux.


    Sun, opensource your JVM and make the redistribution license more liberal.

  32. Many languages run on the Java VM by WebMink · · Score: 1

    As it happens there are many projects (200+) to make a variety of languages run on the various implementations of the Java VM. Even Sun supports Jython and Groovy in addition to the Java language. Turns out this was another idea Microsoft copied.

  33. Open source License model. by bestadvocate · · Score: 1

    Wouldn't it be great if Sun says OK lets open source under an almost exact copy of the GPL but list three companies that will not be able to redistribute the code without expressed written permission of Sun. I don't really even think it would violate the spirit of the GPL, and the community low-to-no-profit organizations would be able to dig their fingers into the technology, many of whom are the type to contribute code for that reason.

    I know its not going to happen, but wouldn't it be nice?

    --
    my sig
    1. Re:Open source License model. by despisethesun · · Score: 1

      Actually, that violates the spirit of the GPL in a HUGE way. A big part of both the FSF definition of "free" and the OSI definition of "open" is that the license must be non-discriminatory. Your idea violates that and really does very little to improve upon the current situation, where the Java source is accessible by all and certain non-profit organisations have the freedom to port and redistribute binaries, provided they get Sun's permission beforehand. The FreeBSD project is one such non-profit.

      --
      This poo is cold.
    2. Re:Open source License model. by Anonymous Coward · · Score: 0

      No. That change would make the license incompatible with the GPL, so no open source projects using the GPL would dare touch the code at all.

  34. Yes, sure by Piroca · · Score: 1, Interesting


    This same exact rumor has been spread several times before. And it always ends up with the same thing: it's a basic part of Sun's strategy to keep full control over Java, therefore it won't be open sourced. Now stop daydreaming.

  35. As a highschool student, I feel used. by tapo · · Score: 1

    I'm about to take the AP Computer Science exam in oh... 7 hours (I should sleep). Now the thing is, I'm a terrible programmer and took this to learn. And Collegeboard regulations have made Java the language over C++ since 2002.

    I've never, ever learned a language aside from Java, and I'll probably program everything I make in Java, simply out of familiarity. Undoubtedly, many of my fellow CS AP students taking the exam tomorrow will probably end up doing the same.

    Anywho, back to the point of this post. It seems to me that Sun pretty much owns the upcoming generation of programmers at this point. Why, oh why would they want to open-source it - when they see this gravy train slowly making its way down the track?

    --
    "Joy is contagious," he said, peering into the microscope.
    1. Re:As a highschool student, I feel used. by Anonymous Coward · · Score: 0

      When I started programming I used Basic. I moved to C, to C++, to Java. Sprinkled in there is some bash, perl, tcl, python, and sundry other languages.

      Thing is, as you learn more languages the new ones are that much easier. Languages are all the same. The difference is syntactic sugar and learning what libraries are available.

      If you were "used" for java you would be just as used for any other language. If it was "open source" then you would be "used" by the open source lobby.

      A professional programmer should continually adapt and change and learn new things, otherwise they will be left behind.

      For hobby programming java is just as good as any other language, and you are not funneling money into Sun's coffers by using it (or IBMs for eclipse).

    2. Re:As a highschool student, I feel used. by Zadaz · · Score: 1
      Point 1) You're in high school. Sorry. It happens to the best of us, but nothing you learn there is appropriate for the real world.

      Point 2) Virtually all schools are out of date. When I was in university I was taught Pascal, COBOL, FORTRAN, and Motorola assembly even though C was the prevailing language in the real world. (I had to start a student organization where we taught ourselves C).

      Point 3) There are plenty of Java jobs out there and will still be when you get out in the real world.

      Point 4) No programmer worth their weight knows only one language. In the past 15 years I've been paid to program in 14 different languages.

      Pay attention to the "Java is just a tool" posts around this thread. There be some wisdom to take forward. The license is not what is saving or hurting Java (98% of open source projects are crap. Jump on a random like at SourceForge and look) It's that Java never lived up to its initial promises and has been crippled by trying to hit a moving target ever since. It still has good uses, but Sun doesn't know what they are.

    3. Re:As a highschool student, I feel used. by gbobeck · · Score: 1
      As a preface, I am a hard core Computer Science student at Loyola University Chicago. I just finished my bs, and am starting my masters. I graduated high school in 2001, and took AP computer science, but not the AP cs. exam. I am also the acting president of my university's ACM chapter. The following is my opinion, so take it for what it is worth...

      I'm a terrible programmer and took this to learn.


      Thats ok. It takes years to become a "good" programmer. If anyone tells you to "read this book and do all of the examples... you'll be an expert in no time", spray them (read: the wanker) with mace. Seriously.

      In my opinion, play with Python (its easy to learn and also free) for awhile and then give Java another chance. I found that programming in Python helped me to become a better programmer and learn how to think in code. This made java and some other languages easier to work with.

      And Collegeboard regulations have made Java the language over C++ since 2002


      And for half-way good reasons, IMHO. Many universities do not teach C++ or Pascal as the primary language for most Comp. Sci. departments anymore. Also, C++ is not exactly standardized (read: if you ever had to compile C++ code on Borland, Visual Studio, and GCC... the same code may not always work across the compilers without some tweaking. Throw in multi-platforms too, and this problem is more visable). Finally, Visual Studio or the Borland C++ compiler cost $$ and are limited to certian platforms. Java is free (as well as a number of programming environments) and is mostly multi-platform.

      I've never, ever learned a language aside from Java, and I'll probably program everything I make in Java, simply out of familiarity. Undoubtedly, many of my fellow CS AP students taking the exam tomorrow will probably end up doing the same.


      Not necessarily so. When I was in high school and took AP computer science, I thought my life was going to be C++ (I was class of '01). I soon found out that my college career would include java, python, xml, c, c++, basic, assembly...

      Good Comp. Science departments do not lock down to one language. To do so is a best foolish, and at worse the cause of un-hireable students.

      It seems to me that Sun pretty much owns the upcoming generation of programmers at this point.


      I disagree. New programmers are being taught Java because it is very similar to other established and popular language. If you can program java, learning C#, C++, C, some of the .net languages... is relatively simple because they all are related.

      Why, oh why would they want to open-source it


      It is Sun's language, they'll do what they want to. For my work, I couldn't care less. I use the Blackdown JDK for my limited java work.
      --
      Navicula hydraulica plena anguilarum est. Omnes castelli tuus nostri sunt. Ed elli avea del cul fatto trombetta.
    4. Re:As a highschool student, I feel used. by Ash-Fox · · Score: 1

      I know some universities still teach Pascal and Visual Basic 6 only.

      --
      Change is certain; progress is not obligatory.
  36. Running PHP on the JVM by Dlugar · · Score: 1

    While I agree that open-sourcing Java won't be a magical solution that will somehow improve the codebase and allow people to run all sorts of languages to run on the JVM ... there is in my opinion a good reason to get other languages to run on the JVM--to compete with .NET. Right now, .NET devotees don't have to use C# to get .NET code, they can use a scripting language instead. Having a scripting language (like PHP) that people can run on the same VM as Java would be a great boon to both people who use the scripting language as well as to Java's popularity in general.

    Dlugar

    --
    Computer Go: Writing Software to Play the Ancient Game of Go
    1. Re:Running PHP on the JVM by rjshields · · Score: 1
      Having a scripting language (like PHP) that people can run on the same VM as Java would be a great boon to both people who use the scripting language as well as to Java's popularity in general.
      How about Jython?
      --
      In this world nothing is certain but death, taxes and flawed car analogies.
  37. eh? by oSand · · Score: 1

    Javascript, python, scheme all run on my JVM And these ones: http://www.robert-tolksdorf.de/vmlanguages.html

  38. "Sun should endorse PHP" by oSand · · Score: 5, Funny

    Yeah, because what the world needs is more php.

  39. of course they will... by malraid · · Score: 1

    And they'll ditch the Java language and only support PHP in the JVM of Java 6. Of course, since MS follows closely the development of Java to chart their own roadmap, will revert to basic BASIC (the one with out "objects" from the MS-DOS days) as the only language of .Net for version 3 just to stay one step ahead of Sun. Meanwhile the rest of OSS languages will converge to a single language running on Parrot. Eventually (about 10 years down the road), OSS historians will realize that they have rediscovered the holy grail of languages: FORTRAN.

    Shortly after, the whole universe will crash on one huge dive by zero exception.

    Thank you, thank you, I'll be here all week with more forecasts...

    --
    please excuse my apathy
  40. Overlords by xbmodder · · Score: 1

    I for one welcome our Java/PHP/Python overlords! I would really love JAVA+PYTHON, thats like crack for a programmer.

    1. Re:Overlords by Anonymous Coward · · Score: 0

      FYI: Java + Python already exist. It's called JYTHON! Do some research before you post man....

    2. Re:Overlords by WebMink · · Score: 3, Informative

      As the two ACs who have been modded out of view said, that particular drug already exists - Jython - and is already supported in Java IDEs like NetBeans (via Coyote) and Eclipse. It's been interesting to see all the old urban myths about the Java platform being slow, bloated, single language and so on doing the rounds again though, I'd almost forgotten about them...

  41. who owns it? by Anonymous Coward · · Score: 0

    Since the community owns (holds copyright) on gcj/classpath/kaffee/etc, I'd prefer those even if Sun frees Java (yeah, right!).

  42. End the Evil? by egarland · · Score: 1

    This might be good though because people would get under the hood and decide the whole thing is just garbage and we should just compile java apps to Parrot instead.

    All languages that aren't built on parrot slow it's development and are therefor evil.

    --
    set softtabstop=4 shiftwidth=4 expandtab nocp worlddomination
    1. Re:End the Evil? by Anonymous Coward · · Score: 0

      Feh. I've been waiting for years for Parrot to become something more than a toy. It's gone through many interations, and it's still not ready for prime time usage.

      I've got a particular interest in this sort of thing: I've got a Basic interpreter that I've written, and it would be nice if I could target the Parrot virtual machine. But Parrot's not ready yet, and what languages have been targeted seem to be toys, deprecated, or terribly broken. Here's the status description of most of them:

      - Virtually nonexistant
      - Broken - probably due to recent deprecations.
      - Very simple arithmetic expressions are working. Some test failures
      - Broken with recent deprecation of push[simp]/pop[simp].
      - Not active.
      - Functioning, all samples working, lacks IO routines
      - broken due to recent deprecations
      - Unknown
      - Working, but not complete. Part of languages smoke testing.
      - Early stage - but all examples and test cases are working.
      - Simple examples are working. The current version is 0.2.2.
      - Development is stalled. Takers are welcome.
      - Broken, last update in 2002. Should probably be removed.
      - Under development; nowhere near anything yet
      - Under development; Broken in respect to recent (and upcoming) DEPRECATED items
      - This project has been abandoned. Any takers?
      - Broken. Last updated in 2002. Should probably be removed.
      - 25 out of 66 Z3 opcodes all or mostly done.

      To be fair, a handful of languages actually do work. But it's nowhere close to being what I'd need from a VM.

      I still keep my eye on the Perl development list, but I've pretty much given up hope.

    2. Re:End the Evil? by egarland · · Score: 1

      I've been waiting for years for Parrot to become something more than a toy.

      As have I which is why all these other short sighted, yet popular languages and their developments frustrate me. More people need to be focusing on a solution to this mess of incompatible poorly designed language platforms and start working towards a good solution. If not Parrot, then something else but I haven't heard any reason why Parrot wouldn't be the right direction.

      --
      set softtabstop=4 shiftwidth=4 expandtab nocp worlddomination
  43. Who cares? by jmorris42 · · Score: 2, Informative

    Really. At this point, who cares? If they did it at this late date it would speed up the process by a year or so at the cost of keeping Sun in the driver's seat. If they don't open their implementation GCJ will catch in a year or so and it will quickly become the reference implementation that everyone will track in server environments.

    Why do I say that? Because it is the one all non-Sun/Microsoft server environments (meaning Linux & *BSD) will be shipping. RedHat is already there. If you want a different Java you have to deal with the implications of having it co-exist with GCJ. Although they do use alternatives to make that managable, they ship the IBM JDK on their extras CD, not Sun's and the Sun packages almost certainly (haven't bothered to check a recent vintage) don't deal with that, their 'rpms' are brain damaged tarballs wrapped in a thin rpm wrapper.

    So it no longer matters what Sun does. Five years ago they could have turned around the fortunes of Java when it was under serious threats. Ten years ago OPening Java would have meant we wouldn't be dealing with .NET today. But that is history that could have been and wasn't, now Sun needs to just continue to quietly fade away.

    --
    Democrat delenda est
    1. Re:Who cares? by MaoTse · · Score: 1

      Man, what you're smoking ...

      I cannot see slightest chance gcj would replace sun/bea jrockit jdks in big companies.
      Managers would simply sack you for such ideas.

      I guess you've never been working in enterprise.

    2. Re:Who cares? by synthespian · · Score: 1

      RedHat is after Mono (Novell).
      RedHat wants to beat Sun, too.

      When (and if) they do that, they'll release all their GPLed code without Makefiles, like they did in the past. And charge per-seat licenses.

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    3. Re:Who cares? by julesh · · Score: 1

      If they don't open their implementation GCJ will catch in a year or so and it will quickly become the reference implementation that everyone will track in server environments.

      I doubt it. Classpath is a *long* way behind the current J2SE APIs. From the site: "GNU Classpath 1.0 will be fully compatible with the 1.1 and largely compliant with the 1.2 API specification and will have a stable API for interacting with virtual machines." That version hasn't been released yet. Admittedly, some work has already been done on the 1.3 and 1.4 APIs, although these are nowhere near complete. In the meantime, Sun is preparing to release 1.6. Classpath might catch up to where Sun is now in about 2 years' time. But Sun will have moved on again, and Classpath will be struggling again.

  44. Personally I don't want Java open-sourced by layer3switch · · Score: 5, Funny

    I fear, some smart ass Java programmer will fork off the Java OpenSource and give some crackpot name like "Javalava" or "JavaJ" or "JuJu Bean" or "Grande Capacino"

    I am scared...

    --
    "Don't let fools fool you. They are the clever ones."
    1. Re:Personally I don't want Java open-sourced by anirudhvr · · Score: 1

      yeah, and you can just imagine the confusion when you ask for an cappuccino: 'sir, did you want the beverage or the latest fork of java?'

    2. Re:Personally I don't want Java open-sourced by Anonymous Coward · · Score: 0

      Surely that should be KavaJava

  45. Java on PPC Linux by pauljlucas · · Score: 1
    It would be spiffy-keen to have a decent JVM on my PPC box running linux...
    If your PPC machine is a Mac, have you tried IBM's JVM?
    --
    If you reply, do so only to what I explicitly wrote. If I didn't write it, don't assume or infer it.
  46. Would some of you GPL zealots ... by Anonymous Coward · · Score: 0

    ... please direct your rage at the Mozilla Foundation. They don't use the GPL. They use a more restrictive license than OpenSolaris.

  47. jython... by Anonymous Coward · · Score: 0

    is already out there

  48. Java pays the rent by Anonymous Coward · · Score: 0

    or mortgage as the case may be. It has since 1996. Never been unemployed during this time either. And yes, I probably make more than you.

  49. Java != fat by EmbeddedJanitor · · Score: 1
    Fatness is not inherently part of Java, Java (well limited) runs on a lot of very small devices. Witness http://lejos.sourceforge.net/ -- Java running on a Lego Mindstorms, http://www.apms.com.au/tini/ -- running on an 8051-derrivative, http://www.javaworld.com/javaworld/jw-02-2000/jw-0 2-newsbriefs4.html -- running on a Scenix/Ubicom micro. AFAIK, none of these have anything to do with Sun.

    JVM gets bloaty once you start adding all the GUI stuff, though J2ME (used in a lot of phones etc) is a lot smaller.

    --
    Engineering is the art of compromise.
    1. Re:Java != fat by k8to · · Score: 1

      Yes, I'm aware there are java implementations that are reasonable, but in practice most java code encountered "in the wild" throws exceptions when it doesn't run on sun java, and sun java's memory behavior tends to swell to amazing size. This includes programs that have no gui.

      --
      -josh
    2. Re:Java != fat by kwark · · Score: 1

      Almostt everytime I have seen this memory behavior it was the programmers (me) fault, being to lazy to actually check for dangling references hoping the GC will do his job just the way he would like it to.

      Azureus is the other side of this, it has huge memory leaks somewhere in native code. Azureus and the JVM are happily thinking that they are within the maximum allowed memory limits when top (and the swapfile) show otherwise.

  50. Why The J2EE guy still doesn't get PHP by MichaelPenne · · Score: 1
    1. Re:Why The J2EE guy still doesn't get PHP by Anonymous Coward · · Score: 0

      Ha! Let's see you write eBay in PHP. Your shared-nothing principles will drag your database cluster to its knees. Even Y! uses C++ to do the heavy lifting and only uses PHP to template the pages. eBay can write their entire site on one technology that is far more productive than C++.

  51. Mustang changes this by ashpool7 · · Score: 5, Informative

    The SCSL is going away in Java 1.6 in favor of some much more liberal licenses. I'll be able to compile and use it on my production FreeBSD server at work and not worry about being "tainted" as a programmer.

    http://www.internetnews.com/dev-news/article.php/3 437481

  52. PHP and Java is oil and water by benjymouse · · Score: 5, Interesting

    PHP is probably one of the best (worst) examples of what a language would look like if it was designed and developed incrementally in an open source community. It's hack upon hack upon hack. It's backward compatibility breaking changes is just about every point(!) release. Register_globals enyone? Magic quotes? Ambivalence towards types/objects - "type hinting". Arguably (and freely admitted by the designers) PHP is *not* a well designed language. It's a pragmatic ooops kind of language whose main advantage is a large (albeit somewhat amateurish) user base, and free availability. Java on the other hand - if anything - tends to be over-engineered. Swing is actually more flexible than even .NET Windows Forms (which was designed later). It's easier to combine widgets, e.g. put textboxes inside tree nodes, etc. Swing may be a little slow, but nothing Java has ever had that "hackish" feel to it. It's always well thought out. Same thing could be said about JSF, JDO and certainly EJB. Sun has always taken great care of minimizing BC breaking changes. Sun has always taken pride in being a little on the conservative side, i.e. only introduce well understood technologies. This has been received well by the enterprise developer community. PHP is nowhere near that yet. There's still tons of BC breaking changes in store for PHP developers when PHP finally will get namespaces, unicode support etc. To put it simple, the primary virtues of Java is nowhere to be found in PHP. And frankly, if PHP is the way a language looks like when it's designed by an open source community, open sourcing Java would possibly destroy it. A model like eclipse where it's formally open sourced but in reality still maintained by a single, competent organization might work, though.

    --
    Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
    1. Re:PHP and Java is oil and water by iamdrscience · · Score: 1
      Java on the other hand - if anything - tends to be over-engineered.
      Exactly, Java is too smart for its own good, it's a nerd language and nobody likes nerds. Not even programming nerds. Java is like that guy in your CS class that dressed up as Brian Kernighan for halloween -- even the geeks think he's gone a little overboard.
    2. Re:PHP and Java is oil and water by dodobh · · Score: 3, Informative

      Better languages than the PHP disaster? Perl, Python, Ruby. They work _very_ well.

      --
      I can throw myself at the ground, and miss.
    3. Re:PHP and Java is oil and water by benjymouse · · Score: 1

      Agreed. Ruby would be a much better mach for Java. Ruby has a very clean, conceptually strong core. In this regard it has much in common with Java.

      --
      Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
    4. Re:PHP and Java is oil and water by smash · · Score: 1
      If you had a clue about the history of PHP, you would realise that it is and never was designed to be comparable to Java.

      Totally different original scope, and totally different current purpose.

      As stated, there's plenty of other open-source languages that *ARE* comparable.

      Original scope, from php.net:

      PHP/FI
      PHP succeeds an older product, named PHP/FI. PHP/FI was created by Rasmus Lerdorf in 1995, initially as a simple set of Perl scripts for tracking accesses to his online resume. He named this set of scripts 'Personal Home Page Tools'. As more functionality was required, Rasmus wrote a much larger C implementation, which was able to communicate with databases, and enabled users to develop simple dynamic Web applications. Rasmus chose to release the source code for PHP/FI for everybody to see, so that anybody can use it, as well as fix bugs in it and improve the code.

      smash.

      --
      I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
    5. Re:PHP and Java is oil and water by Anonymous Coward · · Score: 0
      PHP is *not* a well designed language. It's a pragmatic ooops kind of language whose main advantage is a large (albeit somewhat amateurish) user base, and free availability.

      That's misleading; PHP is well-designed, but it's designed to solve different problems than Java is. PHP is closer to a domain-specific language ("output HTML") that's become over-generalized.

      It's main advantage is the domain it's attached to ("output HTML").
    6. Re:PHP and Java is oil and water by Espectr0 · · Score: 1

      but nothing Java has ever had that "hackish" feel to it

      I take it you haven't seen the java 1.5 generics implementation. Generics, autoboxing, and lots of other features were just done for syntactic sugar, and are indeed hackish. Also, because java isn't a complete OOP language, some hacks were need to be done (particulary with strings and integers)

      People in academia that i know refuse to install 1.5 and still use 1.4.2

    7. Re:PHP and Java is oil and water by Anonymous Coward · · Score: 0

      PHP is probably one of the best (worst) examples of what a language would look like if it was designed and developed incrementally in an open source community.

      PHP is specifically what happens when a language is developed incrementally by evil rabid monkeys who hate you. It wasn't designed and it doesn't have anything to do with 'open source', it's just a classical software engineering disaster compounded by malice, stupidity, and outright insanity.

    8. Re:PHP and Java is oil and water by Anonymous Coward · · Score: 0

      Snore.

      Wake me up when Java Server Pages Just Works(TM). Until then it can't hold a candle to PHP.

    9. Re:PHP and Java is oil and water by synthespian · · Score: 1

      Come to think about it, just about all open source "community" languages are hack upon hack: Perl, PHP, Python and Ruby.

      The ones that aren't are designed by people with a foot in Academia or Industry (or a mix): Eiffel, Common Lisp, Scheme, SML, Haskell, Java, C, C#, C++, Smalltalk.

      Why people think Ps and Rs are better than the Cs the Js the Es and Ss is beyond my comprehension. Maybe because it takes a longer time to study some languages in the non P+R group. This is were syntax simplicity is a big win, IMHO: Eiffel, Scheme, and Python have it.

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    10. Re:PHP and Java is oil and water by Jesus_666 · · Score: 1

      People in academia that i know refuse to install 1.5 and still use 1.4.2

      Add to that many Java projects. Gentoo still flags the 1.5 JDK/JRE as experimental because many packages just aren't source-compatible (one of the problems I remember is with people using "enum" as a variable name, which is fine with 1.4 but breaks with 1.5, where "enum" is a keyword).

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
    11. Re:PHP and Java is oil and water by mikaelhg · · Score: 2, Informative

      Better languages than the PHP disaster? Perl, Python, Ruby. They work _very_ well.

      Of these languages, only Perl has working multithreading support. Python and Ruby both have hugely granular global interpreter locking, which makes multithreading impractical.

      What works well for a hobbyist doesn't necessary work well when professional adult programmers need to accomplish something reliably day in and day out.

    12. Re:PHP and Java is oil and water by Anonymous Coward · · Score: 0

      You honestly know people who refuse to install Java 5 just because they don't like (random language feature)? Wow, you know some pretty pigheaded people. You should explain to them that their existing code will run noticably faster on the 1.5 JRE, and they can still compile with -source to keep their particular feared-and-loathed 1.5 language feature from sneaking into their source tree.

    13. Re:PHP and Java is oil and water by Ash-Fox · · Score: 1

      I use the JDK 1.4.2 (Got 1.5 JRE though), the main reason is because I cannot make Java 1.1 compatible binaries with 1.5's JAVAC.

      Why would I do such a thing? I need my applications to work under MSJAVA, Kaffe if need be.

      --
      Change is certain; progress is not obligatory.
    14. Re:PHP and Java is oil and water by drew · · Score: 1

      Swing may be a little slow, but nothing Java has ever had that "hackish" feel to it.

      Nothing that runs on the server or command line perhaps. I have yet to use a GUI Java application that doesn't feel "hackish". The Zend IDE for PHP is ironically the closest to a decent GUI Java appliation I've ever used, and even that was only barely tolerable.

      --
      If I don't put anything here, will anyone recognize me anymore?
    15. Re:PHP and Java is oil and water by benjymouse · · Score: 1

      I know, a swing GUI is certainly not the best performing GUI. However, with the "hackish" feel I was referring to the developer experience. From a developer perspective Swing is actually quite well engineered. PHP is not. PHP came to be the way it is by accident.

      As such Java and PHP come from quite different cultural backgrounds. What I'm saying is that I have a very hard time imagining Java and PHP as a happy couple.

      --
      Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
    16. Re:PHP and Java is oil and water by Sithgunner · · Score: 1

      >open sourcing Java would possibly destroy it

      You may be mistaking or not, but open sourcing a product doesn't mean that Sun is giving away the control of the software to random bunch of people around the world. Open sourcing just gives people to give a look at it, maybe make a few patches and submit those. Even if Sun opens it up, it's up to the Sun to take the patch or not, unless they take that pride you said about Java off from it themselves.

      Instead, opening it would just give Sun a good mailing list with patches submited which they don't bother to write or have no time to write but might come in handy to incorporate.

  53. How to avoid forks of JAVA by jonwil · · Score: 1, Interesting

    Release it under GPL. This way, no-one can "pull a microsoft" and create incompatible forks because whatever changes they make can be brought back into the main tree.

    Secondly, make a testsuite available to use for free (but only when developing against the GPL version of the VM) so people can make sure their VMs are compatible.

    Thirdly, if you are a company that wants to use the JVM embedded in your product and want a closed source licence (either to ship the JVM as is or to modify it), you would be able to get one from sun (just like it is now)

    Forthly, there would be rules governing the use of the JAVA trademark.

    So basicly, forks would be prevented by controling the trademark, having a solid testsuite available so people can make sure their VM is still 100% compatible and that they didnt make any changes that accidently broke things and by encouraging people to submit changes back to the main tree.

    Plus, just look at other open source projects. There are a few people hacking on the Mozilla codebase and releasing their own stuff but most people just follow what mozilla.org puts out (and/or tries to get their changes into official mozilla.org tree somewhere). Most GCC development (with the exception of Apple OSX stuff and a few platforms like MingW which (for whatever reason) seem to end up second class citicens) is done on mainline. Same with pretty much all GNU projects.
    Along with WINE and a number of others.

    The only time I have seen forks is the X fork where people didnt like the way xfree86 was being run and created x.org. These days most people have moved to x.org.

    The licence and releases should cover all 3 flavors of java, J2EE, J2SE and J2ME.

    1. Re:How to avoid forks of JAVA by Anonymous Coward · · Score: 0

      But how many forks of Linux OS out there? Are they all compatible? How do you deal with the virulent effect of GPL? Many people want to contribute, but not all of their software. GPL itself is interpreted differently by different people. I know it's a bit off topic, but this is the central of the issue (whether Sun's license is "opened" enough). Just use MySQL in my product would infringe it if my product is not GPL, or not use another DB. Many other products labeled as GPL, but does not have this type of requirement. GPL takes developers freedom away (please consider all developers, not just GPL activists). For users, its not that great either. Most users don't know how to fix bug. Hiring someone to fix it is more a hassle than just buy MS OS (this is why M$ still makes tons of $$$, people just accept low quality for convenience and ignorant). Most of the great Linux OS are sponsored, developed by, sell by a company. Just look at Red Hat, Mandriva, Suse. This proves that open source need a company to get it going well. This also shows the other way that Sun can make $$$ out of it. But why force a company to do business a certain way (sound like communist/facist to me). Being opened to GPL also means being closed to many other open sourced license. With the way it is, Sun at least can grant any license platform to use Java. Once it's own by million undocumented contributor, no one can grant anything. This is one of the reasons I oppose GPL the most.

    2. Re:How to avoid forks of JAVA by jonwil · · Score: 1

      Do what is done for OpenOffice.org/StarOffice.
      In that case, I believe, SUN has copyright assignments over the code and owns the copyright (I think) and can therefore release StarOffice as closed source.

    3. Re:How to avoid forks of JAVA by synthespian · · Score: 1

      Release it under GPL.

      The Java libraries under the GPL? Are you crazy?
      Clearly, you live in your parent's basement.

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    4. Re:How to avoid forks of JAVA by Anonymous Coward · · Score: 0

      The problem is that when a M$ or IBM fork it (like IBM does with the workspace, or whatever that is called), they can change thing in the incompatible way, and programs no longer work on all "Java" platforms. People will say that using certification for this. It's not easy, and takes years of layers and $$$ to get this to be fixed. Some company just don't use the name Java and muscle their way into the market. With OOo, IBM workspace and Sun's StarOffice share a same doc format. The doc format is much simpler than Java platform. It does not evolve much (the docs format), while Java and Java API evolves everyday. There's a huge difference here.

  54. PERL, Python, PHP. by xiphoris · · Score: 1

    Pithily stated.

  55. Amazon is not LAMP by XaXXon · · Score: 4, Informative

    Yared has long called for Sun to open Java, which, he said, is "great on the back end, but LAMP is great on the Web tier, as Google, Amazon, Yahoo, Flickr, MySpace and Friendster have shown.

    Amazon is not LAMP.

    1. Re:Amazon is not LAMP by sr180 · · Score: 1

      Niether is MySpace, which runs on Cold Fusion.

      --
      In Soviet Russia the insensitive clod is YOU!
    2. Re:Amazon is not LAMP by iamdrscience · · Score: 5, Interesting
      Amazon is not LAMP.
      Quite right, they prefer COAL -- C, Oracle, Apache, Linux.
    3. Re:Amazon is not LAMP by Anonymous Coward · · Score: 0

      Nor is Google -- GMail, Google Ads, and Orkut are Java while search uses a lot of C/C++ with some scripting to combine and template the output. The new darling, Google Calendar, is also likely Java because the printable calendars seem to be created by iText.

    4. Re:Amazon is not LAMP by iamdrscience · · Score: 1

      While the grandparent post's list of sites was full of shit, Google does in fact use LAMP for some things. I've never heard of the P standing for PHP in anything they've done though, only Python. You're right though, they obviously don't use one approach and I think that's a good thing.

    5. Re:Amazon is not LAMP by XaXXon · · Score: 4, Funny

      Wow, that is remarkably accurate *AND* has a nice acronym.

      I'm very impressed.

      Next time there's an outage, we'll say we ran out of COAL :)

    6. Re:Amazon is not LAMP by Anonymous Coward · · Score: 0

      Neither is Google, or MySpace. What is this guy talking about?

    7. Re:Amazon is not LAMP by Kethinov · · Score: 1

      The Amazon people wrote their webpage serverside stuff in C? That's hardcore.

      --
      You're right, I wouldn't steal a car. But if it were possible, I sure as hell would download one!
    8. Re:Amazon is not LAMP by alanlewis0 · · Score: 2, Informative

      MySpace is not LAMP either - they run a Microsoft stack and rely heavily on SQL Server. They spoke at the Microsoft MIX conference and were very complimentary of Microsoft. Check your facts, dude.

    9. Re:Amazon is not LAMP by vinnie_26 · · Score: 1

      Amazon is not LAMP

      Do you know what Amazon uses? I hear they use HTML::Mason, is that true?

      By the way, how do you reply to some one and have their posts get quoted in yours? Is there some sort of button I've missed or do you just have to keep typing in these tags?

    10. Re:Amazon is not LAMP by imsabbel · · Score: 1

      Well,it seems to work.

      I have yet to see an amazon downtime, and the complexity of the store application is just staggering...

      --
      HI O WISE PRINCE. WHT TOOK U SO DAM LONG?
    11. Re:Amazon is not LAMP by Rovaani · · Score: 1

      Until recently I had JOBS job: Java, Oracle, Bea, Solaris

      --
      Karma: Good! Napster: Baad!
  56. Will it make the competion less desirable? by IsThisBl**dyNameUniq · · Score: 4, Insightful

    Two major development platforms are .Net and Java. One is fairly Open Standard but not open source - and gets demands for Open Source. The other is not even open standard yet people accept this. Maybe the real issue is people can imagine a world where Java is totally open but don't ever expect .Net to be so don't bother discussing it (The wonderful Mono efforts aside)

    1. Re:Will it make the competion less desirable? by Anonymous Coward · · Score: 0

      Maybe the real issue is people can imagine a world where Java is totally open but don't ever expect .Net to be so don't bother discussing it (The wonderful Mono efforts aside)

      duh...

    2. Re:Will it make the competion less desirable? by popeyethesailor · · Score: 2, Informative
      don't ever expect .NET to be so don't bother discussing it(The wonderful Mono efforts aside)

      That's sad really, I wonder on what standards those "wonderful Mono efforts" are based on ? Yeah. There'll never be a open standard for .NET, never bother about open source implementations.

    3. Re:Will it make the competion less desirable? by alext · · Score: 1

      Yawn. For those not under the influence of Miguel's Kool-Aid, the reference above clearly refers to C Sharp and CLI only, and does not cover the vast bulk of the Dotnet API.

      Guess it must be over 3 years now that you guys have been being pulled up for this one on /., but I guess there will always be enough new stooges to make it worthwhile huh?

    4. Re:Will it make the competion less desirable? by popeyethesailor · · Score: 1

      The standard definitely is constrained to C# and CLI, but it's more than sufficient as a base platform. Standards do not necessarily have to encompass every single piece of functionality; for example, consider POSIX. It definitely does not include a lot of things, but still was a good step towards writing cross-platform code targeting various OS.

      I agree that standardizing some other elements such as Forms etc may be beneficial; however, let's not discount the massive infrastructure the CLR and C# language adds to the development process.

    5. Re:Will it make the competion less desirable? by alext · · Score: 1

      If the standard is "definitely constrained" to C Sharp and CLI, why did you try to claim otherwise?

      Why is it necessary to repeatedly correct Mono advocates on this point?

      Surely people can decide for themselves whether a language and a VM add up to "massive infrastructure" or not?

    6. Re:Will it make the competion less desirable? by popeyethesailor · · Score: 1

      I have not tried to claim otherwise - the OP had indicated that there was no sign of any standardization in the .NET framework; I've merely pointed out that the core services such as the CLI & C# are standardized.

      I am doing no advocacy for Mono; I've just made a factual observation that some portions of the .NET framework are standardized. I work with the Framework everyday, and I can appreciate the size and effort involved in creating the CLI & C#. As you've said, others can decide for themselves if this is substantial or not ;)

  57. Doubtful by Venim · · Score: 0

    Short Answer: No
    Long Answer: Not happening. They dont want to lose control of something like this. It all comes down to $$$ and i doubt Sun sells a lot of hardware and solaris products now of days.

  58. They should not open source it. by Anonymous Coward · · Score: 3, Insightful

    I am much happier with Sun's Java than most open source projects out there. It's very high quality. I know that I may offend some people, but I think it's higher quality than Linux (as an OS, not kernel). It's my opinion though. Sun managed to keep it standard is admirable. I think Sun also deserve to make money/own the property it created. Why not develop open source version of it instead of asking Sun to open source it? One answer I think is that Sun does not have enough resource to fix bug or bring out features quicker for something as large as Java. This is a good argument. I think it could be addressed differently than Open sourcing it. For example, manage the development better. Provide better incentive for users to submit bug fixes. Promote Java support service so that critical bugs a company needs to be fixed is fixed quicker (it's there, but maynot be promoted enough). I develop Java enough to know that it's very hard to have a perfect tool to test Java standard. For example, there's no clear spec for Gridbaglayout. What you see isn't enough to implement an exact replacement for what Java has. This is just a simple example to show that stardard is hard to make, hard to be changed quickly.

    This brings another point about Java standard. I remember JSF has many bugs that it tooks months to years to be fixed because the standard was broken. I think Sun needs to be much quicker than now to address these issue. These big problem should be fixed in a couple of weeks, or couple of months (2). Most people don't wait for a technology for a year or two to adopt it. They use alternative tech. This is usually a one way street and Sun will loose those customers.

    1. Re:They should not open source it. by Ash-Fox · · Score: 1

      > Why not develop open source version of it instead of asking Sun to open source it?

      There are a few opensource java intepreters out there.

      > I think Sun needs to be much quicker than now to address these issue.

      I think Apple needs to address their crappy Java framework. I have so many issues with making UI elements under Sun Java, which work properly under MacOSX's Java framework implementation.

      > Most people don't wait for a technology for a year or two to adopt it. They use alternative tech. This is usually a one way street and Sun will loose those customers.

      This is why I prefer Mono, it works the same on Windows, Linux, MacOSX etc. Java doesn't, because there are entirely different implementations for different operating systems (Yes, I know Sun JAVA is availible for Linux).

      --
      Change is certain; progress is not obligatory.
  59. Re:If they do, it will all depend upon the license by dubl-u · · Score: 2, Insightful

    What changes and how would depend upon which license was chosen.

    And equally on what community process is chosen.

    I regularly look at the source for some Java library class and cover my face in horror. I'm sure I'd submit a patch a week just in code cleanup and adding unit tests -- if I thought they would ever accept anything. An open license is only the start.

  60. As far as helping it... by RickBauls · · Score: 1

    Maybe it will make it run faster. Anything java automatically drags my systems down bad.

  61. Will Sun Open Source Java? by Anonymous Coward · · Score: 0

    NO! But they might Open-Source it.

  62. How to Break Java by Stormy+Dragon · · Score: 1

    It seems to me that one of the main benefits of Java, machine independent binary files, would be destroyed by Open Source. Once each VM can have it's own set of covered features, add-ons, etc. you no longer can be sure of that, and end up with a situation where the source has to be recompiled on each machine it's used on.

    1. Re:How to Break Java by lindi · · Score: 1

      Sometimes I wonder if this is a good or bad thing. I've hit many problems with people who put java bytecode binaries in CVS. Nobody seems to remember how those were built 3 years ago :) If binaries are machine dependent then naturally they get rebuilt more often.

    2. Re:How to Break Java by Stormy+Dragon · · Score: 1

      That's just as easily fixed by being sure to check in the code with the binaries. On the other hand, once the binaries become machine dependent, you lose the ability to use Java for deployment of network based applications. The user has to install a VM specific client application.

  63. One word for you ... by Anonymous Coward · · Score: 0

    Clueless

  64. Disagree by subclass · · Score: 1

    Java should not be Open Source. The problem with an open source compiler is there will be multple versions of the compiler, and some of them will be poorly rewriten. So, where my code may work on my compiler, I cannot be assured that it will work using everyone elses compiler.

    1. Re:Disagree by smash · · Score: 1
      And this is different from the current situation, how?

      Ask anyone who's had to deal with Java and it's many different incompatible versions (from sun, no less)...

      smash.

      --
      I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
    2. Re:Disagree by Anonymous Coward · · Score: 0

      > Ask anyone who's had to deal with Java and it's
      > many different incompatible versions (from sun, no less)...

      Can you post some examples?
      Where you don't use sun. package?

    3. Re:Disagree by RPoet · · Score: 1

      The problem with an open source compiler is there will be multple versions of the compiler, and some of them will be poorly rewriten. So, where my code may work on my compiler, I cannot be assured that it will work using everyone elses compiler.

      Yeah, like that GCC garbage. You never know what you get, it's a web of incompatibilities!

      --
      "Oppression and harassment is a small price to pay to live in the land of the free." -- Montgomery Burns.
  65. Kava ? by Anonymous Coward · · Score: 0

    Never underestimate the power of KDE

  66. You don't know what you're talking about by ag0ny · · Score: 1

    Luckily, you there are workarounds, such as using Eclipse instead of swing and a different language to avoid checked exceptions.

    Using Eclipse instead of Swing? They're different things. Eclipse is a development environment and Swing is a windowing library. Also, please explain how using Eclipse instead of $OTHEREDITOR would change the way the language handles exceptions.

    1. Re:You don't know what you're talking about by jawtheshark · · Score: 1
      He is just confusing two technologies. He is not thinking of Eclipse as the IDE, but he's thinking of the toolkit that handles Eclipes GUI. That toolkit is called SWT and is a really good alternative to Swing.

      I don't think he meant to say that Eclipse helps with the exception "problem" (which really isn't a big problem: good Java programs use exceptions only when necessary). For that he referred to other programming languages.

      --
      Ahhh...the great dumpster continuum. Many a free computer will be found there. -- sowth (748135)
  67. What Java needs by Godji · · Score: 2, Interesting

    In decreasing order of importance:

    1) A free software license (GPL?) to allow for fast, active development, quick fixes of current problems, and license purity. Plus, imagine the boost if all those talented GCJ people put their efforts into the already rich Sun codebase!

    2) Constant references! Please! Java's encapsulation is about as secure as Internet Explorer. A harmless getter method for a private member variable allows you to replace that variable with anything of your choice, because you effectively get a pointer to the member. The only current solution is to copy everything in the getter, which is unacceptably awkward and slow. So much for design by contract.

    3) Sane memory requirements. Right now coding an inherently memory-intensive app in Java is very very difficult. I tried it once, and had to rewrite in C++ to get anywhere.

    1. Re:What Java needs by hutchike · · Score: 1

      "A harmless getter method for a private member variable allows you to replace that variable with anything of your choice" - can you explain more about this? I've never experienced it.

      --
      Zen tips: Pay attention. Don't take it personally. Believe nothing.
    2. Re:What Java needs by Godji · · Score: 1
      Well, the ecode tag is less then perfect, but that's the best I can do:

      public class Wtf {
      private ArrayList<String> untouchable;
      public Wtf () {
      untouchable = new ArrayList<String> ();
      untouchable.add ("Can't touch this");
      }
      public String getUntouchable () {
      return untouchable;
      }
      }


      Simple, right? Well, let's have fun:

      public static void main (String[] arg) {
      Wtf myWtf = new Wtf ();
      String ptr = myWtf.getUntouchable ();
      ptr.clear ();
      ptr.add ("0wn3d!");
      }


      The list has now been modified. The getter assignes ptr (essentially a pointer) to point to the list itself, and thus I can do anything to the "private" list. The only current way to prevent this is to modify the getter to make a copy of that string:

      public String getUntouchable () {
      return new String (untouchable);
      }


      This works well for small Strings, but is brutally inefficient for large complex classes. Besides, you must implement a copy constructor, which is not necessarily trivial, and finally, you have to remember to do this every time.

      In C++, you would return a constant reference to untouchable instead. Then the clone() and add() calls would fail because they are not const methods, while something like get() would work because it is declared as const and by definition does no modify any members of its instance. Simple and efficient.
    3. Re:What Java needs by Godji · · Score: 1

      Ah, stupid me, in the last paragraph by "clone()" I obviously meant "clear()", sorry about that.

    4. Re:What Java needs by scharman · · Score: 1

      Basically, c++ supports a concept of 'const' in both formal parameters and member functions.

      A const formal parameter spec is like this:

      public void foo(const Object o){...}

      It means that if you invoke foo(an_object) you can guarantee that foo() will not do anything that will change your objects state. This complements the const method specification which is like this:

      class A{ ...
          public void doSomethingThatDoesntChangeState()const{ ...
          }
          public void doSomethingThatDoesChangeState(){ ...
          }
      }

      Here method doSomethingThatDoesntChangeState() tag itself with the const word, which means that the method call cannot change any of the objects state (internal data) within that method call. So, if you had a function like this:

      public void foo(const A readOnlyA, A readWriteA){
          readOnlyA.doSomethingThatDoesntChangeState(); // legal
          readOnlyA.doSomethingThatDoesChangeState(); // *ILLEGAL*
          readWriteA.doSomethingThatDoesChangeState(); // legal
          readWriteA.doSomethingThatDoesChangeState(); // legal
      }

      Then one of those calls would be illegal. The 'benefit' you get from this approach is that you don't have to worry about the state of your objects quite as much. In high assurance programming, this is a nice thing. It is arguable with java given a good IDE & debugger.

      (do a wikipedia search on "c++ const member function" for further info)

    5. Re:What Java needs by RPoet · · Score: 1

      If you want "constant references", write immutable classes; that's what they're for.

      --
      "Oppression and harassment is a small price to pay to live in the land of the free." -- Montgomery Burns.
    6. Re:What Java needs by Godji · · Score: 1

      Unless I'm misunderstanding something, immutable object solve the problem only in the case where you odn't need to modify an object after creation. But what about all those times when an object changes over time?

  68. Couldn't hurt!! by crhylove · · Score: 1

    After all, java in it's current inception I will NOT install on the machines I administer. Which is a shame, because I'm all for civil liberty, and freenet in particular. Why a network supposedly built on personal freedom would use a closed source programming language at all is beyond me, but that pile of dogshi.. I mean wonderful sun code.... couldn't possibly get WORSE by releasing it!

    Now if only GTA would play out of box in Ubuntu.....
    rhY

    --
    I hold very few opinions. I hold information based on observation and fact. If you wish to disagree, please use facts.
    1. Re:Couldn't hurt!! by RPoet · · Score: 1

      Freenet 0.7 (still in alpha) works on the free Java alternatives, though.

      --
      "Oppression and harassment is a small price to pay to live in the land of the free." -- Montgomery Burns.
  69. Environmental Variables by adamy · · Score: 1

    I think a great example of the value of open source is shown by what happened with Environmental variables. Sun made the unilateral decision to get rid of them because they were not supported on OS pre X. It took From versions 1.2 to 1.5 to finally get them put back in the system, even though there was always the -D work around, and the Mac has had them since X came out. With a community design, the more vocal majority would have forced the issue to come to a head time and time again until the feature just got left alone like it should have.

    Not a guarantee, mind you, but certainly a better approach than what happened.

    Now can I get rid of all those Shell script wrappers?

    Adam

    --
    Open Source Identity Management: FreeIPA.org
  70. frameworks out the wazoo by Anonymous Coward · · Score: 1, Funny

    Java does not scale down well to smaller webapps, and even the smallest thing seems to end up with a half-dozen third party frameworks.

    One of the funniest and truest things I've read on Slashdot, sorry to the author that I lost the attribution, was the observation that "Java programmers have a morbid fascination with complexity."

  71. No-Breathing's TOO HARD! by Anonymous Coward · · Score: 0

    "And since users need to jump through quite a few hoops to get Java installed (don't say "it's easy" - for most people anything beyond using their package manager is too high a hurdle), you can't assume it will be available on desktops in general."

    http://www.java.com/en/download/help/5000010300.xm l*

    Your "It's too hard" argument applies to Flash, and Adobe, amoung other popular plugins. Experience show's that open-sourcing wasn't needed, and that exaggerating the difficulty is a poor way of making a point.

    *The Linux installation in keeping with the nature of the platform is slightly more complex.

  72. MySpace runs on ASP.NET 2.0 and IIS 6 now by I'm+Don+Giovanni · · Score: 3, Informative
    Actually, MySpace switched from Cold Fusion to ASP.NET 2.0 and IIS 6.
    Here is a blog by a Microsoft ASP.NET dev describing the details (it's an interesting read):
    http://weblogs.asp.net/scottgu/archive/2006/03/25/ 441074.aspx

    Note that some parts of MySpace still use .cfm extensions, but those are mapped to ASP.NET as well:
    "Some parts of the site like Browse are all .aspx extensions. As Jeff mentioned above, other parts of the site still have a .cfm extension, some of which is mapped to BlueDragon.Net -- which is an ASP.NET IHttpHandler that parses and can run ColdFusion syntax (but which is still running on ASP.NET). The backend cache servers are also all ASP.NET based."


    And just to add more proof (since I know that most here will be skeptical ;-)), here's an entry to the above cited blog from MySpace developer "Chris":
    "Hi everyone,
    I work on the MySpace C# codebase...
    To clarify, we wrote a custom configuration section that maps "fuseaction" URL parameters to ASPX extensions so that we'd maintain link integrity. The only place we aren't doing this is 'Browse' and certain other new features. Meanwhile, as Scott said the parts of the site that are running in ColdFusion are essentially doing so in ASP.NET 2.0 (via BlueDragon).
    Thanks for the mention, Scott. It's been an exciting time putting this together and I can't imagine pulling this off on another platform.
    Chris"
    --
    -- "I never gave these stories much credence." - HAL 9000
  73. go ahead, make java obsolete forever by Fuzuli · · Score: 3, Interesting

    Really, i mean it. At the moment, it's hard to find good developers who can leverage the advantages of java. What advantages i'm talking about? Let me explain. I am managing a team of developers (senior & junior) developing a large piece of software. Basicly it's a j2ee app, but with a simple desing, avoiding entity beans, using hibernate etc..
    what we have done for all the project has been following the specs. we did not do any tricks for windows or any other os. We did not do any tricks for any app server. And now, our solution is able to work on three major os's that we have targeted in the beginning, without even recompiling. we really wrote once, and we're running wherever we need.
    Against the more productive avarage .net developer, the cost of a longer development schedule is a hard thing to defend againgst the management. Please don't start the usual, java is more productive if you know how to do this or that. We usually can't find guys good enough for that. If you can, then it's good for you. Generally our developers are not much experienced or skilled, and this is again related to our budget. We have a certain amount of money, and we are unable to hire the super developers that can use java in a very productive way.
    this is our reality, and under these circumstances, the only way we can win against the ms shops doing the same job, is to use our platform independence. we can come up with zero licence versions of our software for small customers, using linux, jboss and postgresql, and it just works. the eliminated licence cost gives us many advantages, and this is how we are going to win. Other than that, there are many problems in real life, like customers falling in love with .net windows forms, ms office integration requests etc. agains the advantages of .net, we have the huge advantage of depending on specs, and providing better cost alternatives.
    so, go ahead, make java open source, and starting from the one man utility developer to IBM, let everyone change anything since they believe it is a better method of doing x,y,z... So 3 years from now, working on the new major version, my software will no longer be easily portable to other configs. It will be possible, but it will cost me much more than today. That cost my friends, will make us go down in the not so long run.
    Having a technology based on strict rules, has it's own advantages. in case of java, i believe these advantages far outweight the cons, but that's just me. However, i don't think my argument will be nonsense for many enterprise development projects.

    1. Re:go ahead, make java obsolete forever by Iaughter · · Score: 1
      so, go ahead, make java open source, and starting from the one man utility developer to IBM, let everyone change anything since they believe it is a better method of doing x,y,z... So 3 years from now, working on the new major version, my software will no longer be easily portable to other configs. It will be possible, but it will cost me much more than today. That cost my friends, will make us go down in the not so long run.

      Having a technology based on strict rules, has it's own advantages. in case of java, i believe these advantages far outweight the cons, but that's just me. However, i don't think my argument will be nonsense for many enterprise development projects.

      This is FUD. The F/OSS community is as interested in producing cross-platform code at least as much as SUN, probably moreso. Most of "Java" is just code libraries that target the standard (ie Sun's) JVM and the code libraries are where sun would see the most input from the community.

  74. Sun JVM for PPC (embedded) by NekoXP · · Score: 1

    http://www.ppczone.org/news.php?id=271

    Sun already started the work on it! Plug plug, they used our hardware to do it. No graphics yet but it's a start.

  75. Re:If they do, it will all depend upon the license by babbling · · Score: 0

    Not just happier. If Sun were to GPL Java, it would be unstoppable.

  76. What ? Eclipse has no issues with languages at all by subStance · · Score: 2, Informative

    I run a dual English/Japanese Fedora AMD64 and x86 win32 system, and have never had any troubles with java and language input or display on any of them. Especially with Eclipse which I use probably 5-10 hours of every day. SCIM-Anthy is great, it very quickly learned and suggested the most commonly used kanji versions too, as windows does.

    I call bullshit - just because you don't know how to set up your machine properly doesn't mean java has language problems.

    --
    Servlet v2.4 container in a single 161KB jar file ? Try Winstone
  77. UM, MOD PARENT UP! by SickLittleMonkey · · Score: 1

    My post produced some good responses, but now I've got points I can't use. ;-)

    Well said. (Parent and parent's sibling.)
    SLM

    --
    main() {1;} // zen app
  78. Re:What ? Eclipse has no issues with languages at by JanneM · · Score: 3, Insightful

    I call bullshit - just because you don't know how to set up your machine properly doesn't mean java has language problems.

    Great for you; I never got it to work properly (Ubuntu and SCIM/Anthy). I first had to add fonts to some java-specific list to get it to show CJK at all. When I run the app with Swedish locale it refuses to let me input Japanese (it does not listen to the SCIM server).

    I'm sure I could get it working with enough effort - but after one frustrating evening I'm not going to bother. Java isn't alone out there; just about every Java app has good equivalents without the hassle (including the Kanji app I was trying to use). And I'm certainly not going to be using Java to develop anything knowing that potential users will have go through the same mess I do.

    I should not have to "set up my machine properly" - most users do not have the technical skills to do so. I should be able to select "java" in the package manager (or rather, select the app I'm actually interested in) and it should all work - but it doesn't.

    --
    Trust the Computer. The Computer is your friend.
  79. If you can't tell String from Collection by fender_rules · · Score: 1

    Well... if you can't tell java.lang.String from java.util.Collection, I think you'd better learn how to program in Java before trying to preach about 'security risk' to other people who might be a seasoned Java programmer.

    1. Re:If you can't tell String from Collection by Godji · · Score: 1

      I feel so humiliated, oh, dear Seasoned Java Programmer!

      Look, I wrote the whole example using String instead of ArrayList, until I realised that String has no method which modifies the object (but only methods that create new Strings instead). Then I changed String to ArrayList but forgot to change it in a few places. I'm not used to programming in a Slashdot textbox.

      Obviously String should be replaced with ArrayList everywhere. Not too difficult to figure out, is it?

      But then again, it's much easier and more fun to just laugh at others and their small mistakes, isn't it?

    2. Re:If you can't tell String from Collection by scharman · · Score: 1

      I think if you're a seasoned programmer (java or otherwise) you could tell the difference between a syntax error whilst writing his comment over a complete lack of understanding.

      Obviously his code was meant to be:

      public ArrayList getUntouchable(){
          return(untouchable);
      }

      and the safe version

      public ArrayList getUntouchable(){
          return(untouchable.clone());
      }

      The point he is getting across is that a caller could inadvertently alter the private data of a class, hence breaking (or at least weakening) the OO paradigm. Even in the 'safe' version above, if the ArrayList was not an immutable object, it would still be possible to change the contents of private class data through a clone()'d array. As the actual array objects could still be altered. (the clone only clones the arraylist - it's not a deep clone).

    3. Re:If you can't tell String from Collection by fender_rules · · Score: 1

      I didn't think he's argument is totally pointless though. But even if you could ignore various supposed syntax errors in his code, that particular case could be easily solved by using Collections.unmodifiableCollection or use Iterator as the return type. And I don't think cloning collections impose critical performance overhead in most cases - you don't generally want to retain very large number of objects in a collection anyway. I know there're other cases which might prove the validity of his original concern, but I guess most of the cases could be easily workarounded by careful design and most importantly, I doubt we should modify the language itself to address this specific issue.

  80. Why do I use PHP, not Java? by ajdlinux · · Score: 1

    Because PHP is released under a Free Software license and Java isn't. Java isn't even a free standard. If Sun releases Java under an FSF-approved and Debian-approved license, I will very happily learn it and write all my apps in Java instead. But until that happens, I will continue to not run a Java program, unless that program is Free Software in itself and runs under GCJ or Kaffe. If Sun releases Java under a Free Software license it will be the best example yet of a product that has started out proprietary and become Free Software. It will also increase Java's adoption among Free Software/Open Source users.

  81. Re:If they do, it will all depend upon the license by houghi · · Score: 5, Interesting

    That is the reason that with SUSE you can decide yourself wether or not you use it or not. e.g. for the upcoming 10.1 version the CD1-5 are pure OSS. There is an additional CD6 that will hold the non-OSS stuff, like Opera and Java.

    That way SUSE lies the choice with the user, not with the distribution. If the user still decides to use it (and many will) they still have all the advantages as they have with the different other packages that are included with SUSE, including security updates.

    --
    Don't fight for your country, if your country does not fight for you.
  82. Yeah and Duke Nukem Forever will run on it by Anonymous Coward · · Score: 1, Interesting
    There have been rumors and "talk" about Open Source Java from Sun for YEARS now, and the higher-ups keep on saying, "no we can't do it or there will be a fork."

    That's the reality. It's stupid, but it's the reality. What they don't seem to comprehend, no matter how obvious it may be, is that a fork in Java does NOT mean any changes to the JVM or java.* or javax.* or any other language changes. No! Forks have nothing to do with it!

    What does this mean? For example, let's say Java goes Open Source, and so OpenBSD wants to include it. They would need to modify it to work with OpenBSD. That does NOT mean changing that language. It means changing the system calls it uses, etc. Yeah that's a FORK but it does not impact compatibility at all. Same with the idea of setting up Qt native peers for Swing (something I would love to see). That would be a fork, but would not introduce any language or specification changes.

    So they need to stop their BSing about forks.

    I think there are some other reasons why they aren't open sourcing it:

    1. There may be patent issues. It may uses patent stuff that Sun can't really do much about.
    2. There probably are copyright issues. It certainly uses code from outside of Sun.
    3. It would take a heap of code auditing, legal hours and negotiating to sort out 1 and 2 above. Sun in its current state can't afford that.
    4. It could dash their J2ME JVM market, which may be one of the few revenue streams they get from Java.
    5. It could let one of their competitors, like BEA or Oracle, take the leadership on Java, or at least it could dethrone Sun from that position. Again Sun can't afford that.
    So that's a pretty strong case for a "no". The case for a "yes" is that if they do it, it will help Java become truly ubiquitous. But will that mean more money for Sun? I don't see the case for that.

    So as frustrating as it is, I just don't see the business case for open sourcing Java.

    In the meantime, the real Open Source Javas (and components) like GNU CLASSPATH, GCJ, Kaffe, JamVM, etc, etc are really getting quite impressive. The OS community has really gotten behind a full OS Java system. I am sure that by the end of this year, you'll be able to run a fully OS compiled Tomcat, for example.

    I have played around some with GCJ and it results in impressively fast executables. Faster than Sun Java. So maybe we shouldn't even care.

    --------------
    Carry a gun in California, legally

  83. Tags by icleprechauns · · Score: 1

    Haha, gotta love the tags for this article: yes and no. That'll really help categorize this article!

    --
    I'm a signature virus. Please copy me to your signature so I can replicate.
    1. Re:Tags by linvir · · Score: 1

      Actually it will. Yes/maybe/no tags are incredibly useful, in fact. Want to find out what Slashdotters believe in? Search for articles tagged "yes". For what they don't believe in, search for "no". And for things they don't agree on, search for "yes" and "no".

  84. And more importantly..... by leereyno · · Score: 1, Flamebait

    ....will I care?

    The older I get the more absurd all this becomes. Once upon a time I might have actually cared whether Sun put their version of the JDK out under an open source license. I might have cared whether Sun submitted the Java specification to an independent standards body. Those days have come and gone because I know that it doesn't matter. Sun, like all companies run by mere mortals with all our imperfections, suffers from that stultifying combination of myopia and paranoia that seems to define most every company past a certain age and beyond a certain size. Sun is not a monolithic entity. Rest assured that if the left hand were to free Java, the right hand would look for a way to return it to the cage. Java is what it is, and Sun is what it is. It isn't going to get any better so stop holding your breath.

    Lee

    --
    Muslim community leaders warn of backlash from tomorrow morning's terrorist attack.
  85. Re:If they do, it will all depend upon the license by FOSSguy · · Score: 3, Interesting
    > "Open Source" covers a LOT of licenses.

    Yes, you're right, it does cover a lot of licenses. In order to be allowed to use the trademarked term "Open Source" however, whatever license they choose must (a) comply with the Open Source Definition, and (b) be approved by the Open Source Initiative.

    Sure, not all Open Source licenses are the ducks guts to all people, but there's pretty much an assurance of no evil in there. Even microsoft knows that!

    --
    "Men will never be free until the last king is strangled with the entrails of the last priest." (Diderot)
  86. THEY WILL! by VincenzoRomano · · Score: 1

    You can bet Sun will open source Java!
    They are just waiting for Microsoft to open source Windows ... 3.11!

    --
    Maybe Computers will never be as intelligent as Humans.
    For sure they won't ever become so stupid. [VR-1988]
  87. My gwbasic is better.

    Open "foo.in" as #1

  88. Write OPnce Debug Everywhere by drfrog · · Score: 1

    Lets Face It,

    its promises of crossplatform ubiquity have yielded less than satisfactory results

    with all the various browser security work arounds and versioning conflicts its a wonder anyone has clung to this language for so long

    --
    back in the day we didnt have no old school
  89. How about PINE licence? by ajs318 · · Score: 1

    Sun could use a variant of the PINE licence. Insist that only unmodified, Sun-sanctioned binaries be distributed; but allow distribution of modified source code as long as (1) the eventual user is made aware that the source code is not the original, "official" Java implementation by Sun Microsystems and (2) the distribution of modified sources is not further restricted.

    This won't affect Linux and the BSDs much: every GNU/Linux and BSD installation includes GCC, so distro-specific patches will be made at source level and the Java interpreter will be compiled locally. And Microsoft won't be able to "embrace, extend and extinguish" Java unless they start bundling a C compiler with Windows {and even then, Sun will still be able to take back the Microsoft extensions -- Microsoft can't stop anyone else from distributing source code modified by Microsoft}. The likes of SuSE and Red Hat might well purchase special licences allowing them to distribute slightly-customised binary versions of Java under terms that Sun are happy with.

    Of course, Debian aren't even happy about the Pine licence {enforced distribution of source code isn't good enough for them, it seems -- but surely you can't get more Open Source than that?}; you have to get the Pine sources out of non-free. So some things won't change :)

    --
    Je fume. Tu fumes. Nous fûmes!
  90. No by Silkut · · Score: 1

    No they won't open sourcing Java, they told it recently.

  91. Out of the box on linux, whatever it takes by Laz10 · · Score: 1

    I don't care how open they make it.

    As it is now I can read all the source and submit bugfixes if.

    The only beef I have is that it can't be part of a default install in Ubuntu and many other linux distros.
    Fix that and I'll be happy.

    If it takes GPL, then go for it. If it can be achieved in other ways, fine. But fix it!

    1. Re:Out of the box on linux, whatever it takes by AigariusDebian · · Score: 1

      Acctually in one of the episodes of LUGRadio the top Open Source strategy guy from Sun stated that the main goal for Sun is to eventually make all their software products Open Source.

  92. PHP already runs great in Java by henrikba · · Score: 1

    At least in an application server: http://wiki.caucho.com/Quercus

    Quercus already runs large PHP applications like Drupal and MediaWiki unmodified.

  93. Re:If they do, it will all depend upon the license by Bastard+of+Subhumani · · Score: 5, Funny
    If Sun were to GPL Java, it would be unstoppable.
    Java programs already run for ever.
    --
    Only three things are certain; death, taxes, and apocryphal quotations - Ben Franklin.
  94. Re:What ? Eclipse has no issues with languages at by Anonymous Coward · · Score: 0

    Ditto here, but doing the same thing with Eclipse on Windows (Japanese OS, english Eclipse setup). Never had a problem with it. If anything, it's even better than linux (I'm not a big fan of the linux equivalent to the IME, I stick to English only on linux). Having a Japanese keyboard helps though, I wouldn't want to try it without all the extra keys (can never remember the names).

  95. Come on, Sun!!! by PenisLands · · Score: 1

    Open the source! Open the sources for the ability to give us the pow0r!!!!! And then we can run java applications on LINUX using FREE SOFTWARE. Whoooooooorgh!!!!

  96. Java is slow by bolan1 · · Score: 1

    People who complain that Java is slow, should be open-sourced, and so on have never seemed to had a clue.

  97. Your weird by SmallFurryCreature · · Score: 1
    He talks about the problems of deploying java on linux and the first link you give belongs to microsoft? Ewh.

    So yeah I can download it. And? He doesn't say it is hard to download. It is hard to deploy. Meaning download AND install AND configure AND get it running without problems etc etc.

    Your second point is so obviously written by a child I won't even comment.

    Just that memory ain't cheap. The whole java == memory hog is more related to the GUI java programs then server programs but that doesn't mean memory is cheap. It is in fact very very expensive. Not just in price per gigabyte but also because a program that need 2x the ram probabaly also expect the CPU to do a lot more reading and writing to that ram.

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

    1. Re:Your weird by aliquis · · Score: 1

      I linked to microsoft because it was the most weird or unexpected place to get it from.

  98. If they wanted to they should support Parrot by mattr · · Score: 1

    If they really wanted to run P languages on JVM they should just support the Parrot project and offer programmers and code to it. It will run Java and P languages (starting with Perl) if enough great programmers are interested in it. The last YAPC in Tokyo had Larry Wall saying "Now we're just waiting for Guido". Well I noted before there is a group of Java people making their own JVM somewhere and these kinds of people are needed for a strong interlanguage system that lets everyone use each other's objects and libraries. The point that wxwidgets and not Java is selected for cross-platform projects shows that Java may be doing great things but not exactly what people thought it would do. I'm not involved in Parrot but I can see that Sun's experience with the JIT JVM would be useful.

  99. Re:If they do, it will all depend upon the license by CountBrass · · Score: 2, Insightful
    I diagree. Java is far to bloated and complicated. I've been using it since it first came out and I balk at the vast array of libraries you need to use or choose between to get anything done. I feel really sorry for anyone coming to it for the first time.

    Personally I use Ruby (on Rails) these days for web development: convention over configuration is, imo, a much more important advance in the art than object-orientation was.

    --
    Bad analogies are like waxing a monkey with a rainbow.
  100. Wow, no updates. by MobileTatsu-NJG · · Score: 0, Troll

    Wow, there hasn't been an update in 7 hours. Taco must be testing the dupe-dumper!

    --

    "I like to lick butts!" by MobileTatsu-NJG (#32700246) (Score:5, Informative)

  101. Oh alright I will bite by SmallFurryCreature · · Score: 2, Interesting
    Where is the fat. Mmmm, well you bring us 1 tail of a contest. Lets assume it is real for a second and lets assume that the C/C++ team was competent.

    It don't sound like they were but still.

    Let me know point you to some of the most demanding applications in existence that push hardware to its limits.

    Yes, games.

    Now how many of the BIG titles that have your CPU and GPU groaning and gobble memory like it is candy are written in C/C++ vs Java?

    This is as fair as your story for showing wich is the superior language.

    The fucking fact is that it don't matter shit. I bet you could do the application you describe in perl as long as the person doing it is competent.

    For fun, look up code that checks wether an IP has a valid format. You get the weirdest examples. Some look really cumbersome but would translate to fast code while some of the smallest regex would choke you cpu like a java GUI (Sorry had to get a java jab in to keep my cool license)

    Frankly I think the fat is for a large part still there from the days of java applets that you got on your pentium with 32mb that took ages to load and then crash.

    Funny thing, you still get those. They still take ages to load and then crash.

    Java applets are offcourse not server side java BUT most people don't care. Reputation matters sadly enough.

    Don't expect sympathy however as long as every java programmer says PHP don't scale. We all got our prejudices.

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

  102. PHP on JVM would be useful, but it's not about... by rdean400 · · Score: 1

    ...what's "lacking" in Java. PHP targetting Java bytecodes would be yet still another way to skin the cat. That being said, IBM would probably chip in to help Zend on that project. It probably would love nothing better than to see PHP running on top of WebSphere Express or Community Edition talking to Java apps.

  103. too late by penguin-collective · · Score: 1

    This would be good news to people still using Java because it gives them some assurance that Java will exist longer than Sun. However, in most areas, the open source world has moved on to gcj and Mono, and it's not going to come back to Sun Java: Sun Java requires a massive investment of redesign and coding to bring it up to the level of Mono in terms of functionality. More likely, people would simply grab some bits and pieces of Sun Java to improve compatibility of gcj and ikvm.

    However, that's presuming that Sun's license will be free of pitfalls, which seems unlikely given their history. Essentially the only licenses that are going to be workable are X11, BSD, LGPL, or the GPL, together with complete freedom to alter the language and platform and complete sublicensing of all necessary patents. And for the GPL, it's going to work only if it is crystal clear that people can run proprietary code on top of GPL'ed Java implementation.

    And if it's any kind of dual license, then it would defeat the purpose: dual licensing means that a company intends to keep control of the platform and intends to poison the open source version of the platform somehow in order to maintain a revenue model for themselves. And it's Sun's incompetence at handling the Java platform that has caused it to fail in those areas where .NET and Mono are now thriving.

  104. So? by Rix · · Score: 0, Redundant

    Windows users load all of that regardless, where as they wouldn't otherwise load the JVM.

  105. Re:If they do, it will all depend upon the license by afd8856 · · Score: 5, Insightful

    You may not realize, but "libraries are the new language". Seriousely, what good is a cool language if you have to reinvent the wheel everytime you want to have something like a report printer with print preview - a bit upset on python, with which I'm fighting right now to get something nice for a business app, I would really like something like jasper reports for python. Drawing on the DC with wx sucks for more then one form, and using reportlab to generate pdfs sucks as well. I've settled on doing a mono-platform hack, generating html with simpletal and calling its print preview dialog through ActiveX.

    --
    I'll do the stupid thing first and then you shy people follow...
  106. P languges will run Java though by ACORN_USER · · Score: 1
    As I understand it, the Perl6 VM, Parrot, could potentially handle Java bytecode (after translation), thus rather than the JVM supporting P languages, we could just as easily do away with Java and start writing in Perl6. Obviously, this also implies developers having to purchase the mandatory Larry Wall shrine and Damian Conway bible. I'm sure, however, that the world will be so much better off for it. Perl 6 is due for completion in the Year of our Larry, 2666.

    s{Che(e)rs}{Am$1n};

  107. Re:Ain't they? by kadnan · · Score: 1

    I dont understand what do you mean by "Java" here but they are already providing JDK source: http://wwws.sun.com/software/communitysource/j2se/ java2/download.html

  108. Sheesh... by Anonymous Coward · · Score: 0

    C is portable, fast, very complex and since 35+ years the leading standard for professional OS and APP development.

    C is so successful that C++ had to be invented to get more people into OO style C programming. C++ was designed as an syntax aid for people who lacked the skill writing OO in C by disciplined use of structs and func pointers.

    C is obviously too complex for the average CS student who crouch from one alternative to the next.

    Java? .NET??? ...amusing.

    1. Re:Sheesh... by Anonymous Coward · · Score: 0

      C is very complex? LOL

      struct and function pointers are slower than non-virtual classes in C++ (function pointers require a pointer dereference which isn't needed for regular classes). Don't forget the templating system. C++ is more than a bandaid for C, it adds useful syntax.

    2. Re:Sheesh... by qvek · · Score: 0

      You're right, C++ is a lot better.

  109. JVM != Java by SickLittleMonkey · · Score: 1

    Anyone can write a JVM to spec.
    Creating, testing and certifying the APIs is the biggie.

    SLM

    --
    main() {1;} // zen app
  110. Why I hate Java by Spikeorama · · Score: 2, Interesting

    Flame away if you will but every Java app I've used (on Windows) has been clunky, buggy, and hard to use. None of the standard keyboard shortcuts seem to work, the apps *always* seem to be sluggish, and to top it off, they look funny - they don't inherit any of the look and feel aspects of the desktop. Now some smart Java person will say all these problems are fixable but it seems to me that it takes more effort to put out a quality Java app then say, an MFC or other similar program. The lure of cross-platform portability is nice but not at the expense of usability.

    I'll stick to C++ and code in native development environments thank you.

    1. Re:Why I hate Java by Surt · · Score: 1

      Well, that's definitely the core problem of cross platform vs mono platform. If you write an MFC app it looks nice on windows, and runs nowhere else. If you write a java app it looks crummy on windows, and exactly the same level of crummy on solaris, linux, and mac.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
  111. Good for OpenOffice.org deployment by superfebs · · Score: 1

    I do pretty agree about the fact that it's a bit late to do that, and I pretty feel Java would not live for a long time. By the way, that is just my very humble opinion. Nevertheless, open sourcing Java would be very nice and useful for the Linux and BSD communities since the World Wide Web still "requires" the Java Plug-in (please notice quotes) and OpenOffice.org does have full functionality only with the Big Official Proprietary JVM installed. Separately from the distro/OS you have and it's own powerful packages installation system. Having it freely available would make Open Source systems a step more powerful and a step less handicapped in the desktop environment.

  112. It's about time, really by seitan · · Score: 1

    Yep, it's about time!! They could make real money on support, and also will get a big help from opensource comunity. Oupensource rules. http://fun.ring.lt/funny_pictures/146.gif

  113. Re:If they do, it will all depend upon the license by LarsWestergren · · Score: 2, Insightful

    convention over configuration is, imo, a much more important advance in the art than object-orientation was.

    Convention over configuration is just another name for having sensible defaults, and nothing stops you from using that in Java. Indeed most Java frameworks have already added (or are working on) this.

    --

    Being bitter is drinking poison and hoping someone else will die

  114. Re:If they do, it will all depend upon the license by Anonymous Coward · · Score: 0

    Mod up... but would have been funnier if you'd said "Java programs already take forever to run."

  115. Re:What ? Eclipse has no issues with languages at by LarsWestergren · · Score: 1

    Great for you; I never got it to work properly (Ubuntu and SCIM/Anthy). I first had to add fonts to some java-specific list to get it to show CJK at all. When I run the app with Swedish locale it refuses to let me input Japanese (it does not listen to the SCIM server).

    Janne, have you submitted a bug report for this? If you do, I'm willing to give it a try to get a bug fix submitted to java 1.6. No guarantees though, I'm only on the JCP so Sun might not even look at my suggested patch.

    Hälsningar,
    Lars

    --

    Being bitter is drinking poison and hoping someone else will die

  116. Arguments for and against by Dewin+Cymraeg · · Score: 1
    For:

    The main argument for open-sourcing Java is that it'll be more likely to be used by open-source enthusiasts, and will therefore gain a greater number of developers. RMS's arguments are somewhat valid: if you use Java now, you're completely locked in to what Sun, a large corporation which puts profits and growth first, want to do with it.

    Against:

    The proliferation of different versions of Java. However, this isn't too bad a problem. Java derivatives are going to be of interests to minority users, and will seldom see the light of day on a producation system. After all, the amount of testing that goes into Java is immense. If you change it, you have to test it at least as well as Sun if you're going to be taken seriously, and that's no mean feat.

    So long as Sun keeps control of the Java trademark and doesn't allow derivatives to pretend to be Sun's Java, there shouldn't be a problem.

    Or so it seems to me...

  117. Open Sourcing Java does not matter by yorkrj · · Score: 1

    Whether Java is open sourced or not is of no matter to me. What would concern me if Java were to be open sourced would be a potential splintering of the JRE remeniscent of the days when Microsoft had their broken implementation of the JVM. Open Sourcing Java could be a good thing, brining Java to platforms it had not previously been on, but only if there is a strong development leadership and there is NO forking of the source.

  118. Arguing about this is lame... by flithm · · Score: 1, Insightful

    Fact: Java apps will ALWAYS use MUCH more memory than programs written in compiled code (whether it be C, C++, VB, Delphi, etc) due to the fact that it's interpretted (ie not byte code compiled). It has nothing to do with "class meta information," which can actually be higher in some other languages. Oh and the java reflection API is much more useful than for plugins (which you can easily do in C / C++ as well).

    Even byte code compiled java (ie gcj) is much more memory hungry than a compiled C / C++ app, and it shouldn't be any surprise. The Java API is quite vast and interdependant, so even using small portions of it leaves a large footprint.

    I don't see why it's a bad thing either. People who argue about one language over another just aren't knowledgeable enough. Each language is a tool, and is suited for particular tasks. Trying to use one language all the time is analogous to trying to use a hammer for all carpentry tasks. Java is a good language for certain things, not so good for others.

    1. Re:Arguing about this is lame... by synthespian · · Score: 1

      And this is modded insightful...

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    2. Re:Arguing about this is lame... by metamatic · · Score: 1
      Oh boy, where to start.

      Fact: Java apps will ALWAYS use MUCH more memory than programs written in compiled code (whether it be C, C++, VB, Delphi, etc) due to the fact that it's interpretted (ie not byte code compiled).


      Java is not interpreted, it's byte code compiled. You're thinking of the fact that C is generally compiled into native code, not byte code.

      And that's also a flawed argument, because Java byte code is more compact than native instruction sets in many cases. (Particularly for any RISC system.)

      Even byte code compiled java (ie gcj) is much more memory hungry than a compiled C / C++ app, and it shouldn't be any surprise. The Java API is quite vast and interdependant, so even using small portions of it leaves a large footprint.


      That's not a reasonable argument. Sure, native compiled Java is memory hungry if you use memory hungry libraries. Well, guess what, native compiled C is memory hungry if you use memory hungry libraries.

      I agree that the Java libraries are an ill-thought-out mess, but there are a lot of C libraries that are an ill-thought-out mess too, and that isn't reason to dismiss the language.
      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    3. Re:Arguing about this is lame... by flithm · · Score: 1

      Hey thanks for the great reply.

      You're right I was wrong about "byte-code"... yeah I meant native code.

      Anyway... everything you said is true, I just wanted to mention that the point of my rant wasn't to suggest that we should dismiss the language... quite the opposite!

      I was saying it's one useful tool just like c, or python, or whatever, that gets a particular job done well. I made a point to (try) to mention some of Java's downfalls because I was trying to suggest that knowing your tools is the key to being a good computer scientist. The grandparent seemed to be suggesting that Java is leaner and meaner than anything and should be used for all tasks.

      I hate that argument because I'll never argue that one language is better than another, just that some languages are better suited to solving certain problems.

    4. Re:Arguing about this is lame... by metamatic · · Score: 1

      Yeah. I'm not religious about languages. I'm currently writing a client program in Java, because it's the best tool for the job. My web site runs on Ruby on Rails, because it was the quickest way for me to get something up and running that I could hack on myself. I've written Objective-C, because it's the best language for OS X development.

      There are definitely languages I'd prefer not to use, but even then I'll make exceptions. I'm trying to avoid any further Perl, but I used some when there was a library available that made the task about 10x easier.

      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
  119. I hope not by Fedarkyn · · Score: 1

    Sun license is quite good for corporate and personal use.

    "pure OSS" are geek's toys, when we need to have the job done, we need to use a more professional alternative like RH or SUSE.

    there are some points where the license can improve, but open sourcing it would be an error.

    1. Re:I hope not by RPoet · · Score: 1

      Which part of Red Hat's offering is not "pure OSS"?

      Open sourcing Java would at the least allow Linux vendors to distribute and integrate it into their distributions, which would be a great boon. Sun could still make "Sun Java" even under open source, and have every bit as much control over "Sun Java" as they have today. As a bonus they could accept independant patches (though they wouldn't be forced to). Most people would still want "Sun Java" and not "Billy's Homebrew Java" (which wouldn't even exist anyway; I don't know why everybody seems to think open source leads to forking hell).

      So many of the essential Java tools and libraries are already open source (and not forked to hell). Sun is making a mistake by keeping Java proprietary.

      --
      "Oppression and harassment is a small price to pay to live in the land of the free." -- Montgomery Burns.
    2. Re:I hope not by Fedarkyn · · Score: 1

      RH has some proprietary code bundled. netbeans is my personal example of an open source tool forked to hell... backwards compatibility is a priority that can't be enforced if u open source it.

    3. Re:I hope not by RPoet · · Score: 1

      I'm not aware of any forks of NetBeans. Can you point me to one, and explain how Sun's NetBeans product has suffered for it?

      --
      "Oppression and harassment is a small price to pay to live in the land of the free." -- Montgomery Burns.
  120. Keep eval.c away from spammers! by iamcf13 · · Score: 1

    Opening the java source will give spammers access to the source code to the eval function. With it, spammers can make email address harvesters that can extract email addresses 'hidden' in javascript by running it through eval.

    Down goes a line of defence against email harvesting! :P

    Even having your email address imbedded in an image won't stop 'manual spammers'!

    You've been duly warned....

    1. Re:Keep eval.c away from spammers! by Peter+Mork · · Score: 1

      It's probably worth mentioning that the only relationship between java and javascript is a common prefix.

    2. Re:Keep eval.c away from spammers! by linvir · · Score: 1

      What about the retarded syntax? Doesn't that count?

    3. Re:Keep eval.c away from spammers! by bogado · · Score: 1

      1st as stated before java and java-script are two different beasts and 2nd because of that, javascripts' eval function is already on the open. Spammers already have access to it's source, since javascript get's bundled with firefox and konqueror and both have javascripts engines.

      Even if spammer did no have access to the source it self, what exectly is stoping them to use a javascript code to extract the email. If the user can get the email automaticly it means that the spammer can get it too, it is the same principle that makes every DRM broken by nature, the person trying to subvert your encription is the same, or in your case, has the same access then the one that is authorized.

      On the other hand, the biggest problem for the spammers is identifing what is the email and what is not. This is somewhat hard if you hide you email well, either by using a javascript or by using images instead of a plaintext email.

      --
      []'s Victor Bogado da Silva Lins

      ^[:wq

    4. Re:Keep eval.c away from spammers! by Anonymous Coward · · Score: 0

      I tried to spend some mod points on your post, but while it deserves a -1 for "wtf", it's not quite offtopic, nor flamebait, not even trollish, or redundant... it's just "-1 Plain Stupid"... You got away with it for a lack of mod options... nice post

    5. Re:Keep eval.c away from spammers! by 2short · · Score: 1

      Nah. Java and Javascript have entirely different retarded syntax.

  121. Not Identical functionaliy by imsabbel · · Score: 1

    While i like utorrent and it replaced azureus for me, its not really compareable.
    Azuerus caches non-completed blocks in memory, utorrent writes them straight to disk. As a result, utorrent creates tons of additional io-traffic (as to hash check pieces, it has to read them back from disk and save them again, ect).
    Also, utorrent is _extremely_ lazy on hashing and file allocation, while azureus is still using some of the older, stricter guidlines, which help the responsibilty impression on utorrent.

    Not saying that the additional memory/ect is worth it, but its certainly not all a result of java.

    --
    HI O WISE PRINCE. WHT TOOK U SO DAM LONG?
  122. Java's distribution policy does hurt it! by Builder · · Score: 3, Interesting

    Sun don't allow redistribution or bundling of java JREs except under certain specific conditions. This makes java as a language unattractive to many organisations when compared with .NET and can also hurt developers tendering for work.

    Lets take a hypothetical new company. So far, all they've done is bought Windows and installed their workstation and server population. Now they need an application to do Foo.

    Team A propose a solution based on .Net. For the company, this means a single set of negotiations, one licence to review (Team A's app licence) and only 2 support contact points (Microsoft and Team A).

    Team B propose a solution based on Java. Now the company would have to have their lawyers review 2 sets of licences as opposed to one (Team A and Sun), and their support contact points climbs to 3. It also increases overall administrative hassle, as Java has to be patched / updated outside of their OS / application lifecycle.

    Team B automatically look less attractive to the company because their hidden costs are much higher. If Sun just allowed Team B to bundle the JRE with their application, this would go away. Of course, then the different problem of every application trying to install Java comes up, but that can be got around by providing a 'JRE bundled' and 'No JRE' version of the products.

    If you think that companies won't bother to review Sun's licence before installing Java, you'd be wrong... I've consulted at 2 different places now where they had their lawyers review the GPL and Java's licence before allowing deployment of products licenced under those.

    1. Re:Java's distribution policy does hurt it! by the+eric+conspiracy · · Score: 1

      Now the company would have to have their lawyers review 2 sets of licences as opposed to one (Team A and Sun), and their support contact points climbs to 3.

      I would think that there are many licenses to review - surely no development shop is dealing with just one tool. This is not a matter of 1 vs. two vendors, but rather N vs. N+1.

      Java has to be patched / updated outside of their OS / application lifecycle .Net has similar version issues, and perhaps worse compatability across versions than does Java. So if anything this is an advantage for Java.

      If Sun just allowed Team B to bundle the JRE with their application, this would go away.

      Sun does allow this. What they don't allow is redistribution of the JDK.

      | 2. License to Distribute Software. Subject to the terms and conditions
      | of this Agreement, including, but not limited to Section 4 (Java
      | Technology Restrictions) of these Supplemental Terms, Sun grants you a
      | non-exclusive, non-transferable, limited license without fees to
      | reproduce and distribute the Software, provided that
      | (i) you distribute the Software complete and unmodified (unless
      | otherwise specified in the applicable README file)

  123. Re:What ? Eclipse has no issues with languages at by JanneM · · Score: 1

    Janne, have you submitted a bug report for this? If you do, I'm willing to give it a try to get a bug fix submitted to java 1.6. No guarantees though, I'm only on the JCP so Sun might not even look at my suggested patch.

    Frankly, no. I have no idea who's to blame - the Sun packaging, the version of SCIM, something in Ubuntu, or (most probably) all and none; just an unfortunate interaction between pieces of software never designed to be used together.

    My interest in getting it to work was purely operational - I wanted to run a particular app with Japanese input. Once I realized things were not going to work with a lot of effort, I gave up and looked for a different (non-Java) app with the functionality I wanted. Had this been something I had to make work I would have dug deeper (and at least posted a few questions about it on appropriate mailing lists). But seeing as I had multiple options anyway it just didn't make sense to spend more time on it.

    --
    Trust the Computer. The Computer is your friend.
  124. PHP by Anonymous Coward · · Score: 0

    Why put PHP on a free JVM? PHP license is not free.

  125. act like an open source project by jonathanduty · · Score: 1

    Currently the JVM development and release cycle seems pretty controlled. Every 16 months there is a major release with 1 or 2 updates between there. And the feature set placed into those releases is also controlled, not just "Lets see how much we can throw in." I'm worried that if the JVM is open sourced java would start acting like an "open source project" with a wide feature scope and numerous and quick releases that will make it difficult to keep customers up-to-date. I can certainly see advantages on both sides. I think the main thing is if Sun wants to continue to devote resources to it.

  126. Yes, as charity to all the anti-nazi nazis. by expro · · Score: 1

    Yes, as charity for all the anti-nazi nazis with nothing better to do. More rules please.

    1. Re:Yes, as charity to all the anti-nazi nazis. by quintesse · · Score: 1

      Who was saying anything about rules? Godwin's Law has nothing to do with rules. Life must be treating you real bad that you're so cynical :-)

  127. Re:What ? Eclipse has no issues with languages at by LarsWestergren · · Score: 1

    Frankly, no. I have no idea who's to blame - the Sun packaging, the version of SCIM, something in Ubuntu, or (most probably) all and none; just an unfortunate interaction between pieces of software never designed to be used together.

    Ok, I'll take a look at it anyway, even if it is of no further interest to you for any project. I'm a bit of a japanofile, and I like both Linux and Java, so that looks like a fun thing to do on a rainy evening. :-)

    --

    Being bitter is drinking poison and hoping someone else will die

  128. Re:If they do, it will all depend upon the license by mrtrumbe · · Score: 3, Informative
    I can't help but notice that the vast majority of comments here seem to be focused on website development. What is this? 1998?

    Seriously, though, there are other problem domains out there. A lot of them, in fact. And even in web development, depending on the complexity and context of the solution, might require vast amounts of code that never interact with a GUI of any kind. When you evaluate these languages and platforms in context's outside of web development, Java starts to look far more robust and flexible.

    As another poster pointed out, where are the buffered readers for ruby/php? Sure File.open("name") might LOOK nice, but Java's addition of a buffer solves a common problem many programmers in the past needed to solve by hand. There are about a thousand of these examples where Java's framework is more complex than its ruby/php counterpart, but for good reason: it adds much needed functionality for the enterprise developer.

    Taft

  129. Re:If they do, it will all depend upon the license by Haeleth · · Score: 4, Informative

    In order to be allowed to use the trademarked term "Open Source" however, whatever license they choose must (a) comply with the Open Source Definition, and (b) be approved by the Open Source Initiative.

    Did you even read the pages you were linking to? The Open Source Initiative's own certification page, that you linked to, has this to say, right in the first paragraph: "the term 'open source' itself [...] can't be protected as a trademark".

    I can call anything I like Open Source, and nobody can do a thing to stop me. The new Evil Proprietary License (a viral license that infects any software in the same room with a deadly curse that can only be lifted by the sacrifice of your firstborn) could be called Open Source. What it couldn't legally be called is OSI Certified(tm).

  130. AMD64 by SIGBUS · · Score: 3, Insightful

    Maybe we'll finally see an AMD64 Java plugin for Firefox.

    --
    Oh, no! You have walked into the slavering fangs of a lurking grue!
  131. Re:If they do, it will all depend upon the license by giminy · · Score: 1

    Agreed. My housemate coined the term 'available source', which I think is a far better term for products where the source code is available, but that source comes with some restrictions (such as all patches/feature additions having to go through the copyright holder).

    Methinks we should stop using 'open' and replace it with 'available' for some of these things?

    --
    The Right Reverend K. Reid Wightman,
  132. Not addressing the problem by Anonymous Coward · · Score: 0

    (hypathetically) ok so they've open sourced java... ok... the releases still break compatibility, and may still be very well controlled by sun (i don't see Sun giving up release control of *their* java... though what you do w/ your copy of the source, whatever)... and really my few objections generally stem around the fact that i can't upgrade without breaking *something*... another annoyance is having auto update ENABLED by default... but i cannot seriously endorce a JVM which works now... but maybe not later if the developers change something (seemingly on a whim from this side of the fence)... i've sent comments/feedback to them about this before... I'll admit it's an unfortunate cycle, because I'll find other JVMs (the "banned" MS JVM included) as alternatives before i consider Sun... i'd rather find something out of date and unsupported, than deal w/ their incompatible crap.

    just my .02

  133. Will Sun Open Source Java? by IAmTheDave · · Score: 0, Offtopic

    Will ./ ever stop asking this question?

    --
    Excuse my speling.
    Making The Bar Project
  134. Re:If they do, it will all depend upon the license by Anonymous Coward · · Score: 0, Troll
    If the user still decides to use it (and many will) they still have all the advantages as they have with the different other packages that are included with SUSE, including security updates.

    Except freedom.
  135. Open sourcing Java or the JVM? by djg1977 · · Score: 2, Insightful

    I might be mistaken here, but isn't "open sourcing Java" meaningless?
    Java is an open standard already.

    What I believe is being discussed, is whether Sun should open source their Java Virtual Machine (JVM) - Sun's implementation of the Java standard.

    1. Re:Open sourcing Java or the JVM? by RPoet · · Score: 2, Insightful

      I might be mistaken here, but isn't "open sourcing Java" meaningless?
      Java is an open standard already.


      Since when is open source and open standards the same? And does the JSR constitute an open standards body? (Yes, to some degree, but it's not perfect)

      Sun should liberate the "hard" parts. We already have good compilers and mostly good JVMs; what we need is the class libraries, and to a smaller extent the tools. Come on, Sun.

      --
      "Oppression and harassment is a small price to pay to live in the land of the free." -- Montgomery Burns.
  136. Re:If they do, it will all depend upon the license by linvir · · Score: 1

    Your definition of Open Source was too liberal to begin with. Even the Linux kernel is developed in the way you've just described.

  137. Q.: Will Sun Open Source Java? by superdan2k · · Score: 1

    A.: Who cares?
    A2.: I hope not.

    Honestly, there are plenty of great options for open source programming languages. And if Java stays closed-source, we'll see the development of more great stuff like Ruby on Rails.

    --
    blog |
  138. rank amateurs by mikaelhg · · Score: 3, Insightful

    why, oh, why java croaks on OutOfMemoryException when we have more than 8G of ram most of which is not being used

    Because you are rank amateurs who are unable to read documents or use profiling tools such as jconsole or YourKit?

  139. Ebay's entire site? by MichaelPenne · · Score: 1

    https://signin.ebay.com/ws/eBayISAPI.dll?SignIn&co _partnerId=2

    Much of it isn't in Java yet (after years of engineering and more years of marketing). Why not? Java not faster than a dll? Or Java just too dang expensive to implement?

    The fact that Y! can pull slow scripts out and re-code them in C++ as mod_php extensions lets you focus your heavy coders where they are most needed.

    1. Re:Ebay's entire site? by Anonymous Coward · · Score: 0

      Yes, eBay's entire site: http://www.sun.com/service/about/success/ebay5.htm l. It is fairly easy to map .dll to a servlet in your web container's configuration.

      The fact that Y! has to use C++ slows them down significantly. Developer productivity in Java is orders of magnitude better than in C++ because of niceties like refactoring, instant compilation, working "intellisense," simpler syntax, automatic managabilty through JMX, automatic security through JAAS, automatic transaction-handling through EJB, automatic horizontal scalabilty through JMS, and fewer programming errors to avoid. (Compare Effective Java to the three equivalent books for C++.) Moreover, as soon as you start to program in C++ correctly (by using auto-management of resources via auto-pointers and containers and using idioms like PIMPL), you've slowed yourself down to Java speed (or slower) in execution.

  140. Re:If they do, it will all depend upon the license by pebs · · Score: 2, Interesting

    I diagree. Java is far to bloated and complicated. I've been using it since it first came out and I balk at the vast array of libraries you need to use or choose between to get anything done. I feel really sorry for anyone coming to it for the first time.

    So basically Java is the Linux of programming languages? You must really hate choice and having a large amount of problems already solved for you. Java is not for those with NIH syndrome.

    --
    #!/
  141. PHP on Jave dies not need Open Source by angel'o'sphere · · Score: 2, Insightful


    One commentator said, "Sun should endorse PHP and go one step forward and make sure the 'P' languages run great on the JVM [Java virtual machine] by open-sourcing Java.


    You are free to write a PHP Interpreter which is Open Source and runs on a JVM ... Jython shows this for Python.

    I frankly don't know if it benefits me, or anyone, if Java is OSS. However it would be horrible if we face what we currently have with C++, litterally hundrets of compilers where everyone implements his favorite subset of the language definition.

    angel'o'sphere

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  142. Too little too late by defile · · Score: 1

    Would this move Java up the desirability scale in your eyes? Could this be a way to help improve what's lacking in Java?

    Gee, I used to sit around and wait for Sun to make Java suck less. That was until Microsoft came from left field with C# and addressed every issue I had with Java.

    (But seriously, guys, what's the problem with commercializing Python?)

  143. Re:What ? Eclipse has no issues with languages at by subStance · · Score: 1

    You can blame it squarely on Ubuntu then, since the Fedora Core 5 install I did was completely stock. Select Japanese + English in the installer options, then run the one line link command to set .xinputd correctly as was described in the Release Notes (and this is optional: only needed if you want English as the default).

    But the above steps are required to make multilinguals work in any app. Java plays along nicely otherwise. My guess is that your Ubuntu has some issues, not Java.

    --
    Servlet v2.4 container in a single 161KB jar file ? Try Winstone
  144. Re:If they do, it will all depend upon the license by marcosdumay · · Score: 1

    If you read a bit further, you'll see that they registered and are protecting the capitalized "Open Source".

  145. Re:If they do, it will all depend upon the license by Paradise+Pete · · Score: 2, Funny
    I currently avoid Java like the plague

    I just realized that in my entire life I've never once knowingly avoided the plague.

  146. Would you use PHP without it's C bindings? by hagbard5235 · · Score: 2, Interesting

    I doubt you will see much uptake from a PHP running on the JVM. When you port a langauge to the JVM, you typically leave behind the C bound modules, because they just DON'T play well with the JVM (frequently non-thread safe, etc). For this reason languages that have nothing to offer but their c bound modules (Perl, PHP) don't fair well. Languages like Python and Ruby that have significant things to recommend them as languages do much better.

  147. Java, summed up in 4 words by hacker · · Score: 0, Troll

    Write Once, Debug Everywhere.

  148. !J2EE.equals(Java) by metamatic · · Score: 1

    The big problem with J2EE is lack of standardization. Which is ironic, since the Java proponents tell us that making Java open source would lead to fragmentation.

    An EAR ought to be like a JAR: you ought to be able to deploy it and run it on any J2EE implementation with a single command, like you can run a JAR on any JVM with a single command. (Or by double-clicking it, on real OSs.)

    Instead, every vendor has proprietary tools you need to use to produce a proprietary file or two inside the EAR. It's a mess.

    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
  149. Re:If they do, it will all depend upon the license by drakaan · · Score: 1

    So basically Java is the Linux of programming languages?

    You hit it precisely on the head. Linux and Java proponents tend to have a particular problem with being unsympathetic to n00bs (please note that I like Linux a lot, and dislike Java a lot...a result of my own experiences).

    I've checked Java out a few times thinking I might want to add it to my repetoire, but I got irritated by how difficult it seemed to be to do things...or, more specifically, how hard it was to find out how to do things.

    As happens in Linux circles sometimes, my basic questions were treated with RTFM and rudeness...well, more like elitism, I guess...it wasn't *quite* rude, if you know what I mean.

    It's not even that I'm especially stupid, it's just that after years of thinking in C-64 BASIC, DOS batch syntax, GW-BASIC, VB, javascript, and Perl, I wasn't really primed for it. Not having anything beyond a "Do you have any Grey Poupon?" response didn't make me any more enamored of it, so it's not so much the licensing that needs help to me, but the community.

    Maybe I just had a bad experience, but from my perspective, you're exactly right...Java is the Linux of programming languages.

    --
    "Murphy was an optimist" - O'Toole's commentary on Murphy's Law
  150. Sacrificing Mod Points - please elaborate. by mosel-saar-ruwer · · Score: 1

    I'm sacrificing Mod Points to ask this question.

    You start and end your comment by lambasting Java:

    Now, before I take a moment to rag on your ridiculous RAM comment, let me assure you that I hate Java from that ground up. I find it to be little more than a virus...

    P.S. - Just to remind you, I hate Java. I would never use it again if I can avoid it and my goal in life to is make other people stop using it too...

    Yet the body of your comment contains nothing but the highest praise for Java:

    So here's where Java shines, because of the garbage collection system and because of the relocatable memory architecture, memory is managed in such a way which decreases the cycles spent in allocation and deallocation of buffers...

    This is a Java shining point. Java includes so many libraries, that nearly every application can be written very quickly and with little effort...

    Objects don't have to be read from disc more often than necessary in Java, so in theory a decent JVM can in fact use a precache (such as Insignia's AOT compiled versions) and load objects very quickly for exectution...

    So why do you hate Java?

    Are you a Lisp/Smalltalk/Haskell/Erlang guy?

    Or does it have something to do with your background in embedded devices?

  151. Will Sun Open Source Java? by xv4n · · Score: 1

    Ohh, what's really going to bake your noodle later on is, will Java Source Open Sun ?

  152. Re:If they do, it will all depend upon the license by cheezit · · Score: 2, Insightful

    Interesting...I've had the opposite experience. I spent time in the MS camp where there are a wealth of 'VB for dummies" books but everything beyond that comes from Microsoft itself, and you better have a MSDN subscription. With Java it seems there are tons of free online resources for specific questions, and there are also some very good books like "Thinking in Java" (perhaps a bit dated now) that get the beginner to the point of understanding all the basics, without being condescending the way, for instance, MSDN so often is.

    Then again, given the languages you list Java may not be useful for what you do. If it might be, though, I'd give it another try...

    --
    Premature optimization is the root of all evil
  153. Re:If they do, it will all depend upon the license by Decaff · · Score: 3, Interesting

    I diagree. Java is far to bloated and complicated. I've been using it since it first came out and I balk at the vast array of libraries you need to use or choose between to get anything done. I feel really sorry for anyone coming to it for the first time.

    I really don't understand this. Having a rich and versatile range of libraries is a problem?

    Personally I use Ruby (on Rails) these days for web development: convention over configuration is, imo, a much more important advance in the art than object-orientation was.

    And Java has had this for years. I use JDO to persist my Java objects (it is a far more powerful and versatile system than Rails - much faster, and can persist to non-relational stores as well). How much configuration do I need in principle to describe my schema? Nothing but a list of classes. By default, the schema is created and mappings are automatically set up based on the field names of my classes. By default, no configuration needed.

    How long has JDO had this? Since 2000!

    Convention over configuration is nothing new.

  154. Re:If they do, it will all depend upon the license by Decaff · · Score: 1

    I currently avoid Java like the plauge, my reasons are the same reasons that java isnt included in debian... http://www.debian.org/doc/manuals/debian-java-faq/ ch5.html#s-license-concerns if they address those license concers i would be much happier...

    Debian is simply a platform for running software. It is just a part of your system. There is no reason why Java should not be another part. Is your BIOS from debian? How about the code embedded in your graphics card? Is your processor open source?

  155. PHP in the Java VM by koreth · · Score: 2, Informative

    It is already being worked on, and you can download and try it out today (though it's not finished yet). It's called Quercus, from the guys who do the Resin open-source app server. (Which is a fabulous piece of work, I might add.) It compiles PHP to Java bytecode, which can then be JIT-compiled to native code.

  156. Re:If they do, it will all depend upon the license by darjen · · Score: 1

    As a Java programmer, please allow me to roll my eyes and groan.

  157. I disagree about Perl by DG · · Score: 1

    Well-written perl - and no, that is not an oxymoron - I find is very much easier to read than many other programming languages, mostly because it is so easy to visually separate variables from other code. All that extra "line noise" stuff, when formatted correctly, provides extra contextual information that makes it very much easier to understand what the code _does_, rather than just what it _says_.

    In the hands of a skilled coder, perl just rocks. I'd rather support good perl than any other language. The perl I've written for years now is optimised for LEGIBILITY and that stuff is just a dream to support.

    To me, it seems tough to get that level of legibility out of a Bondage and Discipline language like Java. Yes, you curb a lot of the excesses of the inept, but at the cost of hobbling the expert. You can write Shakespere in perl, but not Java.

    DG

    --
    Want to learn about race cars? Read my Book
    1. Re:I disagree about Perl by Cederic · · Score: 1


      Regretably in my professional life I encounter far more the inept than I do the truly elegant writer of poetic code.

    2. Re:I disagree about Perl by Hairy1 · · Score: 1

      Sure, its possible to write maintainable code in any language if you have a skilled developer who has the disipline to code that way. However, the difference here is whether the Language itself makes it hard or easy to write nice code. With Java the language itself enforces a certain way of doing things; primarily encapsulation of everything in a Object. It also has very definite convensions which you will be derided for if broken.

      For small systems developed by one person Perl might be okay, but when you have whole teams of people with various skill levels (you can't always have the best) Java has what it takes to encourage good coding practise. Perl on the other hand encourages the "many ways to skin a cat" approach. Being interpreted brevity is valued over clarity, and that hurts when it comes to trying to maintain stuff after the fact.

      Now, I am a Java developer, but I also like Python - its not quite as strict as Java, but doesn't end up with the same hideous spagetti code messes that I've seen in Perl and PHP. Is Java perfect? Hell no. If I had a choice to make just on Language it would be Python. Sadly there are still not the frameworks available for Python to the same level as Java; although projects like DJango are getting good.

    3. Re:I disagree about Perl by DG · · Score: 1

      Well, I've worked on some large-team, large-size perl projects, and the code that team generated was sheer beauty and just stupid easy to maintain.

      All it takes is a little professionalism and self-discipline - and that is a function of personal leadership and team dynamics, not the language enforcing conventions.

      I'd rather work on beautiful code, elegant code, than slog through what the language designer thought was "good coding practice" and made manditory in his B&D language.

      DG

      --
      Want to learn about race cars? Read my Book
  158. truth with no propaganda by Anonymous Coward · · Score: 0

    -------
        "There's a reason why the top two server side platform these days are .NET and Java, and it's because a there's a quality standard and completeness not found elsewhere."
    -------

        I think your view is somewhat incomplete.

          Open source is gaining steam is not because of quality but because of freedom and fair competition. As long as a single company owns a platform, any work you do is subject to disappear into that single company's portfolio eventually. It breeds monopolies which kills innovation (i.e. look at Explorer the last five years.... nothing).

        And not to knock Sun's quality but the reason why Java remotely competes against open source alternatives is because of big blues adaptation a few years back. Lou and Sam realized they had to do something to fight MS--- or they were going to be eaten alive. Why the hell else would IBM support another company so fiercely?

        I just so happened to work for IBM during the time Java was being rolled out internally (and therefore to clients). Don't forget for years IBM controlled the corporate markets with uber-proprietary systems without any real competition. With the prestige of IBM, Java gained credibility that honestly it would not have otherwise. Unfortunately at the time open source alternatives weren't mature enough for enterprise grade apps but today this is no longer the case.

        I don't program in Java anymore but I do bump into it once and awhile and it's still slow and clunky (of course this can't be helped somewhat for an interpreted and portable language) However why someone would leave one closed source proprietary platform for another eludes me. Why not just stay with MS then? At least it will be a hell of a lot faster and Visual Studio continues to be a far superior IDE to anything out there at the moment.

    CONCLUSION:

      Open sourcing Java may or may not help Sun's bottom line (depends what they do to make money afterwards). However it seems likely open sourced Java would likely eventually mean real competition for visual studio as the premier IDE. Eclipse (with the full weight of IBM behind it) would be become a real threat. With the fall of the IDE (which essentially means an adoption of framework) and faster CPUS that will make JVM lag less noticeable... Java will truly arrive.

            Otherwise Sun... look out for PHP. IBM Alphaworks appears to be pressuring Sun with it because it's tired of waiting for Java. Granted the framework (especially GTK) still needs plenty of work but heck that's never stopped a platform from growing (ask MS about DOS). When version six of PHP comes out with integrated caching on the server it will basically be on performance par with Java... with no strings attached. At least on the server side what motivation should I use Java again? I should put all my code jellybeans in Sun's basket rather than MS?

    I think not.

              If Sun doesn't open source Java soon they most certainly face eventual decline since everyone will just continue to put more energy into open source languages until critical mass is reached and Java becomes the next COBOL (a language no one wants to use except in already embedded systems). I'd prefer a more mature platform to program in but that's entirely up to Sun. If they're smart about it.. they won't wait until it's as worthless as Solaris.

  159. O'CAML is cool, but its nothing new.. by Anonymous Coward · · Score: 0

    Yes I agree its really neat. Its the favorite language of the smartest programmer I know. This guy was a professor of languages before he went into the private sector; he is fluent in at least a dozen programming languages. O'Caml is his language of choice.

    However, he told me that in 2001...

  160. Re:If they do, it will all depend upon the license by namekuseijin · · Score: 2, Insightful

    hi again! ;)

    "Having a rich and versatile range of libraries is a problem?"

    nope. the problem is when you have a poor enough language without support for high level constructs and has to do literally anything with libraries. it's just a lot more tiresome than builtin language support...

    "Convention over configuration is nothing new."

    yeah, shame it's not used more often in the java world rather than the XML craze...

    --
    I don't feel like it...
  161. Over engineered, under designed. by Hairy1 · · Score: 1

    Just a random thought while I read your comment. As you say, Java never feels 'hacked together'. Lets look at dates. Originally there was the Date object, but as there is more than one calendar and date system in the world most of the Date functionality in Java was dropped in favour of GregorianCalendar. Suddenly date manipulation became a horrid mismash of creating the objects you needed to access the date manipulation methods required.

    The same applies to Swing. In Delphi you could start a project, drop a few components on a form and hook them up with a few lines of code. With Java (NetBeans/JBuilder) just getting to the point of dropping something on a form required an in depth understanding of the Swing graphical layouts. It is perhaps another example of a very flexible system, but like the Date changes, it shows two underlying issue; being more generic (ie catering for a wider class of situations) was valued over being easier to use for the majority.

    Sun engineers seem to have come up with systems which cater for complex situations, while developers trying to do real world apps are left writing huge swags of code to do reasonably simple things.

    Another two examples. EJB. When I started a project about four years ago I had to make a choice; whether to use EJB as a persistence layer; which was viewed at the time as the 'correct' way, to manually code JDBC into data persistence objects, or to design my own persistence engine. Well, I decided to code my own persistence engine, and the design decisions meant it turned out pretty much like Hibernate looks today. Why does Hibernate exist? Because EJB was over engineered, too complex to use for the vast majority of projects.

    Second example is Mail. I tried to use the Mail API that came with Java to send emails. Once again it seemed that it had been over engineered to such an extent that it was impossible to use. I resorted to a small open source class - a single class - that could do everything very simply. Perhaps the class wouldn't do everything the JavaMail API could, but it did everything I needed, and perhaps everything most other developers would need as well.

    This is a common thread; over engineering everything to be generic while making life more difficult for the majority of coders. Luckily projects such as Hibernate, Struts, Tomcat and Velocity make development much easier for me day to day.

    1. Re:Over engineered, under designed. by benjymouse · · Score: 1

      That's very well put. I agree with everything in your post. As a Java developer/architect I experienced the very issues you raised myself. The most notable sample of over-engineering is perhaps EJB, especially the entity beans (stateless sessionbeans I still find somewhat useful).

      Then there's the checked exception disaster. This is actually the only sample where Sun seems to have put something experimental in there before having harvested experience with it in other experimental languages.

      The hard thing about the over-engineering is that it's actually very difficult to disagree with the objective. EJBs sounded like a good idea at the time. Checked exceptions still have a lot of followers. Calendars sound like a cool idea too: Once and for all solve the timezone and date artitmetic confusion. It's just that a language is not only theory about what might be useful. A real-life language has to pass the test of time (and less than stellar developers). The practices that emerge, the real life problems may eventually kill the theory.

      What I was saying is that PHP approaches from the directly opposite direction. PHP was pragmatic from the onset. When a feature was needed, the language was just extended with a new facility. "Are people having problems building dynamic SQLs and becoming vulnerable to SQL injection attacks? I have an idea. I think it's ... lets call it MAGIC QUOTES!". And "After all, every web page needs to access the URL parameters. Why not just expose them as automatic variables?".

      That's why I find it unlikely that the cultures will ever unite. I find that both approaches have their problems. I actually prefer the middle way on this. The totally understand why Hibernate, Spring et.el. are having such a success now.

      --
      Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
  162. Re:If they do, it will all depend upon the license by Decaff · · Score: 1

    nope. the problem is when you have a poor enough language without support for high level constructs and has to do literally anything with libraries. it's just a lot more tiresome than builtin language support...

    It isn't a poor language - it was carefully designed to take the best of C++ while cutting out things that demonstrably led to poor maintanability (such as operator overloading). New features like generics and annotations have been added, but they are added slowly to avoid the mess that other languages grew into.

    But anyway, there is a very good reason for having things in libraries - it allows competing implementations to provide functionality. For example, you can have competing implementations of ORMs, remoting, etc.

    An example of why this a good idea is to see what happens when it isn't done. An example of this is in the next version of C# and VB.NET, where object persistence is handled by language extensions (LINQ). The problems are that (1) everyone has to upgrade to the latest language version to use these features and (2) you only get the features in those languages.

    The Java way is better. Very few of the libraries depend on precise versions (you can use the latest JDO 2.0 with Java from 5 years ago), and you can use all the libraries from languages other than Java: I even use JDO from Ruby (as JRuby), and you can use them from Groovy, BeanShell, or Python on the JVM.

    yeah, shame it's not used more often in the java world rather than the XML craze...

    I have never understood the objection to XML. Having a standard format for configuration that can be easily handled by tools and cleanly upgraded seems like an excellent idea.

    Configuration by convention has its place, but sometimes having explicit statement of what is being done makes things clearer.

  163. Does anyone really care? by ClaudeVMS · · Score: 0, Informative

    At the rate of technology change isn't Java just another 1990s invention?

  164. Twisted Rocks! by rk · · Score: 1

    I just started messing with twisted last weekend, and for my first learning project I wrote a server that worked not unlike BITNET Relay Chat (for those who don't remember those days, it was a precursor to IRC). It took about 20 minutes and the code fit on a single window length of emacs, most of which was the /command parser. It didn't have passwords or channels, but that would be all application code, and wouldn't take that much more. The network stuff was about 30 seconds and forget about it.

    I'll never use socket() again. My next project is to integrate twisted and pygame into a basic multiplayer shoot 'em up space game, steadily working to my goal of a big multiplayer strategy game idea I have.

  165. Re:If they do, it will all depend upon the license by Decaff · · Score: 1

    If Sun were to GPL Java, it would be unstoppable.

    That sounds to me rather like saying "If Windows were GPLed it would be on every desktop".

    In case you hadn't noticed, Java has done rather well without being GPLed.

  166. Re:If they do, it will all depend upon the license by rjshields · · Score: 1

    Try javaranch.com for friendly help. I'm not sure where you were asking, but I've mostly found Java developers to be a friendly and helpful bunch.

    --
    In this world nothing is certain but death, taxes and flawed car analogies.
  167. Re:If they do, it will all depend upon the license by pembo13 · · Score: 1

    Which distro prevents its users from install non-OSS stuff?

    --
    "Thanks for all the money you paid to us. We've used it to buy off ISO among other things" -Microsoft
  168. Re:If they do, it will all depend upon the license by kestasjk · · Score: 1

    This means end users will use closed source software, and build momentum for it, which means more people assume everyone has it, which locks more people into it. This is something open source should slow down and reverse, not accelerate and spread.

    --
    // MD_Update(&m,buf,j);
  169. Re:If they do, it will all depend upon the license by pebs · · Score: 2, Insightful

    You hit it precisely on the head. Linux and Java proponents tend to have a particular problem with being unsympathetic to n00bs

    Unlike Linux, Java is very well documented, so having to interact with a community is not necessary to learn and use it (the language itself). There's plenty of books, as well as courses you can take (since it is so mainstream).

    Once you start using 3rd party libraries and tools, then you might need to interact with the community. Just like any large online community dealing with tech, there's always a few assholes and elitists (it's people on the Internet, what do you expect?). If that's enough to push you away from a particular technology, you might as well give up on anything that requires interaction with people.

    --
    #!/
  170. Re:If they do, it will all depend upon the license by namekuseijin · · Score: 1

    "it was carefully designed to take the best of C++"

    like the barroque syntax or the performance? ;)

    "they are added slowly to avoid the mess that other languages grew into."

    so, it'll slowly get messy? :)

    yeah, even operator overloading eventually gets there. There already are several DSL features in the java world, like its many web "expression languages"...

    "there is a very good reason for having things in libraries - it allows competing implementations to provide functionality."

    that's no reason for making the language so bare...

    "object persistence is handled by language extensions (LINQ). The problems are that (1) everyone has to upgrade to the latest language version to use these features and (2) you only get the features in those languages."

    you don't mention the amazing language builtin benefits, like perfect integration with the language. LINQ expressions are expressions like any other. Far better than handling persistence by means of several sequential calls for methods with long names like its been done until now...

    (1) - upgrading to the latest language version is no more difficult than installing a new library in java
    (2) - it's actually just a syntatic extension handled by the parser. You can tweak current language parser to understand them and even get other language parsers to do the same.

    "I have never understood the objection to XML."

    well, java programmers used to its extreme verborragy actually think of XML as a pretty lightweight solution, comparetively. They'll really never "get it"...

    "Having a standard format for configuration that can be easily handled by tools and cleanly upgraded seems like an excellent idea."

    i wish it was as simple and straightforward as old fashioned key=value pairs... how much easily handled by both human and tools can it get?

    "Configuration by convention has its place, but sometimes having explicit statement of what is being done makes things clearer."

    that's "sometimes", not "every-friggin-time" like the java culture predicts...

    --
    I don't feel like it...
  171. Re:If they do, it will all depend upon the license by Decaff · · Score: 1

    like the barroque syntax or the performance? ;)

    Baroque syntax? It is the same as C++ - in fact a lot less baroque - none of the * or & nonsense.

    And sorry, but I can't take anyone seriously who says anything poor about Java performance. That is an issue that was dealt with years ago.

    yeah, even operator overloading eventually gets there. There already are several DSL features in the java world, like its many web "expression languages"...

    But that is not the point - the point is to keep the base langauge clean.

    you don't mention the amazing language builtin benefits, like perfect integration with the language. LINQ expressions are expressions like any other. Far better than handling persistence by means of several sequential calls for methods with long names like its been done until now...

    I have already shown clearly how language builtins hinder things. Having query features in a language is an utter waste of time for serious work - what you need is an option for external queries in SQL (or some other query language) which can be optimised by people who know what they are doing. Java persistence mechanisms (JDO and EJB) allow this (of course).

    Anyway, the majority of persistence in Java (and LINQ) is 'transparent' - objects are automatically retrieved as required and modified ones changed when transactions close. The amount of explicit querying should be minimal - which is why it is so dumb to have it as a language feature.

    I can use JDO on the JVM in Python (Jython) right now. Unless I am very much mistaken, You won't be able to use LINQ in IronPython on .NET like that. Oh, and you will have to upgrade your .NET development anyway (more money for Microsoft).

    (1) - upgrading to the latest language version is no more difficult than installing a new library in java
    (2) - it's actually just a syntatic extension handled by the parser. You can tweak current language parser to understand them and even get other language parsers to do the same.


    Oh come on. This is just rubbish. Since when has upgrading an entire language been as simple as placing a library file on the path? You are really stretching a point here. You may want to mess about with language parsers, but I just want to open a library and use method calls. This will only take me a few seconds to do. How many seconds will it take you to 'tweak a language parser'!!

    And, of course, you have completely neglected my point about being able to use things with old code. The new Java JDO can be used entirely transparently even with compiled old code from 10 years ago.

    well, java programmers used to its extreme verborragy actually think of XML as a pretty lightweight solution, comparetively. They'll really never "get it"...

    No - it is precisely the other way around - the objectors just don't "get" what XML is for or what it does: Not only does it allow any configuration to be validated, it also easily allows existing formats to be cleanly extended and transformed in standard ways, and it has standard mechanisms for embedding binary information and also can handle internationalisation.

    The 'verbosity' argument is plain nonsense - any decent editor or IDE will not only auto-complete your XML for you, but will also understand the definitions and suggest tags for you.

    i wish it was as simple and straightforward as old fashioned key=value pairs... how much easily handled by both human and tools can it get?

    No - that is a messy way to handle things, and a totally inadequate way to handle substantial configuration. You may think having several hundred key-value pairs is a really neat way to handle setting things up - I think it is an unmanageable and unmaintainable mess.

    I would love to see an example of someone trying to code up a tree structure in 'key-value pairs'!

    that's "sometimes", not "every-friggin-time" like the java culture predicts

  172. Re:If they do, it will all depend upon the license by namekuseijin · · Score: 1

    "a lot less baroque - none of the * or & nonsense."

    otoh, there's plenty of @ nonsense. :)

    "can't take anyone seriously who says anything poor about Java performance."

    ok, let me clarify: CPU performance got one better, memory usage grew up like craze -- specially with the 1000+ libs needed even for small projects -- and programmer performance went down a lot, drowned in endless abstraction layers, some dozens of APIs and a few IDEs open...

    "the point is to keep the base langauge clean."

    it's no that difficult when it's so featureless...

    "I have already shown clearly how language builtins hinder things."

    you have?! afaik, you've shown how such a featureless language is a great field for implementors of libraries to fill the void...

    "Having query features in a language is an utter waste of time for serious work"

    in an idealized world, object-relational mappings are perfect, generated queries are perfect and perform great and all that jazz. In the real world, serious work also means a few comprimises, including a few manual hacks so things work properly.

    "what you need is an option for external queries in SQL (or some other query language) which can be optimised by people who know what they are doing."

    why do they need to be external? why so much loose coupling, so many layers of abstraction? It's portable, modularized, loosely coupled, just like University teachers and academics in general like to tell. But all that at an incredibly brain twisting complexity and a huge framework of many different separate projects...

    oh, yeah, i forgot: that's enterprise babe!

    "You won't be able to use LINQ in IronPython on .NET like that. Oh, and you will have to upgrade your .NET development anyway (more money for Microsoft)."

    i'm not a .net fanboy and am just playing devil's advocate here, but i'd like to point out that .Net is a free download from M$. And you can always have the open-source mono or dotGNU. monoDevelop is shaping up like a cool VS replacement for people who absolutely need an IDE ( and sure complex and verbose techs like java and .net benefit a lot from semantic completion and module navigator )...

    "Since when has upgrading an entire language been as simple as placing a library file on the path?"

    If its backwards compatible, why not? A library file may require new dependencies not found in your current install and even perhaps language features, in the case of java libs...

    "You may want to mess about with language parsers,"

    not me, per se, but any interested parties, like people with compilers targeting the CLR...

    "I just want to open a library and use method calls."

    yes, i know java programmers are very lazy to create theirs own...

    "The new Java JDO can be used entirely transparently even with compiled old code from 10 years ago."

    well, that's very cool, i admit.

    "Not only does it allow any configuration to be validated, it also easily allows existing formats to be cleanly extended and transformed in standard ways, and it has standard mechanisms for embedding binary information and also can handle internationalisation."

    wow, man! what a load of marketroid terminology and enterprise jargon! i'll take a week to completely undestand it...

    "The 'verbosity' argument is plain nonsense - any decent editor or IDE will not only auto-complete your XML for you, but will also understand the definitions and suggest tags for you."

    yes, i know. I've worked with Eclipse and its many views, you know? It's still annoying, regardless, and specially the Ant build.xml. Wow, they really were able to transform a simple Makefile into an incredibly dull and verbose pile of attribute=values inside tags! Tag soup for soup nazis!

    Code completion will only get newbies nuts with so many different but similar options, while experient user

    --
    I don't feel like it...
  173. Re:If they do, it will all depend upon the license by drakaan · · Score: 1
    Let me make myself (slightly) better understood here, so you get the correct impression.

    The first time I decided to check into Java (at the time just at the hobbyist/experimenter level) was about 5 years ago. At the time, there wasn't a lot of online tutorial material that was answering the questions I was asking, and Java seemed unnecessarily complex, so I shrugged it off.

    The next time I got interested was as a result of a little contest that Sun or IBM had...I don't remember...where you program these tanks in Java and then let them battle it out together. Again, I found not a lot of online material that was answering the questions I was asking (primarily questions of the "why doesn't what I'm trying to do work" variety).

    In both cases it wasn't something I wanted to do badly enough to plunk down money for a book or some course, and in both cases, the community responses I got were of the "RTFM n00b" variety.

    I've been on both sides of that equation before...I sat in on the Perl-beginners mailing list for a few years, first asking, and then answering questions. In my mind, when somebody comes to a place like that to ask a question, you answer it...even a trivial question may be something that not everybody knows, but most people won't ask for fear of looking stupid.

    If I have to do something because of a genuine need, of course I'll buy the book or put in the sweat equity to get to where I need to be, but at the time that I cared about learning Java, that wasn't the case, and an attitude of elitism, whether real or percieved, was what made me say "never mind".

    --
    "Murphy was an optimist" - O'Toole's commentary on Murphy's Law
  174. Re:If they do, it will all depend upon the license by Decaff · · Score: 1

    otoh, there's plenty of @ nonsense. :)

    No there isn't this is only for one small feature (Annotations) of the latest Java.

    ok, let me clarify: CPU performance got one better, memory usage grew up like craze -- specially with the 1000+ libs needed even for small projects -- and programmer performance went down a lot, drowned in endless abstraction layers, some dozens of APIs and a few IDEs open.

    OK - I'll take the bait. Exactly which 1000+ libs do you need for small projects? Which abstraction layers?

    in an idealized world, object-relational mappings are perfect, generated queries are perfect and perform great and all that jazz. In the real world, serious work also means a few comprimises, including a few manual hacks so things work properly.

    Of course you can do manual hacks in JDO, EJB, Hibernate or whatever. But having a 'hack' built in to the language is no way to go.

    why do they need to be external? why so much loose coupling, so many layers of abstraction? It's portable, modularized, loosely coupled, just like University teachers and academics in general like to tell. But all that at an incredibly brain twisting complexity anda huge framework of many different separate projects...

    No. They neither need to be external, or have to be external. You don't have to have layers of abstraction if you don't want to. Things can be as simple as you like.

    You really do have some weird 'straw man' image of how Java developers work, don't you?

    "Not only does it allow any configuration to be validated, it also easily allows existing formats to be cleanly extended and transformed in standard ways, and it has standard mechanisms for embedding binary information and also can handle internationalisation."

    wow man! what a load of marketroid terminology and enterprise jargon! i'll take a week to completely undestand it...


    OK - let me explain slowly.

    "Configuration validated" - your IDE can see where you have made mistakes without you having to run the thing and get a program crash.

    "Existing formats to be extended" - You decide you have missed out a setting in your config file, or you want to combine someone elses config file with yours. You can fix this without causing your program to crash when it reads the new file.

    "transformed in standard ways" - Someone else has a config file format. You need to transfer your format to theirs. You don't need to do this by hand.

    "embedding binary information" - obvious, surely.

    "internationalisation." - a real tricky one. This means you can put international characters in your XML file so you can easily specify different settings in alternate languages.

    Slow enough for you?

    why is someone putting a tree data structure inside a configuration file for starters

    Oh come on - there are loads of reasons! One example is if you want a different maps of values: You might, for example, have a set of parameters that should be set to one set of words if the language is 'en', and another set of words if the language is 'fr'.

    Hey - that combines both structure and internationalisation - isn't XML cool? :)

    yes, i know. I've worked with Eclipse and its many views, you know?

    Yes, I find Eclipse immensely annoying - I use NetBeans

    It's still annoying, regardless, and specially the Ant build.xml. Wow, they really were able to transform a simple Makefile into an incredibly dull and verbose pile of attribute=values inside tags!

    Well, having had 25 years experience of tracking down obscure Makefile errors, give me build.xml and its validated format any day.

    Tag soup for soup nazis!

    Godwins law - you lose :)

    Code completion will only get newbies nuts with so many different but similar options, while experient users will write the most used tags and attributes so fast code-complete won't even come to

  175. 666 comments is unholy !!! by Anonymous Coward · · Score: 0

    the power of Christ Compels you !!!!!!
    must... stop... Sun ....from ...open source ....

  176. Re:If they do, it will all depend upon the license by namekuseijin · · Score: 1

    "No there isn't this is only for one small feature (Annotations) of the latest Java."

    one small feature here, another over there and suddenly, whoops! my language is crap! that's how it works... EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EM PTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!

    "Exactly which 1000+ libs do you need for small projects?"

    beyond the about 100 standard ones? ok, so i was a little over-the-top... ;) EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EM PTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPT Y!EMPTY!EMPTY!

    "having a 'hack' built in to the language is no way to go."

    it's not a hack when builtin. EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EM PTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPT Y!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY! EMPTY!EMPTY!

    "You don't have to have layers of abstraction if you don't want to. Things can be as simple as you like."

    this is not what java culture says. i guess you're in denial. If it doesn't use several Struts Action beans, form beans, some ant xml and struts-config.xml, it isn't really serious programming...

    "You really do have some weird 'straw man' image of how Java developers work, don't you?"

    i see them up close and menacing, dude. :) EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EM PTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPT Y!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY! EMPTY!EMPTY!

    "'Configuration validated' - your IDE can see where you have made mistakes without you having to run the thing and get a program crash."

    what does this have to do with xml? a simple key=value pair listing should suffice for most tools. it's far easier to parse as well... EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EM PTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPT Y!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!

    "you want to combine someone elses config file with yours. You can fix this without causing your program to crash when it reads the new file."

    why would my program crash if i just added some more keys to the repertoire? and keys it doesn't reconize are simply passed over with a warning to stderr... EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EM PTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPT Y!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!

    "Someone else has a config file format. You need to transfer your format to theirs."

    is that like having a camel getting transformed into a lizard? ok, ok, so there are a few intersection between the two formats. Again, they'd be represented by similar keys. :)

    "Slow enough for you?"

    you sure noticed i was being sarcastic, right? EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EM PTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPT Y!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY! EMPTY!

    "Hey - that combines both structure and internationalisation - isn't XML cool? :)"

    how about
    fr_word1=oui
    fr_word2=mademoseille
    fr_word3=bonjour

    and
    en_word1=yes
    en_word2=lady
    en_word3=good morning

    yay! key=val pairs are cool! and very easy to create parsers to. :) EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EM PTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPT Y!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY! EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!EMPTY!

    BTW, i saw no "tree structure" whatsoever in your example. I guess there should be so few reasons to put one into a config file that you couldn't even figure out one... :P

    "Yes, I find Eclipse immensely annoying - I use NetBeans"

    --
    I don't feel like it...
  177. Re:If they do, it will all depend upon the license by Decaff · · Score: 1
    one small feature here, another over there and suddenly, whoops! my language is crap! that's how it works...

    Exactly. That is what happened with C++, with Visual Basic, and is what is likely to happen with .NET languages.

    this is not what java culture says. i guess you're in denial. If it doesn't use several Struts Action beans, form beans, some ant xml and struts-config.xml, it isn't really serious programming...

    You haven't a clue have you? If you think Java web programming is just Struts! There is Tapestry, Seam (no config files!), RIFE, Wicket etc. Pick the way you want to work, and choose your framework. No XML if you don't want it; no action or form beans. Tapestry is used for some of the largest sites - that is serious programming.

    yeah, here's a lesson for you about automatic validation, like compiler validation:

    Some validation is better than none, especially when you are dealing with thousands of lines.

    Validation is not proof of correctness.

    Who said it was? But to say that no validation is better is idiotic.

    "Even the Mono developers have said that it is not suitable for scalable high-end work."

    a link would be nice. otherwise, i just don't believe it.


    OK.

    http://www.itwriting.com/monointerview.php

    "What is clear is that Mono (as opposed to .NET) is not currently designed for scalability or transactional distributed applications. De Icaza's comments suggest that this is unlikely to change..."

    is that like having a camel getting transformed into a lizard? ok, ok, so there are a few intersection between the two formats. Again, they'd be represented by similar keys. :)

    you are missing the point - intersections will break things.

    ah! is Java Data Objects those huge in-memory database of objects? hope not.

    Of course not (unless you want to use a in-memory database). JDO is extremely efficient - I have run batch processes where a single transaction can handle hundreds of thousands of records, with mimimal memory use.

    Anyway, Rails developers do everything as classes, rarely needing to tweak the SQL the framework generates for the classes..

    Which is potentially disastrous. Code up pages and logic based on what you think is in those generated classes, then all someone has to do is change the database a little, and your code goes 'bang'. It is a really dumb way to work - great to get things going - but very bad for maintenance. There are far better ways to work - especially in Ruby, such as Og. Designing your data model purely as database tables is extremely old-fashioned.

    "an API that lets you write a GUI that can display on HTML, WML, Flash, SVG, Swing, even VT100!"

    is it like a XUL xml document describing a GUI and then translated for several GUI engines? it's a task that just depends on sheer brute force from a huge taskforce. Java has a huge army of developers and they'll create all kinds of works for their platform. no big deal, just brute force...


    No, it is nothing like an XUL XML document describing a GUI. It is a component-based system into which you can plug different renderkits for whatever display you want to use, and you can dynamically switch use as the application is running.

    sorry for the EMPTY! thingie. /. seems to be suffering from some annoyance rules almost as bad as java's unwritten ones... ;)


    It is ok - but if you want to continue, how about some actual debates about facts, and not about what you think Java is like (as against what it is like?). I can provide plenty of facts to back up my arguments.
  178. Re:If they do, it will all depend upon the license by pebs · · Score: 2, Insightful

    So basically, random individuals on the Internet (who had no connection to Sun I assume) made you lose interest in a programming language. I can understand if the developers of a product are pricks and that turns you off of a product, but I'm sick of hearing "I don't use it because people told me 'RTFM' or 'Google'". That happens everywhere on the Internet. That's what anonymous/semi-anonymous non-face-to-face communication does to people. Get over it.

    So I take it you don't use Linux either because some big, bad forum jerks told you "RTFM" too?

    --
    #!/
  179. Re:If they do, it will all depend upon the license by drakaan · · Score: 1
    So basically, random individuals on the Internet (who had no connection to Sun I assume) made you lose interest in a programming language. I can understand if the developers of a product are pricks and that turns you off of a product, but I'm sick of hearing "I don't use it because people told me 'RTFM' or 'Google'". That happens everywhere on the Internet. That's what anonymous/semi-anonymous non-face-to-face communication does to people. Get over it.

    That's what I get for trying to offer a better explanation. I will refrain from writing "RRMFP" (reread my f-ing post) and try to address your response succinctly.

    No, random individuals on the internet didn't make me lose interest in a programming language. They prevented me from becoming interested in bothering to expend any effort to learn it, however. I mentioned that at the time, I was just curious...not in any particular need of learning Java, and I asked what I thought would be an easily answered question and didn't get any useful responses. At a certain point, I shrugged it all off, and said, oh well, who cares, and went back to hacking some huge and ugly Perl script.

    So I take it you don't use Linux either because some big, bad forum jerks told you "RTFM" too?

    Here's where I considered saying RRMFP. If you scroll up, you'll note that I actually had a need to use Linux, and put in the time and effort necessary to make it work for me. I also already said (two or three times) that the "RTFM, n00b" attitude is prevalent in both Linux and Java groups all over the place, although there are exceptions. My comment was an agreement that the Java and Linux communities share this problem, which I then followed with a personal anecdote to illustrate that point.

    I have nothing against people who enjoy programming in Java or any other programming language, I just have a certain distaste for the language itself because of my past experiences.

    Here's an analogy for you...not a great one: Say you buy a car...a Kia, for example. You like the car, but have a few small problems with it, so you take it to a local dealership to have it looked at. They ask you to describe the problem, and when you explain to them that it's making a funny noise, they laugh at you and tell you diagnostics don't show that there's a problem and you must be imagining it.

    After that happens a couple of times, you might get irritated. If you don't need to drive a Kia, you might even trade it in on a vehicle from a company that has been more considerate in response to your questions, and not really consider buying any Kia vehicles in the future.

    You sound like you're upset that my opinion of whether it's worth my effort to learn Java isn't affirmative, which leads me to assume that you like programming in Java. By that same token, I'd assume that you want me to believe that it should be worth the effort. The problem being that you're displaying (to a much lesser degree) the same type of attitude that made me not want to bother in the first place.

    Maybe one day, I'll be looking for a new programming language to learn again, and I'll bother with Java again. Maybe someone can even give a link to a Java beginners list that's actually easy on newcomers. Maybe Javascript and XMLHTTP will take over the world and it'll be a moot point.

    --
    "Murphy was an optimist" - O'Toole's commentary on Murphy's Law
  180. Re:What ? Eclipse has no issues with languages at by aliquis · · Score: 1

    But how many people tries to use two locales at once? I have no idea how it works, I run sv_SE.UTF-8 ;/

  181. Re:What ? Eclipse has no issues with languages at by JanneM · · Score: 1

    But how many people tries to use two locales at once?

    It's not running two locales. I run one locale (sv_SE.UTF8), but want to write sometimes in English (which uses the same input method as Swedish), and sometimes in Japanese (which uses a different method).

    You'd get the same kind of issue (though perhaps not this exact problem) whenever you want to use an input method different than the one that is default for your language. There's no shortage of European and US language students, for example, or bilingual people that want to write in a different language (and not infrequently mix languages in the same document). Many of the worlds largest languages use different input methods from indoeuropean (and different from each other). You want to write a proposal to a manufacturer in China? Or, you're customer contact for a Taiwanese company and need to answer an email from India in Sanskrit?

    Locale, font set and input method have been (finally, painfully) separated for very good reason - remember the bad old days when it was the same, and you had to deal with codepages and other utterly painful hacks for this?

    --
    Trust the Computer. The Computer is your friend.