Comments on Java is Object-Oriented COBOL, page 2 of 4
Re: Java is Object-Oriented COBOL
Johan Lindström · 2004-04-02T11:24:00
>Why is everyone here suggesting that verbose code is a bad thing?
Choosing good names for stuff (variables, methods, stuff) means there is an element of verbosity to begin with.
Verbosity in-the-language is bad because it adds to the size of the code while not adding to the descriptiveness.
This is important because reading and understanding code has to do, in part, with what you can see on a screen.
So verbose code isn't necessarily bad, but verbose languages probably are.
/J
Re: Java is Object-Oriented COBOL
Andrew Waddington · 2004-04-03T01:44:00
Well I went from assembler to C to C++ and I have been learning java now for quite some time. The learning curve was stupendous. I think that this was largely due to the fact that the java api and libraries are immense.
Java would benefit from a new api called say, main, or something that had real simple versions of really useful classes, like LinkedList and Formatter, and Matcher, File, and DatagramSocket. Ideally I'd be able to learn those in less than a month. I've been at it for four years now, and I still spend half my day buried in the api docs.
C++? Well, heh, I loved the language but the STL made me run. If I had been able to specialise early, then c++ would have been joyful; alas, given a choice of the Xt toolkit or Qt widgets, I chose java. TCL has a lot of great features nowadays, maybe I would jump there, who knows?
You're right there is a lot of syntax and language cruft, but it is clean, and if well written, easy enough to read. I'm glad I didn't get nailed with Perl, anything that has more than two meta-characters in a row is really pushing the edges of the human parser.
What I am waiting for is the language that is written for somebody who works all day with an IDE. I've got 578 square inches of screen estate and I'm not even close to being able to see all the down-calls, I always have to flip through fifteen class files to determine that, yes, indeed, such and such does return a null value. I get the impression that fixing this sort of stuff, just isn't possible in any other language, so I stick with Java; hoping that someday, I'll be able to write findInList( myList, getLdapName( name = "cn=Andrew" ); and the *compiler* will identify and locate, on the net, an api that can take a List and an ldapname in a method findInList and link to it, put up the api-doc, comment out my code and replace it with something sane.
Ever notice that, no matter how great CPAN is, (it is good) you hardly ever see a powerful Perl-IDE?
Syntax is still king, and, if you read the JLS, you'd find that any language that can be accurately and precisely described in 16 sections, without monthly revision and addendae, is bound to be a really good thing.
Andrew
Re: Java is Object-Oriented COBOL
Marc Briand · 2004-04-03T05:24:00
I'm no Java fanatic, but I'm not sure Java's API is more bloated than that of any other general purpose language. You might argue that C and C++, with their standard libraries, have relatively modest APIs, but this ignores the fact that the standard libraries are inadequate for most real-world applications -- the developer will have to write his own APIs, or go out and find a third-party API to fill in what's missing. You have to put all that functionality somewhere, either in libraries or (ugh) in the language proper. (Maybe APL junkies would favor the latter approach, but I suspect most programmers would not.)
What matters to me is not so much the size of Java's API, but how well it is implemented. I can't say much about that, except to note that many of Java's classes have a bad case of memberitis. Maybe that's what you were talking about in the first place, so now I'll shut up.
Re: Java is Object-Oriented COBOL
Todd Blanchard · 2004-04-04T22:34:00
If you are arguing that the type declaration should go away all together, then it sounds like you are arguing that Java should be weakly typed. I disagree with that, but to each his own. I don't understand how you could maintain strong typing without type declarations. Then again, there are many things that I don't understand.
Could be arguing for dynamic typing, or type inferencing as seen in Haskell and the ML languages and friends. Personally I like dynamic typing but I see the advantages in type inferencing.
As type systems go, Java's is right out of the stone ages (along with its loop constructs, static methods that are really functions, classes that aren't objects, primitive types, arrays different from collections, StringBuffers that aren't Strings, and a whole host of other poorly thought out idiocies).
Java is gratuitously complex in a lot of areas - clearly the whole thing was a low budget rush job.
Re: Java is Object-Oriented COBOL
Adam Connor · 2004-04-05T05:07:00
Advertisement
> "Do we really have to design our languages with execution > efficiency as a foremost consideration in the twenty-first > century?" > > No. See http://www.paulgraham.com/arc.html for a language > being designed awith quite the opposite in mind.
Or just use Common Lisp...
Re: Java is Object-Oriented COBOL
Malte Finsterwalder · 2004-04-05T05:28:00
> As type systems go, Java's is right out of the stone ages > (along with its loop constructs, static methods that are > really functions, classes that aren't objects, primitive > types, arrays different from collections, StringBuffers > that aren't Strings, and a whole host of other poorly > thought out idiocies). > > Java is gratuitously complex in a lot of areas - clearly > the whole thing was a low budget rush job.
Isn't it amazing that it's so popular despite all these drawbacks?
Why are the technically bad solutions so often more successfull than the technically good solutions?
The Kids are Alright
Todd Blanchard · 2004-04-05T07:38:00
"Why are the technically bad solutions so often more successfull than the technically good solutions?"
During an interview with Pete Townsend of The Who, he remarked "The average person is a bit thick and wouldn't know quality if it smacked him upside the head. If you steer clear of quality, you're alright."
The average programmer would write a bubble sort to manage a million records simply because its the only sort algorithm he can remember how to code.
Re: The Kids are Alright
Gregg Wonderly · 2004-04-05T15:25:00
> The average programmer would write a bubble sort to manage > a million records simply because its the only sort > algorithm he can remember how to code.
I believe this is why we should continue to differentiate between programmers and software engineers. There truely is a difference that becomes apparent when you experience this kind of software development activities.
Engineers attempt to do it right no matter what. Only when the cost exceeds the budget do they get the project taken away from them and the programmers get it.
Engineering often employs brute force simplicity.
Programming often employs brute force complexity.
Re: Java is Object-Oriented COBOL
Gregg Wonderly · 2004-04-05T15:40:00
> I'm no Java fanatic, but I'm not sure Java's API is more > bloated than that of any other general purpose language. > You might argue that C and C++, with their standard > libraries, have relatively modest APIs, but this ignores > the fact that the standard libraries are inadequate for > most real-world applications -- the developer will have to > write his own APIs, or go out and find a third-party API > to fill in what's missing. You have to put all that > functionality somewhere, either in libraries or (ugh) in > the language proper. (Maybe APL junkies would favor the > latter approach, but I suspect most programmers would > not.) > > What matters to me is not so much the size of Java's API, > but how well it is implemented. I can't say much > about that, except to note that many of Java's classes > have a bad case of memberitis. Maybe that's what > you were talking about in the first place, so now I'll > shut up.
There are actually two completely separate issues here. One is the Java Language which is covered by the Java Language Specification. It determines the syntax and semanics of the language.
Then, there are several platforms that utilize the Java Language to provide a set of features for a particular use.
The J2EE platform is the most verbose, expensive and outright over programmed platform of all.
The J2SE platform is what most people mean when they say "Java is ...".
The J2ME platform is what runs on phones, PDAs, and many small platforms including micro processors such as the aJile aJ-100, the Dallas Semicondutor TINI hardware etc. J2ME has something called profiles that allow the addition of features. J2ME+MIDP provides the Mobile Information Device Platform that you see on phones and other graphically interactive J2ME devices. There is J2ME CLDC (Connected, Limited Device Configuration) and the J2ME CDC (Connected Device Configuration) differentiation as well.
All of these things are separate and part of the overall Java platform definition. It's much more extensive than any other programming language based platform definition. This is the factor that I believe drivers the interest. You can in fact, find Java 'anywhere' that you need it. This means that you can develop and test code on a PC, a farm of PCs, servers etc., with easy to replace stubs. Then you can plug that code into the target environment and only have to worry about the implementation details on that platform.
The other side of this is that when you have a core algorithm, such as a network centric application, you can take that code and develop it and target it to a single Java platform, and then later plug it into another Java platform. Because Java is Object oriented, and it uses interfaces for defining responsibilities, you can create the new interface implementations for that platform and be done.
You really have to look at all the details and all the real engineering of the platform to appreciate the potential.
Granted, there are all kinds of ugly things that you can find and rant about. But, guess what, humans are imperfect and make mistakes! Funny how that keeps affecting our world...
Re: Java is Object-Oriented COBOL
Kim · 2004-04-06T06:25:00
What we really need is a more flexible "new".
Example:
Thing aThing = new ();
or with arguments: Car c = new ("Honda","blue");
The compiler should fill in the necessary information
Re: Java is Object-Oriented COBOL
Johan Lindström · 2004-04-02T11:24:00
>Why is everyone here suggesting that verbose code is a bad thing?Choosing good names for stuff (variables, methods, stuff) means there is an element of verbosity to begin with.
Verbosity in-the-language is bad because it adds to the size of the code while not adding to the descriptiveness.
This is important because reading and understanding code has to do, in part, with what you can see on a screen.
So verbose code isn't necessarily bad, but verbose languages probably are.
/J
Re: Java is Object-Oriented COBOL
Andrew Waddington · 2004-04-03T01:44:00
Well I went from assembler to C to C++ and I have been learning java now for quite some time. The learning curve was stupendous. I think that this was largely due to the fact that the java api and libraries are immense.Java would benefit from a new api called say, main, or something that had real simple versions of really useful classes, like LinkedList and Formatter, and Matcher, File, and DatagramSocket. Ideally I'd be able to learn those in less than a month. I've been at it for four years now, and I still spend half my day buried in the api docs.
C++? Well, heh, I loved the language but the STL made me run. If I had been able to specialise early, then c++ would have been joyful; alas, given a choice of the Xt toolkit or Qt widgets, I chose java. TCL has a lot of great features nowadays, maybe I would jump there, who knows?
You're right there is a lot of syntax and language cruft, but it is clean, and if well written, easy enough to read. I'm glad I didn't get nailed with Perl, anything that has more than two meta-characters in a row is really pushing the edges of the human parser.
What I am waiting for is the language that is written for somebody who works all day with an IDE. I've got 578 square inches of screen estate and I'm not even close to being able to see all the down-calls, I always have to flip through fifteen class files to determine that, yes, indeed, such and such does return a null value. I get the impression that fixing this sort of stuff, just isn't possible in any other language, so I stick with Java; hoping that someday, I'll be able to write findInList( myList, getLdapName( name = "cn=Andrew" ); and the *compiler* will identify and locate, on the net, an api that can take a List and an ldapname in a method findInList and link to it, put up the api-doc, comment out my code and replace it with something sane.
Ever notice that, no matter how great CPAN is, (it is good) you hardly ever see a powerful Perl-IDE?
Syntax is still king, and, if you read the JLS, you'd find that any language that can be accurately and precisely described in 16 sections, without monthly revision and addendae, is bound to be a really good thing.
Andrew
Re: Java is Object-Oriented COBOL
Marc Briand · 2004-04-03T05:24:00
I'm no Java fanatic, but I'm not sure Java's API is more bloated than that of any other general purpose language. You might argue that C and C++, with their standard libraries, have relatively modest APIs, but this ignores the fact that the standard libraries are inadequate for most real-world applications -- the developer will have to write his own APIs, or go out and find a third-party API to fill in what's missing. You have to put all that functionality somewhere, either in libraries or (ugh) in the language proper. (Maybe APL junkies would favor the latter approach, but I suspect most programmers would not.)What matters to me is not so much the size of Java's API, but how well it is implemented. I can't say much about that, except to note that many of Java's classes have a bad case of memberitis. Maybe that's what you were talking about in the first place, so now I'll shut up.
Re: Java is Object-Oriented COBOL
Todd Blanchard · 2004-04-04T22:34:00
If you are arguing that the type declaration should go away all together, then it sounds like you are arguing that Java should be weakly typed. I disagree with that, but to each his own. I don't understand how you could maintain strong typing without type declarations. Then again, there are many things that I don't understand.Could be arguing for dynamic typing, or type inferencing as seen in Haskell and the ML languages and friends. Personally I like dynamic typing but I see the advantages in type inferencing.
As type systems go, Java's is right out of the stone ages (along with its loop constructs, static methods that are really functions, classes that aren't objects, primitive types, arrays different from collections, StringBuffers that aren't Strings, and a whole host of other poorly thought out idiocies).
Java is gratuitously complex in a lot of areas - clearly the whole thing was a low budget rush job.
Re: Java is Object-Oriented COBOL
Adam Connor · 2004-04-05T05:07:00
> efficiency as a foremost consideration in the twenty-first
> century?"
>
> No. See http://www.paulgraham.com/arc.html for a language
> being designed awith quite the opposite in mind.
Or just use Common Lisp...
Re: Java is Object-Oriented COBOL
Malte Finsterwalder · 2004-04-05T05:28:00
> As type systems go, Java's is right out of the stone ages> (along with its loop constructs, static methods that are
> really functions, classes that aren't objects, primitive
> types, arrays different from collections, StringBuffers
> that aren't Strings, and a whole host of other poorly
> thought out idiocies).
>
> Java is gratuitously complex in a lot of areas - clearly
> the whole thing was a low budget rush job.
Isn't it amazing that it's so popular despite all these drawbacks?
Why are the technically bad solutions so often more successfull than the technically good solutions?
The Kids are Alright
Todd Blanchard · 2004-04-05T07:38:00
"Why are the technically bad solutions so often more successfull than the technically good solutions?"During an interview with Pete Townsend of The Who, he remarked "The average person is a bit thick and wouldn't know quality if it smacked him upside the head. If you steer clear of quality, you're alright."
The average programmer would write a bubble sort to manage a million records simply because its the only sort algorithm he can remember how to code.
Re: The Kids are Alright
Gregg Wonderly · 2004-04-05T15:25:00
> The average programmer would write a bubble sort to manage> a million records simply because its the only sort
> algorithm he can remember how to code.
I believe this is why we should continue to differentiate between programmers and software engineers. There truely is a difference that becomes apparent when you experience this kind of software development activities.
Engineers attempt to do it right no matter what. Only when the cost exceeds the budget do they get the project taken away from them and the programmers get it.
Engineering often employs brute force simplicity.
Programming often employs brute force complexity.
Re: Java is Object-Oriented COBOL
Gregg Wonderly · 2004-04-05T15:40:00
> I'm no Java fanatic, but I'm not sure Java's API is more> bloated than that of any other general purpose language.
> You might argue that C and C++, with their standard
> libraries, have relatively modest APIs, but this ignores
> the fact that the standard libraries are inadequate for
> most real-world applications -- the developer will have to
> write his own APIs, or go out and find a third-party API
> to fill in what's missing. You have to put all that
> functionality somewhere, either in libraries or (ugh) in
> the language proper. (Maybe APL junkies would favor the
> latter approach, but I suspect most programmers would
> not.)
>
> What matters to me is not so much the size of Java's API,
> but how well it is implemented. I can't say much
> about that, except to note that many of Java's classes
> have a bad case of memberitis. Maybe that's what
> you were talking about in the first place, so now I'll
> shut up.
There are actually two completely separate issues here. One is the Java Language which is covered by the Java Language Specification. It determines the syntax and semanics of the language.
Then, there are several platforms that utilize the Java Language to provide a set of features for a particular use.
The J2EE platform is the most verbose, expensive and outright over programmed platform of all.
The J2SE platform is what most people mean when they say "Java is ...".
The J2ME platform is what runs on phones, PDAs, and many small platforms including micro processors such as the aJile aJ-100, the Dallas Semicondutor TINI hardware etc.
J2ME has something called profiles that allow the addition of features. J2ME+MIDP provides the Mobile Information Device Platform that you see on phones and other graphically interactive J2ME devices. There is J2ME CLDC (Connected, Limited Device Configuration) and the J2ME CDC (Connected Device Configuration) differentiation as well.
All of these things are separate and part of the overall Java platform definition. It's much more extensive than any other programming language based platform definition. This is the factor that I believe drivers the interest. You can in fact, find Java 'anywhere' that you need it. This means that you can develop and test code on a PC, a farm of PCs, servers etc., with easy to replace stubs. Then you can plug that code into the target environment and only have to worry about the implementation details on that platform.
The other side of this is that when you have a core algorithm, such as a network centric application, you can take that code and develop it and target it to a single Java platform, and then later plug it into another Java platform. Because Java is Object oriented, and it uses interfaces for defining responsibilities, you can create the new interface implementations for that platform and be done.
You really have to look at all the details and all the real engineering of the platform to appreciate the potential.
Granted, there are all kinds of ugly things that you can find and rant about. But, guess what, humans are imperfect and make mistakes! Funny how that keeps affecting our world...
Re: Java is Object-Oriented COBOL
Kim · 2004-04-06T06:25:00
What we really need is a more flexible "new".Example:
Thing aThing = new ();
or with arguments:
Car c = new ("Honda","blue");
The compiler should fill in the necessary information
Older comments · Page 2 of 4 · Newer comments
Back to post