Why do some people hate java?

C

Chris Smith

Chris said:
You surely are not claiming that Java is /not/ of archaic design ? (In the
sense of "archaic" that the OP clearly meant -- lacking invaluable features
which have been commonplace in language design for many decades, and which a
few modern scripting languages are finally starting to catch up with).

I believe that "archaic" is a loaded word. Java lacks many features
that I'd like to see in it; but I am not a representative computer
programmer. I recognize that languages that I like will be forever
beyond the abilities of the vast majority of programmers, and therefore
are doomed to be passed up for the great majority of software products.
Not everyone can be impractical. I suspect that samir is in a similar
position.

All in all, I think Java strikes a nice balance that has been very
successful; and it's not a coincidence that it has been so popular for
so long. I'd be a fool to overlook that and preach the greatness of
Haskell (my favorite language du jour) as if it should be used for large
business software projects.
 
J

Jason Cavett

Could elaborate a little on what Eclipse does that is so great? I use
Netbeans right now and I think it's the bomb. Plus Matisse is free on
NB. ^_^ But if there's a reason to move to Eclipse I'd like to at least
hear about it.

Also, I'm not looking for an IDE flame war, just some perspective from a
fellow Java user. ^_^ ^_^

Just a quick list of the small feature set Eclipse has:

1. On-the-fly compiling - you see errors as you create them
2. Built-in debugger - EXCELLENT
3. Plug-in centric - anybody can design plugins which greatly extends
the functionality of Eclipse. This can include pretty much anything
(including other languages). Additionally, Eclipse now provides an
easy way to keep your plug-ins updated
4. Visual Editor - the visual editor, along with many other "side
projects" are part of the Eclipse Foundation project. you can easily
add this (and hundreds of other) plug-ins to your Eclipse installation
5. Ant Builds - Eclipse helps in the creation of Ant scrips
6. Many different pieces of functionality including, but definitely
not limited to, automatic code formatting, automatic commenting (for
header comments, methods and other important stuff), built-in
integration with CVS (and other plug-ins can add integration with
other software control systems)...etc...etc...etc.
7. Context sensitive help. If you're typing something like...
thisIsAString. ... and you can't remember a method name, just hit Ctrl
+Space and Eclipse will provide you with all your options. This works
for pretty much any place you can type code into Eclipse. If you are
running Eclipse on the JDK (as opposed to the JRE) you'll get even
better context sensitive help as Eclipse will also pull in the Javadoc
information.
8. It's all free (minus some of the plug-ins, but that's up to the
company developing those plug-ins anyway).

I haven't tried Netbeans, so I can't compare. But, Eclipse is
definitely good, there is no doubt about that.
 
S

samir

Could elaborate a little on what Eclipse does that is so great? I use
Netbeans right now and I think it's the bomb. Plus Matisse is free on
NB. ^_^ But if there's a reason to move to Eclipse I'd like to at least
hear about it.

Also, I'm not looking for an IDE flame war, just some perspective from a
fellow Java user. ^_^ ^_^

Tell me what you linke about an IDE and I'll tell you you'll find it
in emacs :)
 
S

samir

Well, I think that startup speed of Java (as a VM) is the main
inconvenience.

gethostbyname

It takes "ages" to startup especialy on low ram machines. But, Java VM
takes no time to start from an ARM (they have native java bytecode
interpreter in their chips, and I like it :). I've read somewhere that
Sun have sacrificed size for the sake of speed :)
 
J

Jason Cavett

Could elaborate a little on what Eclipse does that is so great? I use
Netbeans right now and I think it's the bomb. Plus Matisse is free on
NB. ^_^ But if there's a reason to move to Eclipse I'd like to at least
hear about it.

Also, I'm not looking for an IDE flame war, just some perspective from a
fellow Java user. ^_^ ^_^

Just a quick list of the small feature set Eclipse has:

1. On-the-fly compiling - you see errors as you create them
2. Built-in debugger - EXCELLENT
3. Plug-in centric - anybody can design plugins which greatly extends
the functionality of Eclipse. This can include pretty much anything
(including other languages). Additionally, Eclipse now provides an
easy way to keep your plug-ins updated
4. Visual Editor - the visual editor, along with many other "side
projects" are part of the Eclipse Foundation project. you can easily
add this (and hundreds of other) plug-ins to your Eclipse installation
5. Ant Builds - Eclipse helps in the creation of Ant scrips
6. Many different pieces of functionality including, but definitely
not limited to, automatic code formatting, automatic commenting (for
header comments, methods and other important stuff), built-in
integration with CVS (and other plug-ins can add integration with
other software control systems)...etc...etc...etc.
7. Context sensitive help. If you're typing something like...
thisIsAString. ... and you can't remember a method name, just hit Ctrl
+Space and Eclipse will provide you with all your options. This works
for pretty much any place you can type code into Eclipse. If you are
running Eclipse on the JDK (as opposed to the JRE) you'll get even
better context sensitive help as Eclipse will also pull in the Javadoc
information.
8. It's all free (minus some of the plug-ins, but that's up to the
company developing those plug-ins anyway).

