Departure Of The Java Hyper-Enthusiasts? 678
TomH writes "Bruce Eckel has an article at Aritma, where he posits that 'The Java hyper-enthusiasts have left the building, leaving a significant contingent of Java programmers behind, blinking in the bright lights without the constant drumbeat of boosterism.' Has the previous hype of Java and J2EE moved on to Ruby (on Rails) and Python?"
Hype? (Score:3, Informative)
Re:Python hype does not exist (Score:5, Informative)
Back to the topic: based on what I'd heard about how great python was, I'd say python *IS* overhyped. It has its place where it does very well; it's a nice little scripting language. Better than sh or perl in a lot of cases. But it is not even in the same league as java for medium-to-large projects. I'd heard a lot of people call python a better replacement for java, and it just isn't.
Re:Slashdot Libs (Score:3, Informative)
Nope. I will have another order of java thank you (Score:5, Informative)
Java is stable, mature, and scalable, right out of the package. Python is nice for small projects and scripts but Java's strength is not the language. Its the api's and framework as well as the ton of third party software for it. For large sites Java is still the best way to go. Especially for ecommerce sites for businesses. Php is not there yet and is quite inconsistant with a immaturish feeling. Results vary drastically depending on who wrote what. There are tons of third party java objects and programs that co-exist and integrate with your java based servlets.
Java seems to have found its niche since multiplatform desktop applets never took off. Not to mention java is pleasant to debug and the tools are nice.
Re:maybe to ruby, not python (Score:5, Informative)
Re:maybe to ruby, not python (Score:5, Informative)
If you're writing a web app, Swing is an irrelevance. You won't be needing it and it won't get in your way. Java remains an excellent choice for serious web apps which you're going to want to maintain later. I agree with you that Swing is a horrible mess, but as someone who only writes web apps it doesn't wory me at all.
Re:VB for the 21st Century (Score:4, Informative)
Java is different in that it has static type checking, but it also has dynamic typing constructs like dynamic_cast which can raise runtime type erorrs, just like Ruby. Static type checking is handy to decrease the number of dynamic type errors, but I don't see how it's any more *secure* than dynamic typing.
All of Ruby, Python, and Java are in a different class than C/C++ which don't guarantee anything about object types.
Re:VB for the 21st Century (Score:3, Informative)
But that gets to the heart of the issue -- Solutions developers learned the hard way with VB that runtime type-checking significantly hurts the "scalability" of a development project, both in size and # of developers. But now that VB has been written off and forgotten, so have the lessons, and a new generation is about to relearn them with new and cool languages.
Good Riddance (Score:2, Informative)
Java works for me. I get paid to do it, and I'm tired of all the noise.
Re:maybe to ruby, not python (Score:3, Informative)
Eh? That's like saying languages that have semicolons on the end of lines are more bug-prone because programmers sometimes forget a semicolon. Incorrect whitespacing and missing semicolons are both syntax errors that are caught at compile-time, not run-time, so in practise this is entirely a non-issue.
Despite having twice as many years experience programming Java than Python, I've found that Python's whitespacing is far less prone to error than other methods of block delimiting. I can count the number of times I've messed up my indentation on the fingers of one hand. The number of times I've missed the occassional semicolon or bracket must number in the hundreds.
Re:Hype? (Score:1, Informative)
What? What??! C included libc, C++ has libc+STL, Smalltalk had a comprehensive API, and there are numerous other examples.
it was the first dynamic web server technology that used a multithreaded model in addition to runtime-compiled code (bye-bye CGI)
That's mostly a web server issue, and it's technically untrue. You could write a multithreaded C program to handle web requests using pipes or other IPC mechanisms.
it was the first language with reflection designed into its core, and it was the first language to bring OOP, Virtual Machine, and cross-platform capabilities together into a workable package.
Again, what? All functional languages support reflection because functions are first class objects. Objects are a natural extension in functional languages as well, and most use some sort of virtual machine and were all cross platform.
I look back at days before Java, and they seem like the dark ages of computers.
You looked in the wrong dark corners, oblivious to the superior (yes, even to Java) functional languages that, true, have been ignored by "mainstream" users, even in computer science.
Re:Hype? (Score:2, Informative)
it was the first language with reflection designed into its core
*cough* Smalltalk *cough* LISP *cough* *cough*
Re:Author's Thoughts on O'Reilly (Score:2, Informative)
Actually, it is. If you haven't read any of his work, you might dismiss Bruce Eckel as just another one of the proliferation of people writing programming books these days. Fifteen years ago, if you walked into a bookstore, you'd find about three books on programming languages, with all the rest being dedicated to Lotus Symphony and DBase III. Today, any schmuck with a publishing connection can write a book on Ruby, Perl, Java, or what have you. When I went looking for a book to make the transition from C to C++, I scanned through dozens of C++ programming books before I found Thinking in C++. It's very well written, does not patronize you, covers real world problems in the language instead of boring you with another introduction to sorting, and demonstrates some pretty nifty tricks that he gleaned from Andrew Koenig, among others.
Bruce is a real software engineer, and writes and speaks to the same.
Not trying to start a flamewar, just don't dismiss the man because he speaks the truth.
I've moved on to python but it sucks in many ways (Score:3, Informative)
The turbogears python webapp framework is a nice bit of tool integration for rapid development.
Python itself is a mixed blessing compared to Java.
On the one hand, it has very nice compact, in-built syntax handling of multiplicity (lists, dictionaries, tuples) as all powerful languages should have and java still lacks.
It has other simplicities and flexibilities that are nice.
However, the "pythonic" philosophy of "anything is allowed if you try hard enough
could be re-termed "moronic". It's just bad design to have multiple ways of
doing the same low-level thing in a language. Complexity multiplies, as we all
know.
Also, Python is not as platform agnostic as Java in issues such as byte-ordering
in data structures etc, nor is it as secure as java in this respect, because
java does not specify the representation in memory of its data objects, making them
more difficult to sniff.
Java also has other code security features that python to my knowledge lacks, such as class bytecode verification,
class loader security, etc.
Finally and importantly, while Java's (and its standard libraries') documentation is only moderately detailed, at least it is consistent and pretty complete.
The same cannot be said for python documentation, which is sloppy and incomplete, and
inconsistent in places.
So is python "progress" from Java? In some O-O and functional programming language respects
yes, but in platform quality, simplicity, platform-agnosticism, learnability, and security,
no.
We still need a new language that combines the best of these breeds.
Re:Hype? (Score:3, Informative)
I'm guessing you probably mean procedural programming [wikipedia.org], since as the poster above said, what you're describing isn't functional programming [wikipedia.org].
Re:No, the fashion industry has fads well organize (Score:3, Informative)
Thus they're no different from Gartner pronouncing "Small Form Factor PC's will be hot next year!" or "This will be the year of Tablet Windows!".
Nothing Orwellian, no Central Planning, just the same sort of forecasting that happens in every trade & industry.
I've a number of friends who are subscribers to CAUS's & others reports, they say they're generally pretty on, and are rarely much of a surprise to folks paying attention in their fields. Indeed I was told 2 years ago by a buddy to watch, last year and especially this year look for holiday decorations to have lots of purple and black and raspberry and long skinny legs would be very in; he was right.
Just like in business practices and coding strategies there is a lot of group-think that keeps everyone sorta in sync with each other (beyond everyone knowing that hemlines HAVE to change up or down every few years). Occasionally there are huge shifts caused by outside influences, fluorescent colors in the 60's due to dyes becoming available, now shimmer surfaces because durable ones have become relatively cheap, but even those are fairly well anticipated.
If you're interested enough try writing a dozen or so folks you think are very 'in tune' with an area of interest, then next year see how accurate they were. If you can show a decent track record of getting good predictions then hey, I smell $$ subscriber report...
Oh, and those color predictions: Good to keep in mind when painting the living room, buying furniture or a new car.
mustang (Score:1, Informative)
and has a compiler/VM to which you have no source code access!
The source is here: https://mustang.dev.java.net/ [java.net]
Re:Hype? (Score:3, Informative)
Actually ASP was server side compiled and cached long before ASP.NET...
Re:CS Departments shouldn't use proprietary langua (Score:5, Informative)
A university cannot make a programming language choice that introduces unnecessary barriers to blind students. Python does so.
For programming courses in universities, maybe Ruby is a better choice than Java. Maybe Perl even is. But Python is not, because of this one simple feature that completely rules the language out, in my book, regardless of how good the language is otherwise.
Re:With All Due Respect to Bruce E. (Score:3, Informative)
I think you forgot to mention that "Thinking in Java" [mindview.net] is also a free download, no strings attached. The C++ version of this book, "Thinking in C++" [mindview.net] (also a free download), helped me "get" OOP.
Re:CS Departments shouldn't use proprietary langua (Score:2, Informative)
But I can talk about what makes good teaching languages. The purpose of a teaching language is to serve BOTH those who will be programmers, and those for whom CS1 is just an interesting (hopefully not harrowing) life experience. Python, with its VERY low floor and VERY high ceiling serves both purposes exceptionally well.
I use Python with high school freshman and sophomores as a "pre-AP" language, and find it a real joy to use. In fact it has really turned part of my professional life around, and made me renew my commitment to teaching younger kids programming-as-such. I'm having a blast.
I have used Pascal, AP-ified C++, Scheme, and Java. I've taught structured programming, objects, and functional style.
I find that teaching state machine programming with Python is providing hooks to start many wonderful conversations about variables, values, expressions, control, objects, garbage collection etc. etc... And, mirabile dictu: the way the math works relates to Algebra in a comprehensible way!
Most significantly, students are showing inititative and making up little hacks on their own in a way that they haven't since Turbo Pascal. As a constructionist kinda guy, that's the big win for me.
Re:maybe to ruby, not python (Score:3, Informative)
And so I would prefer native fidelity I much prefer SWT/JFaces...or the RCP as a whole depending on how big I'm talking. So SWT is a pretty raw API. They put Jfaces on top and to the side the API stack, but JFaces isn't as powerful as something like Swing, so...
To me, the only thing that doesn't make programming in Java a complete monotonous/boilerplate-ridden pain in the ass are the IDEs, which everybody knows are second to none. But hell, give me Ruby and vim and I'm good to go even though the RDT and RadRails plugins for Eclipse are getting better. Ruby and/or Python both could use a rich Smalltalk-like environment like that were around (and I guess still are) 20 years ago. At the very least the move to a real VM in Ruby 2.0 will be nice and bring up performance considerably.