Slashdot Mirror


GNU Christmas Gift: Free Eclipse

Mark Wielaard writes "Your friendly neighbourhood GNU did it again. A year ago IBM made much noise about placing $40 million of its software tools under a free software license. Technically these tools, called Eclipse, are great for developing (java) software. There was only one catch, it was build on top of the proprietary java platform. This made it useless for the Free Software community. Luckily the GNU project has two projects that come to the rescue. GNU Classpath, core libraries for java, and gcj, the GNU Compiler for Java. We are now able to run Eclipse on a completely free platform! It is not yet complete, but you can already edit, compile and browse CVS with it. And since Eclipse uses GTK+ it also looks very nice. I setup a page with instructions on how to get this working so you can help us make it work even better or just so you can view a couple of nice screenshots."

9 of 250 comments (clear)

  1. Re:sun and java by nomadic · · Score: 2, Interesting

    Because developing and giving it away for free just isn't enough.

    And the president and board of directors should come to our houses and mow the lawn every Sunday afternoon.

  2. Java on the client-side needs this to compete... by javabandit · · Score: 5, Interesting

    As someone who has written several Swing based applications, I can say that Java sorely needs this kind of a shot in the arm for the client-side to be even remotely feasible.

    Up to this point, Sun has ignored the client-side, and rightly so. Because Microsoft and MFC rules on the client side (on Win32). Sun exploited the server-side breach that Microsoft had ignored.

    But now, Java needs to become a viable alternative to C++ based programming on the client-side. And the only way this is going to happen is for Java to have some kind of a native GUI presence on each platform it runs on. This is where IBM and the SWT libraries come in.

    Currently, the SWT libraries are still immature. The Eclipse platform itself is still immature. But they will get better and better. I predict that the SWT libraries will not only get quite expansive... but include things other than GUI widgets/toolkits.

    If IBM plays their cards right (and so far they have)... I can see them actually introducing more Java extension libraries for other things that Sun did a terrible job on. Collections. Better native threading model. Better I/O model. The list goes on and on.

    Personally, I would have no problem with writing a Java application that only imported IBM extension libraries. As long as they were well-written, and performed well.

    Sun really needs to get on the ball here. The time has come to open-source Java. Let the developers do with the language what needs to be done to bring it to the next level.

    Otherwise... companies like IBM are going to do it anyways. Just using extension libraries. If Microsoft was smart, they'd have done five years ago what IBM is doing now. Microsoft would own Java on the client-side if they would have played it right.

  3. Just use Anjuta by DuckWing · · Score: 4, Interesting

    Why is there a big deal about this, other than the promise by IBM and making good that promise? Anjuta DevStudio, which is one of the best GUI IDE's on Linux IMHO, supports Java. I personally havean't gotten into Java, so I could care less about this, but Anjuta is fully GPL'd already.

    --
    -- DuckWing
  4. Waste of Effort by kindofblue · · Score: 5, Interesting
    I think Eclipse is pretty damn good. If it could be sped up by precompiling critical parts using GCJ, and integrating with any good Java VM, then that would be great. However, reimplementing the entire (Java) API using "Free" code seems like an extraordinary waste of effort. Realistically, there would always be some mismatch between the official API and the free version, meaning that the Java API would be forked in a subtle way. That benefits Microsoft immensely.

    I think that the Java libraries will be very difficult to control fully by Sun, because they do not have IBM and Oracle to push around. IBM will absolutely not be backed into a corner by one of their main competitors in hardware, Sun. Because of that, I'm not worried about the Java APIs turning into a controlled arena, as Microsoft has done with Windows.

    Basically, I think the effort of the Open Source community, of those that like Java, would be much pretty spent on making GCJ integrate seemlessly with a compliant Java VM using JNI. GCJ could used to make a just-of-time optimizer. With C# and dotNet, I think there's an ahead-of-time compiler instead of a just-in-time compiler that can optimize the byte code for the target machine. Using GCJ/GCC, one could get that sort of performance boost, almost for free, if it were plugged into a compliant Java VM, meaning that it could integrate with DLL/DSOs using the Java Native Interface.

    Anyway, I, for one, would probably not waste my time using a slightly out-of-date API, on a slightly behind-the-curve VM or compiler. (BTW, I'm a heavy user of emacs, perl, mozilla, etc.) The java API, language and VM still has a LOT of room for improvement. I hope developers would rather innovate and improve the java standard than to fork off a clone.

    1. Re:Waste of Effort by Anonymous Coward · · Score: 4, Interesting

      But they CAN'T innovate and improve on Java because Sun holds the ropes. I've been reading in Infoworld that Sun is looking to make more money from Java .. somehow .. and that worries me a little.

      I'd like to see a Free clone of Java, and then a community develop around the clone to CHANGE it into a better language. For instance, I'd like to see templates ("generics") added to java. I'd like to see type-safe enums. I'd like to see some "syntactic sugar" to make programs easier to write and read (hello, iterators). I'd like to see a GNU/Java implementation that has all this stuff and more, but is still backwards compatible with Sun/Java.

      I'd like to see native-code only Java. I'd like to see GTK+ bindings for Java. I'd like to see all the old library cruft cleared out of Java. Heck, I'd like to see Java pre-installed on Red Hat, without coming on a separate CD with a separate license and a crappy RPM that was made by Sun. I wish it was available on FreeBSD sooner. I wish a lot of stuff that's only possible or easy with third-party implementations.

    2. Re:Waste of Effort by kindofblue · · Score: 3, Interesting
      I'd like to see a lot of those things exactly. Generics are coming in the next java version, I think 1.5. It started out as a research project apart from Sun, named Pizza or maybe it was GJ (Generic Java), and then got folded in. Sun definately needs to relinquish more control to its community process.

      Many of the features you describe could still be done by compiling a Java++ superset language into the same bytecode or by translating to java code, like AT&T's cfront did for the original C++. The native-only stuff could be done directly on the byte code, or using something like GCJ to optimize java/java++ to machine code. Way back in java 1.0, SGI had a tool called javat which did almost that. It translated bytecode into machine code, but was not good at optimizing it. That's where GCJ/GCC would be very handy, since there's a full optimizing compiler in it. But my point is that these examples could still be done with the existing Java VM architecture. Language features, alternative syntaxes, and optimizers don't require reimplementing everything from scratch. IBM's jikes compiler is a very fast java compiler (written in C/C++) that adheres strictly to the Sun specifications, but it is buggy as hell. Reimplementing these things is not trivial.

      Anyway, I agree that rapid innovation is definately easiest when all the source is available. Mozilla, Linux, and emacs (in the 90's) are great examples of that. Rapid innovation is great for applications because the end-users can benefit immediately, and if something changes, then they can change their habits.

      However, for languages and APIs, standardization is very important. Many things depend on them: Documentation, applications, example code, tutorials, third-party books, training seminars, university courses, etc. which are all in the realm of developers. Developers suffer when source trees, APIs, or software practices become needlessly fractured. HTML and the Netscape/Internet Explorer browser wars is a great example of how web developers were saddled with two camps of HTML and zillions of incompatible dialects and implementations. We are still burdened by incompatibilities from those rapid innovation cycles.

      My ideal scenario would be that I could take JAR files from GNU, Apache, Borland, Oracle, IBM, etc. and mix them together and get an optimized precompiled (maybe native-only) executable. But some standardization mechanism is needed so they can all talk to each other, (unlike the horrible linking incompatibilities between all C++ compilers). It doesn't have to be Sun; maybe it could be Sun/IBM/ECMA/ANSI. But it will likely be some company, since non-profit standards bodies usually move very slowly. Linux, for instance, has been standardized for the corporate world by RedHat primarily, not the UnitedLinux group or even Linus (who's focus is the kernel).

      The important consideration is that there is a limited set of developer resources, even with thousands of open-source community eyeballs. Microsoft is the prime competitor to java, and Sun, IBM, Apple, etc are not. They are closer to being corporate resources and allies. As long as they remain good supporters of a unified java and don't create obstacles to the future use of these APIs/VMs, then I don't see why we shouldn't use them as resources, and thereby build upon their work instead of duplicating it.

  5. Re:Free Software Community by Apreche · · Score: 2, Interesting

    I'm with you there. I've always used Sun for all my java codin' and I've never had a problem. If it aint broke, don't fix it.
    I mean sure, I don't have the source code for it, but it's object oriented. If there's somethign I don't like I can write my own.
    Like I would know how to edit, let alone write, code for a compiler!

    --
    The GeekNights podcast is going strong. Listen!
  6. Give me a break by leereyno · · Score: 4, Interesting

    "There was only one catch, it was build on top of the proprietary java platform. This made it useless for the Free Software community."

    There is plenty of java code that has been released under the GPL and BSD licenses. The only way that java would be useless to someone is if they turned their nose up at it. Turning one's nose up at something for non-technical reasons is usually a bad idea.

    Lee

    --
    Muslim community leaders warn of backlash from tomorrow morning's terrorist attack.
  7. SWT vs AWT/Swing by Latent+Heat · · Score: 3, Interesting
    Your mention of the Linux and Solaris SWT bindings as separate bindings raises interesting questions about Java and the degree of Java Political Correctness.

    AWT/Swing doesn't have or need bindings because 1) they are 100% Java or 2) to the extent that they are not 100% Java and need to JNI down to something, that something is distributed with the Java VM that appears on each machine, so you don't need to distribute any platform specific AWT/Swing bindings with your app.

    SWT needs separate bindings for each target platform -- it becomes like wxWindows or Qt in that regard. If you want to distribute an SWT app, you need to distribute those bindings, or tell your users how to install the right binding on their machine. But then you are into a bindings model rather than a true "write once, run everywhere" model.

    My remark about J++ may not be completely off the mark. To the extent that C# is in reality J++, and that WFC was transformed to System.Windows.Forms, and to the extent the Mono is going down the bindings road to port System.Windows.Forms (to answer your question, 2002 - 1997 = 5 years to get Linux and Solaris versions of WFC), and to the extent that Miguel gets lambasted for doing what he is doing, why should Eclipse/SWT get a free pass for doing a similar thing with Java?