Slashdot Mirror


Java Is So 90s

An anonymous reader writes "Some of you may recall last year's Java vs. LAMP Slashdot flamewar. The fight has now "brewed" (couldn't resist) into the mainstream press at BusinessWeek." From the article: "Yared says developers far and wide are creating a new generation of Internet-based applications with LAMP and related technologies rather than with Java. Can it possibly be that Java -- once the hippest of hip software -- has become a legacy technology, as old and out of style as IBM's (IBM) mainframe computers and SAP's corporate applications? Mounting evidence points to yes. Reports by Evans Data Corp., which does annual surveys of the activities of software developers, show Java use is slipping as LAMP and Microsoft's .NET technology gain traction."

126 of 923 comments (clear)

  1. The real 90s versus outdated 00s software by dada21 · · Score: 4, Interesting

    When I think of the 90s, I think of my days designing in RIPterm and uploading and downloading warez while chatting with Bimodem while trying to figure out the best initialization string to take advantage of the V.42 modem I used.

    I definitely do not think of Java as a 90s scripting/programming language -- although I do get very frustrated when Java apps don't run properly on my PDA. I do think that Java is an outdated language that always seemed unfriendly to users and caused a lot of extra cost/headache to my customers when every software company we supported seemed to attempt to create a Java app to access their software engines.

    I think Java has (had?) some features that made it easier to program in, especially for not-so-wise programmers. The automatic garbage collection allowed my guys to make quick fixes without worrying about memory management (I am being sarcastic here, I had some real dumb asses subcontracting some of my work). The speed of Java was great too (still sarcastic), and the consistency of the output code was always a positive (yes, still sarcastic).

    I guess my big concern with LAMP is what the hell is the P? PHP? Python? Perl? They're all very powerful and they all have their own positives and negatives in regards to quick scripting solutions, but all of them still allow bad programs to churn our badly written programs. I'm guessing that is the trade-off: the more complex programs you can write, the more likely you are to see badly written programs.

    It is very hard not to be sarcastic when talking about Java. Every CEO of every company I consulted with loved to spew the big tech words, and Java haunted me for years. I'm glad I don't hear it anymore -- should I thank the dotbomb for that?

    In the long run, I think the 90s client-server systems will come back into use. Software companies have every reason to move back to controlling their applications and charging for use rather than licensing the code out to end users. I seriously believe the push for faster cable modems and DSL to the home is through the software developers (and music and video publishers) in order to just stream everything rather than offer the user the ability of unlimited copying. Once you have 2MB WiFi nation wide, there is no need to ever store your programs or your media anymore, right?

    1. Re:The real 90s versus outdated 00s software by xtracto · · Score: 4, Insightful

      I do think that Java is an outdated language that always seemed unfriendly to users and caused a lot of extra cost/headache to my customers when every software company we supported seemed to attempt to create a Java app to access their software engines.


      How can you call it an "outdated" language? what is an outdated language? Ada is an outdated language, BASIC may be another.

      I like Java (as a language) a lot, I have used it for enterprise level applications (supply chain management software) and currently I am using it to make market based simulations.

      The wrong thing about Java is the Virtual machine implementation. You can blame Sun for that. If Java is slow, grabs lots of memory and all that it is because of the virtual machine, not because of the language. A language is just a BNF diagram specification which describes the syntax of the program, and all of its reserved words.

      What Java needs is a better (less memory and faster) implementation of the libraries it has and the virtual machine to run the programs. As an example, almost everyone who has used C# or any other .NET program can see the applications run quite fast.

      --
      Ubuntu is an African word meaning 'I can't configure Debian'
    2. Re:The real 90s versus outdated 00s software by Eric+Giguere · · Score: 2, Insightful

      What I don't get is why it's always characterized as "LAMP vs. Java". To be correct it should either be "Perl/PHP/Python vs. Java" or "LAMP vs. LAMJ", because many Java systems are already built around Linux, Apache and MySQL.

      Eric
      Invisible Fence Guide

    3. Re:The real 90s versus outdated 00s software by eneville · · Score: 3, Interesting

      Its much more than just ramped up c/c++. It's a platform of it's own. c/c++ is compiled, as I am sure you are aware. For the most part java byte code is not executeable as such, its something between executeable and script, close enough to script to be decompiled directly to it's original structure.

      Yes perl is nice, but perl itself is 90's also.

      There are ofcourse something that java has which these others do not, such as stronger types and a good OOP.

    4. Re:The real 90s versus outdated 00s software by IAmTheDave · · Score: 3, Interesting
      I really do hate the virtual machine implementation

      As a once was Java developer (now more LAMP and .NET) it seems to me that Java deserves two things. First, it deserves credit as the first of the truly wonderful cross-platform, virtual machine driven JIT compilation using languages. It was, without question, the inspiration for the .NET platform.

      However, it also seems to me that Java is just not keeping up. It's windowing libraries still suck. Its VM barely improves with each release.

      So Java's claim as a landscape-altering language is indeed deserved, but one must wonder how long it can last. It will probably always have a market, just as C still has a market, despite the likes of C++, Java, etc. However, everything that goes up must come down, and as dynamic internet language, I believe its hayday to be over.

      --
      Excuse my speling.
      Making The Bar Project
    5. Re:The real 90s versus outdated 00s software by dada21 · · Score: 4, Insightful

      LISP? ;)

    6. Re:The real 90s versus outdated 00s software by eneville · · Score: 3, Insightful

      > > Languages don't cause bad programs to be written --
      > > bad programmers do!
      >
      > Nonsense. Languages can be specifcally designed to
      > encourage and assist programmers in achieving
      > different outcomes. PHP - being poorly designed -
      > encourages poor practices and certainly does not
      > enforce or even encourage secure code. Hence why
      > it is an absolute disaster in practice.

      I don't think it's really fair to claim that a language which is designed for those who are more familar with strings.h to be the cause of faulty, or buggy pages. The fault is that of the programmers for not doing their home work.

      That said, there are some improvements in later versions. This whole article is comparing one type of programming language with a totally different type and thus partly an unfair question as it will slant towards the more popular language paradigm rather than discussing the merits of either.

    7. Re:The real 90s versus outdated 00s software by Ooblek · · Score: 3, Insightful
      truly wonderful cross-platform

      Ahem...

      It should be truly wonderful, as-long-as-all-your-customers-use-the-same-version -of-the-VM-on-the-same-OS-unless-you-are-insane-en ough-to-figure-out-how-a-lot-of-different-virtual- machines-crap-out-on-your-code cross-platform

      I like Java, but it's only cross platform in theory. You have to have good architecture to make it behave properly cross platform. Sure, it's easier than doing cross-platform in C/C++, but the customer doesn't care that its the VM's fault.

    8. Re:The real 90s versus outdated 00s software by b17bmbr · · Score: 3, Insightful

      I teach AP Comp Sci and have been programming in Java, perl, PHP, and others for years. Even did my penance with VB!! I love java and hate java. here's why:

      love:
      object serialization
      sockets
      everything is an object
      i/o
      syntax
      ability to pass objects and arrays as data types
      consistency
      threading

      hate:
      verbosity!!!
      dogmatic approach -> there is one way to do anything
      swing

      overall, i'd say for alot of things, java is powerful enough and useful enough to do most programming projects. without starting a linux flamewar, i see java like linux on the desktop in some ways. it does 98% of what 98% of people need. however, there is no substitute for the remaining 2%. java's security model is limiting as is it's speed. i teach economics as well, and like in econ, there is a trade-off to everything. java trades speed and security for portability and simplicity.

      it tried to be everything to everyone. reminds me of the old SNL bit about a desert topping and a floor wax.

      however, as c/c++ brings enormous problems and difficulty which java solves, python has OO design and clarity and speed of development like java, yet is far more extendable. (think UI's)

      had python the corporate backing of java it'd be more prevalent, which I'd like to see that happen in the near future, especially with the AP test. but, any language still boils down to the best tool for the job. and for many things, java is really good.

      --
      My problem? I was perfectly gruntled, until some numbnuts came by and dissed me.
    9. Re:The real 90s versus outdated 00s software by brunson · · Score: 4, Funny

      Write once, debug everywhere.

      --
      09F911029D74E35BD84156C5635688C0
      Jesus loves you, I think you suck
    10. Re:The real 90s versus outdated 00s software by Decaff · · Score: 4, Interesting

      However, it also seems to me that Java is just not keeping up. It's windowing libraries still suck. Its VM barely improves with each release.

      Eh?

      Java 5.0 VMs are vastly better than previous releases, with more optimisations and better garbage collection. They can routinely equal C++ in terms of performance. As for the windowing libraries, Swing is now hardware accelerated and totally indistinguishable from 'native' GUIs on MacOS/X and Windows Vista.

    11. Re:The real 90s versus outdated 00s software by plumby · · Score: 4, Insightful

      It's funny. Every time there's an article about Java, someone posts a comment like this, and every time I respond by pointing out that at my company, we build enterprise scale Java applications - usually developing on Windows, and then moving (in the test/live environments) to HP/UX or Solaris, and not beginning to do some on Linux. In the 4 years I've been involved in these projects, we've had a grand total of 1 bug that related to different JVMs.

      Doesn't prove that incompatibility doesn't happen, but does demonstate that cross-platform is entirely possible.

    12. Re:The real 90s versus outdated 00s software by man_of_mr_e · · Score: 2, Insightful

      Yes, Java can equal C++ in terms of performance, if you ignore JIT startup lag, ignore the bloated memory footprint, and ignore the insanem performance losses when the garbage collector kicks in.

      Other than that, in a bubble of pre-JIT'd code with only a single data point, Java Rules.

    13. Re:The real 90s versus outdated 00s software by jkauzlar · · Score: 4, Interesting
      Because those oh-so-free PHP developers can't stand that sun-controlled Java can be easily lumped in with Linux and MySQL. I use only Linux and MySQL w/ Java and I'd feel severely handicapped w/o many of JSP's cool features. I still meet people (developers) who think that Java means 'applet' which only proves that the applet was the most retarded marketing mistake ever created. I don't even touch Java GUI.

      I'm not trying to flamebait, but I'd like to point out why JSP is much more attractive to me than PHP:

      1. JSP tags w/ expression language-- I barely need to code inside of a JSP page. JSP works as the ideal 'pure templating language' along w/ CSS.
      2. The webapp environment w/ web.xml-- okay, I'm not sure if PHP has a similar construct, but it's great to be able to organize an entire web application in a single file.
      3. The option to move into full-fledged J2EE (scalability)
      4. The language and libraries, while maybe not well implemented, are extremely well thought-out. The collection libraries are absolutely perfect! The 1.5 features make them even better
      5. Very standardized. Those that don't want to track the versions of all their supplementary libraries need not worry. Sun and Apache have nearly everything you'll need.
      6. Eclipse! Amazing IDE! Handles refactorings, remote revision control, builds & deployment, Javadoc tooltips and it 'knows' Java well. You'll never get compile-time errors and very few run-time errors.
    14. Re:The real 90s versus outdated 00s software by moro_666 · · Score: 4, Interesting

      indeed, java is much more than just a language.

      and anyone who claims that java is 90's, should call themselves so lampish.

      java is a multithreaded platform that runs across most servers that you can meet todays. it runs on windows ,linux ,os x, solaris, bsd so it has most of the parts covered. it doesn't need code recompilation nor does it need the developer to be aware of what the platform actually does beneath. people that have done lots of cross platform stuff in C know that this is a living hell from some point on.

      perl/php are no real competitors to java, they have never been ... but python is a different story, there's something usable coming out from there :) python isn't really a platform, but it's much closer. it has pretty fast bytecode, it has threads, it has most the usual platform things builtin. it has quite strict syntax too, which makes it less error prone.

      as a programming language the java language is quite superior to any other platform independent languages today, it doesnt need #define's in the code to compile everywhere nor does it need you to keep count on bits and bytes of the cpu architecture. again the only competition is coming from python.

      php doesn't have threads, perl has clunky ithreads (hopefully we see something better in perl6). how can you even call a forced singlethreaded script a "php platform" ? yeah sure you can make the script complicated, or even fork it and use flock's and shared memory between the things ... but this is like stoneage or smth ... if you have a massive 5-class deep extension tree on your oop layer , php needs to parse (or use the cached version, but still rerun) all the classes each time a php page is loaded in apache. perl has had some ways to overcome that issue including fastcgi & counterparts. but this is still stoneage compared to the rockstable persistancy provided by python or java.

      java and python are the ones that are fighting for the throne of opensource application servers and services. php is dying and perl is ... well perl is perl. for now ... but i have really big hopes on perl6 ...

      and somehow i forgot ruby altogether ... but i haven't investigated it that much, so i'll better keep my mouth shut.

      from my point of view :

      perl : yay, my swiss army knife, my love, my favourite tool
      php : easy way to do dirty stuff quickly, good for little servers
      python : a well start dudes, keep the pressure on, good almost everywhere.
      java : i only wish it had a smaller memory footprint, great for real servers, overkill for little ones

      if there's anything in the opensource world that can obsolete java then it's python and it's compiled bytecode.

      perl & php without proper persistance and threading models are so 90's. and using php scripts that are 4-5 times slower than the according in java or python analogues is so 90's too.

      --

      I'd tell you the chances of this story being a dupe, but you wouldn't like it.
    15. Re:The real 90s versus outdated 00s software by Decaff · · Score: 5, Insightful

      Yes, Java can equal C++ in terms of performance, if you ignore JIT startup lag, ignore the bloated memory footprint, and ignore the insanem performance losses when the garbage collector kicks in.

      No.

      There is no JIT startup lag in modern VMs - the JIT is not called at startup - it is a background thread.

      There is no bloated memory footprint. Java applications (as in J2ME) can run in only a few hundred kilobytes. The simplest standard Java apps can run in only a few MB, which on machines with 256MB or greater is totally insignificant. Server-side apps can securely share the same VM, so can take up even less memory.

      There are no performance losses when the garbage collector kicks in on modern VMs, as the garbage collection can run in the background. As proof of this, Java can now be used for real-time applications (such as in aeronautics) where any garbage-collection delay would be disastrous.

      Other than that, you are correct.

    16. Re:The real 90s versus outdated 00s software by masklinn · · Score: 2, Informative
      First, it deserves credit as the first of the truly wonderful cross-platform, virtual machine driven JIT compilation using languages.

      That would be Smalltalk.

      --
      "The way we can tell it's C# instead of Haskell is because it's nine lines instead of two." -- wadler
    17. Re:The real 90s versus outdated 00s software by masklinn · · Score: 2, Informative
      everything is an object

      That's so wrong it hurts.

      Primitive types are not objects, nor are functions, methods, or class.

      Check Smalltalk, Ruby or Python (for example) to see what "everything is an object" truly means.

      A class is an object, a module is an object, a function is an object, every single built-in type is an object. THAT is an everything is an object approach.

      --
      "The way we can tell it's C# instead of Haskell is because it's nine lines instead of two." -- wadler
    18. Re:The real 90s versus outdated 00s software by Berkov_s1 · · Score: 2, Informative

      "Ada is an outdated language"

      Rubbish. There is about to be a new definition of the language 2005/2006 depending when they get round to it. You know the new Airbus - running Ada. It is still the defacto safety-critical/defense language

    19. Re:The real 90s versus outdated 00s software by drightler · · Score: 5, Funny

      "joys of Perl".... that makes me shudder. I learned how to program with Perl. Took me forever to unlearn the "Perl" way and start programming the "right" way. ;)

      --

      blah blah blah....
      drightler@technicalogic.com
    20. Re:The real 90s versus outdated 00s software by naarok · · Score: 4, Insightful

      Absolutely! The Java apps we have (over 100 thousand lines, so not small), have been deployed on customer equipment running on Windows, Mac, Netware, Solaris and AIX. Other than some bad coding on our part relating to file paths the only problems we've had is look & feel issues where the screen didn't look or work right on some environments. Yes, running on many platforms does require a great deal more testing (our QA department has machines piled on machines) so the write-once-test-everywhere statement is true. But if the choice is to expect a customer to buy a new machine to use your software or let your software run on their existing machines, the price is well justified by the sales.

    21. Re:The real 90s versus outdated 00s software by naarok · · Score: 2, Informative

      If you haven't met a serious developer that could say Java ran flawlessly on every platform, then you haven't been looking.

      How about a 100 thousand plus line app running flawlessly on Windows, OS X, Netware, Solaris and AIX? Not linux yet, but close. The problem wasn't with our code, but getting drivers for third party hardware.

      Oh, and also talking to MSDE, MsSQL, MySQL, Oracle and Postgres databases.

      Why this kitchen sink of combinations? Because that is our customers environments and if we can say we work on their environment rather than forcing them to our environment, we both win (only our QA department loses)

      While "Java, Write once, Test everywhere" is true, that should be true of your product regardless of language, so you haven't really lost anything.

      We've had some GUI issues, but the server-side code has required almost no special handling for the different OS's (we did need to work around an OS X bug).

    22. Re:The real 90s versus outdated 00s software by S.O.B. · · Score: 4, Informative
      I've never seen any serious developper that could tell me he was able to make Java code flawlessly run on every plateform.


      I work on a Java app that processes over 25 million transactions a week for a large financial institution.

      This app used to run on OS/390 but we moved it to Solaris and the only compatibility problem we found had nothing to do with Java but SQL language differences going from DB/2 to Oracle. Now we do all of our development on Windows and our production runs on Solaris using the code we compiled and packaged on Windows.

      Now that might not be "every platform" but I think you'll agree that the three platforms I mentioned are about as different as you can get. Especially OS/390 on which none of the other languages mentioned in this discussion will even run.
      --
      Some of what I say is fact, some is conjecture, the rest I'm just blowing out my ass...you guess.
    23. Re:The real 90s versus outdated 00s software by man_of_mr_e · · Score: 2, Interesting

      A background thread doesn't help you the first time you access the application. It still has to JIT before the code can execute. Background threads can help with predicted access, but that's not always going to happen either. If the code runs faster than the JIT'er can JIT, you're still left waiting.

    24. Re:The real 90s versus outdated 00s software by Decaff · · Score: 3, Insightful

      A background thread doesn't help you the first time you access the application. It still has to JIT before the code can execute.

      No, this is not true. What happens is that the code starts up as interpreted so that the program can proceed without any JIT at all. Then, in the background, the performance profiling starts and time-critical sections of the code are translated. This is the way that the Hotspot optimiser works on modern VMs, and it is very effective in reducing start-up times.

    25. Re:The real 90s versus outdated 00s software by man_of_mr_e · · Score: 2, Interesting

      Also, background threads don't help with CPU intensive work on single processor boxes. It just steals more cycles from the CPU bound task. You seem to think that background threads magically create more cycles out of fairie dust.

      Background thread or not, the GC and the JIT'er take CPU cycles, (and lots of them). The only time you get a benefit from background threads is when the foreground process is blocked waiting for something else. All too often you're left waiting all right (for the JIT'er to finish, or for the GC's time slice to end).

      Just because something uses background threads doesn't mean it mysteriously improves performance.

    26. Re:The real 90s versus outdated 00s software by Decaff · · Score: 3, Interesting

      You seem to think that background threads magically create more cycles out of fairie dust.

      No, I never implied that.

      Background thread or not, the GC and the JIT'er take CPU cycles, (and lots of them). The only time you get a benefit from background threads is when the foreground process is blocked waiting for something else.

      Exactly. In earlier implementations of Java the foreground process would be blocked waiting for JIT or GC.

      All too often you're left waiting all right (for the JIT'er to finish, or for the GC's time slice to end).

      Not with a good scheduler and the correct settings for the JVM. If this were true, then implementations of Java which also use JIT and GC would not be suitable for high-performance real-time control, where you must never be left waiting for anything! They are.

      Just because something uses background threads doesn't mean it mysteriously improves performance.

      It can't improve overall performance, but it can certainly improve things like start-up delays and event response times.

    27. Re:The real 90s versus outdated 00s software by MaggieL · · Score: 4, Insightful

      I've never seen any serious developper that could tell me he was able to make Java code flawlessly run on every plateform.

      Quite a straw man there. Very few real "developpers" will claim to make *anything* run "flawlessly" on even one "plateform". Come back and share your opinion once you're able to write a "flawless" English sentence.

      With a parochial attitude, it's easy to introduce an unintended platform dependency. But with a little care about platform issues (especially where access the filesystem is concerned), Java runs smoothly across OSX/Windows/Linux/Solaris/OS400/Mainframes.

      --
      -=Maggie Leber=-
    28. Re:The real 90s versus outdated 00s software by countach · · Score: 2, Insightful

      Most programmers are NOT 'good'.

    29. Re:The real 90s versus outdated 00s software by aftermath09 · · Score: 5, Informative

      have to agree with Mr. Decaff there. Garbage collection has gotten more advanced using things such as incremental GC. Also, specialized VMs such as from bea (look for JRockit) use advanced techniques such as multiple GCs.

      Also the article mentions:

      For one, many of the now-large companies built from the ground up to operate on the Internet don't make Java a major piece of their tech strategy. Those include Google (GOOG) and Yahoo! (YHOO).

      In this article, Li Moore (software engineer at Google) says: "Google makes extensive use of the Java platform. Large parts of popular Google products are written in Java. We also use Java in many internal systems and products under development." So, this would seem to be entirely untrue in Google. I wish people would do a bit of research, instead of speculate/lie (which are, of course, easier to do).

      Finally, I notice that the author of the article asks Peter Yared and Marc Andreessen their opinion. What sort of answer would one expect from the CEO and chairman (respectively) of competing technology companies? Naturally, they would champion their own technology and bash a competitor. I certainly would if I were in their shoes!

    30. Re:The real 90s versus outdated 00s software by Decaff · · Score: 2, Informative

      Even though i'm more of a pythonista, don't forget Ruby here, it got a LOT of momentum fropm Ruby on Rails and the language itself deserves fame. It's well built, flexible, stable, and clearly the best competitor of Python.

      Even though I am mainly a Java developer, I agree that the Ruby language deserves a lot of success. However, I really don't think that there is a lot of momentum around Ruby on Rails. There is a lot of press, and a lot of discussion, but there is little evidence that this has actually resulted in significantly increased use.

    31. Re:The real 90s versus outdated 00s software by typidemon · · Score: 2, Insightful

      Eclipse! Amazing IDE! Handles refactorings, remote revision control, builds & deployment, Javadoc tooltips and it 'knows' Java well. You'll never get compile-time errors and very few run-time errors.

      You think eclipse is good? You should try IntelliJ IDEA. It is what Eclipse tries to be.

    32. Re:The real 90s versus outdated 00s software by Maxmin · · Score: 2, Interesting

      background threads don't help with CPU intensive work on single processor boxes.

      If you know enough about thread management to enter this conversation, then you would know about thread priority settings.

      the GC and the JIT'er take CPU cycles, (and lots of them).

      What takes lots of CPU cycles is poor design. If you find that you're creating and disposing of objects over-and-over again, such that your memory manager is kept noticeably busy, then it is time to revist your design, whatever the language. Simple memory-management in C++ can mask bad design, because inline malloc/dealloc (vs. the GC) will spread the task over time, instead of bunching it together like Java (on a properly prioritized background thread :), making it less noticeable, even though it might be a similar percent of CPU cycles utilized.

      Good reading to this end:

      Effective Java
      Effective C++

      The other thing is, when you use Java J2SE classes from the built-in libraries, you're working with sometimes very general-purpose classes, designed to handle lots of situations. General purpose can equal slow performance. If you want better performance, write better code, specific to the task at hand.

      Also realize that Strings in Java are not at all like char[] in C++. Like I said, general purpose classes can be slow. You're better off rolling your own, at times.

      Cheers.

      --
      O lord, bless this thy holy hand grenade, that with it thou mayest blow thine enemies to tiny bits, in thy mercy.
    33. Re:The real 90s versus outdated 00s software by rossifer · · Score: 2, Interesting

      Java's "Write once run everywhere" motto is a joke, and everyone knows it.

      "Write once, run anywhere" certainly was oversold. For server-side applications, however, it's awfully close to reality.

      We currently test our server-side Java application on Solaris, RHEL, and Win32 (2K, XP, 2003) with JBoss, WebLogic, and WebSphere as the app server with zero changes outside of two configuration fields. All of the internal code that pays attention to the platform differences (and there's more for app server than for hardware/os differences) is in three classes that haven't been touched in almost two years (I just checked).

      This isn't truly "run anywhere" as we only use commodity OS's on "PC or better" hardware, but it sure beats porting a C++ program across those same platforms.

      [...] Ruby on Rails and the language itself deserves fame. It's well built, flexible, stable, and clearly the best competitor of Python.

      I agree. Ruby and Python are rightly taking over light-weight web-application mindshare, but Java and .NET still seem to be more appropriate for more complex systems with big transactional database requirements (and there are a lot of business applications that have these requirements).

      Regards,
      Ross

    34. Re:The real 90s versus outdated 00s software by Vladimir · · Score: 2, Interesting

      Oh, come on! What you say may be true on an average desktop with the usual 2% cpu load, but if you have all your CPUs 100% busy where do you get any time for "background"? Next, ever tried any Java IDE? NetBeans,Eclipse -- try that against Xemacs! It's only 100 times more responsive and doesn't crash with "NULL pointer exception" while collecting compilation output. The problem with Java is that you pay A LOT for stuff you don't use. How may bytes is Object on 64 bit platform? What is the price of Object allocation vs C-style allocation on stack? And it's not going away with a better compiler, because language itself guarantees certain things (that are expensive). Another problem is the memory model of Java. The C program can use as much virtual memory as it is allowed (i.e. in most cases the it is a priori bounded by the virtual memory size), on Java, if I understand correctly, you should set beforehand how much you will allow it to use (and the one I tried didn't allow for more than 2GB on 32 bit linux). Can I set the limit to 1TB on 64bit? In C program it make perfect sense as *I* control memory, on Java I'll need to do tricks to clean the memory or it'll eat everything.

      Also, please disclose which airlines use Java for realtime purposes!

    35. Re:The real 90s versus outdated 00s software by Kent+Recal · · Score: 2, Insightful

      So they will be able to do some of the work after the web service has responded to the client. This is a benefit for single threaded hardware.

      Wtf. Can you name a piece of "single threaded hardware" that provides "web services" (I assume you're talking about SOAP and the ilk?).

    36. Re:The real 90s versus outdated 00s software by SageMusings · · Score: 2, Interesting

      People keep saying this. I suppose that includes most slashdot posters, too.

      I do not mean to rock the boat but I have mostly met very good programmers. Those who were less than stellar usually improved markedly after a bit of coaching and review. Why does everyone believe that good programming requires some magic intangible that most of do not have?

      I have yet to run across another professional from another discipline who constantly claims all his peers "mostly suck". This is not an attack on you or your post; it is just a fervent wish that we start selling ourselves as the professionals we want to be perceived as being.

      Now QA? They suck....:)

      --
      -- Posted from my parent's basement
    37. Re:The real 90s versus outdated 00s software by bill_mcgonigle · · Score: 2, Insightful

      "joys of Perl".... that makes me shudder. I learned how to program with Perl. Took me forever to unlearn the "Perl" way and start programming the "right" way. ;)

      The Perl Way is to let you do what you want. That you chose to code poorly (or didn't know any better) isn't a reflection on Perl, unless you believe Perl should have forced you to program a certain way.

      Larry Wall is a linguist and he wrote Perl.
      Linguist Larry Wall wrote Perl.
      Larry Wall, a linguist, wrote Perl.
      A linguist wrote Perl; his name is Larry Wall.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    38. Re:The real 90s versus outdated 00s software by offerk · · Score: 2, Informative
      Especially OS/390 on which none of the other languages mentioned in this discussion will even run

      Not true. Perl runs on every platform mentioned in the above thread, including OS/390.

      --
      I learn from all my mistakes, I intend to be a genius at the end of my life.
    39. Re:The real 90s versus outdated 00s software by HamishLawson · · Score: 2, Informative

      Especially OS/390 on which none of the other languages mentioned in this discussion will even run.

      Python appears to be available for OS/390:

  2. Don't Flame Me Because I'm Beautiful ... by eldavojohn · · Score: 5, Insightful

    The second sentence from the original article posted on /. Started as: "Not to start another PHP vs. Java flame war..."

    And now begins the second flame war started by said article.

    Gentlemen and nerds, prepare your flamethrowers and ectopacks (respectively)...

    Begin!

    When will I see a constructive article comparing and contrasting the two and inviting a civil conversation and an acknowledgement that there are fans on both sides?

    Come on, it's not like this is a religious argument or (possibly worse) a Star Wars vrs. Star Trek argument.

    --
    My work here is dung.
  3. In Related News by CodeHog · · Score: 4, Funny

    Basic is reported as "So 80s".

    --
    Fat, drunk, and stupid is no way to go through life, son.
    1. Re:In Related News by mforbes · · Score: 4, Funny

      The first code I ever wrote that had an actual purpose was in BASIC:

      10 for i = 1 to 100
      20 print "I will not talk in class."
      30 next

      (True story!)

      --

      Allegedly real newspaper headline from 1998:
      Man Struck by Lightning Faces Battery Charge

    2. Re:In Related News by daeley · · Score: 4, Funny
      Wow, I wrote my first basic aroung 1975:
      • 10 print "Hello World"
      • 20 goto 10


      And it's STILL RUNNING!!!! ;)
      --
      I watched C-beams glitter in the dark near the Tannhauser gate.
    3. Re:In Related News by AndroidCat · · Score: 2, Informative

      Print with no , or ; termination automatically does a CR/LF.

      --
      One line blog. I hear that they're called Twitters now.
  4. About time by Anonymous Coward · · Score: 2, Funny

    I thought no one would notice my coffee has gone cold!!!

  5. And when they say "LAMP" by tcopeland · · Score: 2, Insightful

    ...they mean Linux Apache Middleware PostgreSQL.

    And when they say middleware, they mean Ruby!

  6. PHP vs. Java by mysqlrocks · · Score: 5, Insightful

    Here's my take. For most web sites, use PHP. If you need enterprise level stuff, use Java but don't let anyone tell you that PHP is not scalable, that is simply not true. Don't go to .NET - nothing you can really get on .NET then you can't get with Java. Enough said. Flame On.

    1. Re:PHP vs. Java by estebanf · · Score: 2, Insightful

      true.. but the choice between .NET or Java should be based on other facts different that you hate MS. Consider your enterprise enviroment... if you are in a windows only network, why would you look for trouble with java?...

      --
      DON'T STEAL MUSIC!
    2. Re:PHP vs. Java by pinkstuff · · Score: 4, Funny

      If PHP is so scalable, then why use Java for enterprise applications? :-)

    3. Re:PHP vs. Java by supra · · Score: 3, Informative

      I don't see why it has to be a black or white issue. While websites can certainly be developed using only one or the other, it doesn't have to be that way. And I don't think it should be portrayed that way.

      I'll use http://www.wheeloyum.com/ as an example. The web site is 100% LAMP. The app (client, applet, and server) is 100% Java. They both do well for their job. They even communicate with each other. Obviously they have their own strengths and weaknesses, especially relative to each other.

      As with most other tasks, the right tool for the job is key.

      --
      On a computer or under a hood.
    4. Re:PHP vs. Java by pinkstuff · · Score: 3, Insightful

      I have a certain fondness for PHP as it's the first web based scripting language I used - but I think you will find that creating a large, complex, and scalable application with a web front end will be much easier, and more robust if done so in Java (them fighting words I know!).

      This isn't to say writing web apps in Java is easy. Writing entity beans, and even session beans can be a headache and Java can be made unmaintainable if not careful. i.e. session beans _can_ be made very unmaintainable (if used inapropriatly).

      This isn't to say LAMP, in particular PHP doesn't have it's place. I think it is a much better solution for small to medium sized shop front type websites for example. i.e. assign right tool to the problem, they both have there use.

      One, a manager likes the word "enterprise"

      If management are calling shots, and telling you what architecture to use then may I kindly suggest you look elsewhere for a job! Seriously tho, management should not need to micro manage like that, it is one thing that gets on my nerves! Leave it for the techies! :-)

    5. Re:PHP vs. Java by scotty · · Score: 2, Insightful
      If PHP is so scalable, then why use Java for enterprise applications? :-)
      There are more than just web applications in this world, which is apparently what PHP is only good at. When you start adding desktop interface, interpolating with other entities with COM, CORBA or other customised RPC mechanism -- find me a PHP app that does all that.
  7. Java programmers are more expensive by bigpat · · Score: 2, Interesting

    Problem is that Java programmers have been bought up by big companies deploying enterprise applications and they really haven't been contributing to open source projects. With all the PHP projects out there that you can just download and deploy and tinker with it is no wonder why php is all over the web now. Java should be easier to deploy as .wars and just as easy to tinker with. But it just seems like every open source J2ee app out there dies on the vine, probably because the java developers got real jobs or else they decided they could sell their software as an "enterprise" product.

    1. Re:Java programmers are more expensive by msuzio · · Score: 3, Insightful

      You haven't checked jakarta.apache.org lately, have you? One of the most active open-source communities out there! Perhaps actual applications using Java aren't as prolific, but the building blocks for them are very much out there, widely used, and actively worked on.

  8. Uh-oh by BlindSpot · · Score: 2, Funny

    From the article summary:

    Can it possibly be that Java -- once the hippest of hip software -- has become a legacy technology, as old and out of style as IBM's (IBM) mainframe computers and SAP's corporate applications?

    I work for a company that uses IBM mainframes and SAP. I guess that means I should start brushing up on my Java so I'll be ready for its adoption here in about 5 years...

  9. It is to laugh by msuzio · · Score: 5, Insightful

    Oh, please.

    Java is still in incredibly heavy use in larger-scale systems and internal applications. It doesn't need to be "hip", "trendy", or "LAMP". It just needs to do a job, do it well, and be maintainable. It does that (and more), has still proven fairly easy to scale from small projects to very large, and is still a decent (though not terrific) language.

    It also plays well with many other solutions, by virtue of numerous scripting languages which target Java bytecodes, as well as native code integration if you simply cannot get by without some piece of C code (although, there goes easy portability - one of the major benefits).

    These articles are just a joke. That they would even use the term "hip" shows that this is far from a serious study.

    1. Re:It is to laugh by nettdata · · Score: 5, Insightful

      Seriously, if you were going into business for yourself, would you base your application on Java? I sure wouldn't.

      Well, I would, and I did. What other language is going to give you the ability to write one hunk of code that will act as a client and/or a server from Linux/Aix/Solaris/HPux/Windows/Mac/etc?

      For us, the best tool for the job was Java. Period. End of subject.

      But that's what it's all about... determining the best tool for the job, and dealing with the inherent trade-offs.

      To say that one language is better than another, without context, is meaningless.

      --



      $0.02 (CDN)
    2. Re:It is to laugh by Jason+Earl · · Score: 2, Insightful

      Actually almost any popular language would port to any of those platforms, including (thanks to Mono) .NET. Heck, with anything but Java you could add in the BSDs as well.

      Java advocates get really excited about Java's cross-platform ability, but Java isn't even really that portable compared to LAMP stack languages like Python, Perl, or PHP. Like I said, I'm a Java hacker myself, but I think that the days when Java was almost always the clear choice are coming to a close.

  10. .NET?!? by Progman3K · · Score: 4, Insightful

    Can someone explain to me how .NET is so fundamentally different from Java that it could escape Java's fate?

    Isn't .NET (C# really) just a Java rip-off?

    I mean really, not long after MS dropped Java, C# "popped up"

    It's clear that C# is only a repackaging of Java, why should its fate be any different?

    What makes .NET more attractive?

    --
    I don't know the meaning of the word 'don't' - J
    1. Re:.NET?!? by warriorpostman · · Score: 2, Interesting

      It's all perspective I suppose. I used to code in Java, then got elbowed into Microsoft(.NET) shops. C# is very Java-like. .NET DOES run a virtual machine. But API-wise, the .NET framework is more of a wrapper around the Win32 API. The Java SDK, is a little "cleaner", in my opinion, and it heeds the spirit of OOP more closely. But for people who are transitioning from VB, and C++ to C#, .NET seems pretty great. I'm indifferent at this point. I try to keep my Java skills sharp, and will continue to do so. The whole "Java is Dying" FUD is ridiculous and without any real evidence.

      On a sidenote, I had a recruiter try to tell me that Java was on its way out, and that EVERYONE was moving to .NET. He had NO clue what he was talking about. I asked him if he knew what the significant differences were between Java and .NET, and he just bumbled his way through some snake-tongue babble.

    2. Re:.NET?!? by ThinkFr33ly · · Score: 5, Informative

      Can someone explain to me how .NET is so fundamentally different from Java that it could escape Java's fate?

      Well, I'm not sure what Java's fate is, but while .NET isn't fundamentally different than Java, it has several big differences.

      As far as the CLR vs the Java runtime goes, Java byte code is fairly specific to java. It's possible to create non-Java languages that target the byte code, but it's not particularly practical. The CLR, on the other hand, was designed from the start with the idea of multiple language support.

      It may not seem like a big deal to some, but being able to write more or less equally capable code in VB.NET, C#, J#, C++, Python, or a long list of other languages really does increase adoption.

      The CLR affords far better platform specific integration than Java. JNI is complicated and horrible. COM Interop and API invocation in .NET is fairly easy and straight forward. This is important for adoption considering the huge amount of legacy code that often needs to be interop'd with.

      The security framework built into .NET (Code Access Security) is arguably more refined and capable than the model built into Java. This doesn't really affect the current generation of applications, but for the v2.0 generation it will be very important due to ClickOnce deployment.

      The CLR has support better support for a variety of programming constucts, such as generics, than Java does... or, in some cases did but the latest and greatest java releases have done a pretty good job and matching .NET's language feature set.

      While both .NET and Java are free, the application servers they run on are not. For ASP.NET, IIS is the application server. For Java/J2EE, it could be Web Sphere or a variety of others. In pretty much every case a Windows license will be a lot cheaper than the license for the J2EE app server... especially Web Sphere.

      As far as language comparison goes, it's not really all that useful since the CLR supports pretty much everything you could think of, including a nearly 1 to 1 copy of Java. (J#). But if we must, here is a great, although some what dated, comparison of Java and C#.

      Isn't .NET (C# really) just a Java rip-off?

      Not really. It's an evolutionary step. They certainly looked at Java, but they looked at everything. Managed runtimes were not invented by Sun. They've been around for 30 years. Microsoft creating .NET is a step toward Windows having a 100% managed API... something that's good for everybody. 10 years from now it will be rare to see an unmanaged application on Windows, aside from some niche areas. Java could never have done that because Sun wasn't in the position Microsoft is in.

    3. Re:.NET?!? by ThinkFr33ly · · Score: 4, Informative

      I forgot to post the language comparison between C# and Java. Sorry.

    4. Re:.NET?!? by feijai · · Score: 2, Informative
      1. .NET works with more languages than just C#. Here's a list of languages supported by .NET: http://www.dotnetpowered.com/languages.aspx/. In contrast, Java only supports... well, Java.
      How did Microsoft's marketing team manage to get so many people believe this lie?
    5. Re:.NET?!? by richieb · · Score: 4, Insightful
      It may not seem like a big deal to some, but being able to write more or less equally capable code in VB.NET, C#, J#, C++, Python, or a long list of other languages really does increase adoption.

      Actually Jython runs very nicely on JVM. I know there is JRuby in the works, plus several others.

      On the other hand, Java runs on Unix and Windows. Is there a working version of .NET for Solaris?

      --
      ...richie - It is a good day to code.
    6. Re:.NET?!? by ThinkFr33ly · · Score: 2, Insightful

      By "in pretty much every case" I meant in pretty much every case where Java is used, not every application server.

      The vast majority of Java app server usage is comprised of exactly two productions: WebSphere and WebLogic.

      WebSphere and WebLogic both large companies ready to support you if you run into issues. (Although I think HP is starting to offer support for JBoss, which could help it increase its market share.)

      For most mission critical deployments, WebSphere and WebLogic are the only choice for many companies just for that reason. The market share shows it.

    7. Re:.NET?!? by rhedin · · Score: 5, Informative
      I can accept most of your points except:
      While both .NET and Java are free, the application servers they run on are not. For ASP.NET, IIS is the application server. For Java/J2EE, it could be Web Sphere or a variety of others. In pretty much every case a Windows license will be a lot cheaper than the license for the J2EE app server... especially Web Sphere.
      It is possible that WebSphere, WebLogic, and the like may cost more than the .NET equiv (not sure as I've not priced MS lately), but that does not consider: That are completely free of charge to both develop and deploy for production use. Support is also available if you'd like-- both free via the web and for-pay for each of these.

      Many of your points may be correct, but a price comparison is not necessarily one of them.

      rob.
    8. Re:.NET?!? by ThinkFr33ly · · Score: 2, Insightful

      All the windows programmers who were using visual C++ and visual basic are now forced to use .NET.

      Forced by who? VS.NET fully supports writing 100% unmanaged C++, and Microsoft is dedicated to supporting their unmanaged C++ libraries for a long, long time. In fact, one of the best parts of .NET/CLR is that you can use managed extensions for C++ and integrate with the .NET framework a little bit at a time.

      As far as VB, official support ended in March I think, but VB 6 isn't going anywhere for a while. There will be legacy apps for many years, and via COM interop between those legacy apps and .NET is fully possible.

      In a couple of years they will all be forced to use avalon and what ever else MS comes up with. MS programmer use whatever MS gives them.

      Microsoft has been great, at the very least over the past 5 or 6 years, at listen to developer feedback and changing products accordingly. Microsoft gives developers what developers want (for the most part), and developers gladly use it because it allows us to make lots of money.

      Visual studio lets you slap controls on a screen and call it an app.

      Sure. It also gives you pretty much the best IDE for software development on the planet. It's great for developing everything from simply utility apps which are 75% drag/drop, as well as developing large scale enterprise applications. It all depends on the developer using it.

      Never mind the fact that you have just built an application which will bog down in maintenance headaches for the rest of it's life, you built in a day!.

      Huh? What does this have to do with VS? If the developer sucks it doesn't matter what tool they use to write the software... the software will suck.

      This "ease of programming" is like crack to a MS programmer. They get a rush out of delivering their unmaintanable application in a week. To hell with a proper layering, logging, configuration, relational layers, and whatnot.

      What the hell are you talking about? Come out of your cave man... or, better yet, stay in there and keep your foolish mouth shut.

  11. Stupid new buzzword by wampus · · Score: 2, Funny

    LAMP? This is even worse than AJAX as far as stupid new names go. I guess that "Web-based application" doesn't sound cool anymore, nor does "dynamic web page." I suppose it doesn't matter, really. Marketing writes the press releases and we call it whatever we hear the most of, eventually.

    I will shut up and get back to coding this app in PHP, now.

    1. Re:Stupid new buzzword by Anonymous+Crowhead · · Score: 2, Informative

      LAMP is not a 'stupid new name'. It's been around for 5+ years. You should be ashamed, Mr UID 1932.

    2. Re:Stupid new buzzword by 91degrees · · Score: 2, Informative

      Nothing wrong with LAMP. It's just a convenient acronym. This is what acronyms are there for. It's a lot easier than saying a Linux/Apache server with MySQL and web applications written in PHP.

  12. Re:UNIX by ackthpt · · Score: 5, Funny
    Is JAVA the new UNIX? It's still useful sometimes somewhere somehow but most people tend to forget/ignore its existence.

    Meanwhile, somewhere in Denmark, a graduate student is thinking "...I like Java, but not Sun's dictatorial stance on it... I think I'll come up with my own and call it Lava... (Pronounced "LooVa")

    --

    A feeling of having made the same mistake before: Deja Foobar
  13. J2EE != Java by khrome · · Score: 3, Insightful

    J2EE is a subset of Java, not the whole thing. Any conclusions drawn about J2EE's problems are not problems which spread to J2SE or J2ME. I work in J2SE every day, I think J2EE is overly complex with very little payoff, so I use other solutions where it would be.

    J2EE is dying, long live Java

  14. Re:UNIX by MightyMartian · · Score: 5, Insightful
    What irritates me about these sort of articles is that they seem to indicate that language and platform choice ought to be chosen on how "hip" or "kewl" they are, rather than on the strengths they may offer a project. Java has some very important strengths, and to discount it as "so 90s" is rather like discounting C as so "70s". It's an idiotic metric, and encourages the kind of faddish thinking that sees useful technologies judged solely by what some self-serving magazine editors think is the current sexy language.

    Here's a tip. Programming languages and platforms aren't sexy. They are tools. Use .NET if that's the tool that best fits what you need to do, or what your employer requires. Or use Java. Or use COBOL, if that's what fits. Under no circumstances should one use the above standard, which is about on the same level as some twelve year old girl deciding whose pictures are going to adorn her wall.

    --
    The world's burning. Moped Jesus spotted on I50. Details at 11.
  15. Brewed? by Svencer · · Score: 2, Insightful

    The fight has now "brewed" (couldn't resist) into the mainstream press at BusinessWeek.

    The author means "percolated," right? "Brewed into the mainstream press" makes absolutely no sense.

  16. Perl and Python are older than Java by Per+Abrahamsen · · Score: 2, Insightful

    Perl significantly so, as it is from 1987 compared to Pyhton from 1990 and Java from 1991. Perl was probably the first significant "web application" programming language, so hearing it mentioned as a new breed of languages is kind of weird.

    Perl was always a programmers tool, and never had the mainstream hype that surrounded Java from the start, so I kind understand why a journalist could get it mixed up.

  17. Re:UNIX by the+chao+goes+mu · · Score: 4, Insightful

    I have to agree. Whenever I used to propose that C may be the best solution for a programming task, I would hear "But isn't C out of date?" from a host of "Hooray for Java and XML!" types. When I explained that different languages have different strengths and weaknesses they didn't seem to get it. They were all convinced some new "bleeding edge" technology would come along and solve every problem. It was like watching them eat soup with a fork, trying to explain a spoon to them, and getting the reply "Sure, THIS fork is bad, but wait for the NEXT fork! It will work just fine for soup!"
    Wow, that was the most disjointed thing I have posted yet! I was about to delete it, but it is so confusing, I just can't. Enjoy.

    --
    Boys from the City. Not yet caught by the Whirlwind of Progress. Feed soda pop to the thirsty pigs.
  18. Mainframes Old and Out of Style??? by jsailor · · Score: 3, Insightful

    not by a long shot.
    My clients are very large financial instituions and I don't know one of them who is reducing mainframe capacity. In fact, almost all of them are increasing capacity.
    Most managers find it troubling that their mainframe-centric data centers continue to be well managed, predictable facilities while their Open Systems (UNIX, Wintel, Linux) data centers are a mess. Horribly erratic power and space consumption and many other woes that make management and planning a nightmare. Blade servers have not solved these problems - in fact, they have intensified them (powering and cooling 1000+ W/sq' is much more difficult than 50-100 W/sq').

    While style is subjective, age is not. There's nothing old about the new systems IBM recently announced. Also, if being in style leads to huge cost overruns or getting fired, many of might choose to be a little less stylish.

  19. Re:UNIX by mugnyte · · Score: 2, Funny


    Quick! JAVA is the new BSD!

  20. Lies, Damned lies and Statistics by MacGabhain · · Score: 4, Interesting
    Java book sales from one publisher are "off 4%" while book sales of some random new technology are "up 68%". Yeh. It's a new technology. Pick something that had its first book hit the shelves around Christmas last year and you'll see it's sales shoot up well over 1000% last year to this.

    What worries me is that I teach at a community college. One of my colleagues subscribes to Business Week and takes them quite seriously. I'd rather not have to get into a curriculum battle over this. Business week just needs to STFU about technology in industry, because people who have limited contact with it (either by not interacting with the technology or not interacting with industry) will often take their ill-informed articles as Truth. (Incidentally, I left industry 4 years ago and am close friends with others still in various sectors. Even after only 4 years, I'm very suspicious of my own first thoughts on the way industry is going, and I always get first-hand input.

    1. Re:Lies, Damned lies and Statistics by Doctor+Memory · · Score: 2, Interesting

      after many, many Java classes for the Bachelors Degree and still more for the Masters, I was not able to get even an entry level position as a Java programmer

      What was your Masters in, Art History? Or do you just live in Lower East Nowhere? I live in frickin' Nebraska, for $DEITY's sake, and there's Java jobs a-plenty. Hell, I'm getting cold calls again, and that hasn't happened since the bubble burst.

      --
      Just junk food for thought...
  21. All I know is by ellem · · Score: 2, Funny

    I bought Learn Java in 21 Days in like 1996 and I STILL can't program in Java. How do I get my money back?

    --
    This .sig is fake but accurate.
  22. Re:Mod submitter -1, Troll by altoz · · Score: 2, Insightful

    wait... so the more jobs that are out there prove how much better Java is? it's corporate executive morons that made the decision to buy some Java app in the first place that cause these job openings to be there.

  23. Re:Interpreted Versus Compiled by phasm42 · · Score: 2, Funny
    It's all about the KISS principle, and syntactically and practically Java is just too complex - it's like trying to dust a room with a jackhammer.
    I'll leave the maid's work to you. We'll be building lasting structures over here.
    --
    "No one likes working in a hamster wheel, and your shop smells of cedar shavings from here." - TaleSpinner
  24. Re:UNIX by masklinn · · Score: 3, Interesting
    Here's a tip. Programming languages and platforms aren't sexy

    Yes they are, coding in Ruby or Python is actually geniuinely fun and rewarding. Not having the language go in the way and prevent you from thinking about the program (the forest) because you have to think about the code (the tree) is like discovering programmation over again. Being 5 times more productive with a third of the code lines without losing any clarity or expressiveness (quite the opposite in fact) is refreshing.

    There is no reason for programming language to not be sexy but the ones you accept when you use crappy languages.

    I perfectly agree with the "Use the right tool for the right job", you can't use high level interpreted language when performances and memory footpring are issues, but you won't use Java either anyway...

    --
    "The way we can tell it's C# instead of Haskell is because it's nine lines instead of two." -- wadler
  25. Java: Where Components come from by LionKimbro · · Score: 2, Insightful

    I'm a Python guy, and I think the advantages of Python, Ruby, and (do people still program in?) Perl, and (cough) PHP, are clear.

    That said: I envy the Java guys their component research.

    If you want to do anything really cool with components, you pretty much have to use Java. It's not because it's a better language. (It's not.) It's not because it's elegant. (It's not.) It's just because Java is where the people are. That's where just about all the component people are.

    Java is hideous, Java is complicated, Java is large, Java is unwieldly, and there's nothing more unpleasant than waiting for a Java app to load. Than waiting for Eclipse to load. (shudder.) But you can't beat their components research.

    Just about every single component project I know of, is just copying technique from the Java people. And usually far behind.

    (off-mic:) Isn't Perl a fable, these days?

    1. Re:Java: Where Components come from by Black+Perl · · Score: 4, Informative

      (off-mic:) Isn't Perl a fable, these days?

      Not sure what you mean here. Perl doesn't enjoy the "hip" factor that Python and Ruby have. But Perl has an overwhelmingly larger community than either of those two languages.

      I like both Python and Ruby, and think they are better-designed languages. But Perl has a huge advantage over these other languages: CPAN. You can be more productive in Perl because 80% of your code is written for you, ready for the taking. Visit http://search.cpan.org/ to see just how much stuff is there. But here is what the Python folks don't get. CPAN is much more than a repository. It's an automated distribution system. On any Perl system, type, for example, "cpan Spreadsheet::ParseExcel" and voila, you've got a class that can read binary Excel files. Any module you install may have other CPAN dependencies, which are installed automatically. These modules have a test suite and won't install unless they pass the tests. You can also, via CPAN, view the test results on many different platforms, see module ratings, the automatically extracted docs, discussions, the bug tracker entries for the module, etc. Because this is all standardized and centralized, you can write a module that depends on other modules without having to worry about inconveniencing your users--everything will install for them automatically. So the barrier to code reuse is very low, and people build modules by subclassing or otherwise extending and combining the functionality of other modules, simply writing the glue code. In other words, one of the basic tenets of the OO concept, encapsulation and code reuse, is being very elegantly played out in a place you wouldn't expect.

      Ruby is getting a good start at emulating some of the CPAN functionality with their RubyGems. Python doesn't have anything like this yet. I have no doubt they will someday, and there's been brought up many times on the Python groups, and usually gets knee-jerk reactions that don't show an understanding of what CPAN has to offer. The vaults of parnassus, etc are certainly not even close to the same thing.

      So, I am currently more productive with Perl, and it is certainly not because of the language or syntax itself--its despite it. I just find myself writing a lot less code and getting more accomplished. I look forward to being able to do the same in Ruby or Python someday.

      --
      bp
  26. Java takes up the COBOL banner 'Java-Correctness' by stuffduff · · Score: 2, Interesting
    COBOL (IMHO) was written by accountants for accountants and I distictly remember agnozing over each and every byte. I think that what will doom Java is a form of political correctness that reminds me of COBOL. In Java, there are many less right ways to do something. Java Correctness means that there must be some sort of inherent bias in the design of the language, or in the leadership of it's development. If there is one thing that I have learned is that programmers do not think alike nor do they code alike. How can one define the productivity losses imposed by a language that has a 'correct' way of doing something? By contrast, I believe that Giudo keeps python as open as humanly possible. That, in no small measure, contributes to the reality of increased productivity with python.

    So, what do you want to do today; be correct or be productive?

    --
    "Can there be a Klein bottle that is an efficient and effective beer pitcher?"
  27. How to have a disaster of a project by rewt66 · · Score: 2, Insightful

    Pick a language based on what is "hip". Actually, any technology - it doesn't have to just be a language.

    (Digression: "hip"? Who says "hip" any more? It's so 1960s...)

  28. Agreed! by porkThreeWays · · Score: 2, Interesting

    Languages always have their places. It's important to see what's happening to Java. There was a point when every job description had Java in it. Java java java. Java was used for everything. Web applets. Full fledged GUI programs. Command line. Server side. I think people are finally realizing Java isn't good for everything. I think we are finally reaching an age which Java is finding it's place. It's meant for full fledged, cross platform, programs. GUI or command line. Programs that are meant to be kept open and running for awhile. This is where Java excels.

    Java has had a terrible history. It's a lot of people's faults. PHB's, HR depts, Marketing, Bad programmers, Sun, companies releasing Java tools. I think most people on slashdot have a pretty strong opinion of Java. Love it or hate it, they have a strong opinion. The initial GUI implementation was awful. People were expeted by PHB's and Marketing to learn the new buzzword language in weeks, when in reality Java is the type of language you need to spend years studying. It's huge and complex. Just like C++. Java came into wide spread usage in the 90's, when computers were still a bit slow for it. It isn't until now that Java is really finding it's place. It's not as grand as the original plan for it was. If you talk to people, most of them have stale opinions of Java. Their view of Java is Java 8 years ago. And little will change their opinion.

    --
    If an officer ever threatens to taze you, say you have a pacemaker.
  29. Re:ATi drivers by C_Kode · · Score: 2, Interesting

    .NET is Microsoft's next attempt to gain control since the failure of passport.

    It's .NET that makes PHP, Python, and Ruby so important. (notice I didn't list Perl...) .NET's biggest boon is it is easy to create with. (I've easliy trimed 80% of my development time switching from C/C++ to PHP to Python) I don't hate what .NET is. I think it's great. I just hate some of the motives behind it.

    As for Java. It's not legacy yet. Sun attempting Microsoft type moves caused most of it's problems. Just like Solaris now. If they would have opened it up sooner, it wouldn't be quite so deep in the hole it's in now to other technologies. Java has a lot going for it that arn't strong points for LAMP and .NET, but it's got a lot of problems compared to LAMP and .NET also. Ease of the development cycle is a major issue comparatively.

  30. Re:Interpreted Versus Compiled by QuietLagoon · · Score: 2, Insightful
    The big issue here is speed of development and ease of use. Java is a bitch to learn, it requires a compiler, ...

    Requiring a complier can be a feature in applications that are anything but simple. If you have a syntax error in an interpreted language, and that syntax error is in a branch that does not get executed frequently, you won't know about that error until later, much later, probably early on a Sunday morning. On the other hand, a compiled language will flag the error at compile time.

    Interpreted languages are good for quick development, less complicated projects where run-time errors don't cost lots of dollars.

  31. Re:Mod submitter -1, Troll by GodsFlaw · · Score: 2, Interesting

    .Net may not be ideal but to say that it is dying away is simply wrong. My impression is that for not so mission/performance critical enterprise (yes enterprise) apps that Microsoft/.Net has been dominant. I think that among the more hardcore they are gaining a bit of ground (thanks in part to c#). Reuters now offers .net api in addition to there C api and just look at the number of .net components! I think it is Java that never really lived up to the hype.

  32. Java not flexible?! by grahamsz · · Score: 2, Insightful

    I feel java is one of the more flexible languages that i've worked in.

    Swing components are plenty flexible. It's not hard to add checkboxes to trees, have spanning columns in tables etc...

    Where do you feel java lacks flexibility?

    The only thing i feel is that it's not ideal for quick and dirty tasks. I write little perl scripts all the time to accomplish one of tasks that would take 5x the time in java. But for real software development that's more or less a non-issue.

  33. Re:The 'P' in LAMP by masklinn · · Score: 2, Informative
    Does the 'P' mean Perl, PHP, or Python? Or, does it mean all three?
    Any of the three
    If I were a young programmer, which language would I select? (I suppose I would select the language depending on the task at hand. In any event, it seems to me that almost anything will produce results faster than Java.)

    If you want to be able to code in the large sense, not specifically for the web, I'd advertise Python. Or Ruby. Both languages are really good to build offline applications, and just as good for online apps (websites or webapps). Clean, powerful, OO-based yet multiparadigm (the languages are OO, but you don't HAVE to use OO).

    If all you want is build a quick website, PHP is the easiest but the ugliest.

    Perl gives mixed feelings, the syntax is strange, the code (as in PHP) extremely easily turns into a gooey sticky mess (Perl is often described as a Write Only language), the OO is a hack, but Perl is unrivaled for a few hundred lines of heavy string manipulation. Beyond that, it's a pain to keep it readable.

    --
    "The way we can tell it's C# instead of Haskell is because it's nine lines instead of two." -- wadler
  34. Get a better book by woodsrunner · · Score: 2, Informative

    For the price, those "Learn something in (X)days" books suck. They are sort of like cheezy exercise equipment sold on late night infomercials -- they seem like a good idea, but in the end they lack the substance and you lack the will power to put up with the tedium and they end up as a clothes rack.

    It takes a lot of practice to be a proficient programmer. Get a copy of Just Java 2 by Peter Van Der Linden. It's probably the best Java book out there and a fun read at that.

    Read the book, put in the time and then get a job as a Java programmer.

    $35 book + time = $70K per year.

    You'll have your money back in no time.

  35. Finding its place by porkThreeWays · · Score: 2, Insightful

    I think being hip and trendy hurt Java more than it helped. People tried to use java where it wasn't appropiate. Java applets for web buttons that could be done in CSS really hurt it a lot (I can't even tell you how many websites were doing that at one point). The Java buzz is cooling off finally. It's finding its place. Java is nestled in the ranks of C and C++. You'd probably use Java in the same places you might consider C or C++. That doesn't mean Java is going away. It means people are getting their acts together and seeing Java for what it is. Not as a way to make cute navigation buttons. But as a way to make serious applications such as Sphinx4.

    --
    If an officer ever threatens to taze you, say you have a pacemaker.
  36. Re:Mod submitter -1, Troll by ADRA · · Score: 4, Insightful

    Two points:

    1. Having Microsoft release more software that supports their platform doesn't make the platform's industry support any better intrinsicly. So unless you can say companys x, y, and z are all moving strongly behind .NET, then great. I don't know the .NET ecosystem, so I don't know if there are any non-ms vendors pushing .NET based technologies.

    2. Just because I disagree with your argument, I do agree that Microsoft based .NET initiatives are growing and not shrinking as grandparent assumed. But, there is a natural evolution of Microsoft products that one must also pay attention to. Much of the developer attention to Microsoft technologies would have been there with visual studio 7 even if .NET didn't exist.

    I think the 'more' interesting finding is that Microsoft has been unable to seriously penetrate these Java / Web markets as much as they'd have liked. All they've done is create a third fraction of the modern development market. Most coders these days fall into three buckets: Java developer, Web developer, .NET developer. See? They haven't made Web developer mean ASP.NET, they haven't made Application programmer mean C# develoeper, etc.. As things stand, they can only hope to maintain their current business's migration cycle without too much bleeding. This may change with radical shifts in their business model, but as of today, MS can't expect .NET technologies to dominate the developer market.

    --
    Bye!
  37. I guess it depends on where you came from by Concern · · Score: 4, Insightful

    After C/C++, Java ended a long nightmare of preprocessor abuse, ridiculous "APIs" (collections of warring header files with no-vowels function names that were never the same from computer to computer), especially GUI APIs (never failed to amaze me how someone could call Swing "stupid" and then go back to coding Win32 or Motif... Apple guys I can forgive :)... And then there was all the fun of the endless futility of "expecting" programmers to always get their own memory management right. That one really burns me.

    C/C++ never took the rap for billions upon billions of dollars in lost productivity because of all the bizarre failure modes of memory allocation failures (hey, there's garbage on the screen... or, hey... it's Tuesday, the full moon is out and the app segfaulted again... coincidence?) or having some clever sixteen year old shove 80k up your 256 byte buffer. You can't tell me wrestling with the garbage collector isn't an improvement on this, because it's ridiculous.

    Java of course is within spitting distance of C++ already in one or two benchmarks, but in reality nobody cared either way because you got things in trade that made it a good deal even when it was still quite slow. Not sure what "consistency of the output code" means, but...

    You got it right about LAMP. The problems were often that the higher level systems (well, PHP anyway) were great for making websites, but didn't enforce enough rules to be a good idea for projects above a certain size. Still and all, a great many companies in the 90's said "OK, we need 8-way oracle boxes with hot swap CPUs and a 50 disk RAID and Oracle and Weblogic, and... now, what are we going to build exactly?" Most of these places could and should have just used PHP on a few pentiums and saved themselves time and money and headaches. On the other hand, I saw plenty of places coast on a slick of Perl and human blood well past the point where they needed real "enterprise" (hate that word) software development.

    It seems like Java was only ever a victim of its own success. No one ever wrote a shitty applet or misused the VM in some way, where the whole language didn't get blamed as a result. Basically, it's another tool in the toolbox, and though it drives C/C++ guys to conniptions, it's the right choice to replace many applications programming tasks right now. Not that I wouldn't throw a party to meet its succeesor.

    Unlike many big languages past, Java is probably never going away. No one seems to have realized it yet, but as the VM-first-mover it's the ultimate langauge standard. I bet you people will be porting the Java VM long after we're dead. ;)

    --
    Tired of Political Trolls? Opt Out!
    1. Re:I guess it depends on where you came from by Pxtl · · Score: 4, Interesting

      People always blame C++, but I still think that the problems with C++ come from two sources, neither of which are the language itself:
      1) lack of a single, dominant library for all the things that Java provides (like serialization, gui, etc.) and generally fugly APIs for the ones that are mainstream.
      2) coders who treated C++ as "C, with some new features" rather than treating it like "Java where you can import C functions". Use vectors, smart pointers, etc. and the language miraculously changes from fugly to pleasant.

      If Java was just a C++ library and a good free compiler, we might have dodged this whole mess. The only loss would be applets (not gonna run untrusted C++ code on the browser) - and who would miss those? Really, who uses the hardware-agnosticism of Java anyways? If the hypothetical "Java Library for C++" was created to be platform agnostic (just as Java is) then you'd have the same functionality in C++ - after all, it's pretty easy to write C++ code that will compile/run everywhere if your libraries work the same everywhere, and your compilers actually follow the standards.

    2. Re:I guess it depends on where you came from by BitwizeGHC · · Score: 2, Insightful

      2) coders who treated C++ as "C, with some new features" rather than treating it like "Java where you can import C functions". Use vectors, smart pointers, etc. and the language miraculously changes from fugly to pleasant.

      If you're going to do that, you may as well use Objective-C, or as I like to refer to it, "C++ done right".

      --
      N4st0r, trixx0r h0bb1tz0rz! Th3y st0l3 0ur pr3c10uzz!
  38. Stats Don't Lie! Java OWNS the current market! by TheTiminator · · Score: 5, Informative

    I've been watching the local So. California programming job market for a while. And as of earlier this year, I started keeping track of the number of jobs available for specific programming languages. Throughout the past 9 months, Java has owned the market on number of available programming job.

    Here's the spreadsheet that I put together. It's in no way scientific, but it is a good indicator that Java, C++, and Oracle own the programming jobs market.

    http://www.timothytrimble.info/ForSlashDot.htm

    If you don't believe me, then do the stats yourself. Go to HotJobs, Monster, Dice, CareerBuilder and find out for yourself. The stats don't lie!

    Timothy Trimble The ART of Software Development

    --
    TheTiminator
  39. Java use slipping? You have to be joking by Decaff · · Score: 5, Insightful

    I can't take this seriously after Java has recently taken over from C++ as the most popular language on sourceforge:
    http://www.osnews.com/story.php?news_id=12778

    Java is a popular and versatile language. Software development involves far more than the very restricted aspects covered by LAMP.

  40. Java badly needs a JDK 2.0 (not meaning J2SE) by ishmalius · · Score: 2, Informative
    I agree that Java needs a basic overhaul. Not so much because of its age, but because it was not developed in an organized manner, but evolved.

    Over the years, as new technologies were added, the interpreter and the API were constantly augmented. Basically the new features were slapped on like coats of paint, but it was never reengineered nor refactored. Look how little of the old cruft of 'deprecated' stuff from JDK 1.0 or 1.1 has ever been removed. For example, why does Java still need 3 types of remote invocation, all flavors of the same thing: RMI, CORBA, and RMI-IIOP? Can't one be selected for the core API, and others be add-ons? Why are AWT and Swing still separate, and why do Swing classes still not implement Containers, as was the plan long ago?

    I know that this is for backward compatibly, which is why I think it is time for JDK 2.0. The current J2SE/Java5 is really JDK 1.5. Let the old 1.x series be grandfathered out, but always be available for whoever needs it. Refactor, clean up, fix the things that have always needed to be fixed. Organize the API in a clean, logical and intuitive hierarchy. Make a JDK 2.x series with that new car smell. Market it as Java6 or whatever.

    As an aside, I do not think that I will ever understand these "X is cool. Y sucks" arguments. A good developer selects the proper tool for the job, whatever it is. I haven't tried Ruby yet, but I have used all of the others. All have their qualities and drawbacks. For example, I really like PHP, but I don't think that MySQL- or Postgres-specific calls should be in the core; rather, the ODBC-like abstraction like can be found in PEAR.

    Following the narrow path of a single language only limits a person's skills. Consider the different options not as opposing each other, but orthogonal to each other, adding new dimensions or degrees of freedom.

  41. Re:Interpreted Versus Compiled by maraist · · Score: 4, Interesting

    I'll grant that Java requires a significant learning curve.. But not for people that have been initiated into the computer-science field.. Java was specifically meant to have a low-learning curve... For EXISTING programmers of the langauges of it's day.. C, C++, and friends.

    But this is a misnomer.. Take a person off the street and teach him a "hello world" program in python or basic.. He'll say "Wow, I'm a programmer now!!".

    Then ask him to synchronize two credit card databases of different structures with it. Ops, learning curve!

    It's a damn-simple thing to do, but you needed to learn an API, and a bunch of underlying concepts first.

    Same thing with java.. It is designed rigidly so that the programmer can make assumptions that make their life easier. You have to explicitly manage errors for one.. Doing so means whenever you change the form of data, you are forced to think about it to make sure that the data has exchanged correctly. In Python, perl, numbers become strings become floats become triggers based on how you tickle the data (not necessarily access). These are simply two different assumptions about the significance of the data. If I wanted to have refactor a perl object definition (say change a method name), it would be damn near impossible to do. I couldn't just perform a text-search for the method name because it would probably overlap w/ other methods that had similar names.. But in Java, that rigidity means I can clearly know exactly who uses this exact method.

    If you're writing small apps and your definitions are distinct enough this isn't a problem.. But in my 15 years of programming, I've had to do a lot of refactoring, and in c or perl-type languages, I almost always resorted to work-arounds instead of true data-migration; as it just wasn't worth it.

    I perfectly agree w/ KISS.. But Simple and concise are not the same thing... Perl/Python/Ruby provides conciseness (saying a lot with a little), but at the expense of convoluted code (your rails project has the name of a method mean several different things). Java provides preciseness (and of course the ability to shoot yourself in the foot by being non simple, non-concise and non-precise). You are able to be concise in Java if you make use of rails-like-APIs.. Essentially modularize/aspectize your code so that the complexity is held elsewhere to define a type of work.. Then you concisely write the core of your application. Hibernate + xdoclet or attributes provides an example of this.. EJB provides a means of isolation of units-of-work in a way that is scaleable, clusterable, and safe all at once.. (Not that I ever use EJBs directly; but there are plenty of EJB-like services). This is not to say that RAILS can't be made similarly.. But to my knowledge you are still choosing a particular framework, and don't have a lot of flexibilty to alter those large units-of-work outside of the original author's inception.

    I've regularly hooked together many open-source units-of-work in ways that I'd never seen done before, and Java has always made this not only easy, but reliable (providing thread-safe, classloader independent, order-of-execution-safe, work-flows out of the box). Of course almost all of my units of work live inside of a serlvet engine.. Rolling your own main means that your mileage may vary.

    --
    -Michael
  42. Java as a research platform by GoGoGadgetFeet · · Score: 2, Interesting

    I wholeheartedly agree. The biggest strengths of Java are its cross-platform compatibility, its garbage collection, and its multithreading support (since the introduction of version 1.5). It's also useful as a research platform for computer scientists/engineers, because it allows for full control over both software and the (virtual) machine that it's running on. You can't get that in any other production software environment.

    Some people (including me, soon) are taking advantage of this flexibility to try to improve Java's speed: Sable Lab

  43. programming by popularity contest? by Uzik2 · · Score: 2, Insightful

    Is this good engineering? Too many of the newbs out of school
    have one language under their belt, so everything is solved using it,
    even when it shouldn't be. Just my 2 cents

    --
    -- Programming with boost is like building a house with lego. It's a cool but I wouldn't want to live in it
  44. It's not the techology, it's the people by ecloud · · Score: 2, Interesting

    By the time I seriously started playing with PHP I already knew Java, yet it felt compelling somehow. I think it's just because it seems simpler, because the default choice is to put everything right in the page, rather than writing some JSP, some servlets, some EJBs and so on.

    Writing JSP pages isn't really that much different from writing PHP pages; you can write them in a PHP style. But Java people tend to be degreed software engineers moreso than PHP hackers, so they make things complicated and build up layer upon layer of infrastructure, and you need to know a lot more to be able to deal with all those layers effectively. (And you end up needing to use struts, or EJB, for example, not because it's easy, but because management or coworkers pressure you into it.) Alternatively you can just do your database queries right in the JSP pages, which is ugly in a design sense (schema changes can be harder to propagate through the whole system) but very PHPish, and at least the whole pile of code will be smaller and more manageable if you have fewer layers to deal with.

    The myth of software engineering is "after I write this nifty abstraction layer I'm never going to think about this facet of the problem again" (whether it be hardware abstraction, dealing with the database, the GUI API, dealing with web-based transactions and user-specific "state", or anything along those lines that you don't enjoy and would like to box up and forget about). The reality is that every layer you write also requires some maintenance, so you cannot avoid having to think about any of those things again. PHP hackers are just more likely to suck it up and deal with these annoyances head-on, with as terse code as possible, rather than try to abstract them away.

    But some of the abstraction layers that have been created for Java applications are really elegant. Some much more than others.

    Another factor is that large projects, for which more people are hired than is really necessary, with too much management, tend to take the long way around, in the name of elegance and maintainability. If programmers are smart enough to invent really elegant abstractions, and they have the time to do it, most will do it. But if you're on a scrappy underfunded little project you just take the most direct path to get the job done.

  45. LAMP? Why not LAMJ by the_furman · · Score: 2, Insightful

    I, for one, developed quite a bit for linux-apache-mysql-java. Right now, I'm developing for linux-apache-jboss-mysql-java. What is it with people not being able to compare apples to apples? Java is a language first and foremost. Secondly, it's a set of frameworks, starting from EJBS (IMO, an abomination) to things like Hibernate, to Struts, to whatever else. Comparing these things simply makes no sense.

  46. Re:UNIX by richieb · · Score: 2, Funny
    That's because the O/S written in Ruby is not finished yet. It will be called Rubix.... ;)

    --
    ...richie - It is a good day to code.
  47. Ruby? by danharan · · Score: 2

    BusinessWeek is so last year, so, so... so one-point-oh. (I kid, I kid!)

    The "hip" thing for ex-Java folks is not LAMP but Ruby on Rails. When Bruce Tate wrote Beyond Java, it seemed it was time to check it out- and after doing so I have to say he's on to something.

    Seriously, if you like the whole direction of Spring / Hibernate / JUnit, you owe it to yourself to check out RoR. The speed and joy of LAMP with the architecture and cleanliness of the best Java solutions.

    --
    Information: "I want to be anthropomorphized"
  48. Re:Interpreted Versus Compiled by Berkov_s1 · · Score: 2, Insightful

    I have read /. for the last few years without ever having replied to a post but the sheer stupidity of this one compelled me to.

    "The big issue here is speed of development and ease of use. Java is a bitch to learn, it requires a compiler, and it has a syntax that's byzantine as hell"

    What are you on about? Java is a bitch to learn - even the most fanatical Java hater would admit it is easy to learn. The documentation is absolutely brilliant.

    "It requires a compiler" - so what. What has this got to do with anything? Seriously? I have no idea what you mean by this - the Java compiler is easy to use and quick. Even if you get into the most complex builds in java with RMI (which no longer requires special compilation now anyway since 1.5) it is still easy. You also never do it by hand anyway as ant/eclipse exist.

    "For doing something like simple text process, Java's syntax just gets in the way" By this if you mean doing some scripting - then yes - use perl. Why were you scripting in Java anyway you muppet. You need to get the anti-patterns book and go look up Golden Hammer.

    I hate these inane flame wars which inevitably end up in a horses for courses anwser. From the comments I see posted most people with any sense have little inclination to get involved. (Yes I see the irony). Yes people overuse J2EE. I avoid J2EE unless I absolutely need it - and I avoid weblogic like the plague.

    And another thing on the speed of development issue - people rarely acknowledge the roles of IDE's in development when talking about languages. I had to do a multithreaded, distributed application with a gui - I used eclipse,jigloo,TogetherJ and the eclipse RMI plugin - its not just the language which aids productivity but the development tools and environment. No development environment I have come across comes close to eclipse - it all just works seamlessly and jigloo is a godsend. Yes the java language is more verbose than some (and less than others ie Ada) but the development environment negates this. It still annoys me that people are still pulling all the Java myths out of their ass from when they last tried it in 1996 using notepad/vi.

    I have also looked at Java code written by C/Perl junkies who moan about Java - because they have not updated their skill sets and have written nonsense. They have this nasty habit of implementing data structures themselves as well. Ffs. Geez. The number of times I have seen someone write sorting algoritms in a java app.

    People also dont look at beyond base functional (in-out) requirements. Yes I can hack out a perl script. Does it scale? Is it maintainable? Is it transactional? Is it safe? (As in safety-critical applications). Would you fly on an airplane with an avionics system written in perl? Why do you think AirBus/Boeing use Ada?

    And dont get me started on all this LAMP crap. All industry Java applications I have worked with have been on Linux some have used MySQL.

    Basically I think it boils down to people with Golden Hammer complex and genuinely feeling an emotional attachment to a technology. I hate working with anybody who is an 'X' zealot. Language wise I use Perl/Ada/B/Z/Java with JDO,Spring,Struts,Hibernate,JBoss,JUNG/C/Prolog dependent on what I am doing - and I mean I really think about what I am doing before I pick a technology. If something better comes along I have no attachment to any and will ditch any if it allows me to deliver a better product quicker to the user.

  49. Java will survive as long as Google by beemishboy · · Score: 2, Informative

    Eric Schmidt, the current CEO of Google, worked at Sun where he led the development of Java. He left Sun to be the CEO of Novell and retrained the programming staff on Java. He went from Novell to Google and still has ties with Sun, mostly recently with the joint venture with Sun in distributing the JRE with the Google Toolbar. Google is also purchasing Sun hardware possibly to obtain a better performance per watt. Eric Schmidt has also said that Google has several projects that use Java. Google is also a member of the Java Community Process.
    So, it seems that Google has some serious management, business, and code ties with Java. That's to say nothing of IBM, Oracle, and others.

  50. False Dilemma by geoffrobinson · · Score: 2, Insightful

    Reporters always make something out to be the end of the world or something drastic.

    Gets eyeballs on stories. It's either Java dominates everything or Java does nothing. While the truth lies somewhere between those two extremes. But the truth in these type of stories makes for horrible reporting.

    You'll also find that stories follow the following pattern: X is doing great, X stumbles/fails, X returns to glory ...or X is still around even though we wrote it off.

    Next year they'll have an article about how Java is still being used all over the place.

    Java can co-exist with other technologies. I programmed in Java. I program currently in .NET. Whatever. I don't need to relearn logic everytime the technology changes, so just tell me what language we are using.

    --
    Except for ending slavery, the Nazis, communism, & securing American independence, war has never solved anything.
  51. Too bad we can't mod the original article Troll by theAtomicFireball · · Score: 3, Insightful

    This is just stupid. People are wasting their energy arguing over completely different technologies designed for different purposes, with different strengths and weaknesses. If you think any one toolset is the right solution for every problem, you don't know enough about the all the options to have a valid opinion.

    I've used most of the technologies people have mentioned here, some extensively. None of them are clearly all-around better than the others in all ways, and the statistics concerning toolset use are meaningless because technical merits are rarely the deciding factor in what tools or libraries a particular project ends up using. It's usually either the project team deciding to use what they're comfortable with (i.e. the I've-got-a-hammer-so-this-project-must-be-a-nail approach), or imposed top-down by management who were sold on the merits of one solution by a salesperson/article/more technically-savvy friend, etc.

    Hell, the closest thing to an all-around great-for-most-anything tool for building web application was NeXT's old Objective-C based WebObjects which, despite the fact that Apple let it die a painful death, was years ahead of anything else on the market, and even now after not being developed or supported for several years, is still ahead of many solutions in some respects. But I'm not about to recommend to one of my clients that they should use it, even though I might think it's technically a better solution than something else. These decisions, even when made intelligently (which is rarely), are not, and should not be, made in a vacuum.

  52. Re:Stats Don't Lie! Java OWNS the current market! by PyroPunk · · Score: 3, Interesting

    I've never understood how job openings on a job board give any indication of how popular a programming language is. If my company posts 10 .NET Programmer openings and 10 Java Programmer openings on Monster.com, and we have 6 .NET developers apply and get hired and have 2 Java developers apply and get hired; then you go out to Monster and run some sort of statistic on it, what do you see? 4 .NET openings and 8 Java openings. That must mean Java is more popular!?! Nope, just means it's harder to fill the positions because it's becoming less popular. (This is just one way to look at it, not saying .NET is more popular than Java or the other way around).

  53. Again? by bill_kress · · Score: 4, Insightful

    These discussions always get me.

    On one side you have a bunch of people who have never seen the kind of problems java solves so well.

    These people for some reason think it's a horrible thing and must die. This has never made sense to me. I dislike a lot of crap that fits other people's needs and I don't really feel the need to rant against them at every opportunity. What kind of inadequacy drives this crap?

    On the other side, you have a bunch of people who need it as is to get their daily jobs done. They are scratching their heads trying to understand why there is even a discussion going on.

    If you are on a project with one developer and it's a web project, Java probably isn't for you. In fact, if you are on ANY project where you are the sole developer, don't bother unless you just like Java's syntax or you have worked in groups before and prefer the consistency and clear code that Java offers.

    If you are writing a tiny app meant to run on a PC, dump java and write it in C/C++. The VM issues are kind of annoying that.

    If you are writing a large client/server app, creating your own protocols, working with a group of 5-50 people, interested in long-term reusable clean code AND willing to spend the extra design time required to make such code, you might consider Java.

    Honestly, I think most of the people complaining are trying to use "Java" to write some web app on their home computer and wondering why it's so hard. Like "Why does driving a backhoe have to be so much harder than riding my bicycle?!?!?" This is really for the hard jobs! If you don't have a hard job, if you are making a web app or something, Use your bicycle. PHP works fine.

    Java makes a lot of the traditionally difficult issues much simpler, but these little apps typically don't even HAVE difficult issues, so yeah, Java may be a little cumbersome for them. Why did they even choose it in the first place.

    My job became immensely easier and more fun by switching from C++ to Java. If you hate java, it may not be the tool for you! Backhoes are not great for tours around the lake, learn C++, VB, PHP, or whatever gets you off and enjoy. Just don't put down that funky looking, fuel guzzling backhoe unless you've tried digging a hole for a pool with your bicycle!

    1. Re:Again? by bill_kress · · Score: 3, Interesting

      See, there is your problem, the definition of a powerful language.

      A powerful language for me is one that can be highly factored and is still completely readable. It means that nothing is hidden and no function is less than obvious.

      Most importantly, a programming language is a communication medium between human and human, not just human and computer.

      How well do the languages you listed help you communicate with some arbitrary programmer that you have never met and do not get to explain anything to face-to-face. As you add multiple languages into the mix (AJAX, etc) you make this human to human communication even more difficult.

      Forget the libraries and J2EE, These are the things that, for me, makes Java a good enterprise tool:

      Automatic documentation generation with the code being the source!
      (This is one of the most important things ever done)
      Simple, clean, consistent code
      The ability to create clearly defined interfaces between sets of code (objects, in this case).
      OO!
      Deterministic--a GUI Editor always knows just what can be done with any given object at any time.
      Shies away from adding features--towards consistency.
      Garbage Collection
      (Not simply because it makes code more reliable, because it makes it MUCH more clean/factored. If you've never had to fight the design battle of who owns/gets to destroy an object used by multiple other objects, you pretty much either aren't a programmer or you've always used a language with GC.)

      I guess it all comes down to Elegance in code. Being able to do a lot with one line of code or being able to type 50% fewer LOC to do your job has no place in programming today and is, in fact, counter-productive. If you are actually thinking faster than you type when you're programming, you need to think more, not type less! (If you honestly disagree with this, try APL, you'll love it)

      If you think that J2EE/Libraries are a reason to switch, you are exactly the person I was talking about in my previous post... the power is in the Language, not these add-ons. The language features I listed are exactly what allowed these complicated, complete, reliable toolsets to be built in the first place.

      People that pick Java for the toolsets/libraries are completely missing the point. They are probably also the same ones complaining on every Java article to hit /.

  54. LAMP, the new PERL? by beforewisdom · · Score: 4, Insightful

    LAMP may "take over", which would be a shame because it looks like what PERL would be if it was a web language.

    Like candy, it is fast and easy. Like candy, if you use it for your meals it will make you fat and rot your teeth.

    LAMP looks a quick and dirty approach for sites, that is easy enough to use to be seductive which will lead to a huge base of hard to maintain code the way PERL did.

  55. And threading? by ethank · · Score: 2, Insightful

    I hate the articles that proclaim one technology dead because another supplants ONE USAGE of that technology. Web frameworks for Java are cumbersome and a pain in the ass. However, Java is really good for things and can work nicely side-by-side with AJAX, Flash, PHP or whatever other front-end technology you want to use.

    The fact is, programming a stateful, multithreaded application on Java is extremely easy, and in certain circumstances, a stateful application with multithreaded capabilities comes in very handy. I'm thinking things like artificial intelligence applications, messaging, delayed database writes, etc.

    I have programmed sites that are PHP, with a Java multithreaded application used to handle certain transactions or self-organization of graph structures.

    I thought this whole Web 2.0 thing was about open interoperability?

  56. Bad programmers... by sterno · · Score: 2, Interesting

    Languages don't cause bad programs to be written -- bad programmers do! It's just a sign of the decline in pure programming skills.

    Right and guns don't people, people kill people, but it's a lot easier to kill people if you've got a gun, non? I think it can be legitmately said that the nature of Java is better lended to well structured code. It doesn't mean you can't write well structured Perl, but on the average, people will write better code in Java than they will in Perl. Sure, a good programmer can write good stuctured code in any language, but you have to accept the reality that there's far more demand for code than there are top notch coders. That doesn't reflect a decline in pure programming skills, it reflects a vast increase in the need for people with any skill at all.

    I find these language debates kinda dumb, frankly. Here's the thing, with everything being web based, it doesn't matter a lick what you run it on. If Java works best for you, great. If LAMP works best for you, great. Personally I prefer LTPJ (Linux, Tomcat, PostgreSQL, Java), but then I know Java a lot better and I know how to make it do neat tricks I'd have to learn over again in PHP. Besides, can you even write threads in PHP?

    But if you all websites work with the same browsers and all websites communicate with eachother in the same way, the code could be running off of punch cards for all it matters. In the long run that openness will tend towards minimizing the influence of any one platform or company. People will go with the tools that suit them best.

    Articles like this one are even more stupid than the debate because it's clear they do no understand the technology. They talk about people using Linux and Apache as though that means they couldn't be using Java. In the end, you can totally mix and match Apache, Linux, Java, PHP, etc, to best suit the environment you're working with. But of course that doesn't make for as interesting an article, does it?

    --
    This sig has been temporarily disconnected or is no longer in service
  57. Re:UNIX by bnenning · · Score: 2, Interesting

    Yes they are, coding in Ruby or Python is actually geniuinely fun and rewarding. Not having the language go in the way and prevent you from thinking about the program (the forest) because you have to think about the code (the tree) is like discovering programmation over again.

    This is absolutely true. After wanting to take a look at Python for a while, I finally wrote my first program in it this weekend. It's a simple script that finds all words in a Boggle grid. (Useful for cheating here). It took maybe an hour of looking up the proper syntax for reading files and creating lists and such (all of which are intuitive and easy to remember, unlike Perl), and it worked perfectly on the first run. It was only then that I realized how little code it had taken and how *pretty* it was: Java would have had loads of redundant code with classes and casts and explicit list creation and copying, and Perl would have had about the same line count but peppered with inane "@$" prefixes for the lists of lists.

    Python is good. Check it out, even if you think the significant whitespace is silly. (I'm still undecided; I don't like being at the mercy of how text editors interpret spacing, but it does improve readability somewhat).

    --
    How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.
  58. Server-side alive by Maxmin · · Score: 2, Interesting

    I'll point out one place where Java has it all over the other webserver languages. When you issue a HTTP request to PHP (the 'P' in LAMP), what happens? Off-the-shelf, it's gotta tokenize the scripts (and in any decent-sized web app there are MANY), then it has to execute it. Then it loads all the data needed to regain the client's context. Finally, now your request can be serviced. HUGELY INEFFICIENT and a really poor design.

    With Java, you can connect with a pre-compiled, already-running servlet or JSP page that's part of a *continuously* running system. Shazam! The data's already there! You've got a pool of objects, threads and database connections, all ready to roll.

    Whatever minor inefficiencies you point out with JVMs, having a continuously-running website application scores first place. Perl has the potential for this, but then you're stuck with its obscure syntax (not a biggie, but..), limited object orientation and too-new threading feature. Java works better for server apps.

    I'd like to see the Ruby crowd compare on this basis. (Not against Ruby, just not familiar enough.)

    Cheers.

    --
    O lord, bless this thy holy hand grenade, that with it thou mayest blow thine enemies to tiny bits, in thy mercy.
  59. Why Java still isn't faster than C++ by Anonymous+Brave+Guy · · Score: 2, Informative
    They can routinely equal C++ in terms of performance.

    Oh, man, do we have to do this again?

    Java has theoretical limitations that mean it will always have difficulty keeping up with a well-optimised C++ program.

    For a start, let's get over the Hotspot thing. It's an optimiser. C++ has had them for a year or two, now, I hear. If Hotspot had revolutionary new techniques, why haven't they been adopted en masse in the C++ world? Presumably you can cite patents or similar that would prevent this?

    There is a theoretical possibility that a dynamically-optimised Java application could do better than something compiled with C++ on a given data set. However, recent advances like profile-guided optimisation in the C++ world suggest that data-based optimisation doesn't help that much.

    Moreover, there are very significant overheads incurred in the monitoring and, if necessary, compilation and optimisation steps running in the background. A compiled C++ program instrumented for use with a profiler will typically run several times more slowly than the equivalent uninstrumented code, unless you're running on something like an Itanium that has handy hardware support for these things, and there's no silver bullet that allows a JVM to magically collect the equivalent data without overhead, nor to collect a much smaller set of data yet still optimise to the same extent based on it.

    Right, now we've got the Hotspot stuff out of the way, let's do the inherent difficulties with GC. To release memory, sometime, somewhere, you have to update whatever tables you use to indicate what's allocated. That's it. Anything you can do with a flashy GC in Java, you can code up the same memory management algorithms in C++ if you really need it. In C++, you can also write more specialised alternatives for different data types, and of course many objects are simply allocated on the stack anyway. Java is just about catching up with the advantages of that one with techniques like escape analysis today, yet it's standard, chapter 1 fare in the C++ world.

    And of course, there are still the same fundamental weaknesses in Java's design that there always have been...

    Java doesn't have value types, so everything's dynamically allocated by default.

    Not everything is an object, so you have boxing overheads even in simple things like containers unless you use generics.

    Those generics have only just been introduced into the language, and are a poor imitation of C++ templates, offering few of the advantages that template metaprogramming has been providing to serious, high performance libraries in C++ for a few years now.

    Java's floating point model is constrained by its portability requirements -- for a while it was even theoretically impossible for a JVM to meet them, IIRC -- which unavoidably prevents the use of many math optimisations.

    I could go on, but I'm getting bored, so I'll leave the record straight enough and stop there.

    One last thing: before you reply and tell me to do research rather than rant as you have with other posters, you should know that I write high-performance, highly portable code for a living, and I work with countless other people in the industry who do the same. If the Java evangelists were right, and Java really was rivalling the performance of C++ and easier/safer/more productive today, then it's strange that the entire industry I work in, with all its R&D, hasn't noticed.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    1. Re:Why Java still isn't faster than C++ by Cederic · · Score: 2, Interesting


      >> Anything you can do with a flashy GC in Java, you can code up the same memory management algorithms in C++ if you really need it.

      Why? I can download Java from Sun and it has this built in.

      Performance hasn't been the issue with Java since 1.1, maybe 1.2. If you want to write embedded systems, device drivers, software with a small memory footprint, maybe Java isn't a good choice.

      >> If the Java evangelists were right, and Java really was rivalling the performance of C++ and easier/safer/more productive today, then it's strange that the entire industry I work in, with all its R&D, hasn't noticed.

      Ignoring performance, writing in Java _is_ easier/safer/more productive today than writing in C++.

      People make fewer mistakes. People write better code. People don't have to spend weeks trying to write GC instead of just downloading something so efficient it's inadequate 1 time in 10,000.

      I have deployed, at three companies now, Java based web applications handling millions of pounds of business, serving terabytes of dynamically created content, underpinning the leading websites in their industries.

      Performance issues? Sure, we've had some. We've dealt with them. Good application design helps immensely, good hardware is cheap, basic measures such as caching data in memory, reducing network calls and writing stateless code all impact performance several orders of magnitude beyond the language used.

      Is Java as performant as C++? In terms of money spent, on hardware, on developers, on design and analysis, to get web pages to users within 5 seconds? Yes.

  60. My take on this by Trinition · · Score: 2, Insightful

    Whenever I start solving a problem in Java, as its complexity increases, I can tackle this yb developing objects/components/frameworks/libraries to abstract a lot of the complexity away -- effectively creating a new "language" (my APIs) with which to solve the problem in. Java lends itself well to this sort of OOP solution development.

    When I used to do simple JavaScripts, or simple ASP pages, or simple Perl scripts, a lot of my solutions also started very simple. Many of these languages did not lend themselves well to objects, so you end up creating a lot of functions and passing data around and doing strange things with the standar data types -- but they also offered a richer syntax which allowed you to more easily accomplish these things without needing to hide anything. Still, I would eventually reach the point where I wanted to start wrapping things up more (JavaScript, now ECMAScript, supports Objects, Perl added OO support, etc.).

    My point is that these "LAMP" languages make it very easy to write not-too-complex programs rapidly. However, my personal feeling is that once you start to make that more and more complex, the problems become easier to manage in bite-size chunks with OOP concepts like encapsulation. Since Java naturally urges you to start out OO, evolving the OO is simple. BUt to start with a non-OO programa nd evolve it to OO can be... trying.