JBuilder Foundation is Free - and for Linux 261
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.
"
Re:Windows version (Score:1)
Re:'Linux' ? (Score:1)
Re:This is part Blackdown work. (Score:1)
Re:Great news, with one gripe (Score:1)
Looks like they have "web designers" working at Inprise. Got the same when using NS3.0x.
What grade did you get? (Score:1)
More on Pointers - No pointer math -- THANK YOU! Array bounds enforcement -- THANK YOU!
#include - import only loads the classes you actually use in the code, not the entire package.
Strings - They SHOULD be a class. If you want to treat them like C++ strings, use the StringBuffer class. They should have overridden the == operator though.
Objects - DUH! Java is an OBJECT-ORIENTED language. What should it do, use procedures? Integer is an object, int is a primative. That is just what you should have learned the first day of class.
Java is a tool, like any other language. Learn to use it and use it for the right job and it is a great language.
Re:Great news, with one gripe - goddamn preview (Score:1)
Looks like they have "web designers" working at Inprise. Got the same when using NS3.0x.
I think you mean RMS (Score:1)
Not to degrade your point, but ESR (Eric Raymond) didn't start the Open Source movement. That honor belongs more properly to RMS (Stallman). Both have done a great deal to promote Open (or "Free") Software, each in their own way, but it was Stallman who first came up with the idea of the GNU "Copyleft".
Re:Gripes with java - Operator Overloading (Score:1)
Example? +
1+1 = 2
1 + "2" = "12"
Mirrors? (Score:1)
Re:Gripes with java (Score:2)
--
Mike Mangino Consultant, Analysts International
Re:License Code? (Score:1)
Err
I think it makes more sense to use either capitalization (Free=Open Source, free=no paying required), or distinct terms (Open Source = open source, free = no payment required), especially since to everyone _not_ in the Open Source community, "free" means "you don't have to pay for it."
Re:Gripes with java (Score:1)
Re:Gripes with C++ (Score:2)
You can write stupid code in any language.
1) No pointers - This is good. People abuse pointers.
Oh, I guess MacOS is better than Linux, because
you have no command line in MacOS and people
can abuse the command line. Linux is so crap,
all you have to do is type
# rm -rf /
and you'll screw up your entire system.
If you believe in disempowering people because
they *can* abuse something your argument makes
perfect sense.
To me this summarises the entire java/C++ debate. The whole philosophy behind java is you can't trust the programmer,
- no pointers, you might abuse them,
- no operator overloading because some people abuse it, too bad if code is twice as long and hard to read, we must protect people from themselves.
- we'll take care of the memory management because
stupid programmers can't handle it. But we'll do a half assed job of it so JBuilder grinds to a halt with less than 128M RAM. You better make sure you've taken care of all those dangling references though. If you can't even take care of whether you've deleted your objects or not, stay away from programming altogether.
- no templates, they're too complicated - we'll
just force people to cast all over the place or
write thousands of little utility classes.
- no multiple enheritance, its too complicated to use properly. We'll just give you a cut down version in interfaces (although I kindof agree
with this one
2) #includes - this has been covered, but just copying the code into one big lump file is not all that great of an idea.
WTF are you talking about
#include files are meant to define interfaces
3) Strings are a class - I think deep down they aren't, but this relates to
if (you == "bozo")
cout "I'll stick to C++ thanks\n";
if (!you.equals("bozo"))
System.out.println("but server side java works nicely\n");
4) Everything is treated like an object - great! now you can prove things about your program.
You can't prove anything useful about non-trivial programs. When you're ready to write some non-trivial programs, you might want to try C++. Just kidding, Java is not a bad langauge, C++ does have flaws, but this argument about protecting people from writing bad code just drives me crazy. A bad programmer is useless in any language. Designing interfaces for beginners only is bad enough, but designing programming languages for beginners only is too much.
JBuilder free, but is it good? (Score:1)
Re:I think you mean RMS (Score:1)
Re:c++--++ (Score:1)
I think the lowest point of that course was to be told in the 10th week that all the Eiffel compiler did was to translate your source into C, then it called CC on the intermediate file.
I dodged the Smalltalk sessions and got myself on the C/C++ course
And WTF is wrong with the Moderators today? Has a load of good, cheap crack started flooding the market? I've seen valid rants about Java dissed down to -1 Flamebait, regardless that they made good points, and piss poor attempts at sarcasm and humour ramped up to +3 Funny!
Boy, oh boy am I looking forward to metamoderate your lily white arses!
(Now watch this go to : Score -1: Made valid points but pissed off the 5krip7 k1dd13s doing the moderating today)
Re:Anyone succesfull in getting a key? (Score:1)
Re:Know that which you condemn (Score:1)
Re:License Code? (Score:2)
I do disagree with a few things you've said, as well as understand that my post wasn't exactly clear, and I'd like to say a few things; perhaps, if you respond in turn, I may learn something.
By your own statement:
>The convention I use of capitalizing "Free" when I want to draw attention to the word and its meaning is by no means universal, the fact that ZioPino didn't capitalize it is an indication of nothing.
Since you chose to capitalize "Free" to "draw attention to the word" instead of italicizing it, you'll have to forgive me for not being familiar with your personal conventions. From what I've seen of common usage on Slashdot, free is free-of-cost, while Free is free in the "Free software" sense.
>I'm at a loss as to what the "nonpolitically stunted meaning" would be.
Sorry for the lack of clarity. That was a combination of missing my morning coffee and irritability. What I meant was the "whatever definition of free you may have that does not mean free in the monitary sense", or something like that.
>>All I'm saying is, there's no point in trying to start a flame war,
>Than why do you appear to be trying to?
To be an ass about it (meaning, don't take this seriously), I probably "appear to be trying to" because you're naturally defensive.
To answer honestly, that was not at all my intent. My point was (and is) that I have seen people on Slashdot chided for using free in the financial sense to feel that perhaps those who assume that the word free taken alone means anything other than financially free are perhaps missing something.
In short, it seems to me that Slashdot assumes that free means financially free, and that some of the most vocal Slashdot posters assume one of the other definitions.
It's Rob's baby, and if he prefers free to mean free in the financial sense, it's his right.
>>As such, what did you hope to contribute to the discussion with your post?
I'm glad that you did not take this as flamebait, as it was not meant as such.
Again, I'd like to thank you for responding in such a manner to my post, and I'd like to also say that if anything here sounds sarcastic/rude, that is not my intent.
-chet
Re:It kicks (Score:1)
Two questions (Score:2)
2) All sites and mirrors appear to be very slow, not only for download, but also for the login. I once was able to see the login screen and click on 'new user', but it timed out again. Does one need different keys for Windows and Linux? What kind of information do they want from you?
I might decide not to download after all...
Re:requires KDE? (Score:2)
KDE is the suggested platform since it uses a WM that showed to be very compatibile with the Linux JDK.
--
Paolo "ZioPino" Ciccone
License Code? (Score:2)
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.
...
Third step - starting it up
The first time you start it up you have to type in your license code.
I thought Roblimo said this was Free software? This doesn't sound Free [gnu.org] at all to me. I can't get to the site to check for myself, it gives me a "Forbidden" error.
----
Re:Mirrors? (Score:1)
--
Paolo "ZioPino" Ciccone
Great, but now we need poll() (Score:1)
Excellent! (Score:2)
Things just keep getting better for Linux. Woo-hoo!
----------------
"Great spirits have always encountered violent opposition from mediocre minds." - Albert Einstein
Re:JBuilder Foundation evaluated (Score:2)
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.
Be sure to use a throwaway e-mail address, though, unless you want to get a LOT of spam. Inprise doesn't seem to have quite gotten the message yet and keeps flirting with the RBL.
Am I just weird? (Score:2)
Re:IDEs (Score:1)
Re:Am I just weird? (Score:1)
Not to mention "very cool"...
Re:Gripes with java (Score:1)
Re:I think you mean RMS (Score:2)
If you want to name anyone as the 'original' source distibuter in Unix, it's got to be Dennis Ritchie, who posted off lots of dec tapes labed 'Love Dennis'. This was in the mid 70's, a full decade before RMS created the FSF & started on GNU.
Finally...Now Where's Kylix? (Score:1)
At the Inprise Developer's conference, PrimeTime was demonstrated on Linux (and Solaris). Yes, it was buggy (the Linux version, that is). And, that was direct result of the Blackdown VM being buggy at the time. The PrimeTime Chief stated at that time that they were working with Blackdown to solidify the VM. I didn't get the impression that they were trying to screw over anybody.
In retrospect, I recall a lot of praise was given to Linux and the whole Open Source movement. But, you have to remember, Inprise is a for profit corporation. The fact they are giving JBuilder Foundation away is nothing short of miracle. And, the provided a JIT and bug fixes for Blackdown. So, why all the long faces?
I hear people complaining that its an IDE or that it uses this Linux or that enviroment and not mine. The argument is analogous as to why they don't support JBuilder on OS/2 or VAXVM or CPM. Hey, they have to draw the line somewhere, right? Why else do you think they are also working in conjuction with Corel? The fact that Corel and Redhat at the most popular Linux distributions (according to a recent study) just might have something to do with that?
All programs have certain hardware/software requirements. As developers, we know that is the case. The survey taken by Inprise earlier this year clearly showed that RedHat Linux and KDE were the most prevalent in the community. Is this not so? Or, are the figures they used askew? I'd bet that Inprise did its market research this time (other than just the survey). They can't afford to be wrong again. They made some choices. You don't have to agree with them. But, they made their choices based upon reliable information and business accumen and not on personal bias.
Now, all I want for Christmas is the forthcoming Kylix platform so I can move my legacy Win32 Delphi apps to Linux. To me, my belief is that RAD is GOOD and INPRISE is GOOD for the Linux community on the whole. I may be mistaken about some things, but I don't think so in this case.
Great news, with one gripe (Score:4)
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
Inprise Stock (Score:1)
Re:Mirrors? (Score:1)
without any success for past 4 hours.
Maybe somebody else left a copy in his or her
Borland Server Down - Official Response (Score:1)
Re:Gripes with java (Score:1)
Re:IDE Performance (Score:1)
mirror (Score:1)
are being
Re:License Code? (Score:1)
No, Roblimo [mailto]-quoting-ZioPino [mailto] said it was free software, not Free software.
>rant>
If you insist upon being a license zealot, at least try to be a literate one. There are few things that bother me more than people who cry wolf in terms of "invasion of privacy" or "misuse of term Free" before really even reading what they're berating.
</rant>
One of the highest-ranked posts on this thread so far mentioned being a developer who already uses a native version of this product and got some benefit from the Java version, which this story addresses.
At least one guy benefitted from this.
Several people moderated him up, apparently because they thought the information he had share regarding this program was worth the time of others. Apparently, more than one guy benefitted from this.
All I'm saying is, there's no point in trying to start a flame war, when [hopefully] most Slashdot readers are intelligent enough to realize that free in this context did not imply open source (in the general, nonpolitically stunted meaning of the term). As such, what did you hope to contribute to the discussion with your post?
Just a thought.
-chet
It works without KDE (Score:2)
So perhaps they are just putting it in their because their installer wants to put an icon on the KDE desktop? Its interesting to note that the README file packaged with the new JDK also mentions a need for the KDM for no apparent reason.
Re:This isn't what Free means in our community. (Score:1)
Re:This is part Blackdown work. (Score:2)
JBuilder works with, depends on and I think incorporates the JDK.
Re:NetBeans is Pure Java... (Score:2)
- a pentium II 300MHZ 128+ MB or better
- a fast jdk (IBM, suns jdk 1.3 beta, inprise?)
I've installed jdk 1.3 beta a few days ago on my NT PC (PII 350 mhz, 192 MB) and the result is very satisfying. The first thing I loaded was the swingset demo application. This is a good test since it contains a sample of all the swing components and forces the jdk to load just about all the classes in the swing package.
In short it was substantially faster. It loaded very fast and once loaded there was no lag when you clicked on a GUI element, unlike all the previous versions of the JDK. It loaded in about 9 seconds on my PC and responded as fast as a native app after that.
Next on my list was forte (used to be netbeans), this is a IDE comparable to what borland released today. It ran fast. It used to be a bit too slow with previous JDKs but all the lag seems to have disappeared. Switching between different workspaces is as fast as you could want it to be.
Next was togetherJ, a UML 1.3 compliant modeling tool. Very nice app and once again performance problems have mostly disappeared.
Then finally a swing application I wrote myself, again major speedup, faster loading time and very decent response.
Seems like the java is slow argument has become obsolete. Now you only can claim it is memory intensive, but hey what's the price of a 128 MB upgrade?
Needless to say that I'm not going back to 1.2.2. I managed to download jbuilder but have been unable to obtain a key so its just sitting there. I also tried to run it with jdk1.3 beta but jbuilder didn't like that. Apparently there are some hardcoded dependencies on borlands version of the JDK, so I don't think they can claim it is 100% java.
If they don't fix that, I'll probably won't use it because being able to use the latest jdk is a must for me.
In short, I can recommend the jdk 1.3 even though it is still beta. I have not encountered any crashes or anomalies and it sure is much faster than 1.2.2.
JAVA isn't free any longer?? (Score:2)
I am now trying to download this thing. After 10 attempts I managed to guess my uid/password. I want 1.2.x for linux, so I click on it. Then, I get the license agreement. In it we have the following (quote):
3.4 Licensee shall have no right to use the Licensed Software for productive or commercial use.
If I am getting it right, I am not at liberty to use jdk to e.g. develop a commercial application in java and sell it (not a derivative of jdk, just an applet or something).
Does that mean that only way to build commercial apps on Java these days is to BUY an IDE?
Productive use, does that cover even school work?
So let's get this straight, I can't use jdk for school projects, can't use it for writing commercial stuff, so then, what *can* I use it for? To learn java? (Isn't that "productive" use as well?)
Someone please correct me here.
Or is this just because it's a release candidate, and restrictions will be lifted for non-beta?
Re:License Code? (Score:2)
No, Roblimo-quoting-ZioPino said it was free software, not Free software.
Roblimo also used the term free in the title, which was not a quote. The convention I use of capitalizing "Free" when I want to draw attention to the word and its meaning is by no means universal, the fact that ZioPino didn't capitalize it is an indication of nothing. The term "free software" on Slashdot generally means "Free software", not "software you don't have to pay for".
If you insist upon being a license zealot, at least try to be a literate one. There are few things that bother me more than people who cry wolf in terms of "invasion of privacy" or "misuse of term Free" before really even reading what they're berating.
Who is being a license zealot? What about my post was illiterate? When did "invasion of privacy" come up at all? When did I berate anything? Did you actually read my post?
One of the highest-ranked posts on this thread so far mentioned being a developer who already uses a native version of this product and got some benefit from the Java version, which this story addresses.
At least one guy benefitted from this.
Several people moderated him up, apparently because they thought the information he had share regarding this program was worth the time of others. Apparently, more than one guy benefitted from this.
I'm glad to hear this, but what does this have to do with my post, or even with the rest of your response to this post?
All I'm saying is, there's no point in trying to start a flame war,
Than why do you appear to be trying to?
when [hopefully] most Slashdot readers are intelligent enough to realize that free in this context did not imply open source
Free in this context generally does imply Open Source. There was no indication in the article that it didn't in this case. Yes, I am intelligent enough to realize the term was probably used in error, but I had no way of confirming it, as the referenced site was down when I checked.
(in the general, nonpolitically stunted meaning of the term).
I'm not sure what you mean here. The meaning of the term "Open Source" is roughly equivalent to the term "Free", but with a more pragmatic and less ideological focus. The Open Source FAQ says "[Open Source is] a pitch for `free software' on solid pragmatic grounds rather than ideological tub-thumping." I guess that would be the "politically stunted meaning" in your terms, but I'm at a loss as to what the "nonpolitically stunted meaning" would be.
As such, what did you hope to contribute to the discussion with your post?
I hoped to draw attention to confusing and inaccurate terms in the article. Roblimo is comparibly new at this, he might not have realized he was confusing the issue. Other readers might not have realized that we were not talking about Free Software here, in spite of the headline.
----
Re:Everyone is missing the point! (Score:1)
From what I've seen there are Java virtual machines for most platforms with enough processing power to handle it.
Re:Yay for Intel (Score:1)
Re:Install? (Score:1)
Re:Okay, I must ask.. (Score:1)
Re:Gotta hurry for download (Score:1)
Re:Gripes with C++ (Score:1)
A few comments...
I think the argument generally goes that operator overloading hides the complexity of an operation. I don't really buy this argument, and I think Java probably should have it. Don't get used to me agreeing with you, it won't last long...
Well, maybe they are right =) How often do you run a program which leaks memory or crashes (*ahem* netscape)? Besides, I hate to bust up your precious belief system, but garbage collection is a very good thing.
Wow, this is just plain wrong. For one, people who design really important systems (ie, space shuttle systems) often have to go through and prove things about their programs. Secondly, Java actually *does* prove that your program does not break type safety (that is what we are really talking about here). A few elements of Java actually prevent it from being able to do this correctly (eg, allowing references to be null), but it does for the most part. Check out ML if you are interested. It is a strongly typed language, and you can't run a program if its type checker cannot prove that it is type safe.
To me this summarises the entire java/C++ debate. The whole philosophy behind java is you can't trust the programmer,Even if this is what you believe, it may not be a bad thing. I don't really trust the people writing much of the software I use, because they have proven again and again to be unworthy of my trust (with a few notable exceptions, of course).
Of course, this is only part of the story. Languages with real types (C++ types aren't worthy of the name) and a real type soundness theorem allow the type checker to prove that data actually is what you say it is. This in the end benefits the programmer by making designing and debugging faster and easier.
Software engineering is in a pretty sad state today. Programs crash all the time, or just plain don't work, and we accept that as standard. This is just wrong. There is no reason for people to use languages that make it harder for them to write good programs, which C/C++ often turn out to be. Now, don't get me wrong, I think both C and C++ have a place, and some people are able to use them effectively. I don't think they deserve the great respect and widespread use they currently have however.
Re:What's D? (Score:1)
Therefore, "D" is obviously Diethelamine.
;^)
Re:Windows is Free of Fully-Functional Software :) (Score:1)
Almost everything written specifically for linux is incomplete and still in beta after what...3 years?
And it's not just a matter of version numbers and calling it "beta". They really are incomplete - which gives them an excuse when bugs come up (like they ever would eh?).
What's missing? (Score:1)
Re:huh? (Score:1)
--
Paolo "ZioPino" Ciccone
JBUILDER.BAT Conflict (Score:1)
Re:This is part Blackdown work. (Score:1)
Re:Install? (Score:1)
I like InstallAnywhere, but I hate how it doesn't get you any feedback on errors(like class not found). A simple "Coun't find class swing.x" would be nice
Re:Tom Christiansen is Truth-Impaired (Score:1)
I've had to work around several bugs in the Solaris, Netscape and IE JVMs.
Re:Not win 9x (Score:1)
Re:This is part Blackdown work. (Score:2)
( after thinking about the money Sun offerd
Re:Gripes with java (Score:2)
The standard JDK from sun comes with a java implementation of the compiler (I wish they shipped jikes or something else instead). The speed loss it suffers is mainly due to the constant overhead of starting the VM.
Great, but... (Score:2)
http://www.borland.com/jbuilder/foundation/product info/sysreq.html
And what's this thing with Redhat again? Can someone tell these boys Redhat is not the only Linux distribution in town. Cheers
Re:Gripes with java (Score:2)
Re:Great news, with one gripe (Score:2)
FreeB: Free (as in beer)
FreeS: Free (as in speach)
FreeSB: Free (as in speach and beer) Pronounced something like Frisbe
Re:Gripes with java (Score:2)
1. Everything in java is a pointer, when you call smth. with System.out.println( Object foo) there is only a reference passed to System.out but not the full object.The thing java is missing is pointer arithmetic.
2. I would love pre-processor directives like #include, but import is just some strange language construct, on the other side, i think that import might be easier to optimize for compilers and thus allow faster compilation.
3. Yes that is one cool thing about java, in fact the thing i hate most about java is that there exist native types like int, this can be a pain in the ass, this is the one thing (well o.k. among others) that kept Smalltalk alive for so long.I believe Java is quite cool, but it has definately lost movement it had when it was young(so much younger than today...). But Java is here to stay so you might get a nice book on Java and try to find out if can come to like it, after you understand it.
cyberm_acc@hotmail.comRe:Great news, with one gripe (Score:2)
Does that make FreeBSD Free as in beer, Free as in speech, and free as in D? hrm. What's D?
Re:Great news, with one gripe (Score:2)
ZDnet?
Re:Great, but... (Score:2)
Interestingly enough, their minimum CPU specification is a 200MHz PII... pity that there's no such thing. The PII started off at 233MHz.
free java IDE for win95/98 (Score:3)
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 [confluent.fr]) 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.
Re:Gripes with java (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:
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 :)
Re:Windows version (Score:2)
Gripes with C++ (Score:5)
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 [demon.co.uk].
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
Re:Gripes with java (Score:2)
No, no pointers. Instead you use references to objects. What's the difference you ask? Really, none. You can't do math on them, I guess, but that's not important.
I've you've actually done any OO C++ programming and then some Java programming, I think you'll find that the two languages are fairly similar to write in, in many important aspects, although Java tries harder to disallow you doing Dumb things.
Strings being a class is great. there is also a string class in C++. It's great there too. I HATED having do mess around with allocating and freeing memory just to do simple string operations in C.. (I have a filename, but want to append an extension to it? Well, that's like 4 or 5 lines of C code! AUGH! With a string class it's easy!)
Java does not treat integers, floats, or chars as objects - these are special cases. I would say this is a flaw more than a feature - why SHOULD'T everything be an object? If no complicated logic is needed to manipulate that object, it won't contain complicated logic.
You're complaint seems to be Java is not C and I can't do things the way I do them in C, so it's bad! Sheesh.
KDE only? (Score:2)
And would it be possible to run JBF with any other distros than RedHat?
It kicks (Score:4)
Re:Gripes with java (Score:5)
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.
Re:Gripes with java (Score:2)
char a[10];
int i;
a[i] = 'x' is equivalent to (a+i) = 'x';
...is equivalent to (i+a) = 'x';
The last one makes no sense. If it were allowed by the compiler it would be accessing some random bit of piece of memory. (*i+a)
Your other two examples are wrong because a is already a pointer, so a+i would already be accessing the memory address.
Re:Great news, with one gripe (Score:2)
I use JBuilder3 at work; it's great for debugging, and I agree that the interface is a little bizairre, but it's pretty useful at times. Especially when you have large source files with lots of variables and methods -- the listing on ths side shows a concise list of everything. And although also annoying at times, it's nice to just type a function name and then a (, and then have it tell you the syntax of the function. And it's nice to be able to type "[name of class]." and have it, after a couple of seconds, list all the public methods and variables in that class. Especially when you're working with large SDKs, these features save a lot of time. Not to mention, if you've got the name of a class or method somewhere in your source, you can hold down control and click on the class, and JBuilder will find the source code to that class. All kinds of nifty features. The down side is it's pretty bloated and akward at times, but I can live with that; I'd rather browse through huge SDKs with JBuilder than grep through thousands of lines of code in lots of different directories.
I still use vi/javac to hack out small portions of code, but when I'm working on a big project, JBuilder is quite useful. When I'm doing an "offical" build, I always use javac, because JBuilder can tend to do some weird things. Maybe with the Inprise/Sun alliance this situation will get better; I don't know.
JBuilder Foundation evaluated (Score:5)
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!
Re:KDE only? (Score:2)
It seems insane for them to be saying that it 'requires' KDE. Why write something in Java for portability and then start 'requiring' a desktop environment?
They really really should rephrase their Linux 'minimum specs' as a 'recommended spec' or 'tested spec'.
Windows is Free of Fully-Functional Software :) (Score:3)
SEAL
To sum things up... (Score:5)
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 [techweb.com])
I'd say Sun as pretty much shown their true colors this week.
Java does have operator overloading (Score:2)
Java is plagued with tiny inconsistencies like that.
In the end, Java is just a tool in a programmer's toolbox. Use the right tool for the job. If Java makes your life simpler for task X, use it. If Java complicates your life for task Y, use something else.
But above all else, code.
Yay for Intel (Score:2)
as in "free beer"
Except for the installation kit, which bombed on my machine
Only if you're an x86-user running RedHat (eck, yech, blechhh) and have KDE installed. If you run an Alpha, MIPS, or S/Linux box, you're S.O.L.
but only on UltraSPARC hardware
Well, Windows NT, anyway.
So... let's see. If I'm running an Intel chip, I can choose between Windows NT (slow) and RedHat Linux (why? When there's so much better to be had?) with KDE installed. If I've got a SPARC-based computer, I can only use it on Solaris.
Yay! Let's hear it for "write once, run anywhere!". Distributing a binary installation kit, I can understand (for newbies), but what would be wrong with a huge-ass JAR file and a tarball of HTML documentation? I mean, if you strip away all the installation kits and things, it should run on my platform, right? I mean, it is 100% Java, right?
I think I'll stick with Blackdown on my S/Linux box for now.
IDE Performance (Score:2)
Java is good for quite a few things, but it is unfortunately less than ideal for performance-intensive, client-side applications such as an IDE. At least so far. All popular Java IDEs at the moment are written in C/C++. IIRC, Visual J++ is the only example of a successful IDE with large chunks written in Java, and that's because those chunks just called standard Windows OS UI controls directly (via J/Direct), rather than being "Pure Java".
I look forward to hearing how this Java-based JBuilder stacks up against the C/C++-based JBuilder 3.
Re:Great news, with one gripe (Score:2)
A pirated copy of Windows, perhaps?
- -Josh Turiel
Re:Windows is Free of Fully-Functional Software :) (Score:2)
This is part Blackdown work. (Score:3)
Re:Windows version (Score:2)
Re:Makes me wonder about the minimum specification (Score:2)
Most commercial IDEs, java and non java have a memory requirement of 64 MB but in practice you need 128 MB to run them comfortably.
So no big deal, pretty modest system requirements. A two year old PC with plenty of memory (dirt cheap at the moment) is all you need.
"I'll stick with my text editor and command line - works equally well from my old 486 to my PIII."
That's your choice but an editor is not the same thing as an IDE.
Re:Free software terminology (Score:2)
Easiest easter egg ever. (Score:2)
Save the project you are working on first!
2. Select help->About
As you type, you see your letters floating around.
3. Type 'primetime' and you get a message from the developers.
You'll get a message from the development.
Now, does anyone know how to make the close button appear? The dialog is modal, and there isn't a close box anywhere.
Try Freebuilder (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 [freebuilder.org].
Slashdotted (Score:2)
Or maybe
Re:This isn't what Free means in our community. (Score:2)
"You may write and compile (including byte-code compile) your own application programs using the Software, including any libraries and source code included for such
purpose with the Software. You may reproduce and distribute, in executable form only, programs which you create using the Software without additional license or fees,
subject to all of the conditions in this License Agreement."
Thus, you are not alowed to distribute the source code to your project if it was developed in JBuilder.
Portability Lies (Score:2)
So much for the much-vaunted portability story. It's just that--a story. But they've hyped it enough to trick the public into believing it. Please don't just blindly take my word for this. Believing without seeing is what got us into this. Stop listening to stories and try it yourself. Take a program written in Java, and try to get it to run on a dozen diverse platforms.
So much for Java being "portable", eh?
Re:Gripes with java (Score:2)
Ummm, no. The compiler is written in Java. Have you ever looked at it? The JVM is native, but the compiler and debugger are not. Take a look at the wrapper script for javac from the Blackdown port.
--
Mike Mangino Consultant, Analysts International