Slashdot Mirror


Phillip Greenspun: Java == SUV

lateralus writes "In his blog, Philip Greenspun re tells of his epiphany that Java is the SUV of programming languages. An interesting point brought forth in his typical extreme style."

6 of 974 comments (clear)

  1. SUV? by edstromp · · Score: 0, Redundant

    You mean Java is gas-guzzeling, oversized, hard-to-park, and basically pointless for 90% of the suburbanites that own them?

  2. Text of article by Anonymous Coward · · Score: 0, Redundant

    Can SUVs remain fashionable when only unfashionable people drive them?

    Speaking of SUVs... (see below), at a recent gathering in suburban New Jersey I noticed that nearly everyone else had arrived in an SUV. The drivers were overwhelmingly middle-aged married suburbanites with children. When one encounters a young, good-looking, city-dweller the chances are very high that he or she will be driving an inexpensive compact car of some sort. If you see an SUV in the distance but can't see the occupants because the glass is too heavily tinted, chances are that it is 35-year-old mom and two kids. A Suburu sedan, by contrast, is often occupied by a young single urbanite.

    How much longer can the popularity of SUVs continue? Many of the drivers are getting so old that their fragile bones really can't handle the stiff suspension and harsh ride over bumps (my 40th birthday is in a week and whenever I'm picked up from the airport in a BMW X5 or similar I can't believe how little isolation is provided from potholes, etc.; it is actually more jarring than landing the DA40 at 67 knots).

    So how is it that SUVs remain in fashion when 99% of the owners of SUVs are unfashionable?

    # Posted by Philip Greenspun on 9/20/03; 3:34:38 PM - Comments [14]
    Java is the SUV of programming tools

    Our students this semester in 6.171, Software Engineering for Internet Applications have divided themselves into roughly three groups. One third has chosen to use Microsoft .NET, building pages in C#/ASP.NET connecting to SQL Server. One third has chosen to use scripting languages such as PHP connecting to PostgreSQL and sometimes Oracle. The final third, which seems to be struggling the most, is using Java Server Pages (JSP) with Oracle on Linux. JSP is fantastically simpler than "J2EE", which is the recommended-by-Sun way of building applications, but still it seems to be too complex for seniors and graduate students in the MIT computer science program, despite the fact that they all had at least one semester of Java experience in 6.170.

    After researching how to do bind variables in Java (see the very end of http://philip.greenspun.com/internet-application-w orkbook/software-structure), which turns out to be much harder and more error-prone than in 20-year-old C interfaces to relational databases, I had an epiphany: Java is the SUV of programming tools.

    A project done in Java will cost 5 times as much, take twice as long, and be harder to maintain than a project done in a scripting language such as PHP or Perl. People who are serious about getting the job done on time and under budget will use tools such as Visual Basic (controlled all the machines that decoded the human genome). But the programmers and managers using Java will feel good about themselves because they are using a tool that, in theory, has a lot of power for handling problems of tremendous complexity. Just like the suburbanite who drives his SUV to the 7-11 on a paved road but feels good because in theory he could climb a 45-degree dirt slope. If a programmer is attacking a truly difficult problem he or she will generally have to use a language with systems programming and dynamic type extension capability, such as Lisp. This corresponds to the situation in which my friend, the proud owner of an original-style Hummer, got stuck in the sand on his first off-road excursion; an SUV can't handle a true off-road adventure for which a tracked vehicle is required.

    With Web applications, nearly all of the engineering happens in the SQL database and the interaction design, which is embedded in the page flow links. None of the extra power of Java is useful when the source of persistence is a relational database management system such as Oracle or SQL Server. Mostly what you get with Java are reams of repetitive declarations at the top of every script so that the relevant code for serving a page is buried several screens down. With a dynamic language such as Lisp, PHP, Perl, Tcl, you c

  3. Google cache of the article here by Angostura · · Score: 0, Redundant
    Or rather, here

    Summary: Like an SUV Java code may run anywhere, but it is over-engineered for smooth roads^H^H^H^H^H^H^H simple programing problems

  4. Re:JAVA is the suv? by capnjack41 · · Score: 0, Redundant
    JAVA may be slightly slower than other languages, but it provides for rapid development and portability that are a developer's dream.

    Maybe that's important for some people, but in my case, it's not. My organization uses basically all Linux PCs as servers. Therefore, we don't need cross-platform capabilities; I just want to get the little database app that should be done in 2 hours done in 2 hours. Java has lots of type-checking, etc. that's usually unnecessary for my simple reporting/collection of database data. I'm making the push (in a meeting sometime today, actually) for the whole LAMP thing, instead of Tomcat that we're using now.

    Plus imho Tomcat is a pain in the ass to configure, and you gotta keep javac'ing, and so on. Just give me a language where I can throw in a little bit of code in the middle of a webpage, in the regular web directory, and be done with it.

    For this stuff I'd really prefer PHP/MySQL (replace PHP or LAMP with whatever else you prefer). Your mileage may vary (har, har).

  5. Cars vs Programming languages by James+007+Bond · · Score: 0, Redundant
    A really old joke (definitely before the 90's) was doing the analogies between programming languages and cars.

    [Digging through 14 years of archived emails...]

    Here ya go. Somebody should find good descriptions for the C#, Java, Perl, VB and [insert your favorite language here] of the day.
    • Assembler A Formula I race car. Very fast, but difficult to drive and expensive to maintain.
    • FORTRAN II A Model T Ford. Once it was king of the road.
    • FORTRAN IV A Model A Ford.
    • FORTRAN 77 A six-cylinder Ford Fairlane with standard transmission and no seat belts.
    • COBOL A delivery van. It's bulky and ugly, but it does the work.
    • BASIC A second-hand Rambler with a rebuilt engine and patched upholstry. Your dad bought it for you to learn to drive. You'll ditch the car as soon as you can afford a new one.
    • PL/I A Cadillac convertible with automatic transmission, a two-tone paint job, white-wall tires, chrome exhaust pipes, and fuzzy dice hanging in the windshield
    • C A black Firebird, the all-macho car. Comes with optional seat belts (lint) and optional fuzz buster (escape to assembler).
    • ALGOL 60 An Austin Mini. Boy, that's a small car.
    • Pascal A Volkswagen Beetle. It's small but sturdy. Was once popular with intellectuals.
    • Modula II A Volkswagon Rabbit with a trailer hitch.
    • ALGOL 68 An Aston Martin. An impressive car, but not just anyone can drive it.
    • LISP An electric car. It's simple but slow. Seat belts are not available.
    • PROLOG/LUCID Prototype concept-cars.
    • Maple/MACSYMA All-terrain vehicles.
    • FORTH A go-cart.
    • LOGO A kiddie's replica of a Rolls Royce. Comes with a real engine and a working horn.
    • APL A double-decker bus. Its takes rows and columns of passengers to the same place all at the same time. But, it drives only in reverse gear, and is instrumented in Greek.
    • Ada An army-green Mercedes-Benz staff car. Power steering, power brakes and automatic transmission are all standard. No other colors or options are available. If it's good enough for the generals, it's good enough for you. Manufacturing delays due to difficulties reading the design specification are starting to clear up.
  6. Re:Agreed! by shokk · · Score: 0, Redundant

    It pollutes the environment and wastes gas...



    Agreed! Somewhere people are buying faster processors solely for the purpose of making their Java app run right. Is it a lot...it is surely more than zero. Faster systems = more power = more wasted energy = more wasted $$$. That electricity for powering that bloated run time environment comes from burning something somewhere in the world. Somewhere a Saudi prince is smiling.


    --
    "Beware of he who would deny you access to information, for in his heart, he dreams himself your master."