I haven't tried Netbeans, so I can't compare. But, Eclipse is
definitely good, there is no doubt about that.
 
C

christopher

You surely are not claiming that Java is /not/ of archaic design ? (In the
sense of "archaic" that the OP clearly meant -- lacking invaluable features
which have been commonplace in language design for many decades, and which a
few modern scripting languages are finally starting to catch up with).

-- chris
This is profound ignorance, or I don't understand the meaning of
common place terms like 'commonplace' and 'many decades.' APL was
created in 1957 (5 decades is 'many' for the numerally challenged),
and I would venture to say Java has 'invaluable features' that APL
lacks. Java has been around for what, 15 years? So you are saying it
was a decade plus behind when it was invented? That it in fact is,
contrary to all conceivable evidence, inferior to Cobol and Pascal?
Just how many languages were in common use in the 80's so their
advanced features could be considered common place? 5? 10? Get some
perspective you silly, silly person.
 
S

samir

You used an outdated computer 3 years ago. Not really Javas fault.

Outdated computers are the real test for any os/programming language.
I think most agree that multiple inheritance and explicit deallocation
of memory is a bad thing.

Not that bad :). I think that multiple inheritance just requires more
attention and discipline when programming. Explicit deallocation of
memory is good thing to keep track of your RAM usage. I think that
most people will say that garbage collection is a bad thing when it
comes to a language like Java.
C++ templates can do some things that Java generics can not.

Like operator overloading?

And vice versa. They are simply relative different concepts.


If you like that type of language then fine. You may also want
to check JRuby and Groovy out.

Tried JRuby, didn't like it :(
I do not think you need to try jgnat (Ada).
:)

I did some Ada in school. Cool programming language. I'll give jgnat a
try :)
Your choice.

One size does not fit all.

As expected :)


Adiaux
Samir
 
S

samir

I love Java.

I don't require perfection, just utility. It has plenty of that.

The you might like Python too. Consider writing a complete program
without errors (it depends) containing up to 10 times less lines of
code than the same program written in Java.

Adiaux
Samir
 
L

Lew

samir said:
Tell me what you linke about an IDE and I'll tell you you'll find it
in emacs :)

I like the ability to debug servlet code as it runs on a Tomcat server, whilst
simultaneously debugging a Java application with which it interacts remotely.

I love emacs, don't get me wrong, and it was great as an IDE for C++, but Java
needs its native IDEs like Netbeans and Eclipse.

-- Lew
 
U

Uwe Plonus

Mark said:
Could elaborate a little on what Eclipse does that is so great? I use
Netbeans right now and I think it's the bomb. Plus Matisse is free on
NB. ^_^ But if there's a reason to move to Eclipse I'd like to at least
hear about it.

Also, I'm not looking for an IDE flame war, just some perspective from a
fellow Java user. ^_^ ^_^

For me there is no great difference. I work with both IDEs and both have
their pros and cons but no feature to say that one is better than the
other. As long as you write java programs it makes no difference between
biths IDEs. For support of other languages and db development Eclipse is
ahead.

So use whichever you want.

Uwe
 
?

=?ISO-8859-1?Q?Arne_Vajh=F8j?=

samir said:
It's true that Python isn't as popular as Java, but it isn't also a
programming language that "no body uses". See this:

http://www.dedasys.com/articles/language_popularity.html

I think that Python is "the next leap" to the future: Simplicity,
freedom and some black magic when needed.

I do not think that gives a true picture.

A search at Dice gives:

Java 16275 jobs
C++ 8090 jobs
C# 6719 jobs
VB 2823 jobs
VB.NET 2477 jobs
Cobol 1220 jobs
Python 962 jobs
Ruby 421 jobs
Ada 171 jobs
Fortran 131 jobs

Not quite mainstream yet.

Arne
 
B

Bent C Dalager

Tell me what you linke about an IDE and I'll tell you you'll find it
in emacs :)

I like refactoring support for Java 5+. Is there an emacs package that
does this?

Cheers
Bent D
 
J

Jon

You used an outdated computer 3 years ago. Not really Javas fault.



I think most agree that multiple inheritance and explicit deallocation
of memory is a bad thing.

C++ templates can do some things that Java generics can not. And
vice versa. They are simply relative different concepts.


You can do things with multiple inheritance that can never be done
with interface implementations alone. Can it be abused? probably.
Does that justify tieing the programmers hands? I would argue no.

