Slashdot Mirror


Departure Of The Java Hyper-Enthusiasts?

TomH writes "Bruce Eckel has an article at Aritma, where he posits that 'The Java hyper-enthusiasts have left the building, leaving a significant contingent of Java programmers behind, blinking in the bright lights without the constant drumbeat of boosterism.' Has the previous hype of Java and J2EE moved on to Ruby (on Rails) and Python?"

115 of 678 comments (clear)

  1. Switched to decaf, did they. by Orrin+Bloquy · · Score: 5, Funny

    Sorry.

    --
    "Made up/misattributed quote that makes me look smart. I am on /. and I must look smart."
  2. Next Question by Ridgelift · · Score: 3, Insightful
    Has the previous hype of Java and J2EE moved on to Ruby (on Rails) and Python?
    Yes. Next question please.
    1. Re:Next Question by TubeSteak · · Score: 4, Funny

      What about AJAX?

      Doesn't it get to be on rails too? Or is it going to be limited to that accursed "rubber wheel" we've been hearing about?

      This "Ruby on Rails" sounds like a monopoly in the making.
      /. should be wary

      --
      [Fuck Beta]
      o0t!
    2. Re:Next Question by Anonymous+Brave+Guy · · Score: 3, Funny

      Ajax doesn't need rails. It flies, both defying the laws of physics and generating a thumping Queen soundtrack in the neighbourhood that makes your car stereo weep with envy.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    3. Re:Next Question by powerpointmonkey · · Score: 2, Interesting

      I'm by no means a Java luminary, but I have been coding Java professionally since 1997. I lived through the bad old 'applet for everything' days, and having to roll my own client-server communication protocols, then moved into Servlets, JSPs, and finally full blown J2EE applications. I was there at Java One in 2000 when the hype was incredible, when I honestly thought I'd be retiring at 35.

      Me, I'm now riding the SOA wave. (when I'm not writing powerpoint presentations).

      ROR is great, but IMHO SOA is where the J2EE hype went.

    4. Re:Next Question by bwt · · Score: 4, Insightful

      Has the previous hype of Java and J2EE moved on to Ruby (on Rails) and Python?

      Ruby (on Rails) -- yes
      Python -- no (sorry)

      And the hype will come back to java in about a year or two when people realize groovy has all the benefits of ruby but with a bigger set of production quality libraries (all those from java) and that it can be compiled too.

      This is actually the most exciting time for java in a long time:
      a) scripting - groovy (JSR 241) & beanshell (JSR 274) & bindings eg for PHP (JSR 223) & BSF
      b) New lightweight frameworks are blossoming (eg spring, hibernate, webwork, EJB3)
      c) Aspect Orient Programming is blossoming in java (AspectJ, spring, JBoss)
      d) Tools growth -- Eclipse plugins, Ant tasks, JUnit extensions, velocity & xdoclet, XML utilities

      When groovy hits 1.0 and the people who left for Ruby start realizing they miss all the java libraries, the hype will come back. RoR is popular for two reasons -- Ruby has a very efficient syntax and Rails innovated with the "convention over configuration" idea. Groovy solves the first problem and the second one will be adopted where appropriate by the framework wonks.

      Ruby's downsides are it's a raw young language (weird errors, its slow, small set of libraries, and poor tools support). In the end these negatives and the innovative things happening in java will win out.

  3. Hype? by whargoul · · Score: 3, Informative

    I have to say, I haven't heard near the hype about Ruby and Python that I heard about Java. Although I must admit, the Java hype has died down quite a bit.

    1. Re:Hype? by Otter · · Score: 4, Insightful

      1. There's no big company behind Python and Ruby.

      2. There are no idiot VC's handing out cash to start Marimba-ish companies based on vague ideas about using Python and Ruby.

      3. Python and Ruby don't have an easily-understandable if not really accurate hook comparable to Java's "write once, run anywhere" hype.

    2. Re:Hype? by jo42 · · Score: 2, Insightful
      I wish the code monkeys here would get Java off of the Brain.

      They want to do everything in Java - even a basic web site.

      - If all you have is a hammer, then everything in the world looks like a nail."

    3. Re:Hype? by AKAImBatman · · Score: 5, Insightful

      To be fair, Java's hype was well deserved. It was the first platform with a highly complete API set included in the core, it was the first dynamic web server technology that used a multithreaded model in addition to runtime-compiled code (bye-bye CGI), it was the first language with reflection designed into its core, and it was the first language to bring OOP, Virtual Machine, and cross-platform capabilities together into a workable package.

      No other language has ever managed to pull off what Java has. In fact, it was the driving force behind the modern push for cross-platform languages, complete (and free) API libraries, and Object Oriented Programming. I look back at days before Java, and they seem like the dark ages of computers.

      If Java has lost its hype, it's only because it's already accomplished all its goals. :-)

    4. Re:Hype? by bigman2003 · · Score: 2, Insightful

      I really hate the idea that you have to develop in the Popular Flavor of the Month in order for some people to think you know what you are doing.

      In the past 10 years, there have been at least 6 or 7 big 'waves' that have hit, and if you tried to follow them all, you would never really get to know any of the languages.

      What about saying: "Well, this really works for me. It may not be the latest and greatest...but today's latest and greatest is going to be tomorrow's old dirty shoe. So I'll just stick with today's old dirty shoe, until there is a reason so compelling that I will change."

      It works...really...if you value productivity and efficiency.

      Viva La Cobol

      Okay, not really Cobol...but you get the idea.

      And for those Cobol programmers out there...good job. Just hang on a few more years and you'll be able to retire.

      --
      No reason to lie.
    5. Re:Hype? by AKAImBatman · · Score: 2, Insightful

      They want to do everything in Java - even a basic web site.

      I suppose that depends on what you mean by "basic web site". A good architect always tries to plan for any likely scenario. Quite often, that "basic web site" may be bound for a long life as a "not so basic website". If you tie yourself to PHP or ColdFusion, you may find yourself with serious performance and scalability problems inside two years. That's not a good situation to be in, and could have been prevented. (I've seen this happen in WAY too many companies.)

      OTOH, if you're just implementing a simple shopping cart to integrate with Paypal for the few products your work-at-home company sells, go ahead and use PHP and best practices. Your best realistic estimates are unlikely to show your website expanding beyond the capabilities of PHP within a few years. And if you do have extreme expansion like that, you've got more important problems to deal with. ;-)

    6. Re:Hype? by AKAImBatman · · Score: 2, Insightful

      ASP/IIS used a multithreaded model with runtime-compiled code

      No it didn't. ASP was interpreted up until ASP.NET.

      Servlets were a world changing technology compared to CGI. JSP's just-in-time compiling kicked ASP up between its ears in performance. Add runtime safety to the mix (you can't crash your entire server application by GPFing or dividing by zero) and you have the makings of a revolutionary product for its time.

    7. Re:Hype? by IAmTheDave · · Score: 4, Interesting
      I have only one wish, and that's that the Java hyper-enthusiasts would depart from my university's staff. The amount of Java classes here is ridiculous.

      Yeah, my CS classes started out with Java. I don't want to start a huge debate, but I think it's a decent learning language, especially good for 100 level courses. Of course, you should move on past that... We ended up having a good mix of five or six languages while dabling in a couple others, but starting with Java was a good way to introduce the concepts of OOPLs without the added difficulty C++ brings with it.

      --
      Excuse my speling.
      Making The Bar Project
    8. Re:Hype? by Ignignot · · Score: 4, Funny

      Aha! This story was a trick! We finally got one of the Hyper-Enthusiasts to come out of hiding, so he can be studied in a controlled environment. Good work slashdot!

      --
      I submitted this story last night, and it didn't get posted.
    9. Re:Hype? by Anonymous Coward · · Score: 2, Informative

      it was the first language with reflection designed into its core



      *cough* Smalltalk *cough* LISP *cough* *cough*

    10. Re:Hype? by paulproteus · · Score: 2, Interesting

      > It was the first platform with a highly complete API set included in the core,

      Python predates Java. When I program in Java, it's always a pain to replicate the functionality I get with Python's default libraries. Python comes with "batteries included."

      > it was the first dynamic web server technology that used a multithreaded model in addition to runtime-compiled code (bye-bye CGI)

      Perhaps, I don't know early Python history this well.

      > it was the first language with reflection designed into its core, and it was the first language to bring OOP, Virtual Machine, and cross-platform capabilities together into a workable package.

      Python has had compiled bytecode for a long time. And it's also clearly object-oriented.

      Unless you mean the first such language pushed by a *corporation* rather than by *enthusiasts*.

      --
      |/usr/games/fortune
    11. Re:Hype? by AKAImBatman · · Score: 4, Insightful

      C included libc, C++ has libc+STL

      If you call those comprehensive libraries, then I have a bridge to sell you. The 1.1 library (which was where Java first started taking off) had such features as a standard SQL API, advanced I/O capabilities, remote method invocation, GUI support, image handling, standardized complex data structures, cryptographic support, text processing, data compression, and many other features lacking in libc/STL. The Java 2 library and on added a metric boatload of useful new APIs (XML, CORBA, collections, XSL, Logging, Registry, RegEx, Directories, Sound, MIDI, etc.), guaranteed to be on every platform Java was. That's one hell of a feature!

      That's mostly a web server issue,

      Serlvets and JSP are "standard" Java libraries that made the language well suited to the task. It's irrelevant if it's a "web server" issue or not. It directly impacted its popularity.

      and it's technically untrue. You could write a multithreaded C program to handle web requests using pipes or other IPC mechanisms.

      (rolls eyes) Well then, KDE wasn't the first Open Source desktop because I could have written one first!

      That's a stupid argument, sir. Part of Java's popularity was that Servlet and JSP technology was the first technology on the market with these features. If someone wrote a customer server to do the same prior to Java, it didn't help the rest of the market at all.

      Again, what? All functional languages support reflection because functions are first class objects.

      Riiiggghhht. So let me just compile this code here, and then have this program I wrote a few months back over here automatically investigate the functions and run them.

      No wait, I can't do that. The compiler threw away that information after compile. Plus I need to write a very special loader to get the code into executable memory to begin with. And it's platform dependent.

      Java is inherently reflective at runtime. Native languages only keep that information for DLLs and the like.

      You looked in the wrong dark corners, oblivious to the superior (yes, even to Java) functional languages that, true, have been ignored by "mainstream" users, even in computer science.

      Another poor argument. I said that the other languages failed to bring many features mainstream like Java did. You agree but state that I'm wrong. How does that work, sir?

    12. Re:Hype? by hackstraw · · Score: 3, Interesting

      To be fair, Java's hype was well deserved.

      No, Sun's marketing department should praised for the hype. Sun leveraged Netscape to rename whatever they called javascript to be called javascript even though it had nothing to do with java. Sun started calling everything java except coffee. Javastations, javaos, hotjava, $300 Linux computers at Walmart that had the "Java Desktop System", which I cannot figure out if Java is in it or not, I think its just Gnome.

      Java's supposed to be hype was because it was a cross-platform, write once, run anywhere language and portable across systems with compiled bytecode that could be run in a jvm. Somewhere I have heard that it was more like write once, debug everywhere. Java has almost died for GUI apps because the implementation did not live up to the hype. Java is now mostly found in app severs and whatnot as a middleware between web severs and databases.

      Java's implementation has caused me headaches as a system administrator and computer user for 10 years now, and I've been over the hype for quite some time.

      I have no beef with the language. I dabbled in it years ago, but didn't find any use for it, but that has nothing to do with my opinion of the implementation. Its the fact that I have had so many issues with it over the years that has caused my opinion. These issues have been Linux support, Matlab problems due to java, Oracle's universal installer that had issues because of java, Sun's "web installers" that have had problems, Netscape crashing for years because of java, etc.

      From what I hear, Java has fulfilled a real demand in the app server market, and I'm fine with that. I don't do that kind of work anymore, so I have no involvement with it. But when I did, we had java problems, but this was years ago.

      Personally, I believe that the hype is still floating around as witnessed by:

      If Java has lost its hype, it's only because it's already accomplished all its goals. :-)

      I'm not sure what the goals were. I was under the assumption that it was a cross platform application environment, completely with a cross platform GUI. If this was the goal, I am unaware of an example of its success. There are only a handful of examples. I believe Eclipse might be a success, but I'm unsure if it is entirely written in java or not. Apple has a java control program for their raid array that mostly works, and there is Azureus, but I personally don't like that either because of its heavy resource requirements, and it would not work on my Mac with two users in two different accounts using it at the same time. Oh, I forgot about OpenOffice. Again, I don't think that is entirely written in java, and I simply do not own enough of a computer to run OO, but I tried. The document that I was trying to open was created on a 700MHz or so PC, but I could not do anything with it on my PowerBook G4. I asked the person to simply export it to a CSV so I could work with the spreadsheet.

      Being that computers are so fast, if Java was a working cross platform GUI language and free, I don't see why at least 90% of the programs available for computers are not Java. If I owned a company that wrote a GUI program, and if there was a cross platform GUI language and implementation that worked, I certainly would use it. Even if portability was not a desired goal, why not open the door to 100% marketshare with one writing?

    13. Re:Hype? by FireBreathingDog · · Score: 2, Funny
      Python predates Java. When I program in Java, it's always a pain to replicate the functionality I get with Python's default libraries. Python comes with "batteries included."

      What the hell does that mean?

    14. Re:Hype? by Fujisawa+Sensei · · Score: 2, Funny

      When I write Python I feel like I'm writing COBOL.

      If Java were to stop paying the bills and I couldn't get a job doing Ruby, I would rather code C#, TCL or Perl than do Pybol.

      --
      If someone is passing you on the right, you are an asshole for driving in the wrong lane.
    15. Re:Hype? by JPrice · · Score: 2, Informative

      I think that it's much better to teach functional programming first, because that's exactly how the computer handles it. It's also a little easier to wrap your head around. "There's this list of instructions. The computer does each instruction in order."

      I'm guessing you probably mean procedural programming, since as the poster above said, what you're describing isn't functional programming.

    16. Re:Hype? by wft_rtfa · · Score: 3, Insightful
      To be fair, Java's hype was well deserved.

      I think your reasons for the hype really hit the nail on the head. Before Java, programming languages were just languages and usually didn't come with a huge standard API. Especially one that was object orientated , cross platform, and was really powerful.

      The concept is so good that Microsoft did their best to copy all the good things about Java (almost everything from Java and a few from VB) with C#. I don't think we would have C# or the .NET framework if it weren't for Java. So to say that the hype was undeserved is just silly. However, because Java has grown to be a little over complicated, a lot of people don't understand Java, and people fear or dislike what they don't understand.

      --
      :-] :0 :-> :-| :->
    17. Re:Hype? by jaydonnell · · Score: 2, Insightful

      I think java is horrible for 100 level courses. You have to say "ignore all this 'static', 'class', and 'public' stuff. Just type it and you'll learn about it in a couple quarters. Not my idea of a good way to teach.

    18. Re:Hype? by TheNetAvenger · · Score: 2, Informative

      No it didn't. ASP was interpreted up until ASP.NET.

      Actually ASP was server side compiled and cached long before ASP.NET...

    19. Re:Hype? by Pxtl · · Score: 2, Insightful

      Having worked with TkInter, I have to say that I actually enjoyed the layout of it. I found it pleasant and lightweight to code with. The problem was that the widgets themselves were just awful.

    20. Re:Hype? by The+Wookie · · Score: 2, Insightful

      >> It was the first platform with a highly complete API set included in the core,

      >Python predates Java. When I program in Java, it's always a pain to replicate the functionality I get with Python's default libraries. Python comes with "batteries included."

      I think the two packages in Java that really differentiated it were java.sql and java.rmi. It gave you an API to work with numerous databases on numerous platforms. That is still tough to find in other libraries. RMI made it easier to distribute large applications across multiple platforms. I don't see a lot of people doing this with Python & Ruby. Java also came with reasonably good threading support, some minimal support for locking, and some mostly-thread-safe libraries. When Java came out, most of the other languages had libraries for collections, file access, and if your were lucky, network operations.

      >> it was the first language with reflection designed into its core, and it was the first language to bring OOP, Virtual Machine, and cross-platform capabilities together into a workable package.

      >Python has had compiled bytecode for a long time. And it's also clearly object-oriented.

      Python compiles into bytecode, yes. Java has a just-in-time compiler that turns the byte code into native code. Psyco is not as good as the leading JITs.

      >Unless you mean the first such language pushed by a *corporation* rather than by *enthusiasts*.
      Or maybe the first language targeted towards corporations. Some of the largest users of Java these days are companies with large database+web applications, with a lot of business logic. Python and Ruby may be getting more of the smaller projects these days, but it will be some time before they are able to get some of the larger ones.

    21. Re:Hype? by dnoyeb · · Score: 2, Insightful

      Just because the hype has dies off does not mean the language has. In fact this could be an indication that the run-up is over and people are receiving their dividends now.

    22. Re:Hype? by laffer1 · · Score: 2, Interesting

      Hold on.. he said powerbook g4. That could be a lot slower than 1200 mhz. I don't know if you know this, but there is a big difference in performance between an 800 mhz and 1200mhz ibook for example. If he has an early version, there is no way in hell he's going to run openoffice. Its a big bloated piece of crap.

      Java apps run very fast if they are written correctly. Limewire and Intellij Idea both run very well on my ibook. I've even tried a quake 2 port in java. Works great.

      As for problems with java, its got issues. The write once, run anywhere "Promise" is a big lie. Try to write a swing app and run it on windows, linux and OSX to see what i mean. Java is great on the server end simply because it does run on windows, linux and osx though. Tomcat runs on all three and thats a blessing. Now if mono would start working correctly I could switch to .NET. Python and Ruby are ok languages and could be good as web languages. Like java j2ee, asp/ASP.NET, php, perl, and whatever else they are not for everyone.

      I personally hate php so much I use java. If I could afford a windows server, I would run on .NET though. The problem with php is that it is worse than java about compatibility. Java may be implemented poorly, but there isn't a 180 on the spec either. I dare you to run php 4.0 code in php 4.40. Hmm.. the environment arrays changed.. hmm.. functions behave differently? I wonder why... Now try to get mysql 4.1 to work without using old passwords. Oops. Backward API compatibility means nothing to the php folks even in a minor release. Ok back on track, the point is there are benefits to java, .NET and newer languages. Its called compatibility.

  4. maybe to ruby, not python by Surt · · Score: 4, Interesting

    No one I've met doing serious development is building on python, it's just too error prone. Ruby (and on rails) are definitely gaining serious adherents though. Particularly with ruby likely to become a first class JVM language, Ruby's future looks pretty bright. Ruby may well replace java as the syntax of choice for developing big web apps.

    --
    "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    1. Re:maybe to ruby, not python by SilentTristero · · Score: 3, Interesting

      [This is not a troll, it's a serious question from someone who's about to start a major db-driven web app.]

      OK, everyone knows Java's a nonstarter these days. Ack, why did they kill it with Swing instead of a decent lightweight GUI (like wxWidgets or FLTK or something)? And they never got the memory usage under control.

      But why Ruby and not python? What sort of errors is python prone to that ruby avoids? We have a bunch of python code here (scons and other stuff) and a bunch of older perl, and I'm reluctant to start a big web app in Yet Another Language. We all know python pretty well now. Is ruby going to be that much more maintainable? What about TurboGears for instance?

      Also there seems to be a wider variety of libs available for python than ruby. And the python docs are very good. So I'm very interested to hear about the error-prone nature of large web-app development in python.

      -- SilentTristero

    2. Re:maybe to ruby, not python by nother_nix_hacker · · Score: 3, Interesting
      No one I've met doing serious development is building on python
      I work for a large tech. company in the UK and use Python for _a lot_ of my development. Google use it too: "Python has been an important part of Google since the beginning, and remains so as the system grows and evolves. Today dozens of Google engineers use Python, and we're looking for more people with skills in this language." said Peter Norvig, director of search quality at Google, Inc. Go to jobserve.co.uk and type Python into the search box. Tonnes of results come up.
      it's just too error prone
      What in gods name is that meant to mean? Too error prone? I've never heard such flamebait in my life. Just because you write buggy software in a language doesn't make the language "error prone"! I'd love to hear you elaborate on this...
    3. Re:maybe to ruby, not python by latin_fury · · Score: 5, Informative

      That's funny, reddit.com just switched to Python (http://www.aaronsw.com/weblog/rewritingreddit). And Google uses Python extensively inside the company, and just hired Guido van Russom, Python's creator. There are many more examples out there if you bothered to look.

    4. Re:maybe to ruby, not python by Simon+Brooke · · Score: 4, Informative
      This is not a troll, it's a serious question from someone who's about to start a major db-driven web app.
      OK, everyone knows Java's a nonstarter these days. Ack, why did they kill it with Swing instead of a decent lightweight GUI ...

      If you're writing a web app, Swing is an irrelevance. You won't be needing it and it won't get in your way. Java remains an excellent choice for serious web apps which you're going to want to maintain later. I agree with you that Swing is a horrible mess, but as someone who only writes web apps it doesn't wory me at all.

      --
      I'm old enough to remember when discussions on Slashdot were well informed.
    5. Re:maybe to ruby, not python by Tim+C · · Score: 2, Interesting

      OK, everyone knows Java's a nonstarter these days.

      Quiet you fool! My employers and clients might hear you! Then what would I do for a job, eh?

      Seriously, I have six years commercial experience of writing web apps in Java. Would I recomend it for absolutely every situation? No, of course not. Is it categorically a non-starter? No, of course not.

      The right tool for the job; Java has its place, and to deny this with the blanket assertion that it's "a nonstarter these days" is to reveal a closed mind.

    6. Re:maybe to ruby, not python by Concerned+Onlooker · · Score: 2, Funny
      Ruby may well replace java as the syntax of choice for developing big web apps.

      So what you're saying is that Java is being ridden out of town on a Rail?

      --
      http://www.rootstrikers.org/
    7. Re:maybe to ruby, not python by Surt · · Score: 2, Insightful

      Pythons syntax relies on whitespace rather than closure for depth management. It's foreign to a sufficient number of programmers to represent a real bug risk, particularly as you try to grow toward building large programs.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    8. Re:maybe to ruby, not python by adamhupp · · Score: 5, Insightful

      A few comments:

      1. I've started using Turbogears and its is wonderful. Easy to setup, very easy to understand, and very powerful. I cannot comment on it with respect to Rails, but as far as I know it is inspired by similar ideas. One major advantage of Turbogears is that it is built out of several existing projects that have had lots of use and development, SQLObject (for Object-Relational mapping) and CherryPy.

      2. I can't imagine any reason to believe Python would be more error-prone than Ruby. From a language standpoint they are very similar. However, Ruby is a somewhat immature language compared to Python. Standard library, 3rd party support and performance are all lacking in Ruby. I'm sure these things will catch up in time, but for now it's a much newer environment and it shows.

    9. Re:maybe to ruby, not python by LDoggg_ · · Score: 2, Insightful

      OK, everyone knows Java's a nonstarter these days.

      As much as I hear this regurgitated ad nauseum in the comments here it still makes me chuckle.

      Just did a simple search on a few different cities on monster.com and it seems that there's about 10 or 11 times more positions available to java programmers than ruby and python combined.
      I've done a little python and don't mind it so much, and have only read a few tutorials on ruby and ruby on rails. They both seem ok, but neither have a syntax anything like what I'm used to(C,C++,Java,C#, etc...).

      I'm curious if gcj/gij + gnu-classpath had a complete and open 1.5 spec implementation on par with the Sun JVM's performance, would the anti-java hostility still be there?

      As a programming language I find it extremely productive on the client or server, and there is an API to do pretty much anything you could want.

      --

      "If they have both, tell them we use Linux. And if they have that, tell them the computers are down." -Dave Chapelle
    10. Re:maybe to ruby, not python by CableModemSniper · · Score: 2, Insightful

      Oh come on. I mean I don't like the Python "whitespace as syntax" as a matter of aesthestics, but thats a ridiculous statement to make. Any programmer knows that the "if" for instance has to terminate, the worst case scenario is that they will throw in some { } or extraneous ends and it will fail to parse. Then they'll quickly figure it out. It's not gonna cause you any more runtime errors than any other language. If a block is so big and so nested that you make a mistake placing a statement in the proper block, you'd probably make that mistake regardless of the language.

      --
      Why not fork?
    11. Re:maybe to ruby, not python by arevos · · Score: 2, Informative
      Pythons syntax relies on whitespace rather than closure for depth management. It's foreign to a sufficient number of programmers to represent a real bug risk, particularly as you try to grow toward building large programs.

      Eh? That's like saying languages that have semicolons on the end of lines are more bug-prone because programmers sometimes forget a semicolon. Incorrect whitespacing and missing semicolons are both syntax errors that are caught at compile-time, not run-time, so in practise this is entirely a non-issue.

      Despite having twice as many years experience programming Java than Python, I've found that Python's whitespacing is far less prone to error than other methods of block delimiting. I can count the number of times I've messed up my indentation on the fingers of one hand. The number of times I've missed the occassional semicolon or bracket must number in the hundreds.

    12. Re:maybe to ruby, not python by Surt · · Score: 2, Insightful

      Whitespace errors can occur far more easily than block delimiting errors. Consider the case of un-indenting one line too soon. That produces an if condition error in python. Consider failing to close a block in java: that produces a compile time error.

      Run time errors are much much badder than compile time errors.

      Given that i've worked at only one place where I didn't have to work with people who would make this kind of error, I'd much rather stick with a language that will let me avoid having to debug this kind of mistake.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    13. Re:maybe to ruby, not python by hohonuuli · · Score: 2, Insightful

      But Java's Swing problems, startup time, and memory requirements pretty much lock it out of all those categories except web apps. OK, I'll bite. What are Swing's problem's? Too flexible? Too many GUI builders available ? Too cross-platform? Also you forgot the category of delivering rich client apps over the web without requiring installation or any Web programming (Java Web Start). Swing is actually great for a lot of things. (Yes, azureus is pretty beautiful -- but look at its startup time. No problem for an app like that, but I hate waiting for apps to start up.) Azureus isn't Swing it's SWT. http://www.eclipse.org/swt/

    14. Re:maybe to ruby, not python by hohonuuli · · Score: 2, Insightful

      Why oh why do people feel they need to say the same things everytime a discussion about Java starts up. Slow, memory hogging, swing sucks, etc, etc. These arguments simply are not true about modern JVM's

      As for Swing's problems: not truly native look & feel (doesn't behave like other Windows/Mac apps),

      I love to hear this argument. OK...can you show me what a native windows app should look like? Why don't we take a look at Microsoft Office. You will note that microsoft doesn't even use a consistent L&F between different versions of office. Please repeat after me...there is no such thing as a truly native look and feel. Apple now uses 4 different L&Fs for the applications they write. What is the native L&F on Linux (Motif, KDE, Gnome, etc...what theme?). Look, here's an article that discusses it: http://www.osnews.com/story.php?news_id=10633 In Java, you can set the look and feel to be platform native. The problem is a lot of folks set there app to use the Java L&F (Metal) which does stand out and is down right butt-ugly. This is the developers choice, not a problem with Java.

      terrible event model (bad queuing design - pretty much mandates a separate gui thread),

      Can you explain to me what's wrong with Java's event queue? I do a great deal of swing programming and I find the event queue very simple to work with. Generally you can ignore it. If you have long running actions (such as long database transactions) you can fire them off in a seperate thread or use SwingWorker or Foxtrot http://foxtrot.sourceforge.net/docs/toc.php. If you don't understand the threading model, just say so, don't rag on it.

      slow slow slow, memory hogging, even more increase in startup time.

      Here's a few benchmarks:

      All problems with benchmarks aside. You can't say that you're thinking about using Python or Ruby instead of Java because Java's too slow. By their nature, interpeted languages are going to be much slower than compiled (even byte-code compiled) languages.
      I could go on, but for a serious GUI app (e.g. a desktop front-end to a web app) its performance is unacceptable and it is too buggy. In our testing, it was not very cross-platform either. We ended up having a fair amount of platform-specific code.

      Them's fighting words!! ;-) Please oh please stop spreading such lies though. Look, I just wrote a database app that's used for annotating video data in real time. Not only is it plenty fast enough but it's cross-platform. There's no platform specific code in it what-so-ever.

      p.s. Happy Holidays

    15. Re:maybe to ruby, not python by aCapitalist · · Score: 2, Informative

      I don't think Java or Swing is really slow these days. I run the weekly Mustang builds and Java is plenty fast - way faster than Ruby for obvious reasons. But I just tried the weekly build of Mustang SwingSet2 demo and it still doesn't look all that hot on an XP LCD at 1920x1200. The fonts are just too damn small compared to my system fonts. There's needs to be more hooks into the native OS in order for Swing to get hints about approximately it should use. And Swing fonts on an LCD have been a freaking nightmare for ever since there have been LCDs. Mustang finally is attempting the subpixel rendering in Java 6 (Mustang), and they've got it down partly. The actual font rasterizations could use some work though still. Why, oh why, did Sun decide they had to paint everything themselves years and years ago. Why couldn't they have used more native OS hooks...like fonts. SWT wouldn't have had to been invented and Swing would look great. And now finally in Java 6, they're starting to use more gtk hooks and windows hooks. But it's so freaking late. Anyway, that my rant/history of Swing.

      And so I would prefer native fidelity I much prefer SWT/JFaces...or the RCP as a whole depending on how big I'm talking. So SWT is a pretty raw API. They put Jfaces on top and to the side the API stack, but JFaces isn't as powerful as something like Swing, so...

      To me, the only thing that doesn't make programming in Java a complete monotonous/boilerplate-ridden pain in the ass are the IDEs, which everybody knows are second to none. But hell, give me Ruby and vim and I'm good to go even though the RDT and RadRails plugins for Eclipse are getting better. Ruby and/or Python both could use a rich Smalltalk-like environment like that were around (and I guess still are) 20 years ago. At the very least the move to a real VM in Ruby 2.0 will be nice and bring up performance considerably.

  5. How about this quote? by $RANDOMLUSER · · Score: 5, Funny
    > Ruby is to Perl what C++ was to C.

    My worst write-only nightmare...
    *runs screaming from building*

    --
    No folly is more costly than the folly of intolerant idealism. - Winston Churchill
  6. Re:good riddance by cryfreedomlove · · Score: 2, Insightful

    I don't understand this level of hostility for java. It works well for large web application development. EBay.com is implemented with java.

    Please explain your loathing of java.

  7. Author's Thoughts on O'Reilly by TubeSteak · · Score: 4, Interesting
    The book is roughly edited; you'll find yourself thinking "haven't I read this paragraph before?" in any number of places, but that's a disappointing experience I've had with several O'Reilly books of late. In many places he plays fast and loose, and almost at the end of the book he declares that he doesn't have time to learn these other languages in any depth -- although he has no trouble condemning the same languages in his rush to Ruby. Such a statement should be in the first paragraph of the book: "I've decided that I love Ruby, so I will condemn other languages without fully understanding them" (in one sentence repeated in a number of places in the book, for example, he declares that C# is no more than a clone of Java).
    Not sure if it's worth reading the rest of his book review / article
    --
    [Fuck Beta]
    o0t!
    1. Re:Author's Thoughts on O'Reilly by Magnusite · · Score: 2, Informative
      Not sure if it's worth reading the rest of his book review / article

      Actually, it is. If you haven't read any of his work, you might dismiss Bruce Eckel as just another one of the proliferation of people writing programming books these days. Fifteen years ago, if you walked into a bookstore, you'd find about three books on programming languages, with all the rest being dedicated to Lotus Symphony and DBase III. Today, any schmuck with a publishing connection can write a book on Ruby, Perl, Java, or what have you. When I went looking for a book to make the transition from C to C++, I scanned through dozens of C++ programming books before I found Thinking in C++. It's very well written, does not patronize you, covers real world problems in the language instead of boring you with another introduction to sorting, and demonstrates some pretty nifty tricks that he gleaned from Andrew Koenig, among others.

      Bruce is a real software engineer, and writes and speaks to the same.

      Not trying to start a flamewar, just don't dismiss the man because he speaks the truth.

  8. In short, no by Serveert · · Score: 4, Interesting

    I think that Real People are getting Real Work done while the flashy enthusiasts no longer have to toot the horn of Java.

    Java is faster than Ruby and as bloated as it may be, there are a ton of J2EE applications you can purchase and modify to suit your own needs. Not to mention the plethora of development environments - hibernate, JMS, JNDI, torque etc etc. ROR is nice but let's get real - ruby isn't as fast and the few applications around ruby aren't nearly as mature as Java. Having said that I'm hoping Java will get opened up by Sun but I'm not holding my breath.

    --
    2 years and no mod points. Join reddit. Because openness is good.
    1. Re:In short, no by TrekCycling · · Score: 2, Insightful

      Yeah, this is what's so funny to me about hype. I don't hear from C++ or C enthusiasts too often these days, but last time I checked there's still lots of work happening in C and C++. Where are the SQL enthusiasts? I think the thing is, Java (while still evolving) has reached a point of sanity. Frameworks and tools like Hibernate, Struts, JSF, Tapestry, Ant, JUnit, etc. have created a sane, relatively lightweight toolkit for doing J2EE development. So what is there to get hyped about? Most people I know that do Java are just quietly getting work done. Which is actually kind of nice. The Rubyists can have the hype.

      I actually like Ruby and I like Rails. I just don't think the speed gains that come from it being interpreted necessarily outweight the explicitness of Java as it's currently used. I can get anything I need to done in Java, it's easy to install and it's easy to test and log. It just works.

  9. Slashdot Libs by AugstWest · · Score: 5, Funny

    (Slashdot reader) writes, "(Uknown pundit) wrote an article about (Technology that we're not currently fond of), based on conjecture and personal opinion. Does this mean that (Technology flavor of the month) is taking over?

    1. Re:Slashdot Libs by Anonymous Coward · · Score: 3, Informative

      Bruce Eckel is hardly an "unknown pundit". Have you ever read Thinking in Java?

  10. Re:good riddance by CableModemSniper · · Score: 2, Insightful

    He doesn't loathe Java. (Well maybe he does, but its impossible to determine from his post). He loathes hyper-enthusiasts.

    --
    Why not fork?
  11. No by kevin_conaway · · Score: 2, Insightful

    Stop posting fluff articles in the absence of real news before the holidays.

    Java isn't going anywhere for a while. It is a fantastic language for large scale projects simply because its very easy to write maintainable code AND its buzzword compliant. That latter fact alone will keep it afloat years after it is truly dead.

    Don't get me wrong, I love Python and I have really high hopes for it in the coming years, but to declare that "enthusiasts" have left Java, seems silly

  12. time to make fun of them again by nate1138 · · Score: 2, Insightful

    So, will the Slashdot collective make fun of them again when their latest platform du jour fails to live up to its hype?

    They ALWAYS do ;-)

    --
    Where's my lobbyist? Right here.
  13. Not this discussion again. by FnH · · Score: 4, Insightful

    Different problems, different solutions, different languages. As always, pick the right tool for the job.

    ROR having (more) hyper-enthousiasts only means it's newer.

  14. Re:nothing by mumblestheclown · · Score: 2, Funny

    Bottom line: you clearly confuse a university with a trade school.

  15. Has the previous hype of Java and J2EE moved on? by plopez · · Score: 5, Insightful

    Of course it has. IT actually is not too far removed from the fashion industry.

    about 10 years ago:
    Cast off those old tired relational databases! It's all object databases! It new! It's modern! It's chic!

    C++? So passe'! The greatest thing is Java! So trendy, so fresh!

    In the past few years:
    Object databases are not with it! XML databases are the way to go! So modern! So *you*!

    Now:
    It's Ruby on Rails! What are you thinking using that dingy old Java! So... last season! Step into the 21st century!

    etc.

    The only thing I can think of which is more fad driven are diet books and management crazes (E.g. '7 habits of Effective Plan Z 2 Minute TQM EManagement iCommerce Gurus for Dummies (but were afraid to ask)').

    Yet another reason to leave IT.

    --
    putting the 'B' in LGBTQ+
  16. VB for the 21st Century by NutscrapeSucks · · Score: 4, Insightful

    I hope nobody takes this the wrong way, but both Python and Ruby seem to be "VB for the 21st Century" -- as in tools to build quick-and-dirty apps without all that annoying type safety. In other words, they don't really directly compete with Java at all.

    However, I don't think either have even registered at all in the commerical job market, so comparisons to Java are especially silly. As long as the Java programming market is so huge, there will be plenty of hype.

    --
    Whenever I hear the word 'Innovation', I reach for my pistol.
    1. Re:VB for the 21st Century by timeOday · · Score: 3, Informative
      both Python and Ruby seem to be "VB for the 21st Century" -- as in tools to build quick-and-dirty apps without all that annoying type safety. In other words, they don't really directly compete with Java at all.
      I think Ruby (and Python?) *are* typesafe, in that sense that all data is typed and only operations for that type can be used on that data.

      Java is different in that it has static type checking, but it also has dynamic typing constructs like dynamic_cast which can raise runtime type erorrs, just like Ruby. Static type checking is handy to decrease the number of dynamic type errors, but I don't see how it's any more *secure* than dynamic typing.

      All of Ruby, Python, and Java are in a different class than C/C++ which don't guarantee anything about object types.

    2. Re:VB for the 21st Century by NutscrapeSucks · · Score: 2, Informative

      Well, in that case VB is "typesafe" too.

      But that gets to the heart of the issue -- Solutions developers learned the hard way with VB that runtime type-checking significantly hurts the "scalability" of a development project, both in size and # of developers. But now that VB has been written off and forgotten, so have the lessons, and a new generation is about to relearn them with new and cool languages.

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    3. Re:VB for the 21st Century by helifex · · Score: 3, Interesting

      It always seems to me when I see this argument that it's the "but it's not type-safe" people that don't get it.

      I, like lots of other dynamic language proponents, come from a background in type-safe languages but eventually I realized that in most cases static type checking did nothing but slow me down. It doesn't matter if your code is correct at compile time, it only matters if it's correct when it's being used and the reality is that type-safe and dynamic language users verify this the same way, wth automated testing.

      Why then, should I bother jumping through the hoops of type safty?

      I will grant that dynamic languages propobally give less skilled programmers more ways to screw something up but that's there problem not mine ;)

    4. Re:VB for the 21st Century by mikaelhg · · Score: 2, Funny

      Indeed. I'd ask what the Python and Ruby counterparts to, say java.util.concurrent.ConcurrentHashMap or java.util.concurrent.SynchronousQueue are, if I didn't know about the Global Interpreter Lock which quite effectively limits any serious adult use, outside of the sandbox where wild imaginations roam free and little shovels and sand cakes seem to do anything anyone might ever want.

  17. No "serious development" on Python? by Zancarius · · Score: 5, Insightful

    No one I've met doing serious development is building on python, it's just too error prone.

    I don't suppose you've heard of this company before?

    There are dozens of others, too. I'll cite this page as a source, though it is by no means comprehensive.

    --
    He who has no .plan has small finger. ~ Confucius on UNIX
  18. Re:Python hype does not exist by wmshub · · Score: 4, Informative

    That's all a matter of opinion. I'm using python right now in a project, 35,000 lines of python at the moment. I've done Java apps of similar (or larger) size. I find python to have some nice features, but to be pretty badly unsuited for large projects. The lack of information hiding makes it very hard to ensure that fellow programmers use your classes in the way intended (and before anybody says "a good programmer will do what your comments say, so fire the people who just use the code they see" - shut up, it is not possible to hire a team of all super-diligent programmers), small typos in function/variable names aren't caught nearly as quickly, performance is far behind java (which in turn is behind C/C++ of course), etc.

    Back to the topic: based on what I'd heard about how great python was, I'd say python *IS* overhyped. It has its place where it does very well; it's a nice little scripting language. Better than sh or perl in a lot of cases. But it is not even in the same league as java for medium-to-large projects. I'd heard a lot of people call python a better replacement for java, and it just isn't.

  19. Nope. Still here. by Soong · · Score: 2, Interesting

    PHP sucks, it's a lousy language with crappy syntax and barely existant error checking.
    Python is an ok language but its interpreter is slow, and that's coming from a Java guy.

    So, in summary, suck it, I'll keep writing Servlets for Tomcat.

    --
    Start Running Better Polls
  20. It's gone to .NET by Brandybuck · · Score: 5, Insightful

    Has the previous hype of Java and J2EE moved on to Ruby (on Rails) and Python?

    No, the hype has moved on to C# and .NET. The religiosity people have towards Microsoft's semi-proprietary technology is definitely reminiscent of the 1990's Java hype. Especially among management (who think they've finally found the silver bullet).

    I don't blame people for getting excited over .NET, because compared to MFC and traditional COM, it's a wonderful thing. But many people are going overboard on it.

    --
    Don't blame me, I didn't vote for either of them!
  21. I don't need a drumbeat to follow by Matt+Perry · · Score: 4, Insightful
    leaving a significant contingent of Java programmers behind, blinking in the bright lights without the constant drumbeat of boosterism
    As a Java developer I've never felt that I needed hype and "boosterism" to make me feel like I was using the "right language". Java is a tool. Where it best fit, I used it. Where it didn't I used something else. At work we use Java and we're quite happy with it. I think Java will do just fine without the fanboys.
    --
    Slashdot: Failed Car Analogies. Amateur Lawyering. Anecdote Battles.
  22. Nope. I will have another order of java thank you by Billly+Gates · · Score: 5, Informative

    I am really just rediscovering Java now and the API's are very nice.

    Java is stable, mature, and scalable, right out of the package. Python is nice for small projects and scripts but Java's strength is not the language. Its the api's and framework as well as the ton of third party software for it. For large sites Java is still the best way to go. Especially for ecommerce sites for businesses. Php is not there yet and is quite inconsistant with a immaturish feeling. Results vary drastically depending on who wrote what. There are tons of third party java objects and programs that co-exist and integrate with your java based servlets.

    Java seems to have found its niche since multiplatform desktop applets never took off. Not to mention java is pleasant to debug and the tools are nice.

  23. Ruby (on Rails) and Python? by Omega1045 · · Score: 2, Interesting
    Ruby (on Rails) and Python

    I would imagine that .NET is gaining much more of the Java base of applications than Ruby and Python combined. That is no disprespect to those two fine languages. Microsoft wrote .NET to compete with Java, and that is exactly what it is doing. I am working on a project right now where the last version of the app was written in Java, and the new in C#. When interviewing for jobs a couple of years ago, I think I interviewed with at least 5 companies that were doing the same. This is hardly scientific evidence, but I have a much easier time believing that companies would switch from Java to C# than to other languages, if they are going to switch.

    --

    Great ideas often receive violent opposition from mediocre minds. - Albert Einstein

  24. It's the compromise that is so important by 0xABADC0DA · · Score: 4, Insightful

    That's why Java has been so successful. It made a compromise between performance and ease. It made a compromise between compiled and interpreted. It made a compromise between local applications and applets. It made a compromise between easy-of-use and formalism.

    C++, which Bruce used to love, made *no* compromises, except to run C code. It wanted to include anything possible as long as it was fast, and it did except that it was so freakin complicated that even to this day sometimes compilers can't interpret the source correctly. In the same way, Ruby (and Smalltalk) also do not make compromises. They say 'everything is an object' even though that means computations are 20x slower even after decades of optimization. They say 'no type checking' (if it acts like a duck it is) even though it is pretty much a necessity for large or reliable systems.

    Regardless of the level of hype, the real world of programming is about compromises. It's about Java, and C#. Sure there will be plenty of work at the edges for Ruby/Smalltalk and C++/C, but Java-like languages will be the center of programming for decades yet.

  25. time to move on by penguin-collective · · Score: 2, Insightful

    I used to be quite enthusiastic about Java--it had a lot of promise when it came out. But I think Java has stagnated and it's time to move on.

    What are the problems?

    First, Java never turned into an open standard like C or C++. Initially, it looked like there were going to be dozens of independent implementations besides Sun's and Microsoft's, but they have all disappeared. The only way to run a compliant Java platform these days is with Sun's implementation or one of its derivatives (IBM, Oracle, Apple).

    Second, Java is focused on niche markets; most of Java's real-world use seems to be in enterprise apps, a market segment that by itself is not enough to sustain a general purpose programming language (Java may well be the new Cobol).

    Third, related to the above points, Java has failed to evolve sufficiently. Sun has failed to address concerns and needs of the scientific and numerical communities. And many of Sun's changes have been hampered by backwards compatibility with the JVM (e.g., genericity in Java 1.5 is deeply flawed). And Java never acquired a reasonable native code interface, keeping it out of many applications.

    Java has made a valuable contribution by demonstrating to many working programmers that features like garbage collection, reflection, and runtime safety are useful, but those features are essentially 1970's technology. Sun has failed to evolve Java beyond that, and that's why it's time for other languages and other stewards to take over. Fortunately, there are many other excellent languages being created. The Java language itself (but not the platform) will probably be with us for a long time, although probably running in many environments other than the JVM.

    Java had the potential to be a lot more than just a transitional language from C/C++ to modern, safe, reflective languages, but Sun unfortunately has failed to realize that potential fully.

    1. Re:time to move on by 0xABADC0DA · · Score: 2, Insightful

      And List> is a subtype of List> which basically means that you have as many types as there are uses of the generic class. That's the C++ school of thought, which just takes it one step further and generates code for each (most) uses. I could load one class that creates an arbitrary number of new types within the JVM. That's very bad from a practical standpoint.

      So then is Hashtable<B,B> a subtype of Hashtable<B,A> and Hashtable<A,B>, which is multiple inheritance, or a subtype of Hashtable<A,A>, which leads to basically a parallel tree of types over every independent variable in every generic type and recursively since parameters can themselves be generic types? All this basically means that it is extremely hard to do instanceof operations in any reasonable time.

      So are Java's generics really so bad, or are they just one of another good compromise between practicality and formalism that makes Java so great? I say the latter.

  26. Re:A Humble Note by timeOday · · Score: 5, Insightful
    Java is one of the first languages that was well planned and well designed with a theoretical basis in mind.
    I think you have to narrow that claim for it to be true:

    ML has a deep, solid formal foundation with type safety and provable semantics.

    Prolog has a foundation in inductive logic.

    Lisp is based in lambda calculus.

    SQL is rooted in set theory.

    Now, Java may be the first commercially popular marriage of mainstream (C++) syntax which at least has provable type safety. That's a good thing in itself.

  27. With All Due Respect to Bruce E. by lonb · · Score: 4, Insightful
    Most senior engineers I know do not get "hyper-enthusiastic" about anything. The gross majority (pun intended) of hyper-enthusiastic software folk are the softies... ya know, the guys who think VB is the cure-all or who don't have time to learn things in depth. When was the last time you met a true engineer who's primary fault was that they ALWAYS learn things in depth -- analysis paralysis is rarely top-down.

    The bottom line is that the majority of programmers are bad programmers. These move to the easiest fad where the majority of people go. And that's not a horrible thing, it's just a thing most senior engineers don't care much about. Because, and I say this after interviewing tons and tons of developers, real devs dig deep on their own, and do not 'rely' on the work of others. And before I get flamed here, it's not to say they don't use the work of others, it's just that I've seen many seniors spend hours trying to figure out how something works, rather than spend two minutes asking for help.

    p.s. I think Bruce Eckel is awesome -- "Thinking in Java" is rockin'

    --
    "Ain't I a stinka..." - Bugs
    1. Re:With All Due Respect to Bruce E. by Strudelkugel · · Score: 2, Insightful

      Sorta off topic, but can you explain how this

      I've seen many seniors spend hours trying to figure out how something works, rather than spend two minutes asking for help.

      is a good thing?

      What if the two minute explanation includes the fundamental answer to the question? I think a good developer (regardless of years of experience) knows when to ask a question and knows when to improve knowledge in an area. If would be quite unhappy as a manager to pay a developer for hours of research if the answer could have been had in 2 minutes.

      --
      Imagine how much harder physics would be if electrons had feelings! -Feynman, maybe
    2. Re:With All Due Respect to Bruce E. by MojoStan · · Score: 2, Informative
      p.s. I think Bruce Eckel is awesome -- "Thinking in Java" is rockin'

      I think you forgot to mention that "Thinking in Java" is also a free download, no strings attached. The C++ version of this book, "Thinking in C++" (also a free download), helped me "get" OOP.

      --
      TO START
      PRESS ANY KEY

      Where's the 'ANY' key? I see Esk, Kitarl, and Pig-Up...

    3. Re:With All Due Respect to Bruce E. by Q2Serpent · · Score: 2, Insightful

      The issue is short-term versus long-term. If the overall goal is short-term results (an instant answer to a question), then asking may be the best bet. I argue that long-term is better though. If I spend a little more time researching the answer, but it means I have in-depth knowledge of everything involved, I'll be able to solve all sorts of related problems 10 times faster. Which is better now?

  28. Re:What about LAMP by GigsVT · · Score: 2, Insightful

    There's no reason you can't write large maintainable apps in PHP. I maintain a 14,000 line PHP application, and I've never felt like the language had some fundamental flaw that made it hard to maintain.

    Like you said, bad design and bad implementations are the reason for lack of maintainability, the language makes little difference.

    --
    I've had enough abrasive sigs. Kittens are cute and fuzzy.
  29. Another Religious War by slipnslidemaster · · Score: 5, Insightful


    Just another religious war.

    C++ vs. Java
    C vs. C++
    C++ vs. Smalltalk
    Lisp vs. everybody
    Perl vs. PHP
    Javascript vs. VBscript
    VB vs. C++
    Delphi vs. VB

    Haven't we moved past this language is great but this language sucks yet?

    You use the tool that will get the job done the best and easiest. If you tried hard enough, you could probably use the Lotus 123 macro language (showing my age) to write a web app, but would you want too? With someone of these languages, Python, Perl, PHP, Ruby, Java they are similar enough that they are all good enough for the same jobs. Languages are tools that programmers use to write applications. Personally, I like PHP and Ruby but I'm not knocking those that like Phython or Java.

    Why knock that someone likes another language?

    Why another religious war over Ruby vs. Java?

    --


    "What the hell is an aluminum falcon?"
  30. Best slashdot troll all day by Rev.LoveJoy · · Score: 4, Funny
    *** Golf clap ***

    Well done, sir, I salute you.
    -- RLJ

  31. Fundamental computer science by cryfreedomlove · · Score: 2, Insightful

    I still use java every day but I will not miss the hyper-enthusiast. I've interviewed and hired people to work in java for years and I've learned a few things along the way. First, I've never hired someone who has obtained the official Sun Certified Java Developer status. I've learned that these guys have memorized a lot of the java library api's but their judgement is not grounded in the basics of computer science. For example, they have no idea how to choose between using a LinkedList or an ArrayList. The presence of LinkedList is redundant to the superior abilities of an ArrayList in their minds. I've been much better off hiring solid computer science generalists for java jobs whether they currently know java or not.

  32. You all need by greg_barton · · Score: 4, Insightful

    First line: But the majority of programmers, who have been relatively quiet all this time, always knew that Java is a combination of strengths and weaknesses. These folks are not left with any feelings of surprise, but instead they welcome the silence, because it's easier to think and work.

    That's exactly my attitude, too. Couldn't agree more.

    You know what I liked most about the tech bubble bursting? All of the loudmouths, charlatans, and marketriods went elsewhere for a while. I got to do some real work for a change instead of building demos. :)

    So the hypemeisters have a new favorite platform? Great! I can stop reading the slashdot posts from anit-hype nazis who only love to yell at marketriods. A pox on all of your houses, I say.

  33. No, the fashion industry has fads well organized by Animats · · Score: 4, Interesting
    If course it has. IT actually is not too far removed from the fashion industry.

    You thought fashion fads just happened? It's much more organized than that. The "in" colors for US fashion are chosen 22 months in advance, by the little-known Color Association of the United States. Color forecasts are issued to subscribers, and the textile mills, dye manufacturers, and clothiers start to gear up for the coming seasons. Because there are some long manufacturing lead times to produce fabrics in huge volume, the style decisions have to be organized.

    "Pinks and fuchsia were everywhere in spring 2003; CAUS members knew this in spring of 2001."

    Here's the activewear color plan for 2006-2007:

    • Colors are anchored by light and dark neutrals in addition to the ever important white.
    • Red will return as a leading bright, in coral and raspberry shades. - In color combinations, tonalities of one shade look new and dynamic.
    • Cool colors like Apple Green, Indigo and teals are soothing, and especially attractive when matched with brown-influenced neutrals like Wheat and Terracotta. Finishes such as metallicizing add dimension and interest to color and fabrications.

    Color changes in fashion do not happen by accident.

  34. Re:nothing by ltbarcly · · Score: 4, Insightful

    (public) Universities lose money on undergraduate education, period. Tuition does not even cover half the cost of an undergraduate at UMD College Park. The rest of the cost is picked up by the state, so every student they enroll takes away money from other programs that you seem to think your tuition is paying for. Add it up.

    Cost of CS Professor = CP = ~$100,000 (only salary, does not include facilities, offices, electricity, water, equipment, payroll taxes, support staff, campus police, repairs due to soccer hooligans, etc) = ~$50,000 per semester.
    Number of Classes taught by Prof = NCP = ~3 per semester
    Cost of in-state tuition = CIT = ~$4000 per semester
    Classes taken by undergrad = CTU = ~4 per semester, minimum
    Students per class = SPC = Between 10 and 200, say 30 average.

    so we have (CIT * SPC)/CTU = FPC = $30,000 to fund any given class, call this FPC, or Funds per Class

    FPC * NCP = $90,000 in Funds per professor per semester.

    After the Profs salary that leaves $40,000 per professor to run the school.

    Now Consider that any given Prof is likely to have several graduate students, either on fellowship or as TA's. At a good school this will be about a 1-1 ratio, so 1 grad student for every professor. Grad students make about 18,000 per year, plus a tuition waiver. Generally there are actually more grad students than professors, but lets pretend that isn't the case.

    So $40,000 - $18,000 = $22,000.

    That $22,000 per professor left over certainly won't cover even the cost to maintain the facilities at the university, not to mention computer labs, libraries, shuttle bus, payrol taxes, health care, internet connection, etc etc etc.

    Then there are the support staff, secretaries, grounds crew, deans, etc etc.

    Next add on millions per year in renovation and new building construction. To that you can add the cost of all the University staff, such as the people who review applications, the people who work in the bursars office, and so on and on and on.

    Real Bottom Line: The University wants to teach you to be a Computer Scientist, not a code monkey. If you want to learn C++ so badly pick up a book and learn it on your own. Most professors will be very glad to answer your (legitimate) questions on any subject relating to their field. If you can't manage to learn it on your own, then give up and major in PolySci or Communications, because you aren't going to make it in teh real world.

  35. What about multiplatform? by TheTiminator · · Score: 2, Insightful

    Can you give me a language besides Java, that I can use for developing apps for Windows, Mac, Linux, Web, Palm, and tons of smartphones? If so then show me. Otherwise, quit preaching that java is dead and let me get back to doing real work.

    --
    TheTiminator
  36. Re:A Humble Note by Pxtl · · Score: 4, Insightful

    Score 5 interesting? Should be score 5 funny. Java is, from a language design standpoint, a joke. It was designed by cutting chunks off of it's predecessors and not supplying any viable substitutes.

    People always brag about their million-line .net1.1 and Java2 projects, claiming that such million-line monstrocities are proof the language is maintainable. What they don't tell you is that 900 000 of those million lines are spent on simple get/set wrappers, typecasting containers, re-implementing containers missing from the library, and recoding functions for different datatypes, giant class-based switch statements, and various other workarounds to avoid the languages' limitations.

    Java is a nice VM and a solid, mindbogglingly featureful library - but a mediocre language.

  37. CS Departments shouldn't use proprietary languages by Morganth · · Score: 3, Interesting

    I never understood why CS departments started switching to Java. It's a proprietary language, a behemoth library, uses confusing concepts even in early programs (such as the Hello World program requiring a class declaration), and has a compiler/VM to which you have no source code access! (True, nowadays you have gcj to look at, but that's by no means the reference implementation.)

    CS departments, I think, should be using Python for instruction. Not only is Python an easier language to learn, but it's more intuitive and more closely resembles pseudocode you see written for theoretical computer science. For example, in a theory of computation book, you may find a definition of a Turing Machine as a 6-tuple. Well, Python has tuples, so you can just say

    # turing machine M is a 6-tuple
    M = (Q, T, s, b, F, f)

    If you need to pass to a function (the encoding for M), it's easy to do so: just pass M. etc.

    Python also supports other concepts common in pseudocode, like "for i in x" syntax, and associative arrays being a built-in type really helps with dynamic programming problems. Etc.

    Python has an interactive shell where students can try out code to play with the language, a very helpful learning tool. It also has a high degree of transparency and allows introspection, so students can see how something like an object system actually works.

    Also important, the main Python implementation (CPython) is open source, and the development of the language is done in a community-oriented fashion.

    Finally, Python has two extremely high quality books written about it, which are also 100% free. One is called "How to Think Like a Computer Scientist: Learning with Python" and is found here, and the other is called "Dive Into Python" for experienced programmers, and is found here.

    I'm not saying that Python is the ultimate language, but I think everyone has to agree that it's a better choice than Java for programming courses in universities. I know my data structures/Java course was 90% about "how Java works" and 10% about "how to solve programming problems." In a Python course, I think that ratio would be inverted.

  38. Re:A Humble Note by poot_rootbeer · · Score: 2, Funny

    Java is one of the first languages that was well planned and well designed with a theoretical basis in mind.

    Was that before or after the designers decided "well, we better make the syntax pretty similar to C++, so there's a chance people might adopt it"?

  39. Re:Python hype does not exist by hsoft · · Score: 2, Insightful
    The lack of information hiding makes it very hard to ensure that fellow programmers use your classes in the way intended (and before anybody says "a good programmer will do what your comments say, so fire the people who just use the code they see" - shut up, it is not possible to hire a team of all super-diligent programmers)

    Just use some naming conventions. Every sane project does. Personally, I use "_protected_member" and "__private_member". It does the trick. And really, if your python dev can't follow these conventions, they indeed deserve to be fired.

    Python is simply the most graceful language ever (when you follow the Zen of Python). And that counts for something when you want to scale. That being said, the dynamic nature of Python is better tamed (because yes, using it without caution can be fatal.) with TDD.

    And my nearly finished ~10K LOC python project could (and probably will), I think, scale quite nicely, thanks to TDD.

    --
    perception is reality
  40. Good Riddance by jcrowder · · Score: 2, Informative

    I say good riddance to them. Nothing contributes more to this industry-wide attention deficit disorder than these technology evangeslists that have somehow gained celebrity status, then abuse it to sell more books and fill seats in technology symposiums.

    Java works for me. I get paid to do it, and I'm tired of all the noise.

  41. Disingenuous by smcdow · · Score: 5, Insightful
    ROR is nice but let's get real - ruby isn't as fast ...

    Please. For years the Java wonks have been calling performance a strawman argument, usually followed with "get a faster machine".

    Now they're using exactly the same performance argument to argue against what is now one of the premier up-and-coming programming environments? Now the table turns; if ROR or my fave the Python-based TurboGears is too slow -- well then, get a faster machine. That argument worked with Java; now it works with Java's replacements.

    --
    In the course of every project, it will become necessary to shoot the scientists and begin production.
    1. Re:Disingenuous by curunir · · Score: 2, Interesting

      [RoR] is now one premier up-and-coming programming environment...

      Hehe...thanks for the laugh.

      Rails is basically a hobby-ist environment. It's useful for internal projects that don't have to be performant or scale up to more than a couple of concurrent users, but beyond that, it's tough to compare it favorably with Java, .NET or any of a host of other Enterprise solutions. It's not just speed, although Rails *is* considerably slower than Java, even when you navigate the nightmare that is FastCGI. It's also the supporting tools that Java has in abundance that Rails hasn't had the time develop. Things like comprehensive unit testing (and code coverage monitoring) simply aren't possible in a Rails environment.

      Java and J2EE are extemely fast and scalable when you avoid the few nightmare APIs (Swing, EJB, etc). We've built a complex, data-driven site with Spring and a few other nice tools that has scaled incredibly well. By far our biggest performance concerns are database related. The Java tier comprises only about 10% of the total response time (which we've kept sub-500ms even under load, except in extreme cases). Rails just isn't capable of meeting this kind of requirement.

      I don't mean to bag on Rails...I've actually done a couple of internal projects in it that needed to get done fast. And some of the core concepts behind rails (namely convention over configuration) are starting to be considered as possible feature-adds to frameworks like Spring. Ruby is a great little language and I would *love* to be able to use Ruby-like closures in Java. But it just simply isn't an enterprise development environment yet. It may get there with time (it needs a faster Ruby runtime, a native Ruby websever to rid itself of the FastCGI albatross, a good testing environment and some essential third-party stuff that Java has gotten over the years) but it simply just isn't there yet.

      --
      "Don't blame me, I voted for Kodos!"
  42. "20x slower" by wombatmobile · · Score: 2, Interesting

    Jacques Surveyor summarizes Doug Bagley's benchmark opus to shed light on this important comparison:

    "What emerges from examining the Bagley Benchmarks is that programming languages are breaking out into 3 speed tiers for raw computing power:"

    1. Compiled native code languages C, C++, GNAT Ada95, OCaml are the fastest. No surprise there.

    2. Byte code engines such as Java, Mono C# and Python average 7-12 times slower than the first tier...

    3. Interpreters such as Ruby, JavaScript, PHP and Rexx average 100-200 times slower....

  43. Re:A Humble Note by OYAHHH · · Score: 4, Insightful

    > Java is, from a language design standpoint, a joke

    For those of us awake at the beginning of Java, Java was anything but a joke. It was almost like manna sent from heaven.

    The alternatives were some pretty poor bundled C compilers, GCC 2.x.x, and some pretty lame C++ implementations.

    It really gets frustrating waiting five years for someone to actually come up with a C++ compiler that does templates correctly.

    > Java is a nice VM....but a mediocre language

    If you believe this go treat yourself to GCC 2.9.x. Try to do something with it. It truly sucked.

    --
    Caution: Contents under pressure
  44. Re:Python hype does not exist by arevos · · Score: 3, Interesting
    The lack of information hiding makes it very hard to ensure that fellow programmers use your classes in the way intended (and before anybody says "a good programmer will do what your comments say, so fire the people who just use the code they see" - shut up, it is not possible to hire a team of all super-diligent programmers)

    You could look at it the other way round; if there's a mistake in a Java class, you can't easily work around it. And I can think of two recent incidents where this has been the case for me.

    The speed issue is a factor, but I personally can't see why anyone would prefer Java over Python for developing commercial projects. Java's limitations are pretty frustrating sometimes, and there are times when you need to copy-and-paste segments of Java that could be avoided in Python. Java's simplistic and long-winded syntax means you have to do things the long way more often than would be convinient.

  45. No, they're Consultants by Logos · · Score: 2, Insightful

    Writing good software is hard, anyone who tells you different is selling something.

    Most programmers program, trading their time and knowledge for money. The ones who hype have an agenda beyond that -- to sell themselves for financial or egotistical gain. The former are consultants (selling themselves, not the tools and practices they purport to sell for a liviing), the latter are that guy who spends all his time on the mailing list, telling you how great x is, and how stupid you are for uisng y.

    Not that there is anything inherently wrong in this -- in fact, I'd argue that both groups serve a valuable function in our industry -- so long as people understand that the motivation for this has a lot less to do with the languages, techniques and tools directly than for the person who's doing the hyping.

    --
    We are agents of the free
  46. Slashdot Java Article Formula Revealed!!! by Brendonian · · Score: 2, Insightful

    "With the advent of the language total annihilation is on the horizon for Java and all its developers. This new language/platform/stack is so revolutionary that developers are passing out from Ruby/LAMP/Python induced hyperventilation. Its virtually certain no one will write more than three lines of Java the day after Tuesday ever again."

    Its getting seriously funny how many articles there are like this. Slashdot posted this nearly identical article about LAMP a week ago.

    Why is it always language XXXX compared to Java rather than C++, C#, ASP, or even LAMP? I guess it means that for now Java is the king of the hill?

    So which is superior...LAMP or Ruby (on or off the Rails ;)??

    I actually do enjoy these discussions because there are always more efficient ways to accomplish specific goals. Java can take a bit to get started with, but once there it is unparalled in being the Swiss Army knife of software development.

    Without the competitive efforts of the Ruby community and M$ for instance Java probably would get stagnant so I applaud you Mr. Ruby Developer (Rails or otherwise).

    Just give me a call when people start converting complex Java apps to Ruby because its easier to extend and enhance.

  47. I've moved on to python but it sucks in many ways by presidenteloco · · Score: 3, Informative

    Having used Java exclusively since 1995, I've decided to try a webapp in python (turbogears).

    The turbogears python webapp framework is a nice bit of tool integration for rapid development.

    Python itself is a mixed blessing compared to Java.

    On the one hand, it has very nice compact, in-built syntax handling of multiplicity (lists, dictionaries, tuples) as all powerful languages should have and java still lacks.

    It has other simplicities and flexibilities that are nice.

    However, the "pythonic" philosophy of "anything is allowed if you try hard enough
    could be re-termed "moronic". It's just bad design to have multiple ways of
    doing the same low-level thing in a language. Complexity multiplies, as we all
    know.

    Also, Python is not as platform agnostic as Java in issues such as byte-ordering
    in data structures etc, nor is it as secure as java in this respect, because
    java does not specify the representation in memory of its data objects, making them
    more difficult to sniff.

    Java also has other code security features that python to my knowledge lacks, such as class bytecode verification,
    class loader security, etc.

    Finally and importantly, while Java's (and its standard libraries') documentation is only moderately detailed, at least it is consistent and pretty complete.

    The same cannot be said for python documentation, which is sloppy and incomplete, and
    inconsistent in places.

    So is python "progress" from Java? In some O-O and functional programming language respects
    yes, but in platform quality, simplicity, platform-agnosticism, learnability, and security,
    no.

    We still need a new language that combines the best of these breeds.

    --

    Where are we going and why are we in a handbasket?
  48. Python's wretched threading by ovapositor · · Score: 2, Insightful

    I just don't see how Python is going to make it big with such poor threading. This is quickly becoming the era of multi-core, multi-thread systems. I hate to say it but Java does have that covered. Sun's new T1000 and T2000 servers are targeted at this important and growing segment.

    I suppose you could use Jython and get the benefits that way... (it is much slower and way behind C Python).

    Before you flame me, let me just say that I spent a great deal of effort trying to build a threaded telephony server in Python and it was just not possible.

  49. How about JRuby and Jython? by cpu_fusion · · Score: 3, Interesting
    Why not run those dynamic languages and newfangled frameworks on the JVM? There's always JRuby and Jython. Not to mention Groovy, if you prefer the Java syntax.

    Granted, some of the frameworks, like Stackless and Rails, may not run on these tools, YET ... but there's really no reason to start totally from scratch and throw out a nice VM and a nice set of libraries...

  50. Re:No, the fashion industry has fads well organize by maggard · · Score: 2, Informative
    Just to clarify the hyperbole, CAUS is a private consultancy providing color popularity forecasting. They have a panel of folks from different parts of the color industry (clothing, paints, dyes, advertising, etc.) who are all expected to be 'in tune' with current trends. That panel generates a series of reports that interested parties subscribe to to help guide their planning.

    Thus they're no different from Gartner pronouncing "Small Form Factor PC's will be hot next year!" or "This will be the year of Tablet Windows!".

    Nothing Orwellian, no Central Planning, just the same sort of forecasting that happens in every trade & industry.

    I've a number of friends who are subscribers to CAUS's & others reports, they say they're generally pretty on, and are rarely much of a surprise to folks paying attention in their fields. Indeed I was told 2 years ago by a buddy to watch, last year and especially this year look for holiday decorations to have lots of purple and black and raspberry and long skinny legs would be very in; he was right.

    Just like in business practices and coding strategies there is a lot of group-think that keeps everyone sorta in sync with each other (beyond everyone knowing that hemlines HAVE to change up or down every few years). Occasionally there are huge shifts caused by outside influences, fluorescent colors in the 60's due to dyes becoming available, now shimmer surfaces because durable ones have become relatively cheap, but even those are fairly well anticipated.

    If you're interested enough try writing a dozen or so folks you think are very 'in tune' with an area of interest, then next year see how accurate they were. If you can show a decent track record of getting good predictions then hey, I smell $$ subscriber report...

    Oh, and those color predictions: Good to keep in mind when painting the living room, buying furniture or a new car.

    --
    I don't read ACs: If a post isn't worth so much as a nom de plume to its author then I wont bother either.
  51. No.... by cartman · · Score: 4, Insightful
    Java is, from a language design standpoint, a joke.
    Java is widely recognized among language designers as being one of the cleaner mass-deployed languages. It's a well-designed though imperfect language. However it has defects, of course....
    It was designed by cutting chunks off of it's predecessors and not supplying any viable substitutes.
    Those chunks were removed precisely because they were not orthogonal. Those chunks/features were simply overlapping. As such other viable substitutes already existed. Nothing was removed from Java which would prevent any operation.

    Bear in mind that most of the "features" not included from C++ were examples of very poor language design.

    There are some omissions from Java which are unfortunate, like pre-conditions and post-conditions, however most of the omissions were not present in Java's predecessors.

    The only features of C++ which are lacking in Java and which arguably should be included are: operator overloading, and some variant of the const keyword (although not exactly like C++ const, which is hideously overloaded).

    People always brag about their million-line .net1.1 and Java2 projects, claiming that such million-line monstrocities are proof the language is maintainable.
    No serious programmer ever brags about million-line programs, or claims that lines of code somehow correlates positively with maintainability. You're attributing a point of view to "people" which they don't possess. Perhaps some friend of yours made a comment like that, which you now attribute to "people"?
    What they don't tell you is that 900 000 of those million lines are spent on simple get/set wrappers, typecasting containers, re-implementing containers missing from the library, and recoding functions for different datatypes, giant class-based switch statements
    Typecasting containers is not done in Java, since it has generic containers. Re-implementing missing containers is very rare since the Java API has a wide variety of containers already (some even argue the API is too big). Recoding functions for different datatypes is unnecessary since Java has always been polymorphic. And there's nothing wrong with switch statements; they're syntactic sugar for if/else (I assume you're not opposed to if/else).

    I'll grant that the repetitive get/set wrappers are unfortunate and unnecessary. I don't understand why the designers of Java don't just borrow ideas from Eiffel on this matter. I realize the Java designers are opposed to syntactic sugar in general, but in this case it would be justified, since a huge proportion of Java code wasted is on statements like "public Foo getFoo() { return this.foo; }".

    1. Re:No.... by NatteringNabob · · Score: 3, Interesting

      [ I'll grant that the repetitive get/set wrappers are unfortunate and unnecessary. ]

      It's worth mentioning though that the language doesn't force you to implement the accessors. If you don't think the wrappers buy anything, you can just make the members public.

  52. Re:CS Departments shouldn't use proprietary langua by DdJ · · Score: 4, Informative
    I'm not saying that Python is the ultimate language, but I think everyone has to agree that it's a better choice than Java for programming courses in universities.
    Nope. I won't agree to that, for one simple reason -- whitespace has meaning in Python.

    A university cannot make a programming language choice that introduces unnecessary barriers to blind students. Python does so.

    For programming courses in universities, maybe Ruby is a better choice than Java. Maybe Perl even is. But Python is not, because of this one simple feature that completely rules the language out, in my book, regardless of how good the language is otherwise.
  53. What is Java? by drgonzo59 · · Score: 2, Insightful
    Besides coffee, when people say Java they sometimes mean different things:

    For some it is the byte compiled oo language, these people chose it because it looked like C++ but with no explicit pointers and a GC.

    For some it is the platform, in other words they liked the large library of classes that came with it like swing/awt, math, networking.

    Others liked it because of the technologies built on top of it or with it: J2EE (EJBs etc.), Applets, Servelets

    Yet others liked it just because it is the most portable and functional language+platform they had ever seen. Here when a company makes a product written in C/C++ that they have to port to another platform, having a "compile once, run anywhere" language can cut costs of developing/maintenance dramatically

    As far as the Java fanatics and cheerleader of the past years are concerned they probably moved on because that is what they do - they get excited about a new technology for a while, make a lot of noise then move to another new technology. Java is already used extensively in the industry and is not going away soon.

    As far as Ruby and Python. I would have to say that Python is probably the best successor of Java. Why not Ruby? Because, as you say Ruby is a raw young language it doesn't have nearly the libraries that Java and Python has. The only context I ever hear of Ruby is when it is mention in the "Ruby on Rails" title. I know it is a more pure 'cleaner' object oriented language than PYthon, Python is just more practical, and more intuitive as far as I am concerned. I was planning to write my project in Java, but after a week of playing with Python, I was up and running and I believe I finished in 2/3 or 1/2 the time it would have taken me to write it in Java. Look at a simple code comparison in java and one in Python

    : In Java

    public class J {
    public static void main(String[] args){
    System.out.println("text");
    }
    }

    then you have to run: "javac J.java" then "java J"
    Versus the Python version
    print "text"
    then to run just: "python file.py"
    Ruby is pretty close but I dismissed it as not having enough libraries and add-ons. With python for example, I can even run it on a Java platform with JPython and still access the rich java libraries. I can optimize parts of my code in C and either use the syntax extensions of Pyrex, or weave to inline that code into regular python code. There are good GUI bindings (Qt, wxWindows, Gtk and of course the default Tk, for those seeking to punish themselves), there is threading, networking, good regex support. My favorite is the native dictionary (hash table) data type. Just use something like "dic={}" to initialize an emtpy dictionary then "dic[key]=value" to use it, and that is it - no need for new no need to import anything.

    1. Re:What is Java? by Anonymous Coward · · Score: 2, Insightful

      You're example is useless. In fact, it would actually lead some people to believe that the Java code is superior due to the fact that it's more robust, more reusable and runs much faster than Python/Ruby etc.

  54. Re:CS Departments shouldn't use proprietary langua by TromboonDotPy · · Score: 2, Informative

    As a high school computer science teacher, I'm hesitant to say what university CS departments should use.

    But I can talk about what makes good teaching languages. The purpose of a teaching language is to serve BOTH those who will be programmers, and those for whom CS1 is just an interesting (hopefully not harrowing) life experience. Python, with its VERY low floor and VERY high ceiling serves both purposes exceptionally well.

    I use Python with high school freshman and sophomores as a "pre-AP" language, and find it a real joy to use. In fact it has really turned part of my professional life around, and made me renew my commitment to teaching younger kids programming-as-such. I'm having a blast.

    I have used Pascal, AP-ified C++, Scheme, and Java. I've taught structured programming, objects, and functional style.

    I find that teaching state machine programming with Python is providing hooks to start many wonderful conversations about variables, values, expressions, control, objects, garbage collection etc. etc... And, mirabile dictu: the way the math works relates to Algebra in a comprehensible way!

    Most significantly, students are showing inititative and making up little hacks on their own in a way that they haven't since Turbo Pascal. As a constructionist kinda guy, that's the big win for me.

  55. Re:Python hype does not exist by kalirion · · Score: 2, Interesting

    Just use some naming conventions. Every sane project does. Personally, I use "_protected_member" and "__private_member".

    While I don't know Python, and maybe I'd get used to this naming convention after a time, it sounds like it would be very annoying.

  56. Re:A Humble Note by RevAaron · · Score: 2, Insightful

    And then there's Smalltalk, a language that was also well planned, well designed, with both theoretical and practical aspects in mind.

    Smalltalk belongs in that list you site- ML, Prolog, Lisp. Especially notable because Smalltalk is where Java gets most of its features.

    --

    Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  57. API by namekuseijin · · Score: 2, Insightful

    "C included libc, C++ has libc+STL

    If you call those comprehensive libraries, then I have a bridge to sell you. The 1.1 library (which was where Java first started taking off) had such features as ... guaranteed to be on every platform Java was. That's one hell of a feature!"

    That's because Java is not a language with a standard library: it's a development platform, almost an OS, with an associate standard language with which you reference the imense API. It's almost the same as a sh script accessing the POSIX utilities: as long you're in a POSIX environment, you'll be able to use them, using the same standard sh scripting language.

    Only thing annoying is that java is a lousy scripting language to handle what is otherwise a nice programming environment. Thankfully, Jython, ruby and others are coming along just nicely in said environment...

    --
    I don't feel like it...
  58. Re:CS Departments shouldn't use proprietary langua by nnorwitz · · Score: 3, Interesting

    Nope. I won't agree to that, for one simple reason -- whitespace has meaning in Python.

    A university cannot make a programming language choice that introduces unnecessary barriers to blind students. Python does so. Wow, thanks for that bit of news. I guess I will have to tell the blind guy at work he can't use Python.

  59. GWBASIC still rules! by M1FCJ · · Score: 5, Insightful

    Nothing can beat this beauty:
    10 PRINT "TEXT"

    then you would do
    GWBASIC FILE.BAS

    Beats "python file.py" every time...

    Fake arguments involving hello world apps should not be taken as a way of comparing languages.

    1. Re:GWBASIC still rules! by drgonzo59 · · Score: 2, Interesting
      Printing a string to the console (aka the "hello world" problem) is something done often in programming. Most programs out there have to send output to an output device.

      I, like many other people out there, want to see this "hello world" problem solved in any new language that I am learning for illustration purposes and because it gives a feel about the language, for example: what are the delimiters?, are any variables declared?, are there any object being instantiated?, is there a need to import any libraries for I/O? and of course, how many lines would be needed to do a basic task of outputting a string to a console? Most computer books that introduce a new language, if you have seen any, will include these type of programs and for good reasons.

      In this particular case the hello world program doesn't show that Python is the absolute best language out there, but it does show that even to print a string to the console java needs 3 or 4 more time the ammount of code that Python does. The implication is that _in general!_ to solve the same problem in java one would need to type more lines of code. I could have shown you a 2000+ lines little project I wrote and the n an almost similar solution written in Java that took about 3000+ lines, but don't you think that would have been a little too much?

      But since you brought your example in an attempt to show how stupid the "print "text" example is, let's see what one would learn just from it anyway. So we have:

      print "text"
      then "python file.py"
      as opposed to:
      10 PRINT "TEXT"
      then GWBASIC FILE.BAS

      Just from that I can guess that both are probably interpreted, both are high level (no need to allocate memory, or set up interrupts and load anything into registers), both languages are probably not strictly object oriented because there are no objects being created, both have built-in statements for console output, strings are enclosed by double quotes. also no visible end-of-line or end-of-statement characters are there, so whitespace might be used as a delimiter. Now what is different about them: Because one has a line # number I assume that it probably relies heavily on the GOTO statement and the other one doesn't. Now that is quite a bit learned just from 2 "stupid" "hello world" examples...