Getting the Java Religion 63
Anonymous Coward writes "Interesting article at angryCoder about java,c# and the entire .com "hype". Take a historical approach to the entire thing and brings up the following points: no business is truly altruistic, and one needs to learn from history or else."
So, what was that about Java? (Score:3, Insightful)
The rest was all quite rambling about different OSes for no particular reason that I could discern.
Re:So, what was that about Java? (Score:3, Insightful)
It's not even that true any more, certainly within 50% of C++ in most cases. What is true is that it doesn't allow any 'low down' control, and that it bloats out a treat. But, it is generally believed here (NZ) and quite possibly the rest of the world that Java is the near term future of internal applications (which accounts for perhaps 95% of software development) but certainly not systems programming (which accounts for perhaps 95% of CPU cycles executed).
Dave
Re:So, what was that about Java? (Score:3, Insightful)
Wrong, from Wrongsville Alabama. I'm a C++ (systems) coder. There's just no point in trying to get C++ bespoke work any more since most projects are done in Java.
meeting 50% of c++ speeds which is pretty sad
Well, Java on a 1GHz Athlon is going to be about as fast as C++ on a 500MHz - which sounds fine to me. Don't use it for anything computationally expensive and you'll be fine.
Dave
Re:So, what was that about Java? (Score:2)
It's interesting to hear different perspectives in different parts of the country. I live in Sacramento, CA and I've had recruiters tell me "We need to focus on your skills other than Java because I have a stack of Java programmers looking for work right now". They are telling me to brush up on my STL and newer C++ technologies to generate some interest from employers. I've been exclusively a Java developer for the last 3 years and have some contact experience with nearly every common enterprise used Java technology... But companies don't care about your JDBC experience unless the target database was Oracle.
Java doesn't use the stack (internally) (Score:2)
Re:So, what was that about Java? (Score:3, Funny)
Re:So, what was that about Java? (Score:2)
Yeah, 95% was a bit much
Dave
Re:So, what was that about Java? (Score:1, Informative)
Many developers work with several languages, and recognize that each have different strengths.
I myself am a Delphi and C++ guy.
Re:So, what was that about Java? (Score:5, Insightful)
Religious? No. Obsessive? Often. And with good reason; I'll let you in on a few.
Your average Java programmer is not a happy-go-lucky hacker. He works for a living, and wants a language that supports his development.
With Java he gets:
I like Java for all these reasons. I also like C++, for its power and the extra 5% performance I can squeeze out of it if I need to, and because I'm anal enough to do it right. But I've worked with more than a dozen people who weren't, so it became my problem to fix their mistakes.
One final thing. Using an Apache-style architecture, a Java server can happily achieve 90% of C++ performance on most client-server applications. And I've worked on two projects that prove it.
Re:So, what was that about Java? (Score:2)
Hmm. I'll try the polite answer, shall I? :)
First, I said Apache-style architecture, not Apache architecture. This means a pool of independant entities all of which block on a common kernel signal, and the first one to obtain the signal takes and processed the associated request synchronously with respect to itself.
Whether threads or processes are used is largely academic, and is not an architectural consideration (it is an implementation consideration). On most Unix systems threads are not first-class entities in the scheduling system, and cannot be considered for high performance applications. Win32 systems on the other hand support multithreading as well as multiprocessing natively, and Apache itself could be implemented as efficiently using threads as using processed (possibly more so, because win32 doesn't have copy-on-write process creation).
Java is perfectly capable of supporting several architectures other than thread-per-connection. Not to mention that Apache itself is a thread-per-connection (or process, if you wish to draw a distinction); in which threads/processes are reused, and a limitation is configured on maximum simultaneous threads/connections.
The most significant thing about the Apache architecture is that there is no controller process which listens on the server socket and assigns new connections to pooled processes. Instead, each process is a peer, and listens for new connections when it can. This enhances both performance and stability. This is what I was meaning when I referred to an "Apache-style architecture".
Java is able to scan in a non-blocking manner for new connections, or for data on a connection. As such it can implement pseudo-select() functionality. JDK1.4 in fact has the nio package which implements a Java equivalent of select().
Finally, in connection with your claims about performance, I said "average client-server application". You have quoted me an extremely contrived benchmark. Not only is the serving of 1 byte files unreasonable as an "average" application, but a web server is not an application server, but a file server.
Quote me a benchmark on a Java server versus a similarly-architeced C++ server in which there is some serving of static content, but primarily (say 70%?) involves server-side processing (even page generation would be reasonable), and I'll be more inclined to accept your view.
Re:So, what was that about Java? (Score:1)
Hysterical. (Score:2)
Dave
Re:Hysterical. (Score:2)
"Developers! Developers! Developers!"
God, stop saying that! It gives me bad dreams of Ballmer as Kong demanding his next course in an endless banquet.
Missed an obvious insight (Score:2)
And yet they omit to mention that somethimes it gets cold in Canada in the winter?
Re:Missed an obvious insight (Score:1)
That's only because we use the metric system and measure temperatures in degrees celsius (or centigrades). You think 25 is cold? That's what we get in the summer!
Re:Missed an obvious insight (Score:1, Funny)
Re:Missed an obvious insight (Score:2)
Re:Missed an obvious insight (Score:2)
No wonder (Score:3, Funny)
Got me thinking... (Score:1, Interesting)
Bottom-line: We need to innovate better for the Linux platform.
Re:Got me thinking... (Score:1, Insightful)
First you have a lengthy rant about how Linux needs "innovation", then you say what it needs is to clone a bunch of features from Apple and Microsoft.
Bottom-line: You're babbling.
Re:Got me thinking... (Score:2)
Why would anybody who came up with an innovative application release it only for Linux? Linux is always going to be playing catch up, it doesn't have the monster market share and so things are going to be developed for Windows first.
There are innovative window managers out there, but they just aren't as common because most people using Linux previously used Windows and are comfortable pressing alt-f4 to close an application, even though there is nothing intuitive about it.
That won't happen as long as I can't watch my .mov files (easily) or have a seamless experience with copy & paste, URL's, being able to print, etc.
Every one of those points I wholeheartedly agree with! Just yesterday I tried printing an email from Kmail. For reasons completely unclear to me, Kmail sent 8 1/2 x 11 formatted data to the printer. The result of course was that the printer has gutter space on every side of the paper so it didn't print those regions and the printout was unreadable. I opened the same mail in Eudora on windows and got a perfectly formatted print (was darker and therefore more readable too).
Re:Got me thinking... (Score:2)
always going to be playing catch up, it doesn't have the monster market share and so things are going to be developed for Windows first. "
I think you making a fundamental mistake here. Clearly people do produce applications for linux, or indeed other unix platforms. There are plenty of them around after all.
The mistake is that you are assuming that all application developers are aiming at a wide market. Whilst it may be true that M$ want everyone to use word, its untrue of 99% of applications which are developed. Most applications are written for a small market base, for people with very specific requirements.
So for instance if I was writing music software I would probably write for the Mac, because thats what most musicians use. Myself I'm a bioinformatician, and most of use some form of Unix. Hence linux is my main platform both for development, and my main target platform. There is nothing particularly religious about this. Unix is a better platform for our needs, and linux is useful because the hardware is dirty cheap.
What the article is talking about is not actually innovating applications, he is talking about high volume, "killer applications". More or less by definition by the time something turns into a high volume killer app, it will have lost most of its innovation, and will be using something that has gone before.
Phil
Good, ole fashioned, F U D (Score:5, Insightful)
When you say "Hopefully Linux will manage to survive" what you are really saying subconciously is "Linux may not survive, so don't use it". also by adding another, better choice in the same passage ("Windows has become a component-based rapidly-developing operating system"), you allow the reader to think he has discovered for himself something that the author has blindly missed. It makes the reader think he's "figured out" that Windows is superior. When you "figure out" something like this, it is far more credible (since it is coming from your own head) than when somone just jumps out and trys to push something in your face.
The propaganda battle (often called Marketing, btw) that's been going on recently would make a Nazi blush...
Re:Good, ole fashioned, F U D (Score:1)
Re:Good, ole fashioned, F U D (Score:2)
article=waste of time (Score:3, Insightful)
Death of Linux and Java imminent (Score:2, Insightful)
He also says good things about visual basic. Visual basic is a crappy language. Or, at least, everybody thinks that. So, of the 10 or 20 competent programmers I have met in my life, only one of them would even consider programming in Visual Basic (and I'm sure he'll drop it once he learns java or C++).
Re:Death of Linux and Java imminent (Score:1)
I used VB once - its great for quickly prototyping crap applications.
But then I found C and C++ Building and was happy
Dropping VB (Score:1)
Interesting?? Not. (Score:1)
Too many words for very little point and new info.
Good languages come and go? (Score:1)
I don't think we are anywhere close to one of thouse 5 year periods.
Incoherent rambling (Score:4, Insightful)
Has he ever had to _support_ a big MS server installation?
Sure, the "Mainframe is dead", except for the tens of thousands of businesses that rely on fast, efficient, reliable, and comparatively cheap processing provided by mainframes and the relatively inexpensive cobol programmers that man them.
Sure, Unix is a 'niche market', except for the millions of users who use it every day for tasks ranging from mainframe replacement to destop applications, not to mention the countless academic, engineering, and other uses Unix is put to. For example, running most of the infrastructure on the Internet.
Yeah, Java runs slow. Boo hoo. So does a windows machine, even when you ignore downtime due to reboots and system crashes.
When this bozo is ready to bet his business on a technology, and is ready to assume full responsibility for the consequences of his decision, and is able to execute on his strategy, then and only then is he qualified to write a credible version of the article referenced.
Re:Incoherent rambling (Score:1)
I would love to see a solution to programming lang's and operating systems that meant we could all get on with doing the more interesting problems - but we need the open community and the microsofts, as long as there is more than one, then we should all be happy.
and who cares if jave or c# or vb is slow, its a great excuse to write better algo's or even buy a better/cooler machine
Re:faster changing != better (Score:2)
MS has an excellent track record for backward compatability. And on 90%+ of the cases, you need to make zero changes to the code to make it work the way it did.
On the other 10%, either you didn't write to the spec, or there was a bug that was solved, or (actually rarer that you may think) a bug in the new API changed the way it behave.
For crying out loud, I've a Win3.11 applications that I can still run on XP, so don't tell me about having to re-write code.
Re:faster changing != better (Score:2)
"If, by compatability* you mean lack of features"
*Linus was talking about Minix and the word was 'portability' then. Basically, he was saying that sure, Minix may run on an Atari or 8086, but it can't take advantage of the advanced features of 386 CPU. While I'm not a fan of too fast change -- Windows's is backward compatibility is severely limited by what it is able to do. Try porting a multithreaded networked 32 bit Windows application from say, 6 years ago. Heck, try running a dos program with more than 640K memory. I think in "modern" windows OS, you can't even use half that.
Re:faster changing != better (Score:2)
You want to extend it without re-writing it, use the old methodology, it would *work*. That is the nice thing about Windows, backward compatability is extremely good.
Backward compatability -- The ability of OS to run executables that run on older version of the OS.
Hey, I can play GoldenAxe on XP, And that dates to 90's or so, so don't try to tell me about no backward compatability.
Java is the new way ? (Score:1)
This is the funniest line in the piece. Java has been released for how long now?
Oh thats right, it hasn't.
The whole article is a troll (Score:1)
"Although J2EE is designed specifically to run on any platform, given the nature of running under a VM, realistically Unix (or Linux) became the main target. "
Huh? after whining about VB not getting respect for running under a VM?
"alternative means of producing software for the software-starved and innovation stagnant Unix platforms. "
Nice. No need to comment.
"So Java is a new revolutionary language? Errrm, well, NO! Those with a C/C++/BCPL or whatever background find it all VERY familiar"
Totally missing the point that the familiarity is intentional, and the libraries and runtime are key elements in Java's usability and widespread adoption. Focus only on the language and those things go away.
"Many of the Nintendo-playing, JVM-weaned Java-kiddies passionately shout about the evil Microsoft empire, joined by the die-hard Unix guys who are still bitter about the mass-market juggernaut of the Microsoft technologies. "
Nice derisive stuff, illustrating the formidable bias of the author. Note the subtle smear along the lines of "java is a toy language". Reminds me of 1996!
"So many of us are very excited about the
Again, no comment needed.
Typical stuff. Microsoft has an army of resellers and service vendors who will spew this stuff as long as anyone will listen.
Re:The whole article is a troll (Score:1)
I'm very excited about the
.Net = (Score:1)
SIGN ME UP NOW. I WANT A
Go MONO!!!
Yahoo!!!
-hack
IBM will drop Linux (Score:1)
Thats odd... I'm sure I've seen IBM pour a large amount of money in to porting linux over to its 390 range servers and its infamous "Love, Peace and Pengiun" adverts that they got in trouble for when they spray painted them on side walks.
IBM also seem to be pushing java a fair amount also, I have got a heap of IBM/Java demo crap at home from shows
Maybe he is just tired about all these hypes... (Score:1)