I find the statement that "explicit deallocation of memory is a bad
thing" to be laughable. It assumes that this MUST be done in C++. If
you look at boost shared pointers and the like you will find that
object lifetime can be easily and, more importantly, predictably
managed. There seems to be an implicit assumption in this rather
childish statement in the philosophy behind garbage collection that
memory is the only resource that must be managed. File handles,
network connections, and other resources that are just as important to
manage and must be managed in a way that is more deterministic that
can be done by relying on garbage collection. The result is that, if
you code a class in Java that must manage one of these resources, you
MUST add methods that allow the application to release the resources
and these MUST be invoked before the object reference is released.
So, tell me again, how does GC really help here??

There are a lot of other "features" of Java that I find very
annoying. Examples:

- Lack of unsigned integer types. I realise that, with two's
complement math, the math operations between signed and unsigned is
all the same. However, I find that not being able to use unsigned
types results in sign extension in places where it was not expected
and results in casting/masking operations that only serve to clutter
the source code.

- Bit shift operations only appear to be implemented for the integer
type. The result: if I am trying to do bit shifts on something
smaller than an integer, a byte or a short, the arguments are promoted
to integers and the reslt of the shift is an integer. So in order to
assign that back to something smaller than an integer, guess what,
yet another cast is needed.

Me measure of the "goodness" of a language or its implementation is
whether I can accomplish the task I set out to do without having to
fight the language or its implementation. If I have to litter my code
with cluttering casts simply to produce the correct results or to
satisfy the childish demands of the compiler, I become annoyed. If
the language hobbles me rather than allowing me to express the design,
it also becomes annoying. My personal experience is that Java is
cluttered with these kind of issues.

It seems to be easy to forget that there are reasons for writing
programs that transcend the language or environment in which it is
developed. At the end of the day, my value to my employer is not in
the languages I have mastered but in what I can produce that can solve
our customers problems and/or needs. To the extent that the language
and/or environment facilitates that, it becomes a valuable tool. To
the extent that the language/environment fetters that, it becomes less
valuable and less likely to be chosen as a tool. No language or
environment is free from blemish. Java has some real advantages but I
do not consider it a replacement for what can be done in C++.
 
C

Christian

Bent said:
I like refactoring support for Java 5+. Is there an emacs package that
does this?

Cheers
Bent D

can I pause my java program, look at the stacks of my threads (and
navigate through all objects), if something is not running as I want
then change my code while the program is paused, and go on with the
program with the changed code in place?

Do this with a gui?
And with less than 10 clicks?
possible with emacs? I don't know it ... never used emacs for coding
 
J

Jason Cavett

Tell me what you linke about an IDE and I'll tell you you'll find it
in emacs :)
Tell me what you linke about an IDE and I'll tell you you'll find it
in emacs :)

Well...you could basically say that for any application...

"Tell me what you like about an operating system and I'll tell you
you'll find it in emacs."
"Tell me what you like about a first person shooter and I'll tell you
you'll find it in emacs."

;-)
 
J

Jason Cavett

I like the ability to debug servlet code as it runs on a Tomcat server, whilst
simultaneously debugging a Java application with which it interacts remotely.

I love emacs, don't get me wrong, and it was great as an IDE for C++, but Java
needs its native IDEs like Netbeans and Eclipse.

-- Lew

I could be wrong, but I'm not sure emacs even is technically an IDE
anymore than notepad would be considered an IDE. I *think* (again,
could be wrong) it's just an editor. Granted, it's a beefy editor,
but it's still an editor.
 
L

Lew

Jason said:
I could be wrong, but I'm not sure emacs even is technically an IDE
anymore than notepad would be considered an IDE. I *think* (again,
could be wrong) it's just an editor. Granted, it's a beefy editor,
but it's still an editor.

With integration with the gdb debugger and integration with the source-code
view so you can step through your code, view the trace in the debugger window
and simultaneously viewing the current source line in the source window. With
a full-blown macro language based on Scheme (or Lisp, or something) which is
about as powerful as any scripting language. With syntax highlighting and all
those beautiful language-aware things we like. With built-in email management
and an online psychiatrist. ...

It's highly integrated, it's for development, and it's a robust environment.
IDE. QED.

"Just an editor", indeed. Harrumph.

-- Lew
 
L

Lew


Jason said:
Well...you could basically say that for any application...

"Tell me what you like about an operating system and I'll tell you
you'll find it in emacs."
"Tell me what you like about a first person shooter and I'll tell you
you'll find it in emacs."

Tell me what you like about psychotherapy and I'll tell you you'll find it in
emacs.

Heck, I'll tell you right now:
M-x doctor

-- Lew
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,576
Members
45,054
Latest member
LucyCarper

Latest Threads

Top