Slashdot Mirror


JBuilder Foundation is Free - and for Linux

ZioPino writes "JBuilder Foundation is a free, fully functional Java IDE. It's available for download now at the Inprise Web site. This version is 100% Java and runs on Linux, Solaris and Windows. There is also a very cool debugger. "

11 of 261 comments (clear)

  1. Great news, with one gripe by matasar · · Score: 4

    It seems like Slashdot of all places should know better than to call something "free" without specifying whether they mean it in the beer sense, or the speech sense. I'm now seeing why ESR started the "Open Source" movement. I got all excited when I saw that Borland was releasing something "free" -- it's still great news, but I got my hopes up.

    A bit more on the subject at hand, I'm glad to see two huge Java announcements for linux in the last 2 days -- it's great news for Java developers. I intend to try out JBuilder as soon as I can

    Ben

  2. free java IDE for win95/98 by enmity. · · Score: 3

    I haven't been around the block much as far as Java is concerned, but from what I've seen in the last few months as I taught myself to code in Java, the freejava IDE (http://www.freejava.co.uk/) has proven to be incredibly satisfactory.

    I read another comment posted in regards to this topic as to what a Java IDE had over a text editor besides color context, etc -- but it seems to me that freejava, coupled with the latest JDK and Franck Allimant's winhelp versions of Sun's JDK help files (available free at http://www.confluent.fr/javadoc/indexe.h tm) becomes to Java what I remember Turbo C++ for Windows to be -- a sleek, simple developing environment with enough functionality to satisfy both hobbyists and serious codehackers at the same time. (I won't claim to be more than a quasi-serious codehacker though, so don't come to me if freejava doesn't have enough oomph for your projects!)

    (freejava can even be configured to use those winhelp files at the touch of the F1 key -- by far the most useful of its features for someone like me.)

    enmity.

  3. Re:Gripes with java by Eman · · Score: 5

    Just a couple of comments to your comments on Java. Note that I am not saying that Java is the best language in the world. My philosophy is choose the language best for the job. But I think that maybe you should expand your horizons a bit with programming languages. C isn't all roses either. (C has it's place, but again choose the language for the job).

    First your complaints:
    1. No pointers. It can't possibly be a programming language.
    Well, what can I say about this thought provoking comment (yes there is sarcasm there). First of all it could be decently argued that Java does have pointers (just not in the sense that C does). Excluding the primitive types (int, char, etc.) variables are references to objects. These references are pointers, although they are a bit restrictive. The reference is type bound to a specific object type so you have to cast it either explicitly or implicitly to have it point to a object that is not it's type, but C pointers have this issue also. IMHO typeless references to objects like found is Squeak (based on Smalltalk ) is much better.
    But even if you don't count references as pointers many good languages don't really have a pointer and we consider them good. From my (very limited) experience in functional languages there really isn't pointers. Just lists and atoms. So not having pointers is not a bad thing depending on how the rest of the language is implemented.

    2. People say it has no #includes, yet there continues to be this funny, mystical command called 'import'...
    I see why you would think these are the same since they seem like they have similar functionality. But they are actually pretty different. #includes are pre-processor commands that actually insert the text in that place before the code is run through a compiler. imports are more like namespacing in C++. You don't have to import a object or set of objects before using them. If those objects are in your classpath then java will already know about them. The only thing that importing does for you is allow you to not have to type the fully qualified name. This is vastly different than #including. Go back to your class if you don't understand this becuase any class should have made this clear.

    3. Strings are a class!!! /* snip the rest of this complaint */
    This is a good thing. It gives a string a formal defination instead of merely being a pointer to a bunch of characters (like C does). Given the equals method isn't exactly intuitive. A actual == would have been much better, but in order to do that Java would have to allow operator overloading which I don't believe it does. You could argue that it should have operator overloading, but as we have seen this can easily lead to abuses of operators (see C++ for a good example of this. Yea, lets use the bit shift operator to output to a stream). So what I am saying is that by having a string as an object makes it better because it makes a string more formally defined, and it allows it to be more uniform with the rest of the language. AKA a good thing.

    4. Java treats everything like an object./* snip the rest of this complaint */
    Another good thing. Actually one of my biggest complaints is that it doesn't treat everything as an object. It still also has primitives. This causes confusion by having both and Integer object and an int type. (there are also other primitives that are duplicated as objects). I'm not saying all languages should be all objects, but my thought is that you should choose one or the other. Either all primitives or all object. This mixing just causes confusion and inconsistancies in the language. That said, Java treating most everything as an object comes from Smalltalk. Smalltalk (such a great language) literally did treat everything as an object. This provided a very easy, simple, yet powerful language. The grammer of the language is basically just [object] [message] [period]. Very simple, very elegant. By Java treating most everything as an object they are creating a very small consistant environment. C has forty million types (although maybe I'm exaggerating a bit), Java (minus those annoying primivates) just has one. A reference to an object (although as stated earlier these reference to the object are to a specific type of object basically voiding this great feature).

    As to your comment of Java being a cross between C and Pascal I would disagree. I would best describe it as the syntax of C crossed with the design of Smalltalk. The only major annoyance that I see is that they didn't take enough of the Smalltalk design and use some of the C design causeing inconsistancies in the language.

    As to the java compilers written in java I see no problem with this. GCC is very cross platform, but it pays a price for that by have a bunch of code to deal with platform issues. A java compiler will work under any platform without the extra code. There is the speed issue, but this could be removed by compiling the compliler to native code (GCC and I think the symantic compiler will do this).

    So, yes Java has some faults, but IMHO I think it is still a pretty nice language (although you can probably tell that I am partial to Smalltalk when it comes to OO languages). The complaints you bring against it are pretty much unfounded and if I were you I would consider doing two things:

    1. Get your money back on that course you took, becuase there are some important concepts that they did not teach you.
    2. Learn some other languages. You seem a bit set on C. You know what they say. When all you have is a hammer everything looks like a nail. That way when you have a project to do you will be familiar with many language and can then pick the best langauge for the job.

    Also please note that I am not trying to offend you in any way. Just trying to correct some things you asserted. Feel free to do the same to me as I'm sure their will be many false assertions :)

    --
    Eric Anderson
  4. Gripes with C++ by Y · · Score: 5

    I know you've said in a later post that this was tongue-in-cheek, but I thought I'd add my 2 cents here, anyway, since a lot of people vehemently feel that Java (among other languages, e.g., Scheme) is the worst thing to (dis)grace the programming scene.

    The really nice thing about Java and its object-oriented system is that you can mathematically prove that your answer will be of a certain type (a.k.a object), assuming you've written proper code. There is no such guarantee in languages like C++ or C. By giving you the right to directly access memory (via pointers), you lose any chance of definitively predicting the output of your program.

    In C, you're told upfront about this - Kernighan and Ritchie explicitly state in the C reference that "types" merely encode the amount of memory you need to allocate for a specific piece of data.

    In C++, you are promised real types, but C++ is a superset of C, and you still get all of the direct memory access and other low-level functions that ruin a real typing system. In C++, everything is bits when you get right down to it - even memory addresses.

    Let's say you write some code that makes a list of some sort where each node refers to the next node on the list as a node. You finish the code and hand it off. Now some other programmer is called to extend your code. This programmer finds that (s)he can speed up an insertNode(...) function by bypassing your setNext(), etc. functions and directly rewriting the "next" field with some numerical memory address that the new code calculates. By doing this monkeying around, you sacrifice

    (a) readability - the next coder to extend the program is going to have a tough time trying to figure out what "blah.next = 0xfff + calcAddr()" means.

    (b) predictability - by not working with the list as a whole, i.e., as a list, you can no longer make assumptions about its "listness" and how that affects the outcome of the program.

    (c) maintainability - this really is pretty much the same as (a), but it extends a little further. Once you start down the dark path, the code you write to fix the hacks become a hack itself, until you have extremely bloated software.

    To reiterate:
    1) No pointers - This is good. People abuse pointers.
    2) #includes - this has been covered, but just copying the code into one big lump file is not all that great of an idea.
    3) Strings are a class - I think deep down they aren't, but this relates to
    4) Everything is treated like an object - great! now you can prove things about your program.

    For reference, read Luca Cardelli's paper on type systems. It is extremely well-written and I think it is suitable for the layperson.

    You can download a PS or PDF file from
    http://www.luca.demon.co.uk/Bibliogra phy.html.

    The paper is aptly titled "Type Systems" and more concretely nails down the points I am trying to make here.

    Btw, if you mean vasectomy, that is the process of removing a man's ability to produce sperm... I'm not sure how that fits into a description of a programming language, or I could be reading the word wrong.

    -Y

    --
    "There is no culture in computer science, only cults." - M. Felleisen
  5. It kicks by doog · · Score: 4

    I have found this new release coupled with the new Sun/Inprise JDK is very usable. Java on linux is an option now, the blackdown JDK was so slow it was unusable. Now I can actually switch my development from NT. This is GREAT. I'm developing a small vertical app using java servlets. Under NT, I was looking at paying $2000 or more for the servlet runner, the JDBC driver, and SQL server. Now with Linux, Apache, Sun JDK, Jbuilder, JServ and MySql, I have everything I need, and its free. Way to go inprise.

  6. Re:Gripes with java by rjh · · Score: 5

    Honest truth, I think you didn't get as much out of your Java class as you should've. Whether this is due to your performance or your prof's teaching skill is something I'm not qualified to comment on. With that said, here we go:

    1. No pointers. It can't possibly be a programming language.

    PROLOG and LISP were developed as languages to emulate human intelligence with, and they steadfastly avoid pointers. Both of them are really cool languages, too; when was the last time you saw natural-language written in C?

    Computer science is, at heart, about information. A computer science education should teach about ways to store and represent information, different paradigms of information, and the ways in which information oftentimes cannot be accurately represented using only one scheme. Pointers are one scheme, but they are not the only scheme.

    Now, strictly speaking you're right in that Java doesn't have pointers; it has references. Everything you want to do with a pointer you can do with a reference, though, with the exception of pointer arithmetic. While I admit that it took me a while to get over the mental block of not being able to juggle pointers the way I do in C, I can't honestly say that it's a major hindrance.

    2. People say it has no #includes, yet there continues to be this funny, mystical command called `import'...

    import != #include. Import is analogous to a `using' statement in C++ -- `using namespace std' is the C++ version of `import java.lang.*'. An #include is a preprocessor directive which prepends the contents of the listed header files to your program code. An import statement just makes it possible to refer to Java objects and methods without using their fully-qualified names.

    3. Strings are a class!!! Whose dumb idea was it to take a string, call it a class, and make stringVariableName.equals(someOtherString); be a strcmp(a,b);?

    Short answer: must've been Bjarne Stroustrup's -- you know, that C++ guy? -- because they're objects in C++, too. It's one of C++'s strengths. C is a beautiful language for a lot of things, but text processing is not one of them. Text processing in C is a remarkably painful experience -- and if you think otherwise, I can only remark that you must not have encountered the joyous and elegant way in which LISP handles it.

    Remember, information exists independent of paradigm. C's paradigm for handling string information is pretty poor. Better paradigms exist, and while Java's implementation of a String class isn't perfect, it's a definite improvement.

    4. Java treats everything like an object. Everything, Integers used in a for loop do not need to be objects! (ok so i'm exagerating a little)

    Well, barring the fact that the primitive data types in Java are not objects, you're right. This is viewed as a strength of Java by a lot of people, myself included. Lots of truly elegant languages, such as Smalltalk, treat everything as objects. I've used Smalltalk only a little, but there's a reason why it's still around today.

    To hammer a point home: information exists independent of paradigm. Procedural paradigms, object paradigms, list paradigms -- they all have the same ultimate goal, and that is to permit us to productively manipulate information. The wise hacker, instead of dwelling purely on one paradigm, will adapt to whatever paradigm best suits his/her needs at the moment. There are instances in which procedural languages (C, Pascal, Ada83) are best. There are instances in which procedural-object hybrid languages are best (Ada95, C++). There are instances in which list-based languages are best (LISP). There are instances in which set-based languages are best (PROLOG). There are instances where object-based languages are best (Java, Smalltalk).

    The wise hacker uses whichever is best suited to the situation. Holy wars over "my language is better than your language" belong to the lamers and lusers. We're hackers; we know better.

    IM(ns)HO java is C with a vesectome (in the words of a friend), or best described as a cross between Pascal and C, with the useful components of both removed, but portability up the wazoo...and down the other side.

    Which "useful components" of both have been removed? Pascal, remember, was never intended to be a real language. Niklaus Wirth is on record as saying that "if I had known people would take Pascal so seriously, I would have been more careful with its design". Wirth intended for Pascal to be a teaching language, first, foremost and only. Java is a very good teaching language; the syntax is simple, the language is fairly self-consistent, and its crossplatform nature means that when students write their programs at the college on UNIX boxes, they can take their programs home and show it off to Mom and Dad on their Macintosh. You'll probably look down your nose at those people -- but those people are beginning the long road to hackerdom, and anything which will spark their interest and make them think "this is cool" is a Good Thing(tm).

    Insofar as throwing away the useful components of C, the only thing that it threw out was pointer arithmetic. Which, as I already showed, isn't a big deal at all.

    Java's portability is not a major issue for a lot of programmers. Even if Java wasn't as rabidly crossplatform as it is, it would have a lot to recommend it.

    And now...they have java compilers written in...well...java. Wonderful, next thing you know linux kernel will be ported to QBasic!

    Did you know that GCC is written in C, and they use one version of GCC to compile the next version of GCC? Really. This isn't at all uncommon; in fact, it's usually a sign of a well-designed language if you can write a compiler for the language in the language.

    If anyone wants to discuss these things further, either reply to the message or use my EMail address listed at the top. It's there for a reason, folks. :)

  7. JBuilder Foundation evaluated by Anonymous Coward · · Score: 5

    I've just downloaded the new JBuilder Foundation (I choose the Windows version) and did a quick evaluation. I use "native" JBuilder Enterprise all day for a living, so I might probably know what I'm talking about:

    First step - the download:
    it was ok so far, but you have to be a community.borland member in order to get your license code. I already was, but newcomers should better be told that it's for free and doesn't come with any drawbacks.

    Second step - installation:
    no problem here

    Third step - starting it up
    The first time you start it up you have to type in your license code.
    Start-up itself is fast, I didn't believe it, but it's well faster than my "native" JBuilder3!

    Lastly - checking it out
    People used to "native" JB3 will feel home from the beginning. It's pretty similar, but a lot of details are unique. And it's very responsive! I didn't have time enough yet to check everything out properly but I'm _very_ impressed so far! And hey, the online-help loads up by a blink of an eye - try that with "native" JB3 ;-)

    BTW - IMO it's pretty clear that JB3 Foundation blows away NetBeans by order of magnitudes, but then again I'm long INPR, so you may discount my opinion as somewhat biased.

    Do your own research!

  8. Windows is Free of Fully-Functional Software :) by SEAL · · Score: 3

    Hehe that about sums it up.

    SEAL

  9. To sum things up... by Rilke · · Score: 5
    Tons of java over the last couple of days...

    Inprise takes the Blackdown jdk port, adds the things they need to implement JBuilder and give it away, and gives the jdk back to Sun. Cool.

    Sun totally disses blackdown by ignoring them in the press release, not giving them any info about what Inprise was doing, and so far at least not offering to share the code.

    After years of promising an open java standard, Sun once again withdraws java from the standards process.

    When RMS calls for an open source alternative, Sun proudly states that it can't be done because the current public spec doesn't describe enough of the system
    ( http://www.techweb.com/wire/stor y/TWB19991208S0022)

    I'd say Sun as pretty much shown their true colors this week.

  10. This is part Blackdown work. by Forge · · Score: 3

    Roblimo, and the rest of the Slashdot crew, be careful to list them by name on any story that mentions Sun or Borland Java software on Linux.

    --
    --= Isn't it surprising how badly I spell ?
  11. Try Freebuilder by Megaweapon · · Score: 4

    In case some people don't know it exists, there is a free (as in speech) Java IDE over at www.freebuilder.org.

    --
    I'm sure "SlashdotMedia" will improve on all the wonders that Dice Holdings blessed us all with