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."

13 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 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.

    2. 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
    3. 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.

    4. 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.
    5. 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.
    6. 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.

  2. 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.

  3. 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
  4. 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
  5. 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.

  6. 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).

  7. 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 /.