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

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

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