Slashdot Mirror


The Problem Of Developing

A reader writes "ZDNet News is running an editorial about the choice of programming languages for developers today. The author suggests that developers have been left with little choice because all of the current programming languages are essentially the same."

438 comments

  1. C# by October_30th · · Score: 4, Funny
    C# is not the same! Neither is .NET.

    They both are brilliant innovations by Microsoft that will carry us all into the wonderful future on the information superhighway!

    --
    The owls are not what they seem
    1. Re:C# by mozkill · · Score: 3, Informative

      im not sure that something as "plagiaristic" as C# can be considered "different".

      hmm... as a matter of fact, pluggable ideas for .NET may have originated from early Object Oriented Software, such as Logic Audio... so i wouldn't consider .NET innovative.

      i use .NET Enterprise 2002 every day right now, so i think i can say these things.

      the only conclusion that i have come to (on the subject of the article referenced here) is that .NET basically is so WELL DONE that it is the first time that all the languages are unified to such an extent, that they all seem the same.

      its true... they werent the same to begin with, but one super large company seems to think that merging them all together is a good idea.

      hmmmm....

      --

      -- Betting on the survival of the media industry is a serious risk. I advise investing elsewhere.
    2. Re:C# by markmoss · · Score: 2

      This was satire, right?

    3. Re:C# by GeckoX · · Score: 1

      Wow, blatant sarcasm modded as informative.
      Funny yes, informative just doesn't fit though.

      I'm really starting to think that only those whom have some sort of education - and that can at least understand sarcasm - should be allowed to mod, no wait, even post for that matter!

      All in objection, kill my karma as you would anyways!

      --
      No Comment.
    4. Re:C# by Cyclopedian · · Score: 3, Insightful
      all the languages are unified to such an extent, that they all seem the same.

      But is that a good thing? What if there's a security hole/bug that was prevalent in the CLR? All the languages that use the CLR would be affected.

      Besides, the concept of "one runtime to rule the all" doesn't sound appealing. Different languages for different uses. Java for cross-plaform compatibility, C/C++ for speed, Perl for quick text parsing, etc.

      -Cyc

    5. Re:C# by erasmus_ · · Score: 1

      This sounds like it's perfectly covered in "Lots of early posts that "seem" to be informative/insightful and get mod-ed up when they really shouldn't be..." FAQ answer. NET Enterprise 2002 sounded too good to not be legitimate to someone, it looks like :)

      --
      Please subscribe to see the more insightful version of th
    6. Re:C# by diesel_jackass · · Score: 2, Informative

      speaking of education, since when is "informative" spelled I-N-S-I-G-H-T-F-U-L?

      I was just wondering if they changed that since I graduated from college.

      ;-)

    7. Re:C# by Anonymous Coward · · Score: 1, Interesting
      Ok, I know it was modded funny and everything but why is it funny. because C# is not the same as .NET. .NET is not even a language. It uses C#, Or C++, Or Java, Or Pascal, any language that supports the .NET Global API and Datatype.

      Its just not funny.

      Its a technology, an innovation, a new way of thinking, ok and its a MS library or VERY useful and powerful tools.

      Prediction: MS is going to start giving their OS away in no more then 5 years (Remember Don said it first!)

      Peace Out

      (SIT,OWGO,02,DER,CW,79,42,,38/81/481/90/12)

    8. Re:C# by Anonymous Coward · · Score: 0

      The languages are the same, because deep down all computing machines are the same, so it's all Algol to me...

    9. Re:C# by GeckoX · · Score: 0, Troll

      Hmm, maybe when I first posted the original post had been modded "informative".

      And just maybe by the time you got here it had changed to "insightful".

      And just maybe it's currently sitting at "Funny".

      Gee, funny how that happens ehh?
      BTW: This has been a _sarcastic_ comment for those whom can't figure that out.

      --
      No Comment.
    10. Re:C# by Anonymous Coward · · Score: 0

      You are incorrect in the business application development world. J2EE is one of the platforms of choice for the development of e-commerce and e-business applications. App Servers such as Weblogic and JBoss have great resource pooling mechanisms that make J2EE oriented applications extremely fast and scalable. Development efficency is also greatly increased with APIs such JNDI, JAAS, and JMS. So, speaking as someone who designs and develops extremely large scale, high performance business systems, I pick J2EE long before C++. As for the market position, go look at Gartner or similiar industry analyst and you will get your silly statement rebuffed quite handily.

    11. Re:C# by Computer! · · Score: 3, Interesting

      What if there's a security hole/bug that was prevalent in the CLR? All the languages that use the CLR would be affected.

      Yeah, but then, when that bug is fixed, all the... oh, wait. (Light goes on above head)

      --
      If you fall off a building, go real limp, because maybe you'll look like a dummy and people will be like hey, free dummy
    12. Re:C# by Pr0xY · · Score: 1

      tru about the security thing, but then they could also fix all the languages that use the CLR while changing thigns in only one spot...

    13. Re:C# by Mirus+Nex · · Score: 1
      Prediction: MS is going to start giving their OS away in no more then 5 years (Remember Don said it first!)

      Yep, on the same day they say their OS is free they start charging per use. Here, have a copy of Windows XP++2007 if you actually want to use it you'll have to pay us...

    14. Re:C# by Anonymous Coward · · Score: 0

      YHBT

    15. Re:C# by mestar · · Score: 3, Insightful
      You guys are missing the most important point: there is only one API to program against.


      Think about how much time you need to learn another language: 1-2 hours (or less) to learn the language, days or months to learn the API that language uses/has.


      .NET unifies C run time library (an API) with VB global methods, also VBS Collection classes, or ASP's Server object. Now, every language has access to everything.


      Your language has 'for's', while's, variables, calls, exceptions, math. Perhaps 20-30 keywords. Your Win32 or Posix or .NET has 10.000 calls? 5.000 classes? So we are talking about 30 against 10.000. There are no language wars (and never were), only API wars.


      Languages are trivial, APIs are hard!

      (Please mod this down)

    16. Re:C# by jovlinger · · Score: 4, Insightful

      When you choose a language it shouldn't be for the operational properties of a language. How many people do you think need the speed benefits of C enough to pay the price for using it? About one in a gazzilion.

      The wise programmer chooses a language for it's denotational properties. Such as: how straight forward is it to solve my problem in this language? Does the language provide me with early predicitions as to where the problems with my code are going to be? Does the language have constructs that directly capture the ideas you want to work with?

      So you see, having several languages implemented for one back end, so that I can write my lexing routines in PERL, write my AST construction routines in Java, and my compiler in Scheme, ammounts basically to choosing the right tool for the job.

      How isn't this appealing?

    17. Re:C# by Cato+the+Elder · · Score: 2

      So you see, having several languages implemented for one back end, so that I can write my lexing routines in PERL, write my AST construction routines in Java, and my compiler in Scheme, ammounts basically to choosing the right tool for the job.


      How isn't this appealing?


      It's quite appealing, and the article doesn't make any sense when it talks about runtimes. Languages have been able to compile/interpret to common runtimes for decades. How do you think PERL can call out to C functions? C has a runtime--no stack, no heap, no game. What's "new" about the CLR is that it is a cross-platform and cross-language runtime, the first to be widely promoted as such. You can critize its design as a runtime, but it's hard to argue that it is a useful idea.

    18. Re:C# by Anonymous Coward · · Score: 0

      What compiler?

    19. Re:C# by joto · · Score: 2
      Yup, that is exactly the point. Languages running on CLR are trivially similar. However, elsewhere in the world, there are languages that is very different from that. Eiffel uses multiple inheritance in interesting ways. Eiffel# does not. C++ has STL. It isn't well supported by the CLR. As far as I know, there are no dynamically typed languages targetting the CLR yet (such as Common Lisp, Smalltalk, Prolog, etc). Very different languages, such as Haskell, APL-derivatives, etc, really need a different runtime. Module systems other than those similar to C#'s module system (e.g. Standard ML) will never be well supported. The list goes on.

      And certainly, not every useful computer language has for- or while-loops (pure functional lanuages doesn't have that). Or variables (forth-dialects doesn't have that (well-depending on viewpoint obviously, they do have global variables)). Most old languages such as C, doesn't have exceptions. On the other hand, most languages have something similar to procedure calls, but they vary widely, some are based on an idealized model of a machine, some on unification, some on term-rewriting, and they can often have very different semantics.

      Conclusion: Computer languages are not similar. Most mainstream languages are, and those running on the CLR even more so. Don't forget what you loose, but don't forget the advantages either...

    20. Re:C# by syn3rg · · Score: 0

      OoooOooo-Oooo-Eeee-Eeee-Eeee

      --
      The contents of this message have been doubly encrypted by ROT13
    21. Re:C# by Hector73 · · Score: 1

      How many people do you think need the speed benefits of C enough to pay the price for using it? About one in a gazzilion.

      Umm... lots of people. I've seen (and written) lots of C code out there and it not really that hard to maintain. Sometimes, its worth the speed benefits. Sometimes, it isn't.

      The wise programmer may choose a language for its denotational properties, but the successful programmer chooses a language for its operational AND denotational properties.

    22. Re:C# by Anonymous Coward · · Score: 0

      So you see, having several languages implemented for one back end, so that I can write my lexing routines in PERL, write my AST construction routines in Java, and my compiler in Scheme, ammounts basically to choosing the right tool for the job.

      How isn't this appealing?


      But this isn't the way most people program. Most people don't change the language they program in very freely. MS knows this and in their marketing literature they claim that CoBOL programmers can now write CoBOL along with your Windows C++ programmers, all on the same project all getting the most out of their different skills.

      I don't believe this for one minute. I have worked on a number of mixed language applications (all WebApps are mixed language because: backend language, HTML and JavaScript). Developers become more used to one of the languages and start using that more, usually to the detriment of the project. Look at it like this, VB has for some time plugged into VC++, how many CB programmers know and use VC++? Not many.

    23. Re:C# by Vindicated · · Score: 1

      *Vindicated puts the C bigot cap on. It's a nice idea and very elegant, but so is C++ on paper. Go look at how KDE bitches about dynamic binding in GCC being so slow. You have to pay the price for such flexibility. C and ASM will get you through most anything. C for portability, ASM for speed. I'm that one out of 1 gazzilion :).

    24. Re:C# by RodeoBoy · · Score: 1

      I do web development and use VB, VC++ and JS all at the sametime and I don't have a particular preference. In fact I just finished a project where I designed and wrote COM objects in both VB and VC++ that interoperate with eachother. I use VB because it is quick and easy and clients prefer having code that can be supported by their VB trained staff. Of course there are just somethings that only VC++ will do. Another web site I designed used VBScript in some ASP pages and Perl in others (Perl kicks but on VB strings and reg exp). I know of other developers in our company that can switch between VB and VC++ or even Java and VB, though it is not always easy to make a quick switch. Though you may be right and we are the exception not the rule, but personally I don't see why that is the case.
      On the other hand I have been spending a lot of time bug fixing stored procs written by VB programmers for an internal app that is part of the project. The programmers were required to write the sp's for their own VB code. I think people get a little lazy and fall into the trap of being on one code monkey, but I like change, learning and being flexable.

  2. market domination by edwarddes · · Score: 1

    where do they get the idea that c# and J2EE dominate the market now? i still see a lot of development with c or c++ for speed reasons. Java may be a great language in theory, but it still has issues with speed over a native language.

    1. Re:market domination by abigor · · Score: 2, Insightful

      He's primarily referring to the app server (aka web services) market. The implicit assumption is that client machines (your desktop) will do most of their work via web services. These will be implemented on .Net (soon) or J2EE (now). He's not talking about client-side app development so much.

      Keep in mind that Java, for example, is very fast as a server-side language.

      The real question is: is his assumption correct? Will web services take off to such an extent that the majority of new development is done in these languages?

    2. Re:market domination by Zurk · · Score: 1

      hmm...i dont agree. Java has speed problems with apps but i think java is going to go the way of COBOL. C# will dominate the market eventually. why? simple - micro$oft is going to start writing apps in C#. they're going to start writing web services in C#. they've already started hyping C# from the rooftops. all desktops will eventually run C# CLR's once games are available which work only with the CLR installed (i.e. M$ pushes the CLR into DirectX 9.0 or later). C++ will be phased out just like C is phased out on win32 (do you really think the majority develop with C on win32 right now? its either VB or C++).
      note that all the other languages will continue to be used but the vast majority is going to switch to C#. VB.NET and other languages which end with .NET are just skinnable C# langauges so they're one and the same anyway..the syntax is hardly different.

    3. Re:market domination by Morphine007 · · Score: 1, Interesting

      "i still see a lot of development with c or c++ for speed reasons. Java may be a great language in theory, but it still has issues with speed over a native language."

      It's not just speed; I do pretty much ALL of my coding in C (including building a feed forward neural net if you can believe that) and I LIKE it for the same reasons I like Linux; the system/language proudly hands me more than enough rope to hang myself and doesn't bother to complain if I do. In the IT industry hanging rope = flexibility... I LIKE the fact that I can do weird sh!t with the system and I like that I could type rm -rf *.h if I wanted to and the system would follow my command.... another reason is this email I once got:

      The March of Progress

      C
      printf("%10.2f", x);

      C++
      cout << setw(10) < < setprecision(2) << showpoint << x;

      Java
      java.text.NumberFormat formatter = java.text.NumberFormat.getNumberInstance();
      forma tter.setMinimumFractionDigits(2);
      formatter.setMa ximumFractionDigits(2);
      String s = formatter.format(x);
      for (int i = s.length(); i < 10; i++)
      System.out.print(' ');
      System.out.print(s);

    4. Re:market domination by GreyPoopon · · Score: 1
      i think java is going to go the way of COBOL

      Oh good. I guess that means it'll pretty much be around forever.

      --

      GreyPoopon
      --
      Why is it I can write insightful comments but can't come up with a clever signature?

    5. Re:market domination by Mirus+Nex · · Score: 1

      JDK 1.4 has sped up Java considerably. Sure, you're not going to write the next Everquest client with it, but business tasks are quite efficient. Look at all the businesses that still run fine with COBOL, BBX, etc...

      C# will only take over the Windows desktop, and at the rate MS is going that'll be much smaller in a few years. MS hates everything non-Windows so I doubt they'll put anything out on other platforms. Look at NT, only Intel now, used to run on Sparc and Digital. IE only runs on Windows and Mac OS/OS X.

      I don't do Windows...

    6. Re:market domination by Tattva · · Score: 2
      Languages are around forever because they are easy to support when they're dead, i.e. they stop evolving in a significant way.

      Live languages change, ideally the best parts stay and the worst parts are deprecated.

      Old languages stick around, and occasional releases are defecated. You can support crap as long as you don't play with it, and if you put crap in a seive don't expect to be left with the best parts.

      --
      personal attacks hurt, especially when deserved
    7. Re:market domination by EvilJohn · · Score: 2

      Actually, writing an EverQuest client (first revision) is something Java could do quite nicely. The demos Java3d I saw at QuakeCon (and what you'll be able to see at GDC) are pretty convincing.

      Everquest's client was really that complicated, and Java3d is more then capable of rendering those types of scenes.

      --

      Less Talk, More Beer.
    8. Re:market domination by Anonymous Coward · · Score: 0

      FWIW, I don't know if he's the author, but I first saw that "March of Progress" bit at Cay Horstmann's site.

    9. Re:market domination by Mindbridge · · Score: 1
      This is a bit off-topic, but I am afraid your Java is somewhat limited. Here is how you do the above in a more direct way:

      System.out.print(new DecimalFormat("#######.##").format(x));

      You can also do things that you cannot do with printf:

      System.out.print(new DecimalFormat("####000.0#").format(x));

      What's more important, however, is that the printf family of functions have no support for internationalization (e.g. different order of printing the arguments and locale support), which is a must for any contemporary app development. That essentially makes them useless for generating strings that are to be seen by the users.

      Here is an example of something typical that you can do with the standard Java library:

      MessageFormat.format("At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.", arguments)

      output: At 12:30 PM on Jul 3, 2053, there was a disturbance in the Force on planet 7.

      Java may be a bit clumsier than C, but it addresses the application and enterprise developer concerns much better (especially with respect to stability and maintainablity). This is just a simple example, but it demonstrates the point.

    10. Re:market domination by Anonymous Coward · · Score: 0

      This should be a choice of what you need to develop. Naturally native code is faster than Java, nevertheless its often the speed of you writing the code that matters, not how fast it runs...

    11. Re:market domination by Anonymous Coward · · Score: 0

      Unless, of course, you were looking for a diamond ring you swallowed in the cake you ate. ^_^

  3. What is he smoking by rootmonkey · · Score: 5, Interesting

    The author obviously is not in the right industry if he thinks developers only will program in VB.NET, C# or Java. I suppose I shouldn't show up to work on monday for the job I got programming C, because once the word gets out I'm *sure* that C will only be found in a museum.

    --

    Yes but every time I try to see it your way, I get a headache.
    1. Re:What is he smoking by SirNAOF · · Score: 1

      That's true...C and C++ aren't going away for a long time, and definitly not without a fight.

      --
      Jeremy Baumgartner
    2. Re:What is he smoking by dildofire · · Score: 3, Informative

      large software companies want everyone to believe that C/C++ are completely obselete, to push new users towards their newer technologies. and once you've committed to using those technologies, you'll of course need to buy a copy of ms visual studio or something similar to take full advantage of it. no one makes money if developers use C/C++, vi, gcc, and gdb.

      that being said, i don't think C/C++ is always the right way to go. it all comes down to picking the right tool for the job.

    3. Re:What is he smoking by Milican · · Score: 5, Insightful

      I know you weren't dogging C/C++, but I would like to take this opportunity to point out that for embedded development on a microcontroller, or development on any non-PC platform C is a God send. Programming for PCs is only a small fraction of the whole pie.. by small I mean out of "100 million or so PCs shipped each year; (there are) 6 billion processors that go into embedded systems " - Jack Ganssle Just check your Palm, cellphone, microwave, car, sound card, video card, stereo, fridge, ac unit, gas pump, coke machine, etc.. if you don't believe me ;)

      The embedded market is enormous and C/C++ aren't going away anytime soon.

      JOhn

    4. Re:What is he smoking by joib · · Score: 4, Funny

      [oldest programming language pissing match]
      You program in C for a living? Well, I recently landed a job involving fortran programming. :)
      [/]
      Conclusion: ZDNet author is a dimwit if he believes every programmer in the world does nothing but shopping carts.
      Or should I do shopping carts with "fortran.NET"? Bwahahaha...

    5. Re:What is he smoking by RevAaron · · Score: 2

      Actually, a while back I read somewhere about someone using COBOL to do shoppingcart/ASP stuff, as a part of some .NET/ASP.NET intro/demo. So yeah, you probably will be able to do Fortran.NET ASP crap, as scary as that is.

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
    6. Re:What is he smoking by pyrrho · · Score: 1

      I think it's rolled up socks (that he's smoking). Frankly, he just classed himself, that's all.

      "Today's mechanical engineers will use one of three development systems, MindStorm, Erector Set, or Tinker Toys..."

      --

      -pyrrho

    7. Re:What is he smoking by vanguard · · Score: 4, Interesting

      I've given this a fair amount of thought and this is what I came up with:

      When it's possible (right staff, right project, etc.) IT departments try to avoid C/C++.

      Does that mean C is going away? No. It's also unfair to compare it to COBOL. When performance is important C/C++ is the only choice. However, if you have a chance, interpreted languages really do help with code quality and development time.

      If you're coding for an IT department and you are doing it in C it's *probably* because they have no other choice.

      --
      That which does not kill me only makes me whinier
    8. Re:What is he smoking by Neumann · · Score: 1

      Thats kind of funny because I do believe that Yahoo store was originally written in Lisp. Here is the book that documents it.

    9. Re:What is he smoking by octal_flare · · Score: 1

      Or program for the Gameboy Color where I dream of being able to use 'C'. We're still stuck using Z-80 assembly...

    10. Re:What is he smoking by RevAaron · · Score: 3, Interesting

      I thought Yahoo still used CLISP? Just curious, how is it funny that Yahoo would use a proven, fast, feature-filled, dynamic, and programmer-time efficient language to write their store code?

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
    11. Re:What is he smoking by egeorge · · Score: 1
      Programming for PCs is only a small fraction of the whole pie.. by small I mean out of "100 million or so PCs shipped each year; (there are) 6 billion processors that go into embedded systems " - Jack Ganssle [embedded.com] Just check your Palm, cellphone, microwave, car, sound card, video card, stereo, fridge, ac unit, gas pump, coke machine, etc.. if you don't believe me ;)

      While the number of devices running embedded systems is certainly far greater than the number of apps written for PCs (or other "multipurpose computers"), I am sure the amount of code is not proportional to this relationship. It would be interesting to see some hard statistics about lines of code written (or programmer hours if you prefer) for embedded systems vs app programming.

      The embedded market is enormous and C/C++ aren't going away anytime soon.

      C was designed as a multipurpose, flexible software->hardware interface language. As far as I can see, it has yet to be improved upon for that purpose. Any software that requires direct hardware manipulation (embedded systems, OSes, etc) is written primarily in C because it is the best tool for the job. I am not even a C programmer and I can see this.

    12. Re:What is he smoking by Anonymous Coward · · Score: 0

      Naah... FORTH is a godsend for embedded development. I can't understand people who use things like VB and Java for "embedded" systems when FORTH is easier (trivial to learn), faster, and fits in a tiny fraction of the space.

    13. Re:What is he smoking by aled · · Score: 1

      There is lot of interest on embedded Java (in phones, smartcards). C isn't the only game in town.

      --

      "I think this line is mostly filler"
    14. Re:What is he smoking by zby · · Score: 1

      There might be 6 billion embeded processors but
      it does not mean 60 times more programes for
      them than for PC. So the market is actually
      not that big.

    15. Re:What is he smoking by Anonymous Coward · · Score: 0

      There was a slashdot article about Yahoo Stores being in LISP. The argument was "LISP was so great that we had to keep it a secret until after the dotcom boom."

      Thus ensuring that LISP will never again be used for another web project. If only Sun had taken the "too good to tell anyone" route with Java...

      Think they've since rewritten in C++.

    16. Re:What is he smoking by SEGV · · Score: 1

      What makes code quality any higher with interpreted languages? I usually find the opposite, if anything.

      --

      --
      Marc A. Lepage
      Software Developer
    17. Re:What is he smoking by vanguard · · Score: 2

      When I wrote that I was thinking of all the memory related errors that are handled for you. In IT departments you get a developer base with a wide range of skill sets (read, some of us suck) so having things like automated garbage collection and memory allocation are nice to have.

      --
      That which does not kill me only makes me whinier
    18. Re:What is he smoking by Anonymous Coward · · Score: 0

      No, they haven't. They're still on common lisp, which usually compiles to faster code than C++ anyway.

  4. All developers aren't web developers by Jbrecken · · Score: 5, Insightful

    There may be only two choices for making internet apps, but a lot of development is still going on that uses neither .Net nor J2EE, and will continue to do so for the forseeable future.

    He needed to make it clear that his scope was only web-based development.

    1. Re:All developers aren't web developers by twocents · · Score: 5, Insightful

      and if he was talking about only web based development, then does that not include all of the web scripting languages, such as PHP, Python, Perl, etc, etc, etc.

      Oh why even bother commenting...these stupid little rimshots from ZD are nothing more than attempts to capture the glory days of pitting WP against Word against Ami Pro.

    2. Re:All developers aren't web developers by fizz-beyond · · Score: 1

      All of the languages you list have many more uses then just web stuff. but on the other hand, I'm sure if i felt creative enough I could write a shell script that would spit out html.

      But I do agree with you about ZDnet, they lost my faith along time ago.

      --
      Blink
    3. Re:All developers aren't web developers by Anonymous Coward · · Score: 0

      fucking Amen man. their articles are so fucking ridiculous.

    4. Re:All developers aren't web developers by twocents · · Score: 1

      I totally agree, and I should have said as such because I have used Perl a ton for non web stuff, but I honestly don't know PHP and Python outside of web publishing, but I'm sure I'll run into it sooner or later.

    5. Re:All developers aren't web developers by Anonymous Coward · · Score: 0

      You don't need to be creative at all:

      #

      echo "Content-type: text/html"
      echo
      echo "System Uptime"
      echo ""
      echo "`uptime`"
      echo ""
      echo ""

    6. Re:All developers aren't web developers by kubrick · · Score: 2

      and if he was talking about only web based development, then does that not include all of the web scripting languages, such as PHP, Python, Perl, etc, etc, etc.

      And even if we limit that further still to web apps containing some client-side components, what about Flash, SVG or JavaScript & DOM?

      At least plugin interfaces are properly sandboxed (like Java). I'm unsure whether this awareness of security has sunk in at MS yet (although they're reaching the end of the "month off to think about it", so everything should be *much* better now :).

      --
      deus does not exist but if he does
  5. Truth of article depends on who you know by syzxys · · Score: 5, Insightful

    I think this article is basically ZDNet trolling again. After all, the more "controversial" the article, the more hits they get = more ad revenue.

    So today's developers will use one of three languages: Java, C# or VB.Net.

    Strange, a lot of projects I'm familiar with don't use any one of those languages. I think it depends who you talk to.

    I think the author believes in two common fallacies:

    1. C++ has some plus signs after it, so it must be a replacement for C
    2. All problems in systems programming are trivial and have already been solved, and will never need solved again, so there's no need for really low-level languages.

    I'm sure the argument is a lot more valid for big corporations, but they've always been bastions of VB and "4GL's" (even when 4GL was just a marketing term). Basically, /. has been trolled again.

    ---
    Windows 2000/XP stable? safe? secure? 5 lines of simple C code say otherwise!
    1. Re:Truth of article depends on who you know by euphline · · Score: 4, Insightful
      Strange, a lot [apache.org] of projects [kernel.org] I'm [tigris.org] familiar [freebsd.org] with [sourceforge.net] don't use any one of those languages. I think it depends who you talk to.

      Exactly!

      The author is sensationalizing... and forgetting the multitude of languages out there being used for applications. I think if people [people != geeks, people == lusers like this guy] were to really know what the apps they use were made from, they'd *freak*. I'm thinking of the apps I deal with on a daily basis... and the number of languages is tremendous!

      The diversity in languages, runtimes, and platforms is a good thing. It allows us to use the best tool for the job (and there usually is one) and to accomplish our tasks quickly and painlessly.

      -jbn
      (Former VB addict. Now healed and addicted to perl.)

    2. Re:Truth of article depends on who you know by Ramshackle · · Score: 1
      Hmm, I don't know many people who work on apache or freebsd for a living, do you? He's talking about people who develop FOR MONEY.


      It's not a troll at all. In the corporate world, those are the main standards. Sorry guys, Perl is not where the money is at.

    3. Re:Truth of article depends on who you know by syzxys · · Score: 3, Informative

      Sorry guys, Perl is not where the money is at.

      Strange, my wallet disagrees with you.

      It's true a lot of in-house corporate software uses VB, etc., but a lot of other software (including software produced by major corporations and sold for a LOT of money, e.g. engineering software) doesn't. Like I said originally, it depends on what part of the software development world you look at.

      ---
      Windows 2000/XP stable? safe? secure? 5 lines of simple C code say otherwise!
    4. Re:Truth of article depends on who you know by DLPierson · · Score: 1
      1. C++ has some plus signs after it, so it must be a replacement for C

      It's time to bring up Guy Steele's parsing of C++ again:

      Take C, "improve" it, throw it away and use C.

    5. Re:Truth of article depends on who you know by geekd · · Score: 1

      Well, I work for a top 50 corporation, and I make plenty of money programming in Perl.

    6. Re:Truth of article depends on who you know by bentini · · Score: 1

      Do you know where he said this? I heard him say it, but thought it wasn't his own.

    7. Re:Truth of article depends on who you know by nexthec · · Score: 1

      hmmm.....I Micron disagrees with you.....they use perl in their SOI modeling and design group, heavely. Not to mention other departments.

    8. Re:Truth of article depends on who you know by Arandir · · Score: 2

      I'm thinking of the apps I deal with on a daily basis... and the number of languages is tremendous!

      No kidding. Although most of my software is written in C and C++, a significant portion is not. Most of the control and infrastructure layer for my OS is written in bourne shell and Perl. I update my system using software written in Modula 3 and Ruby. My text editor uses Lisp. Python abounds. I have software written in Objective C, Pascal and even assembler. Components of some software use Scheme.

      On the other hand, NOTHING in my system is written in C#, VB.Net or even Java.

      --
      A Government Is a Body of People, Usually Notably Ungoverned
    9. Re:Truth of article depends on who you know by Ramshackle · · Score: 1

      The fact that you can make money doing Perl is beside the point. The point is that there is a helluva lot more cash going into Java development than Perl development. I challenge you to find me a statistic that says otherwise.

      And sure, there's money to be made doing Perl - it's relegated to niche status as far as most companies are concerned, and there's not as many proficient Perl programmers. Simple supply and demand.

    10. Re:Truth of article depends on who you know by SamBeckett · · Score: 1

      sounds like yer using freebsd and cvsup to me

    11. Re:Truth of article depends on who you know by ianezz · · Score: 2
      Strange, my wallet disagrees with you.

      And even if your wallet is not enough evidence: Perl is Instrumental in Data Warehouse for Italy's Top Bank.

    12. Re:Truth of article depends on who you know by Henry_Doors · · Score: 0

      I don't think its a troll, just a corporate point of view.

      Where I work we currently use the Centurasoft toolset, good but not widely used. If and when we decided to move to another language we will look at .Net vs Java not C, C++ or anything else.

      Legacy stuff isn't going to dissapear there is still lots of COBOL around (we only got rid of the last of ours a couple of years ago). However for new projects - which will be web based - corporates will be making a choice between .Net & Java.

      --
      "I deny nothing, but doubt everything." Lord Byron
    13. Re:Truth of article depends on who you know by hoggy · · Score: 2

      Strange, a lot of projects I'm familiar with don't use any one of those languages. I think it depends who you talk to.

      You're talking about a relatively few open source projects. You have to remember that the vast majority of code (like 90% of all software written) is written entirely in-house by IT departments of organisations. This code never sees the light of day and you are unlikely to know anything about it unless you work for one of those organisations.

      As someone else pointed out, IT departments are slowly shifting to the use of interpreted rapid development languages. Computers are fast enough and no-one wants the headache of maintaining large custom bodies of C/C++. [And before someone marks me as a troll, C and C++ are more difficult to maintain when you have limited IT resources. You need to be a very good programmer to write maintainable C and C++ code, and good programmers are few and expensive.]

      The last large bank I worked at, pretty much every single new development project was being done in Java. That included web projects, desktop applications, back-end analytical servers, etc. For major places now the platform of choice is not a particular machine architecture, but a particular J2EE container. Microsoft realise this, that's why their throwing weight behind .NET.

      Follow the money: Microsoft sell their development tools into in-house IT departments. At the aforementioned place I was working we were throwing out Visual C++ applications by the bucketload and redeveloping in Java. That means no new VC++ licenses and no need for MS applications servers. Microsoft wouldn't be doing it if they weren't very aware of which way the market is going.

    14. Re:Truth of article depends on who you know by Anonymous Coward · · Score: 0

      The guy is obviously preaching to corporate developers who basically chose from VB, NET, or Java. (although he should have mentioned Perl/PHP because that gets used sometimes).

      His point is a For Dummies rehash of the arguments against NET's supposed advantage by hosting multiple languages.

      If anything your post just shows that you are way outside of the mainstream of corporate computing. Take that as a good thing but there's no need to rain on his parade. None of the cubical drones are ever going to start using Modula3, Ruby, or Lisp.

    15. Re:Truth of article depends on who you know by td · · Score: 2

      The first time I heard this was in the Unix Room at Bell Labs, Murray Hill, on January 2, 1984 (or some day later that week), right after Bjarne walked in and said that he'd just decided to call his new language C++. I don't remember who said it, but I am the one that pointed out the connection to Newspeak, in which ++ is used to mark superlatives. Bjarne certainly remembers this, as he has retailed it in at least one of his books.

      --
      -Tom Duff
  6. Interesting... but far too short and simple by msuzio · · Score: 5, Insightful

    The short editorial is good in that it points out what I suspect most developers already knew (but the marketers would never admit) -- there basically are very few choices offered in terms of "how to do it". As a matter of fact, I know in my part of the country, 95% of Internet application work being advertised is one of two things: ASP/DCOM apps, or J2EE apps (using IBM Websphere, sometimes WebLogic).
    That's it. No Web job I looked at in my two months of searching for a job recently specified anything else. No Perl. No C++ unless the job also specified ASP and DCOM. Certainly no Zope, Tcl, etc.
    Is this because no one uses any other technologies? No, of course not... but those other approachs lack a strong marketing organization behind them... Programming is as prone to the influence of hype as anything else.

    That is what I think is important to assert; that other choices do exist, and it should be our job as supposed experts to investigate all the options. Diversity is a healthy attribute to have... Let's hope the "hyped" languages never succeed in marginalizing all other approaches.

    1. Re:Interesting... but far too short and simple by WasterDave · · Score: 2

      Bizaarely I am starting to see adverts for PHP developers. There is C++ too, although it was never suited to web development.

      and it should be our job as supposed experts to investigate all the options

      Sure, but you need people to maintain the code afterwards, and that basically means make CS graduates want to code in it. The other approaches *have* been marginalized :(

      Dave

      --
      I write a blog now, you should be afraid.
    2. Re:Interesting... but far too short and simple by Anonymous Coward · · Score: 0

      Oh diversity! How I miss thee. I used to work in IT at a company (Way back in High-School) that, for all intents and purposes, let the upper managent make all the decisions. My boss was a real weakling. They would see something on TV and want it, and they woudl get it. I laugh wheneve I see though CDW commercials.

    3. Re:Interesting... but far too short and simple by ethereal · · Score: 1

      Um, Internet application work != the entire realm of software development. All you Web guys just think you're the be-all and end-all of the industry because you do stuff that's flashy. Meanwhile, on the 90% of the industry iceberg that's below the water, life with C goes on.

      --

      Your right to not believe: Americans United for Separation of Church and

    4. Re:Interesting... but far too short and simple by Anonymous Coward · · Score: 0

      > iversity to the people who run businesses is not a good thing.

      Agree with this, but not for any reason you cite.

      > Diversity is having to pay $120k to replace a programming position because some guy back in '83 decided to use the odd-ball programming language.

      ...for the project that needed to be "done yesterday" and is still at the core of the business? I'm guessing $120k would be an f'ing bargen (considering what the ceo is pulling down).

      > Diversity is having a network with 17 different operating systems to manage and maintain.

      'cause not a single one of them can handle the 17 different things needed to be done.

      > Diversity is having to answer calls from 200 end users each with slightly different and slightly customized desktop applications.

      To bad you didn't use that "odd-ball programming language" since the guy in '83 didn't have any problem with it.

      WARNING!!!!! sweeping generalization!!!!!!
      No, diversity is bad for business people because they just don't understand such things. But what can you expect when they are the only ones into they're meetings?

      oh, and what drugs is the moderator who called this 'insightful' using?

    5. Re:Interesting... but far too short and simple by Hiro+Antagonist · · Score: 2

      Homogenity may be healthy in some obscure, theory-based sense; but, let me assure you: homogenity is not a good thing to the people who run businesses.

      Homogenity is having to pay millions of dollars in licensing fees to a seperate corporation so you can develop a simple in-house application that doesn't have a shrink-wrapped equivalent.

      Homogenity is having your entire business' electronic infrastructure annhiliated by a Norweigan teenager because you use one operating system to span server, workstation, and PDA.

      Homogenity is having to answer calls from two hundred end users, each having an identical workstation posessing a broken foot pedal and drink coaster.

      --

      --
      I Hit the Karma Cap, and All I Got Was This Lousy .sig.
    6. Re:Interesting... but far too short and simple by Anonymous Coward · · Score: 0

      Apparently "Insightful" means that the moderator did not think of it.

    7. Re:Interesting... but far too short and simple by Benjamin0001 · · Score: 1

      Diversity is the only thing that is going to save the programmers working wage from downward pressure. So lefts face it, Programmers need high wages and business owners don't want to pay them. I am the latter , trying to be the former. As A business owner I don't want to pay my employees much, costs to much money. As someone who wants to program for a living (because he loves it so) I want upwards wage pressure so I can do what I love and eat to. The numbers of people who know VB/Java/C# is going to climb rapidly. Especially when the .NET platform is so expandable. This is a bad thing to me. It is cool technologically speaking from the point of view of what it trys to accomplish, how well it does this while retaining speed, minimalist code size,etc (which I have not heard good things about) is something different. And it is a bad thing when it comes to keeping multiple ideas from multiple independant (competing) companies. So with the manner in which it is expandable is also one more way in which the programmer will experience negative wage pressure. Its like the Industrialist of old. Its better to own the ORE (because you own the mines) the factories (which use the ORE) the railways which it is shipped by and the distribution channels retail channels themselves. Why because it saves money and makes you money. So goes Microsoft (believe me if I were in gates shoes I would do no different). But in the end it will cause Stagnation (as it already has) and with no exploration of NEW technologies it will cause their to be a large pool of programmers and systems of one kind. I sit here and watch Intel and Microsoft do what they do and its cool and all, but it leaves little in the way of WOW!! Factor. Programmers should start going out of their way to write Programming Languages that ARE HARD TO USE, HARD TO UNDERSTAND, For new technologies, that will keep the numbers of programmers low and the price and demand of those programmers HIGH as the sky. Its just smart thinking.

    8. Re:Interesting... but far too short and simple by kiris · · Score: 1

      This should be what we're striving for. Sure it could be a mess, but it forces us to actually think about what we're doing.

      Imagine actually having that setup work! That should be the eventual plan of every software project. If it works with everything, why take it out?

    9. Re:Interesting... but far too short and simple by msuzio · · Score: 2

      I'm hardly talking about "some guy" making a decision. I'm talking about a professional, who presumably knows his ass from his elbow, who picked the right language for the problem domain. If the app lasted since '83, paying $120K to maintain it is chump change... obviously, *something* worked, if you kept it that long :-).
      Language decisions (indeed, all architectural decisions) should be made with all the known variables considered... and a minimum of "hype". Don't use J2EE because it's "cool"... use it because it solves the problem you have, and saves time or money. If it *doesn't* do that, why the fsck would you use it????

      I'm asking for open minds. Too often, decisions on the technology to use are made for the wrong reasons. That situation isn't ever going to completely go away, of course. But if you want to be more than a hack programmer, you should do your best to fight bad decisions.

    10. Re:Interesting... but far too short and simple by Anonymous Coward · · Score: 0
      Diversity is having to pay $120k to replace a programming position because some guy back in '83 decided to use the odd-ball programming language.

      While easily replacable programmers are an advantage, you have to consider the fact that many top-level programmers, designers or architects will prefer using the right tool for the right jobs, even if it is not "standard", and thus turn down your offers if you insist on this.

      It's ok if you need programmers for grunt work ; it's not if you need the very lastest technology, and it's not necessarily ok if you are leading a project with a high risk of failure with dramatic consequences for the company.

    11. Re:Interesting... but far too short and simple by Tablizer · · Score: 1

      >> Programmers should start going out of their way to write Programming Languages that ARE HARD TO USE, HARD TO UNDERSTAND, For new technologies, that will keep the numbers of programmers low and the price and demand of those programmers HIGH as the sky. Its just smart thinking.

      It has already been done. It is called Object Oriented Programming. OOP has cliche BS power like nothing before it. "You only supply methods for what is different. In other words, you only add the deltas, and re-use the rest." Yeah right. Give me a break. The authors of such BS went on to write about The New Economy in dot-com rags in the late 90's.

      oop.ismad.com

  7. All languages are *not* the same by Rupert · · Score: 1, Troll

    Except in the bizarre world of the CLR.

    Programmers have many choices. Programmers who choose to use .NET have limited themselves to C# and its "skins", as pointed out in the article.

    --

    --
    E_NOSIG
    1. Re:All languages are *not* the same by WildBeast · · Score: 3, Insightful

      Like Python, Perl, Ada, Eiffel, VB, C#, Cobol, etc.? I don't look at them as skins

    2. Re:All languages are *not* the same by Anonymous Coward · · Score: 0


      No, but Python.NET, Perl.NET, Ada.NET, Eiffel.NET, VB.NET and Cobol.NET are functionally equivilant to C#.NET.

      There's no advantage to using one over the other, except preference.

    3. Re:All languages are *not* the same by Rupert · · Score: 2

      Eiffel.NET is not Eiffel
      VB.NET is not VB

      they are just C# with a different syntax.

      Scheme has been particularly butchered.

      --

      --
      E_NOSIG
    4. Re:All languages are *not* the same by telstar · · Score: 1

      If a user feels more comfortable using one language over another then that is EXACTLY the advantage. We write code to achieve a functional goal, and if you can combine the interoperability afforded by a CLR with the comfort of the language of your choice, what more could you ask for?

    5. Re:All languages are *not* the same by mestar · · Score: 1
      you got it wrong.


      Yes, Eiffel.NET is Eiffel. It is Eiffell that can use (in fact it is it's primary API) the .NET framework.


      Do you also think that Turbo C is not C, but just assembly with a different syntax?


      Have fun.

    6. Re:All languages are *not* the same by frank_adrian314159 · · Score: 3
      Like Python, Perl, Ada, Eiffel, VB, C#, Cobol, etc.? I don't look at them as skins

      Well, I program in Lisp and so I do. They're all simple procedural languages with a simple stack semantics with maybe a bit of object wrapping.

      Like the Red 'Lectroid from Buckaroo Bonzai said, "Big deal".

      --
      That is all.
    7. Re:All languages are *not* the same by Anonymous Coward · · Score: 0

      > They are all simple procedural languages

      Lisp is cool, and has some interesting applications. Studies have shown that it can be made quite fast as well. But as far as the rest of the world goes...

      Eiffel blows the lid off of any compiled language out there. Object Oriented, super-clean syntax, a GOOD multiple inheritance system, type parameterization (awesome - way better than templates), STRONG typing, a wicked-cool assertion mechanism (that Java tried to copy in SDK 1.4 but failed miserably). Oh, and it had garbage collection 16 years ago. So there.

      M C

    8. Re:All languages are *not* the same by SerpentMage · · Score: 2

      Ok so Eiffel.net can do Multiple Inheritance?

      --

      "You can't make a race horse of a pig"
      "No," said Samuel, "but you can make very fast pig"
    9. Re:All languages are *not* the same by spike666 · · Score: 2

      ahh, but isnt C# simply a Microsoft Branded Skinning of Java? even more so than j++ ?

    10. Re:All languages are *not* the same by angel'o'sphere · · Score: 1


      Like Python, Perl, Ada, Eiffel, VB, C#, Cobol, etc.? I don't look at them as skins


      I agree that the article is poor, very poor.

      Just after making some statements and looking to actual developments .NET/CLR it ends ... I miss a conclusion or in depth analysis.

      However my quote of you indicates I find your statement a bit narrow minded.

      I think the article likes to say: languages like LISP, ML, Miranda, Prolog etc. are not realy used anymore.

      All our day languages are imparative languages, regardless wether you look on OO or non OO.

      All languages embrace the { ... } style of writing code: C#, C++, C, Java, PERL (that includes 'type var;' style of declarations).

      As an alternative still Pasal and Ada exist, but both are also imperative. Eiffel could even be regarded similar to Pascal/Ada in its syntax.

      The only non imperative language used today is likely SQL.

      Yeah, before you start to point it out: I know about LISP usage in EMACS. I know about certain big LISP projects at Airports and logistic companies.

      I also know about big Smaltalk projects, e.g. BASF has a department using Smaltalk and XP(eXtreme Programming).

      But you won't believe me(I conclude that you won't believe it, from the /. posts I've seen and made and the answers and the moderating): all software projects I was involved in any way during the previous 4 years where Java.

      This are mainly industrial projects based on Enterprise Java Beans (J2EE).

      The total number of involved developers is about 6000 (well, no big deal if you consider that in one of the projects 3000 people are working).

      If you would even raise the idea to use something different than Java they would laughe about you.

      Consider to have all kinds of machines and all kinds of OSes, all kinds of middle ware and at least 4 different DB vendors ... J2EE just bundels that below the same API.

      Nearly all Master Thesises and other works and publications in computer science(which I found interesting) where made in Java. Main research and teaching language is Java. Of course, you have to learn other languages as well. But: as a CS student you are expected to pick up any language in a couple of days anyway.

      Anyway: anybody knows about a C++ compiler that generates Java Byte Code, prefereable running on a standard VM and not on a JBC processor?

      A subset would be ok, or a streamlined version closer to Java ... even a source to source compiler would be ok (needs to support templates though) The gcc project for that seems dead ...

      Regards,
      angel'o'sphere

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    11. Re:All languages are *not* the same by pdrayton · · Score: 1
  8. Funny by ergo98 · · Score: 4, Insightful
    It's funny how C++ (and the subset C) is constantly glossed over as some archaic remnant of the past, yet the overwhelming majority of commercial appliations continue to be developed in C++, and likely will continue to for some time. It's an interesting scenario of Fire and Motion. It always makes me wonder if all of the .NET and Visual Basic fanatics every stop and think "Gosh, how many Microsoft products are built with .NET or Visual Basic?" (they'd be surprized that the number is very close to 0, and will likely remain so). Silver bullet languages give short term bursts of productivity, followed by the reality that the nuances of languages become trivial in the long term of a real project.

    Just intriguing to see. J2EE, .NET, etc., all definitely have a place, but it is interesting seeing how many people hop on the bandwagon without requiring the developing company to prove that they eat their own dogfood.

    1. Re:Funny by Anonymous Coward · · Score: 0

      I hope they don't write anything in VB. That is pretty much, in my opinion, a hobbyist language. As for .Net, it is far too young to say whether they use it or not. They have started to use it on some of their sites, however.

    2. Re:Funny by Wonda · · Score: 1

      Indeed, in fact, I work on embedded systems, and C++ is something we're only starting to think about, for now it's all C, and i expect that will stay for another few years, don't expect .NET as main programming language used for the software in your phone/TV anytime soon. (except interactive digital TV's but those are based on java instead)

    3. Re:Funny by Anonymous Coward · · Score: 0

      how many Microsoft products are built with .NET or Visual Basic?" (they'd be surprized that the number is very close to 0, and will likely remain so)

      At least one. Can't talk about it.

    4. Re:Funny by ergo98 · · Score: 1

      Oh I have no doubt whatsoever that ASP.NET (and C#) will take over on IIS hosted websites : JScript and VBScript were always weak server side languages, and there was no doubt that there would be some serious improvements in them. C# and the CLR simplifies accessing the system (for all of those who used COM for cross language access to system internals it isn't that great of a leap forward though. Already most internal dev teams were COMifying their subsystems : i.e. ADSI, MSMQ, etc.).

    5. Re:Funny by mestar · · Score: 1
      Gosh, how many Microsoft products are built with .NET or Visual Basic?"


      At least two. VS.NET (not complete) is written in C#. Also, http://office.microsoft.com/ is using .NET.

    6. Re:Funny by mestar · · Score: 1

      In my opinion, your opinion is a wrong opinion.


      I would say that judging from the number of visual (and non-visual) components available, VB is a pretty powerfull language.


      In fact, because of those controls, it is one of the most powerfull languages there is.

    7. Re:Funny by Anonymous Coward · · Score: 0
      It's funny how C++ (and the subset C) is constantly glossed over as some archaic remnant of the past...

      Its also funny how Cobol and RPG are constantly glossed over as some archaic remnant of the past as well.

      I used to believe the Cobol and RPG were all but dead, but at my previous job I found out that they are very much alive on mainframe systems. Mainframes are still the heart of many large companies and institutions, and a lot of the programs running on them are written in RPG or Cobol.

      Just like C (or C++), Cobol and RPG may not be the newest, sexiest thing around, but they are still very useful for some tasks... I'm glad I'm not the one programming in them though!

      Hmmm... I wonder if we'll see RPG for CLR?

  9. Old news. by Anonymous Coward · · Score: 0

    Turing wrote something about this awile ago..

    1. Re:Old news. by mcplusplus · · Score: 1

      I don't know why the above post was modded down. Isn't the author referring to the fact Turing's bare bones programming language?

      At some level aren't most languages the same?

      The JVM and CRL seem like modern implementations of old ideas.

  10. Should have specified Windows-only developers by gorillasoft · · Score: 2, Interesting

    The question left for the reader is where this leaves developers. Was it a better world when developers could chose different languages based on the requirements of the application? Or should all languages do the same thing with different syntaxes? Microsoft has decided which way it prefers, and choice is out.

    You still can choose different languages. Nothing says you can't use C/C++, VB 6, Perl, Python, or whatever else you want. While the implication in the article is that all developers have only two choices, the article should have said that Windows-specific developers are left with the two choices of Java or the CLR languages while other developers are still free to choose the tools that fit the problem. Nothing has changed unless you are only going to do Win32 programming.

    1. Re:Should have specified Windows-only developers by jc42 · · Score: 2, Interesting

      Heh, heh. I still keep running across studies that turn up the unexpected result that one of the most widely-used languages is still called "Fortran".

      Haven't used that little monster in years, myself. But I have been somewhat bemused by the fact that over the past few years, I've used perl and tcl for pretty much all of the jobs I've been hired for. I never thought, when I started using these a decade ago, that people would ever actually be looking to hire people who knew them. I just learned them because it was obvious they were useful tools of the trade.

      But the "top" languages are all pretty similar, and pretty much all descendents of the algol/pascal/C innovation more than a quarter of a century ago. People keep coming up with variations on the syntax, mostly so that they can claim to have a "new, improved" language. But they are all somorphic under the skin.

      Now if we could only use some of the power of languages like prolog or snobol ... or even lisp. But I guess it'll be more decades still before the commercial world advances to what we had back in the 60's.

      --
      Those who do study history are doomed to stand helplessly by while everyone else repeats it.
    2. Re:Should have specified Windows-only developers by mz001b · · Score: 3, Insightful
      I just Fortran 90 daily, as part of a computational fluid dynamics project. Fortran 90 is a lot different than Fortran 77 -- it has pointers, modules, no more punch card dictated format, array syntax, ... In someways it is nice, but one of the great things about Fortran 77 was that the language was so simple that the compiler did not have to make any assumptions. There were no pointers or dynamically allocated memory, so lots of optimizations could be made, which is why Fortran performed so well. You will find Fortran compilers on all the supercomputers on the Top 500 list today, and they are used very heavily. There are a lot of numerical algorithms coded in Fortran (netlib), that have been tested and looked over by the community for 20-30 years.

      That being said, for anything other than raw numerical computations, I prefer C.

    3. Re:Should have specified Windows-only developers by jc42 · · Score: 1

      We might note that current Fortran implementations generally include a C compiler and you can link routines in the two languages without problems. This is easy because, except for superficial surface syntax, Fortran 90 and C (and C++ and Pascal and ...) are the same language.

      It's true that Fortran has always included a lot of numerical stuff that isn't in C. But I'd classify this as "superficial surface syntax", too. The Fortran compiler tends to produce subroutine calls for a lot of this; it's just that the Fortran code doesn't look like it's calling subroutines because there's special syntax for it all. C++ makes it possible to do all this with classes and overloaded operators, but C++ users are generally aware that this is really just syntactic sugar to make the C code (structs and macros) more readable. Fortran does the same thing, but users pretend that such features are unique to their language and lacking in C, because C forces you to use function/macro notation for it all.

      A while back, someone abserved that we don't know what the major numerical language will be in 50 years, but we know it will be called "Fortran".

      Another interesting observation a few years ago was that most of the running code in the world is in Fortran, because more than half the world's cpu cycles are used to run a single algorithm that is coded in Fortran. Trivia question: What does that algorithm do, and why do so many computers spend their entire lives running it?

      --
      Those who do study history are doomed to stand helplessly by while everyone else repeats it.
  11. Skins - nice analogy by Anonymous Coward · · Score: 0

    He's got a good point. .NET may give you a choice of language but it really pretty much boils down to the same choice, that is using the .NET framework libraries and CLR. In other words, writing C# code is much more similar to VB.NET programming than it is to "legacy mode" C++, for example.

    The skins analogy is really neat, too.

  12. Languages by PowerTroll+5000 · · Score: 1

    Maybe all programming languages are becoming more similar because early programming languages were inefficient or lacking in some way. Everyone is striving for the same efficient design and structure.

    --

    I'm not afraid of falling, it's the sudden stop at the end that frightens me.

    1. Re:Languages by Vagrant · · Score: 1
      Each programming language has it's strengths and weaknesses. A good developer will choose the language that leverages these strengths (or uses the one his boss forces him to). But regardless of the choice, you can still hack away and get things done.

      Take a look at the Hello World project for a glimpse at programming language diversity.

    2. Re:Languages by RevAaron · · Score: 2
      B) Java and C# are not the logical successors to C/C++. They're more like a smalltalk with a C-syntax and some trade-offs for efficiency. In terms of providing system calls and API's that are cross-platform... Well, even more like smalltalk!!

      Not really. If anything, Java and C# are logical steps backward, but they certainly aren't successors. Neither of them have anywhere near the level of dynamic runtime, reflexion, meta-programming, or general flexibility that Smalltalk has.

      It makes many good points about how cs is more the same than different now as compare to 10, 15 even 20 years ago!

      It really hasn't progressed. No language, other than things like multiple inheritance (which was tried in Smalltalk, but ditched) and sugared syntax, really has features that surpass something like Smalltalk-80, a language standardized in 1980. Even then, the research was done in the years previous to 1980. It's kind of sad, really. I watched the Alan Kay lecture tape "Doing with Images make Symbols" again last weekend, and it really illustrates this point; between the Smalltalk group at Xerox PARC, Doug Englebert, and the Flex visual programming language, we've not had any real advances, other than making things cheaper, smaller, and crappier. By crappier, I mean taking Smalltalk and Lisp, and perverting them into the hacks known as C++, C#, and Java.

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
    3. Re:Languages by SimonK · · Score: 2

      Regarding A: The JVM and CLR are at a higher level of abstraction that assembler. As such, they limit the range of languages that can be implemented more than assembler. This is more true of the JVM than the CLR, but both of them include high level object-manipulation instructions that you don't get in most assemblers that make them more suitable for some kinds of languages than others. Notably, garbage collected, statically types, single dispatch, single inheritance languages like C# and Java work better than most others.

    4. Re:Languages by mrdlinux · · Score: 1

      I agree with many of your points but you don't seem to be familiar with Common Lisp and CLOS; there's more than multiple-inheritance. How about method combination and multiple-dispatch to start? Why did Smalltalk ditch multiple-inheritance anyway? Flavors, Loops, and CLOS all have solved it using various topological-sort methods (or worked around the diamond problem anyway).

      What about support for multiple paradigms? Great; Smalltalk does OO really well (as well as single-dispatch and single-inheritance can, anyway). But there's other ways of programming, whatever marketting hype might tell you. There's also more than sugar to syntax; Lisp macros are a great tool for abstraction and language-construction. Lispers create sub-languages, to solve their problem in, all the time; and then they use it to solve similar problems as well (talk about reusability).

      Common Lisp isn't the greatest language ever (and the ANSI standard isn't the best it can get) but it's one of the most flexible languages you'll find out there, and that can make up for most of the shortcomings. And very few things surpass it either.

      While we're on the subject I might as well point out a few of the Franz Allegro CL developers' problems with the Microsoft CLR (some of which also are relevant to Smalltalk):

      • Multiple-dispatch not supported
      • Complex argument-lists not supported
      • Method dispatch determined statically at runtime (a killer for dynamic languages)
      Obviously Microsoft was only thinking about C# and similarly crippled languages when they drew up the design of CLR. Supposedly the Microsoft programmers listened and perhaps we will see some changes, but I'm not holding my breath.
      --
      Those who do not know the past are doomed to reimplement it, poorly.
    5. Re:Languages by Anonymous Coward · · Score: 0

      You do not know what you are talking about. If you think that an infinite subset of infinity is smaller than the infinity that it is a set of, then you are correct; both CLR and JVM limit programming languages. In truth, you just spew shit that you read without thinking.

    6. Re:Languages by RevAaron · · Score: 2

      Perhaps I should've said that better- what do any of the mainstream languages that Smalltalk doesn't? CL + CLOS is an incredible system, full of all sorts of interesting, useful, and just plain neat features. Smalltalk is the language in which I do most of my work, be it scripting or ecology research, but CL is my second most used language.

      But there's other ways of programming [besides OOP], whatever marketting hype might tell you.

      In Smalltalk, everything is an object. However, this doesn't mean you have to program using OOP. I've written functional and procedural programs in Smalltalk, usually small scripts.

      Macros are one of the things that Lisp really has over Smalltalk. Indeed, Lisp is a meta-language.

      Complex argument-lists not supported

      In Smalltalk, if you needed this functionality, you can work around it. It won't be as bootiful as in CL, but it's better than nothing. I assume you're speaking of using an arglist like (a b &rest). In Smalltalk, that could be something akin to the message header "do: a to: b with: anArray", of course, naming your keywords something that makes more sense than #do:to:with:. :)

      Method dispatch determined statically at runtime (a killer for dynamic languages)

      This has never been a problem with Smalltalk, since the begining. Cf. Object>>#doesNotUnderstand:, which allow you to do any sort of whacky message proxing or method dispatch at runtime.

      (yes, I know you mean the CLR, not sure which ones you mean to apply to Smalltalk)

      Good to see a couple kindred spirits on here, compared to the monotony of C/C++/Perl/PHP/Java sheep that hate parens or are confused by object-verb syntax. :)

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  13. Except by The+Cat · · Score: 2

    ...the programming language being used by a potential employer.

  14. form follows function(ality) by Anonymous Coward · · Score: 0

    Hmmm all languages are the same ... maybe that's because all languages end up doing the same thing: pushing bytes and pixels around.

    Ansatz: programming will change when the underlying fabric of computation changes. For right now that's probably not until the advent of quantum computing.

  15. Not Quite Right by erasmus_ · · Score: 2, Interesting

    The article is overall pretty positive, but I do disagree with a few things.

    I specified VB.Net as opposed to VB; even though Microsoft would have you believe otherwise, the two are really different languages.

    I don't think MS is really trying to hide that VB.Net is very different, and many many VB developers are mad at it for changing things so dramatically. Although the syntax is close, there were many changes, some make necessary by the fact that everything is now an object, and some just to drop bad practices (Wend, Goto, Variant, As Any, etc.).

    The article also makes it seem like MS is advocating C# completely replacing C++, which it is not. C++ is still included in Visual Studio.NET and although MS is pushing C#, it's not going away in the MS toolbox.

    If you want an example of MS dropping a language, look at Visual FoxPro. Anyone remember FoxPro? MS is still officially "no comment" on the matter, I wish they would just come out and announce that it's dead.

    The different languages for CLR being alike to skins is a pretty original argument. We could pick it apart, but I see where he's going with it.

    --
    Please subscribe to see the more insightful version of th
    1. Re:Not Quite Right by Anonymous Coward · · Score: 1, Informative

      If you want an example of MS dropping a language, look at Visual FoxPro. Anyone remember FoxPro? MS is still officially "no comment" on the matter, I wish they would just come out and announce that it's dead.

      Um, Visual Foxpro 7 was just released last year before .Net was even out. Are you saying there are no future versions in devlopment, or did you just miss that a new release came out?

    2. Re:Not Quite Right by erasmus_ · · Score: 1

      Um, Visual Foxpro 7 was just released last year before .Net was even out. Are you saying there are no future versions in devlopment, or did you just miss that a new release [microsoft.com] came out

      You got me, I did indeed miss this. But why did I miss it? Perhaps MS is still working on supporting it, but it's definitely not at the forefront. The only reason MS has not dropped it yet is because of the vocal and strong VFP community. But when was the last time MS has suggested that anyone use FoxPro for any new development projects? When has it suggested that VFP's database platform is better for any tasks than SQL Server? FoxPro does not exist in MS marketing to the best of my understanding.

      Why was it not included in Visual Studio.NET? Ken Levy says in this article that it's because

      Visual FoxPro 7.0 will not be included in the upcoming Visual Studio .NET product. Because Visual FoxPro 7.0 is not a Microsoft .NET language and does not share the Visual Studio .NET IDE, Microsoft has decided to ship it ahead of, and separately from, Visual Studio .NET. This will enable FoxPro developers to benefit sooner from the new features of the product and enjoy the productivity enhancements that it provides.

      He makes it sound like a benefit, but I don't buy it. If .NET is MS's future, why not VFP.NET? Because it is on its way out.

      --
      Please subscribe to see the more insightful version of th
  16. what about the rest of us? by Synistyr · · Score: 1

    It's almost as if the only publications he reads is Zdnet and has developed a very narrow focus. What about PL/SQL, SQL, Perl, PHP, Python, Microstation, Forms, Reports, Delphi, and on and on.

    Not everyone is doing just J2EE or .NET - some of us have to make a living.

    1. Re:what about the rest of us? by prisoner · · Score: 1

      Indeed. I do alot of consulting for smaller companies who host their own websites and I do the bulk of my development in PHP and/or Perl. For most, it's a cost issue. They can put that $1500 or so they save in licenses towards development. They just want it to work. They don't care that it's not MS software.

  17. Fairly Microsoft Centric by scotch · · Score: 5, Insightful
    This is a fairly Microsoft oriented editorial, and a little light on meat at that. Examples: assumptions that C#, .NET, and VB.net do or will by years end account for the bulk of programming langauges, with an "also-ran" entry for Java.

    As far as I know (not far?) C++ and C are still widely used in industry. The editor speaks of C++ significance as something of the past: 5-years ago.

    GUI skins are discussed as a pretty weak analogy of language interfaces to common runtime libraries. Then of course, the editors example of a GUI skin is Windows XP.

    Where I work, C++ is the prime langauge. But then, we're worried about cross-platform development. Maybe that's a thing of the past, too.

    Don't waste too many brain cells on this one.

    --
    XML causes global warming.
    1. Re:Fairly Microsoft Centric by syzxys · · Score: 1

      The editor speaks of C++ significance as something of the past: 5-years ago.

      Ah, but in the editor's world, it is. In the hype world, C++ is much less significant than it was 5 years ago. Remember, he's an editor; he doesn't actually do any development work, he just writes about it. Strange though, I don't see my company's 330,000 line C++ project going to VB.net anytime soon. :-)

      ---
      Windows 2000/XP stable? safe? secure? 5 lines of simple C code say otherwise!
    2. Re:Fairly Microsoft Centric by 4of12 · · Score: 2

      Along the same lines as the article, which pointed out how VB gets transmogrified into VB.NET, I was reminded of an analogous example from the OSS world.

      The Jython implementation of Python.

      --
      "Provided by the management for your protection."
    3. Re:Fairly Microsoft Centric by bwt · · Score: 2

      Jython is very similar to Python. VB.NET is a much bigger alteration to VB that Jython is to Python.

      Any since we're on the topic, I think Jython and JRuby deserve a lot more interest. The ability to leverage the huge class libraries of Java with the elegence of object oriented scripting is a tremendous enabler for both Java and Ruby/Python.

      Of course, the bonehead article doesn't seem to even acknowledge the increasing importance of scripting languages. How this bozo could not even mention perl, let alone python or ruby is insane.

    4. Re:Fairly Microsoft Centric by Anonymous Coward · · Score: 0

      I suspect perl, python and ruby are used most often in the corporate world as either glue languages or by sysadmins. I'm a systems/network admin, but I sit by a bunch of developers. Typically, the only time perl ever comes up in their conversations is when they can't get Java to do what they need (and they do spend a lot of time talking, I might add).

  18. Is MS *really* .NET only ? by aron_wallaker · · Score: 1

    I one thing I haven't seen much comment on through the whole .NET debacle is whether MS is going to force everyone into their .NET VM. I can't imagine that the next version of SQL Server (for example) is going to be rewritten in C# and run in a VM, so they must have a real compiler left somewhere in the company. Plus device drivers still need to live underneath the VM, not on top of it.

    Can end users still buy VC++ instead of Visual Studio.NET ? I tried poking around on the MS web site and couldn't see it. MS seems to be trying really hard to convince everyone that .NET is the only way to write code now (hey, it's not like anyone's going to miss Win32 :) ).

    1. Re:Is MS *really* .NET only ? by ergo98 · · Score: 2, Informative

      Visual Studio.NET includes Visual C++, and it remains the most important of the products (I'm sure it irritates the VC team seeing the marketing droids out in force selling VB.NET and C#.NET when the C++ engine in Visual Studio.NET continues to be improved, with optimization enhancements that further extend its performance brilliance).

    2. Re:Is MS *really* .NET only ? by Amazing+Quantum+Man · · Score: 2

      Does VC.NET correct the fact that using an exception specification generates a C4290 warning (Exception specification not supported)?

      If not, then I'd say that the C++ engine in VS.NET has a hell of a long way yet to go.

      --
      Fascism starts when the efficiency of the government becomes more important than the rights of the people.
  19. Languages by bentini · · Score: 5, Interesting

    Hmm... I'm no expert, but neither, apparently, is this guy.
    A) All languages share a common runtime: Assembly. Just because I can run LISP and C on the same computer/runtime doesn't mean that they're similar. CS is all about abstraction. Of course you can have the same underlying structure, you can have different underlying structures too. That's the beauty of abstraction!
    B) Java and C# are not the logical successors to C/C++. They're more like a smalltalk with a C-syntax and some trade-offs for efficiency. In terms of providing system calls and API's that are cross-platform... Well, even more like smalltalk!!
    C) Remember, C++ started out as a preprocessor for C. Any "C++" code just became C code that was uglier to look at. The difference between procedural and object-oriented isn't that big a deal, other than it's often easier to think in OO and easier to implement a language that's procedural.
    For a more interesting observation about the same problem that comes from Rob Pike (big UNIX guy at Bell Labs, co-wrote the UNIX Programming Environment) go here: Systems Software Research Is Irrelevant. It makes many good points about how cs is more the same than different now as compare to 10, 15 even 20 years ago!

  20. Java isn't really a C++ "evolution" by BalkanBoy · · Score: 1

    - .NET is a Java rip-off, pure and simple, maybe it sounds a bit exaggarated, but it's true nonetheless. Microsoft never does things right.

    - Rather than considering Java an evolution to C++, I'd much rather call Java a supplement to C++. C++ is still being widely used as the choice language for system development on UNIX, and where maximum performance is required. Have you ever tried to run a web server written in Java as opposed to a web server written in C++ (like Zeus or even Apache)? You'll know that instant where C++ has its purpose. Besides, C++ today is ISO standardized so programming in C++ and sticking to the ISO/POSIX standards will allow you nearly the same platform independence as Java does (w/exception to stuff like the GUI's). Java offers this 'language centric' approach to programming, where the language itself shields the programmer from being sloppy or not careful enough, however that comes at a price of losing closer control of the platform you are working on, which is fully there when developing in C++. You cannot make low-level system calls in Java. Functionally you can achieve probably the same in Java, but the total control aspect is not there as when programming with C++. This is one distinction many 'language' evaluators do not make between Java and C++.

    --
    'A lie if repeated often enough, becomes the truth.' - Goebbels
  21. OO isn't a language... by symplegades · · Score: 1
    The key difference being that VB is a procedural language, and VB.Net is an object-oriented language.

    correct me if I'm wrong here, but... object-oriented programming is not a language so much as a development philosophy. "Procedural" Java code is certainly a reality, even if the language was not designed to be used in this way. And VBA within the Excel and Word object models sure seems like a proper OO language to me...

    -rene

    --

    See you on the playa.

    1. Re:OO isn't a language... by Eryq · · Score: 2, Informative

      You're not completely wrong. All the classic ingredients of OOP -- messaging syntax, encapsulation, inheritance, etc. -- can be simulated in a non-OO language by consistent use of naming conventions, function-argument-order conventions, etc. In the end, it all reduces to machine code anyway, after all.

      But a true OO language makes these things
      easier, by providing special syntax for message passing, enforcing encapsulation, etc. I'd rather write:

      somePerson.setName("Foo")

      than:

      person_setName(somePerson, "Foo")

      --
      I'm a bloodsucking fiend! Look at my outfit!
    2. Re:OO isn't a language... by kippy · · Score: 1

      i thought that if a language supports object oriented programming, then it is a OO language.

    3. Re:OO isn't a language... by erasmus_ · · Score: 1

      VBA, which you mention, as well as VB6 used objects certainly, but were not truly object-oriented. But in .NET, everything is an object and must be dealt with this way, which means all variables, forms, and libraries. So certainly, one can no longer do CStr(intFoo), and has to do intFoo.ToString.

      But this also means that VB now has true inheritance and polymorphism. If VBA has been your only exposure, you probably have not done classes, but in VB, Implements was the only way to inherit, and it was very very poor. VB.Net has overloading and true inheritance, which now makes it truly OO.

      --
      Please subscribe to see the more insightful version of th
  22. all languages are the same? by hwaite · · Score: 1
    The author suggests that developers have been left with little choice because all of the current programming languages are essentially the same.

    I thought the author was claiming that this would become the case only if .NET squashed Java. He doesn't suggest that J2EE and C# are the same.

  23. The same is better by Kohath · · Score: 1

    The same means lower learning costs and a greater ability to communicate and share code between programmers.

    The overall cost of a new language outweigh the benefits. This means no new languages until something comes along with an overwhelming benefit.

    Don't hold your breath, but when it comes, it'll really be worth the wait.

  24. I Disagree by puppetman · · Score: 4, Insightful

    There are still millions of lines of COBOL, FORTRAN. And you can still develop in ADA, LISP, Scheme, etc. Compilers exist.

    Sure - Java, Pythol, C# are pretty similar. But what about Lua? PERL? Or CURL?

    Sounds like a case of the "good ol' days".

    1. Re:I Disagree by cyberlync · · Score: 2

      You speak as if Ada (notice correct capitalization, its a name not an acronym) is dead or outdated. It is not at all dead or outdated. It was updated in 1995, becoming the first standardized Object Oriented langugage and is one of the best languages available for large project development. There is even a really great compiler out there for it called gnat. Its even going to be included in the gcc tool chain in v3.1. So please dont speak as if this were a dead or outdated language

      --
      I'm a programmer, I don't have to spell correctly; I just have to spell consistently
    2. Re:I Disagree by Black+Parrot · · Score: 2, Informative


      > [Ada] is not at all dead or outdated. It was updated in 1995...

      And the '0X version is under development right now.

      > Its even going to be included in the gcc tool chain in v3.1.

      FWIW, about two weeks ago I downloaded gcc 3.1 from the cvs snapshot and tried it out. I didn't have time to download/run the test suite, but it worked fine on several of my programs which I did try out. IIRC, the 3.1 branch was supposed to fork off a week or so ago, and the target release date is only a couple of months from now.

      Also notice that the GNU Visual Debugger is written in Ada. It currently works for Ada, C, and C++, but is designed to handle additional languages as plugins.

      --
      Sheesh, evil *and* a jerk. -- Jade
    3. Re:I Disagree by puppetman · · Score: 2

      "There are still millions of lines of COBOL, FORTRAN. And you can still develop in ADA, LISP, Scheme, etc."

      Where did I say that Ada was dead? I implied that Cobol/Fortran were dead (but only implied). I think my statement, at most, implies that Ada, LISP and Scheme are lesser-used languages. And they are - C, C++, Java, PERL, etc are more widely used. Ada I believe was originally a military-language, and not widely used outside the US military.

    4. Re:I Disagree by James+Lanfear · · Score: 1

      It was updated in 1995, becoming the first standardized Object Oriented langugage

      Nope: Common Lisp became a standard on December 8th, 1994.

  25. is it just me by jd142 · · Score: 2

    or did this guy not seem to know what the heck he was talking about. Plus he completely ignores languages like Delphi, Kylix, PERL, PHP, etc.

    Or is it just that he works for ZD?

  26. Of course, they are all turning compatable by bluGill · · Score: 2

    Nearly every programing lanagage is turning compatable (or turning complete). There really isn't much more to say. If you can write the program, you can in any language.

    The only exception I can think of is sql, and that was never intended to be a programing language. (although i've not kept up, it might be turning complete by now with extentions I'm not aware of)

    Revolutionary devolpment has stagnated, but that is good. House devolpment has pretty much done the same thing, I know people who live in houses 150 years old, and they are contrstured much the same as modern houses. Sure a 2x4 has a standard size now, while it didn't then, but that is a minor evolutionary change, not a revolution. We no better than do write languages the way cobol was written, but the only revolution since cobol is OOA, and there is OO-cobol for those who want it. (there were other evolutions that cobol missed out on, and some would argue that OOA isn't not a revolution either.

    1. Re:Of course, they are all turning compatable by Anonymous Coward · · Score: 1, Insightful

      There really isn't much more to say.

      Unless you actually go to program in it, that is. After all, Intercal is turing-complete.

    2. Re:Of course, they are all turning compatable by marauder · · Score: 2, Informative

      Mate, Turing complete. As in, Alan Turing. As in the father of computing.

    3. Re:Of course, they are all turning compatable by Anonymous Coward · · Score: 0

      My bicycle is capable of calculating anything that is calculable, since it is truly a "turning machine". ;)

    4. Re:Of course, they are all turning compatable by Anonymous Coward · · Score: 0

      Let me give you a small hint. If you want to pretend you know what you're talking about, at least make the minimal effort to spell the names of the key concepts involved correctly. That's T U R I N G.

      Secondly, to compare the current state of software development to that of house building is completely ludicrous. If your house failed as often as even the best (moderately complex) software system, you'd be suing the builder in a instant. Software design needs better tools to solve its problems than those we have now.

      The real "revolution" in computing will come when we find a Turing complete model of computer architecture without the drawbacks of the Von Neumann model. Quantum methods are promising, but still years away.

  27. More by inerte · · Score: 2, Interesting

    The author suggests, clearly "Microsoft has decided which way it prefers, and choice is out.", and not that developers face today a hard choice when looking for programming languages.

    It's easy to see the difference here. This article only scratches the "All languages look the same", specially for coders. Maybe for deployers (if you make this separation).

    He even let the essential point, for developers, by throwing questions (2) to the air.

    Well, let me answer what the article should have touched. It's not the programming language that MS or Sun is controlling, but the tasks to be performed that they are limitating. By making a common programming framework, so widely marketed and, good or bad, soon to be accepted, from Microsoft or not, they are essentially narrowing the solutions that one might come for a problem, since you have to do the 'framework-way'.

    Yes, it's good to have a common ground where applications, services and solutions can be distributed. But a lot of problems will arise when you can't (or perhaps should not) use the right tool for the right job.

  28. Security Issues by Tigris666 · · Score: 1

    Choosing a programming language is fairly easy. I don't know what this guys problem is, sure most of them are the same, IN SYNTAX, but each have their advantages/disadvantages.

    First you decide what you want to do with your program.

    If it's purely web based, like most of the applications I write, then it's easy, you've got java, php, perl, maybe some others. Now php has high security risk, so rule that out. Perl is much more secure than java, but java is more portable, so there's your trade off, decided what is more important.

    If it's system based, then it wouldn depend on the target OS. If it's linux then you choose perl or C depending on how low level you need your program to be. If it's not linux, you speak to the project leaders, and get them to make it linux.

    Basically it boils down to, perl or some crummy other language.

    --
    Kids, you tried your best and you failed miserably. The lesson is, never try. -- Homer J. Simpson
    1. Re:Security Issues by domc · · Score: 1

      Perl has greater portability than Java. Perl programs run unchanged on a wide variey of platforms (~80 I think).

      How many platforms have a decent JVM? How many times have you run into incompatabilities between competing JVMs?

      domc

    2. Re:Security Issues by sglane81 · · Score: 1

      PHP has the same security risks as any other langauge (PERL included). If you write bad code, you will have security holes. It doesn't matter what language you write it in.

      Java is portable. That is indisputable. Java may be good for distributing software that runs on Windows, Linux, Solaris, etc. because you have multiple target platforms and you don't have the resources or care to port it to to all the possible platforms. Besides, Sun already did this for you with the JVMs. Basically, Java may be good for applications other than web applications.

      That is all fine and dandy, but C++ can be ported to many platforms as well. You can get a compiler for just about any platform. "But what about the interface? I like my MFCs," you might say. If you write your graphical interface in GTK, you will have little to no trouble porting your application to and from Linux, BeOS, Win32, etc. Porting requires more work on the developers' side, but in the long run, it is the only way to go since the JVM basically "ports" it every time the application is run.

      With web development, you know your target platform. Your target platform is a server. Odds are, you know what Operating System is running on it and you know what languages you have available to you. My question to you is, why would you want to port code to different operating systems and servers when you have one target platform?

      My main beef with Java, and OO for that matter, is it places too much emphasis on using conceptual entities to assist the developer. This comes at a large cost: Speed. You cut your nuts off when you sacrafice speed for portability.

      Benchmarks for Asp, ColdFusion, JSP and PHP

      C# and VB.NET will be pseudo-compiled. Basically, it will be similar to Java with respect to runtime status. It will be in the same boat with Java when it comes to speed. Microsoft understands this concept and that's why there is ASP.

      "Developers switching from C++ to Java concluded that Java was the natural evolution of C++."
      I have yet to meet a C++ developer who feels Java is the natural evolution of C++.

      Overall, Java delivers a cost-effective method for distributing software for multiple platforms since you don't have to rewrite any of it for different platforms.

      --
      This is the Internet. You can say "fuck" here. - AC
    3. Re:Security Issues by oznoid · · Score: 1

      Actually, Perl runs on more platforms than Java... Perl is more portable than Java.

  29. Lets see here... by PM4RK5 · · Score: 1

    We have C derivatives (C, C++, C#, Java). They all have their benefits and weaknesses.

    We have things like Pascal (none of which IMO, are very powerful).

    Then we have LISP, which scares the hell out of me. [I won't thouch that with a 20-foot pole]

    All of these are OO in some shape or form, but some are better in certain places. I have never cared for Java, or interpreted languages period, but I suppose they've got advantages like Java does in web plugins. So there is no 'logical evolution,' but just a wider variety of niche languages. (Somebody still has to use stuff like C and C++, to run interpreted languages like Java and .NET's CLR, unless somebody comes up with a hardware CLR processor, or hardware JVM. Yeah, right)

    People have strayed from languages like LISP because it is so radically different, and most programmers are familiar with C-style programming. Personally, I have no dillema - I don't see C or C++ going out of style anytime in the forseeable future. Maybe you have one if you're a newcommer.

    Just my $0.02

    1. Re:Lets see here... by Anonymous Coward · · Score: 0
      We have things like Pascal (none of which IMO, are very powerful).

      What about Delphi?? Businesses have been using that for years, and Borland keeps pumping out new releases, even though your average slashdotter keeps up the "Delphi is dead" thread every so often...

    2. Re:Lets see here... by rufusdufus · · Score: 2

      Just to nitpick, I'd like to point out that describing LISP as "radically different" ignores history. LISP was one of the very first programming languages, and in fact flows with the theoretical mathematical syntaxes better than the languages that followed. Thus in fact, C is the "radicaly different" one, that revolutionized progamming by ignoring theory and math and focusing on practicality.

    3. Re:Lets see here... by cyberlync · · Score: 1

      We have things like Pascal (none of which IMO, are very powerful).

      I assume by this that you also mean pascals children. If that is the case have you never heard of Ada (Ada95 to be exact). Its a powerfull or moreso then C, easy to understand, and extreamly safe. To make a blanket statement like this about an entire family of languages seem to speak to a lack of knowlege on your part. Please get you facts strait before making blanket statements. If you do that you will probably end up not making these statements at all.

      --
      I'm a programmer, I don't have to spell correctly; I just have to spell consistently
    4. Re:Lets see here... by ahfoo · · Score: 1

      I say this a lot because it's all I know, but it's also true that Macromedia's most powerful development tool (an icon flow control multimedia development system called Authorware) is based on Pascal and I learned from hanging out in /. developer forums that the original Mac was Pascal. So, what does power mean here?

  30. Probably ZDNet's fault by wrinkledshirt · · Score: 2, Interesting

    Usually in media the editorial process is such that the writer doesn't determine the headlines or titles for his articles -- that'll happen at the production stage, at which point the article is out of the writer's hands. I agree that it should have been made clear, though, and if I were the writer I'd be getting on the editorial staff to get on the web staff to change it, because it reflects poorly on him, when it shouldn't.

    --

    --------
    Bleah! Heh heh heh... BLEAH BLEAH!!! Ha ha ha ha...

  31. Skinnable Functionality...what else is new? by nebaz · · Score: 1

    The author has brought up the point that since the CLR is being used that the functionality offered is essentially the same, regardless of the language, and that it is similar to the "skinnable" feature of windows XP. That is syntax from language to language is similar, but since they are running under the CLR, the functionality has to be the same.

    Hello? How is this different than compiled languages? Ultimately, machine code gets executed, whether you are writing C++, C#, VB, whatever, and machine code has a fixed number of instructions. Any feature of a language is simply compiled/retranslated into machine code anyway. Thus the limiting feature set is what you can do with the machine code. Period. And it has ALWAYS been this way. How does using a CLR make this any different?

    --
    Rhymes that keep their secrets will unfold behind the clouds.There upon the rainbow is the answer to a neverending story
    1. Re:Skinnable Functionality...what else is new? by dstone · · Score: 3, Insightful

      Well, one thing that is new is the .NET Framework SDK. For the first time, ALL data types and system classes are identical for .NET programmers, regardless of language.

      COM+ tried to do something like this, but there were always some data type and wrapper issues with Win32, and one language or another (usually C++) came out "ahead" not in terms of programmer preference, but in terms of it couldn't technically be used for one reason or another. Well, without some major hackage anyways. For example, firing up the VB6 IDE allowed you to turn around a quick, data-enabled app more quickly than the equivalent VC++ app, though you were stuck with a kludgy language and using previously built DLLs from other languages involved a lot of work. On the other hand, if you wanted to build a system service, C++ made it easier. But if you wanted to write server-side scripting, you were back to bastardized VBScript syntax. Etc. Your question was "how does using a CLR make this any different?", and I think this is one very clear way. Of course, it comes at a small peformance price (and certain C programmers will claim some "dumbing down" or lowest-common-denominator drawbacks have been incurred).

    2. Re:Skinnable Functionality...what else is new? by mestar · · Score: 1

      That is syntax from language to language is similar, but since they are running under the CLR, the functionality has to be the same


      It is not the fact that they all run under the CLR that they all have the same functionality. It is because all the languages use the same support classes, also known as .NET framework, or 'API'. Yes, it is a small, but very important difference.



      Hello? How is this different than compiled languages? Ultimately, machine code gets executed, whether you are writing C++, C#, VB, whatever,


      It is VERY different. Yes all the C and C++ and VB6 end up being assembly, but the APIs they use are COMPLETELY DIFFERENT.


      It was always the fact but this .NET thing is making is very clear, that somebody talked that a language is 'powerfull', he almost 97% percent of the time ment that API was powerfull!


      Take this example: Turbo Pascal 3.0 can't make Windows applications, but MSC 7.0 can make both DOS and Windows programs. Can you say that MSC 7.0 is more powerfull? Is MSC 7.0 more powerfull because of the C language, or because it has access to a much much bigger API?


      Think about it, sometimes a language is constructed that some APIs are trivial/automatic to call, by supporting a certain syntax to access that library or functionality. Smalltalk collections - API, Perl regexp - also API. Can anybody think of any example of "language power" which does not exist because of that language's library/API?


      Have fun.

  32. He is a jounalist, not a programmer... by rufusdufus · · Score: 5, Insightful

    This guy is saying that programmers only have 3 choices; Java, C# or VB. He backs this up by stating Java is what you learn in school these days.

    Do not buy into his "reasoning". When I was in school, they were teaching Scheme and Lisp--make no mistake, what they teach is school is not what will build the future! The programmers who only learned what the professor told them became tech support and helpdesk. In those days, to be a 'real programmer' you had to know assembler and 'C'. They made the big bucks, and all major operating systems and applications were written in them.

    Today, things haven't really changed that much. Professors are teaching goofy stuff, programmers get a degree but never learned pointers, and the major software is still written in C. The major difference is the success of C++. Yes, there are lots of Java programmers out there, but really fairly few *major* Java programs. The major OS's and applications are still written in C and C++,rather than assembly.

    Of course, in the end, if you learn 'right', what language you use is simply a choice, like a carpenter might use a metal hammer for nails, and a rubber hammer for wooden pegs. The right tool for the job. Today, the jury is out on C# being the right tool for anything, and even Java is still a new fangled gadget that hasn't fully proven itself in the toolbox.

    1. Re:He is a jounalist, not a programmer... by Anonymous Coward · · Score: 0

      Never learn pointers? Wow. I had to learn pointers for a freshman intro programming class that every engineer at the school took.

    2. Re:He is a jounalist, not a programmer... by rufusdufus · · Score: 2

      It may seem incredible that anyone gets a degree without knowing pointers, as you learned it first year (as it should be). However, when interviewing candidates for hire, the big picture comes out that many schools jumped on the java bandwagon, and actually thought that teaching pointers was some sort of corruption. Thus, a CS degree with no experience with pointers. In industry, as you may expect, pointers are a must and anyone who didn't learn them simply cannot be hired (for top coding jobs).

    3. Re:He is a jounalist, not a programmer... by joib · · Score: 2

      Yup, I agree. I learned Java in school too. My upcoming new job involves fortran programming. Go figure... :)

    4. Re:He is a jounalist, not a programmer... by Shadarr · · Score: 1

      When I was in school we learned Pascal, and pointers was part of the intro course. My knowledge of pointers was fundamental to figuring out how objects are passed in Java.

    5. Re:He is a jounalist, not a programmer... by 3am · · Score: 2, Insightful

      As has no doubt been mentioned thousands of times across hundreds of Slashdot articles, Java has proven itself in the field. Huge enterprise applications are written in it. I've personally seen it used as middleware between old big iron and web interfaces/secure messaging systems in the health care industry.

      It is less likely to have bugs, is less susceptible to security problems like buffer overflows, and is fast enough for most things. The major advange of java (imo) is that you can develop complex, powerful programs at a lower cost (eliminate huge class of bugs that need to be tested) and with less maintainence (only the VM needs to be ported, not applications).

      Now someone can feel free to call me and idiot and rattle off the results of dozens of benchmarks proving c/c++ are faster, and how the better programmer who programs c or c++ is not likely to make mistakes the aforementioned mistakes like the newbies who program in java.

      It still won't change the fact that there's a whole lot of java code out there doing useful stuff, and has been for years now.

      --

      A: None. The Universe spins the bulb, and the Zen master merely stays out of the way.
    6. Re:He is a jounalist, not a programmer... by Ramshackle · · Score: 3, Insightful

      You have no idea what you're talking about.

      None.

      Java is used all over the place. The vast majority of Fortune 500 companies have custom applications using enterprise Java. J2EE is the standard for new systems doing back-end transaction processing. The libraries are mature and very robust. C++ doesn't have anything standardized as part of the language that even remotely competes.

      This isn't 1970.

    7. Re:He is a jounalist, not a programmer... by Waffle+Iron · · Score: 3, Insightful
      Schools should be teaching many languages to each student. That way, they will be prepared to learn any language they need on the job in short order.

      In the early 80's, I used many languages in my CS courses: Pascal, Basic, Forth, PDP-11 assembler, 6502 assembler, PL-1, FORTRAN, custom Microcode and Lisp. My classes also focused on fundamental algorithms, so I got exposed to 'pointers' via array inices even in languages that didn't use actual pointers.

      When I got to my first job, I had actually never seen a single line of C code. However, using the wide background I had been taught, I was able to get up to speed on C in no time. Within a week, coding in C like a pro.

      Hopefully they aren't teaching Java to the exclusion of any other language these days.

    8. Re:He is a jounalist, not a programmer... by MrBoring · · Score: 1

      Maybe so, but they still should include some form of assembler. It doesn't much matter what platform, so long as they have a clue on what it really takes for the computer to do something. Too often, programmers write sloppy, inefficient, badly patterned code with their only justification being that CPU's keep getting faster, and memeory cheaper.

    9. Re:He is a jounalist, not a programmer... by BitwizeGHC · · Score: 2

      Forward-looking schools often use Scheme, or maybe even something gnarly like Ada, as a teaching language. However, a great many of the CS programs that I've seen/heard of are essentially mills for churning out code grinders to put to work writing payroll and billing code for insurance companies and their ilk. They will start you out on Java as a nice safe toy language to learn in, then migrate you to the suite of languages supported by Microsoft Visual Studio, and really that's about it unless you opt to take something exotic like programming languages, logic programming, or AI.

      Me, I learn about two or three new languages a year, on my own time. Scheme and LISP are, however, very dear to my heart.

      --
      N4st0r, trixx0r h0bb1tz0rz! Th3y st0l3 0ur pr3c10uzz!
    10. Re:He is a jounalist, not a programmer... by epukinsk · · Score: 2

      Schools should be teaching many languages to each student. That way, they will be prepared to learn any language they need on the job in short order.

      Schools should teach whatever language suits the concepts they are trying to teach. It's not their job to teach students minutia like syntax.

      I learned C++ for my introductory courses, Java in software engineering. We're now using C++ again for algorithms, but I've gone out and learned PHP and Perl on my own for the web stuff I do in my spare time. And part of the reason I run GNOME and not KDE is so I can learn C. I do my homework in linux and port to Windows to hand into my T.A.'s so I get a little taste of the cross-platform issues.

      I take the responsibility for learning these things myself. I don't want my professors to teach me them because it's a waste of their time and expertise. Teach me theory, teach me wisdom, don't teach me pointers.

      -Erik

    11. Re:He is a jounalist, not a programmer... by Kirruth · · Score: 2
      This guy is saying that programmers only have 3 choices; Java, C# or VB. He backs this up by stating Java is what you learn in school these days.

      You're right in highlighting how lame these are. If programmers only have three choices, they should probably choose Perl, C, and the Bash shell. Moving up a level of abstraction, Python, C++ and a functional language like Haskell might be another three choices. We have such powerful, proven, truly open source tools, we can treat this kind of corporate FUD with sneering derision.

      --
      "Well, put a stake in my heart and drag me into sunlight."
    12. Re:He is a jounalist, not a programmer... by Arandir · · Score: 2

      I learned Pascal and Fortran my first year in college. Funny, I've never once used those languages on the job.

      Java is chosen as a teaching language because it is well suited for a teaching language. Period.

      --
      A Government Is a Body of People, Usually Notably Ungoverned
    13. Re:He is a jounalist, not a programmer... by rufusdufus · · Score: 2

      In a sense what you're saying is right on. However, one would expect anyone who recieves a degree in Computer Science would be able to deal with pointers. If the prof is "wasting his time" to teach it to you, at least he should put it on the "test". If after 4 years of programming you failed to learn them, if not by direct instruction then by self-learning and experience, should you be given that piece of paper that says you know what you're doing?

    14. Re:He is a jounalist, not a programmer... by Doctor+Faustus · · Score: 1

      Professors are teaching goofy stuff, programmers get a degree but never learned pointers, and the major software is still written in C.

      Yes, the major software is written in C, but most programmers don't work on that. Most programmers do information systems work or vertical mrket apps, and systems programming languages like C and C++ are just too much work for too little benefit for that.

    15. Re:He is a jounalist, not a programmer... by staplin · · Score: 2

      And there are major java projects that aren't even J2EE, just J2SE.

      For one, I'm developing/supporting a satellite scheduling system for a commercial imaging satellite, in Java. And as it evolves, it'll be replacing other code written in C and C++.

      To claim that all major systems are still C based is ridiculous...

  33. I don't _THINK_ so! by Anonymous Coward · · Score: 0

    While there is some overlap definitely, each language currently available has it's own strengths.

    If I want to do some simple coordination between a webpage and a mySQL db, I use PHP. If I want some useful scripts on the server to handle various administration tasks, I switch to Perl. Sure, either one could do the job of the other, PHP can run in place of shell scripts on the server, and Perl has a long known history of its usefulness in CGI, but I believe you use the best tool for the job at hand in either case.

    Other languages out there have similar strengths and weaknesses...Javascript handles framed webpages brilliantly, but I didlike it for handling anything else (personal opinion). C is faster than Perl (without getting into mod_perl or various tweaks) if you are running a CGI on a webpage that will deal with heavy load. Visual Basic provides an interface (not saying a good one) to creating full blown Windows applications, you can do the same in Visual C++, but that depends on preference.

    To say they are all the same shows how little the author of this article knows about working in the real world, with real problems.

    Kickstart

    1. Re:I don't _THINK_ so! by Kickstart70 · · Score: 0, Troll

      Stupid comment system logged me out for no reason. I wrote the above.

  34. (-1, Redundant) by Anonymous Coward · · Score: 0

    2d sentence is redundant to 1st, pls fix, thx.

  35. bunch of crap by mrpotato · · Score: 5, Informative
    The article doesn't say anything, and is really aimed at manager-type people.

    Example:
    Look at some of the other languages that have been ported to the CLR. In every case, those languages have had to lose something important that made them different to fit the common dominator offered by the CLR. Microsoft has brought the notion of skins to programming indeed.
    (emphasis mine)

    What a gratuitous (and feeble) claim. The author obviously think that about 3 languages exists: C(and friends), Java and VB.

    Some functionnal languages have been successfully ported to the CLR, and they didn't need to be amputated for that.

    For example, Standard ML and Mercury. Both have been succesfully ported to the CLR without violence to those languages.

    So, in conclusion, I agree that when you know only 3 procedural/OO languages you might be under the impression that all languages look alike.

    Move along, nothing to see here.

    --

    cheers
    1. Re:bunch of crap by lavaforge · · Score: 2

      Actually, I remember reading an article on Active state about Perl.net. It said that it used typed variables. What kind of blasphemy is this, and how is that not amputating a language?

    2. Re:bunch of crap by mrpotato · · Score: 3, Informative
      Perl has always used typed variable, but those are "dynamically typed" instead of "statically typed" like the .NET architecture is.

      Also, PerlNET is no blasphemy: you can still write Perl code as you've always had. It will work, you only need a `[interface: pure]' pseudo custom attribute in the interface specification.

      Still, PerlNET also supports statically typed variables: they are there as an extension. So of course, the language was not amputated, it was extended to make better use of the CLR architecture.

      An interesting thing is that you still can use CPAN modules with PerlNET and they will work.

      --

      cheers
  36. Question by The+Cat · · Score: 5, Funny

    What's .NET written in?

    oh...

    hmmmm....

    GOODNIGHT EVERYBODY!!!!!!!

    1. Re:Question by sharkey · · Score: 4, Funny

      What's .NET written in?

      Orwellian

      --

      --
      "Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
    2. Re:Question by mestar · · Score: 1

      most of the framework classes are writen in C#

    3. Re:Question by chtephan · · Score: 1

      Well, this isn't that funny.

      AFAIK the mono (www.ximian.com) .NET compiler is written in C# and compiles itself.

    4. Re:Question by joekool · · Score: 1

      Yes, that is the point--which came first, the chicken, or the egg? In other words what did the use to compile it they first time?

      --

      Slackware: old school feel, new school gear.
  37. Order People Please! by coldtone · · Score: 1

    Ok Everyone who loves Java, Post to the left.

    Everyone who loves C, C++, Post to the right.

    Perl, Python Can post to the Right as well.

    1. Re:Order People Please! by Graspee_Leemoor · · Score: 1

      Heheheh is that some sort of page-widening bait, or what ?

      graspee

  38. Shucks by medcalf · · Score: 3, Informative

    I guess I'll have to tell my boss I can no longer do Perl scripting for him. And I suppose I'll have to stop writing the shareware game I'm working on until I have time to convert the existing Objective-C to C# - assuming that there will be a MacOS X C# runtime and IDE that I can use. And I suppose all of that C code I've written in the past will have to be junked by the people using it.

    Oh, well. Another day, another stupid analyst.

    --
    -- Two men say they're Jesus. One of them must be wrong. - Dire Straits
  39. Guess it's all where you work by pongo000 · · Score: 4, Interesting

    That's funny...I've been developing for many years, for a number of very large companies, and I've seen no indication of a mass exodus towards J2EE and .NET. With a large base of C/C++ legacy apps already in place, there's not a chance in hell J2EE and .NET will "rule the world" anytime soon (if at all). I've seen too many "large-scale enterprise solutions" become waterlogged by voluminous requirements birthed from the loins of the J2EE standard, or slowed to a crawl by megadollar application servers that simply can't scale worth a damn.

    Sounds like this guy's just trying to make a name for himself. To me, it simply appears to be a load of FUD, with no basis in fact (like most FUD).

    1. Re:Guess it's all where you work by Anonymous Coward · · Score: 0

      Exactly. And if anyone thinks that Nintendo, Sony and the rest of the commercial game programmers out there are going to throw C and C++ out the window, port the proper runtimes to all their consoles and start writing all their games in C#, they probably haven't gotten out into the real world recently ;> C# doesn't even have a chance at getting a foothold in most of the markets where C/C++ are a big deal.

  40. In a related note... by 3flp · · Score: 1

    The author suggests that drivers have been left with little choice because all of the current cars only have four wheels and an engine.

    --

    "Argue with idiots, and you become an idiot." -- Paul Graham

  41. Programming in the US Military by kryonD · · Score: 1, Troll

    I run a software development section for the Marine Corps and we use two languages that are very different.

    C is used for all our web based stuff to ensure that it is platform independant. We could have used C++, but most of our programmers are folks who have a limitted background with computers so we keep it simple. Java was also rejected for reasons of simplicity as well as the sheer number of pages I've seen crap out do to poorly written scripts.

    VB is used in conjuction with MS Access when we need a quick and dirty DB for someone to do some custom queries on. Again, choice of language is mainly due to simplicity as well as the DOD's preference for MS on the desktop.

    While these two languages really don't look that different just looking at the code itself. The environment and process of writing in them is completely different. We have actually found it better to train our folks in VB first because once they learn C, they usually have an aversion to going back to VB's limitations despite its simplicity.

    Other languages such as Perl, php, and C# were considered, but rejected to stay inline with the majority of software developed for DOD.

    Hope this was informative.

    --
    I've dirtied my hands writing poetry, for the sake of seduction; that is, for the sake of a useful cause. --Dostoevsky
    1. Re:Programming in the US Military by Amazing+Quantum+Man · · Score: 2

      What happened to Ada(r)?

      As a former employee of a DoD contractor, I remember (with great pain) the Ada mandate.

      --
      Fascism starts when the efficiency of the government becomes more important than the rights of the people.
    2. Re:Programming in the US Military by cyberlync · · Score: 3, Insightful

      Why the pain? Ada is great language that has matured quite allot in the last 10 years or so, especially with the update in 1995. I cant say the Ada mandate was a good thing for the langauge, but the language itself is very nice. I think the main problem that people have with it is its pascal like syntax and the fact that it imposes allot of discipline. Programmers generally dont like any discipline much less externally imposed by the language. However, that does not negate Ada's benifits as a programming enviroment and it shouldnt be dismissed out of hand.

      --
      I'm a programmer, I don't have to spell correctly; I just have to spell consistently
    3. Re:Programming in the US Military by kryonD · · Score: 2, Informative

      It was the "Great Pain" part that killed it. I too suffered through a few classes on that language and it simply boiled down to supply vs demand. The civilian sector saw no reason to learn Ada since other languages could accomplish the same functionality. As the era of Reaganomics went away and the infinite supply of government money for hiring contractors died, the contractors were forced to cater to customers other than DOD to stay alive. Everyone else was looking for C/C++ or Java (mid 90's) and so that's where the talent and training went. The DOD finally had to accept the fact that there weren't enough Ada supporting contractors left to support the language as a standard, so they instead moved to the "Commercial Off The Shelf" COTS line of thinking. Fortunately the contracting industry had basically settled on C/C++ as the language of choice, so we didn't have the myriad of languages you did back in the 80's.

      I think a few DOD offices still try to push for Ada, but most have accepted defeat. All the new systems coming online in the USMC logistics community are now written in ANSI C.

      --
      I've dirtied my hands writing poetry, for the sake of seduction; that is, for the sake of a useful cause. --Dostoevsky
    4. Re:Programming in the US Military by Amazing+Quantum+Man · · Score: 5, Funny

      Oh, I agree. Ada95 is much better than Ada83.

      --
      Fascism starts when the efficiency of the government becomes more important than the rights of the people.
    5. Re:Programming in the US Military by Anonymous Coward · · Score: 1, Informative

      "I think a few DOD offices still try to push for Ada, but most have accepted defeat. All the new systems coming online in the USMC logistics community are now written in ANSI C. "

      What a stupid decision. Ada is no harder than
      C (almost easier in all cases), and provides so many more advantages. Takes a week to train people up to speed in Ada, and you get benefits such as decreased bug rates.

      Sheesh!

    6. Re:Programming in the US Military by jwambach · · Score: 1

      I can't speak for all arms of the military, but I work for a DOD contractor and all of our development is done in Java.

      FWIW.

    7. Re:Programming in the US Military by aebrain · · Score: 2, Insightful

      Ada is almost dead in the military. Why? Because there isn't enough money in maintaining Ada programs. They work, first time. Great for the military, lousy for the military-industrialist complex. Spend twice as much making it in the first place, then get no lucrative bugfix money afterwards. Making expensive programs that actually work is commercial suicide. Making cheap programs that actually work (which you do after some experience) gives you only subsistance level profits. Making cheap programs that almost work and require lots of profitable maintainance for years is the road to riches. So what if a few ships need towing to port due to a divide-by-zero error?

      Of course, where firms could get sued if they screw up, such as in commercial avionics and jet engines, Ada is universally used. Ada doesn't guarantee good, safe, maintainable programs, but it's relatively easy to make them in Ada, and darn near impossible to make them in C.

      As for Ada being harder to learn than C, which is harder :

      for(i=0;i<BUFFER_SIZE;i++){
      read(i);
      }


      or

      for i in buffer loop
      read(i);
      end loop;


      Maybe if people just quietly gave facts and hard numbers in the Great Language Wars then the Truth Will Out.... Nah. But it's worth a shot, anyway.

      --
      Zoe Brain - Rocket Scientist
    8. Re:Programming in the US Military by Anonymous Coward · · Score: 0

      decreased bug rates are still suboptimal. i think the marine corps would like no bugs.

    9. Re:Programming in the US Military by Anonymous Coward · · Score: 0

      This is moderated funny, but anyone who knows anything about Ada83 and Ada95 can tell that they are very different languages. Just as in Fortran77 vs. Fortran95, or the old interpreted LISPs vs. ANSI Common Lisp, etc. I guess the conclusion is that if you completely revamp a language, you had better give it a new name or people will keep thinking it's the same old thing it was 20 years ago.

    10. Re:Programming in the US Military by Amazing+Quantum+Man · · Score: 2

      I think the main problem that people have with it is its pascal like syntax

      Again, agreed. I'd really love to shoot the guy who put the keyword " is " into the Ada language!

      --
      Fascism starts when the efficiency of the government becomes more important than the rights of the people.
  42. Java and C are the only languages? Since when? by the_rev_matt · · Score: 2

    I'd argue that there's a lot more perl out there doing heavy duty than there is Java. Python (by way of Zope) is also gaining in popularity.

    --
    this is getting old and so are you

    blog

  43. LISP, Scheme, Prolog? by robbyjo · · Score: 3, Interesting

    Author seemed to not consider Scheme and Prolog. Meanwhile its not widely used, they find a niche in research community. They use different paradigm, not just a mere different syntax.

    It is true that general programming language is dominated by OO-based or imperative based programming language, but things keep improving. Like Java -- it includes features on type safety to some extent. Newer programming languages are designed to ease developers for rapid development phase and overcome various limitations from their predecessors. Thus, developers in turn do have choices: Whether they want to use the newer ones or not.

    Since programming languages are designed to ease users, they are specifically designed with as minimal amount of learning as possible. Hence, since virtually all programmers are familiar to C/C++ syntaxes, the design of the new programming languages tend to adopt them in the hope that the language will be quickly embraced. Thus, this explains why the newly programming languages are like C/C++ or using this paradigm.

    Now OOP paradigm has "invaded" the market. Aspect Oriented Programming is yet another new concept to supplant the OOP. When better paradigm comes, it will eventually be embraced after it has been proven cost-wise and time-wise worthy. We will witness whether this is true in the near future.

    Just my 2c.

    --

    --
    Error 500: Internal sig error
    1. Re:LISP, Scheme, Prolog? by brer_rabbit · · Score: 4, Funny
      Author seemed to not consider

      while you've got excellent pointts, your post should of ended there. The author simply didn't consider much of anything. His boss must of asked him to write an article about that newfound TV/typewriter combo thang.

  44. Academics and Real Life by Tim+Ward · · Score: 3, Interesting

    In fact, if one were to look at computer science departments across the country, you'd see that Java has replaced C++.

    Yes, and don't we all remember computer science departments espousing all sorts of other languages that had no commercial following (AlgolW) or limited mainstream application (Pascal)?

    Computer science courses use computer languages for a variety of purposes, such as teaching algorithms, language design and compiler writing, several of which are quite different to the requirements of engineers building substantial systems.

    Yes, language B might end up supplanting language A, and if it does you might note in retrospect that computer science courses started using language B before engineers, but you can't make the deduction the other way around.

    Just check out how many Java contractors are currently out of work in the UK and compare with C++ contractors.

    1. Re:Academics and Real Life by Anonymous Coward · · Score: 0

      Huh? Here at NMT, 90% of our programming is in straight C, and the beginning level classes teach the basics in a different major language each semester (C, C++, Java, Pascal, etc). Then of course, you can take free courses that are held a couple of times a month in virtually any other programming language that you wish to learn.

  45. Um... by gergi · · Score: 3, Insightful

    From the article:
    So today's developers will use one of three languages: Java, C# or VB.Net.

    Does anyone else get the feeling this guy has never done any serious programming?
    - VB.Net is completely useless for the majority of software being developed. (Personally, I think it's totally useless but I digress...)
    - C# hasn't really shown me anything that Java hasn't so I don't really see how it's going to replace C/C++ in places Java hasn't.
    - Java... wonderful Java... the same Java that was predicted to take over the world several years ago (much like this article is saying). Now, I personally think Java is great for many things but I also think it's unsuited for many others.

    And I really don't see scripting languages (e.g. Perl, Python) going away real soon... and C isn't going ANYWHERE for quite awhile - what language do you think your OS is programmed in? How about your cell phone software? Palm software? I don't see any of these programmed in ANY of the languages the author mentions.

    Oh and what about AI? Which of these is going to replace Lisp and other functional languages?

    --
    Nosce te Ipsum
    1. Re:Um... by Fweeky · · Score: 2

      > scripting languages (e.g. Perl, Python)

      Scripting languages != interpreted languages, and you're right, they're not going away anytime soon.

      Languages like Python and Ruby (and even Perl) are moving more towards Java than /bin/sh; they have good, well developed object models, significant standard libraries, excellent stability, powerful syntax etc.

      With Parrot they're even moving towards a common runtime, with code developed in one language available to any other targeted at it.

      With these languages moving to virtual machines, and with them being either extended or built from the start to support more advanced features like OO/exceptions/{insert favourite buzzword}, they're definately on their way to making dynamic languages (hey, look, ma, another buzzword) a pretty nice alternative/complement.

      Oh, and with Parrot being what Perl6 is aiming for, it's virtually guaranteed to end up on pretty much every Unix box on earth. Can you say that about .NET or Java? :)

  46. RE: The Problem of Developing by AriT93 · · Score: 1

    I am astonished that this commentary could completely ignore C++. I am currently enrolled in classes in the ACS department of the university where I work. Java was considered as the teaching language but C++ was the final choice. The reason for this was that a survey of other colleges showed that C++ was still the language to go with. Thus being of greater use to students as they will graduate with the same skills as future competitors.

    Making a claim that developers "Must" choose between .NET and JAVA is asinine. Frankly, with the amount of "Legacy" code out there in COBOL I think that is a language that many are "forced" to choose. Additinally what about MAC OS X bening based on objective C or the hundreds of other languages out there. Hell I know some people using RealBasic! As far as moving to .NET or JAVA I would have to say that the development world has quite a while before being forced to make that choice.

    This crap should wind up in the editor in chiefs waste basket. And definitely not make it to /.

  47. Theoretical Implications by Ezubaric · · Score: 2

    Perhaps this is the result of being stuck in an academic situation right now, but perhaps the idea that all languages are the same is because - get this! - they are.

    When one can reduce anything to a Turing machine, there isn't anything we can't do with say BASIC that we can now do with C# or Python. It might be faster (to a degree) or more elegant, but still possible.

    Perhaps we should focus on pushing the envelope computationally by demanding new models of computation that would break the Church-Turing universiality of computation. Biological or quantum computers have the means to give programmers new ideas that are completely different from what we've already seen - just look at Shor's or Grover's algorithms for quantum computers. These CANNOT be done on a regular computer.

    --

    ----------
    I am an expert in electricity. My father held the chair of applied electricity at the state prision.
    1. Re:Theoretical Implications by Anonymous Coward · · Score: 1, Insightful

      When one can reduce anything to a Turing machine, there isn't anything we can't do with say BASIC that we can now do with C# or Python.

      Have you ever programmed in BASIC on a 6502 with 16KB of RAM? Didn't think so.

      "Theoretically," it's Turing complete, but actually it isn't equivalent to a TM, *because it only has 16KB of RAM*, not an infinite tape. The same thing applies to modern computers, just scaled up for a 4GB or other barrier-du-jour.

      Similarly, O(n) notation glosses over "unimportant" details, such as the 3600x (at least) speedup between, say, my Apple IIc and my dual Athlon 1800+. Sure, if you have an exponential algorithm that's going to take 4 billion years to perform the same calculation, it's useful to know. But do you have any idea how large a 3600x speedup really is? It's the difference between a 1-hour computation and a 21-week computation. Not "trivial" by any definition of the word, except an egghead academic's.

      Perhaps we should focus on pushing the envelope computationally by demanding new models of computation that would break the Church-Turing universiality of computation.

      There are already people focusing on this. They're called "researchers," but what they do isn't productive in the short term, which is why they have to grub for funding all the time.

      Biological or quantum computers have the means to give programmers new ideas that are completely different from what we've already seen

      1. Despite what you may have read on slashdot, biological and quantum computers don't yet exist. Not even in research labs. Sure, a 5 qubit computer might exist, but it's useless (for now).
      2. Why do you think these things will be any different than current computational devices? Sure, they fold some infinite computations into usable algorithms (e.g. the quantum factoring algorithm you mentioned), but it still won't help you fight, e.g. Gödel's theorem. (Or will it?)

      Perhaps this is the result of being stuck in an academic situation right now,

      I agree.

    2. Re:Theoretical Implications by protonman · · Score: 1

      > These CANNOT be done on a regular computer.

      TM != regular computer.

      And you have no idea what you are talking about.

      You're confusing TM with normal PCs, you're thinking biology is something special, and you don't know the Church-Turing thesis:

      "If something is computable, there is a TM that could do it"

      (or a way to do it in labda-calculus of course)

      But since Shor's and Grover's algortihms do stuff TMs can (and so can "real" computers; it just takes them longer), I don't see a problem. Remember kids, it's about *CAPABILITY*, not about speed or star-trek-ness or something.

      --
      The man of knowledge must be able not only to love his enemies but also to hate his friends.
    3. Re:Theoretical Implications by jacobm · · Score: 2

      If I here one more person pontificate about god-damn Turing-completeness, I'm gonna beat my poor innocent co-worker Gustavo here to a bloody pulp.

      Once and for all: YES, EVERY DAMN LANGUAGE AND ITS MOTHER IS TURING-COMPLETE. Turing-machine language is Turing-complete. Unlambda is Turing-complete. Life is Turing-complete. Programming in one is not, however, anything like programming in the other. They are NOT "the same" any more than my co-worker Gustavo is the same as a chicken, though they're both DNA-complete.

      If what you're interested in is actually programming in a language as opposed to proving theorems about it, Turing-completeness is almost entirely irrelevant. There are distinct, major, definite benefits to using one Turing-complete language over another.

      --
      -jacob
    4. Re:Theoretical Implications by Mark+J+Tilford · · Score: 1

      No, there are languages which are sub-Turing complete. Bloop (described in GEB) is the first one to come to mind.

      --
      -----------
      100% pure freak
    5. Re:Theoretical Implications by Anonymous Coward · · Score: 0

      or a way to do it in labda-calculus of course

      you meant labia calculus, right?

    6. Re:Theoretical Implications by jacobm · · Score: 2

      I just meant that any language you're likely to ever use as a "real programming language" is Turing-complete, not that every possible language is. (Of course, that's a lie: no language on a real computer is Turing-complete, as computers have finite state, but gads, let's not be technical.)

      --
      -jacob
    7. Re:Theoretical Implications by jonelf · · Score: 1

      >Why do you think these things will be any >different than current computational devices?

      How about "massive parallelism" that never can be achieved in the clock-based machines of today.

      If there ever will be quantum computers they will certainly differ alot from todays. Maybe your laptop in the year of 2038 wount be using QC but the researchers will simply love and make great things with them.

      >but it still won't help you fight, e.g. Gödel's >theorem. (Or will it?)

      I don't think so. Even though a quantum computer might be able to test an enourmous amount of coordinates in i.e. the Mandelbrot set the computer will still be limited to the number of bits. It will still be digital.

      It's as simple as: The only perfect map of the world is the world.

      But why would you fight it? It's pure and it has proven that it can't be proven and thus that some other stuff can't be proven either... or somehting like that.

      --
      /J - to know recursion you must first know recursion
  48. Crazyness by scyta1e · · Score: 1

    By the end of the year, two platforms--J2EE and .Net--will essentially control the programming languages market.

    What the hell is he talking about?

  49. Beware the Corporate Reality Distortion Field by Rob+Riggs · · Score: 1

    Here's another fellow that just reads the headlines of the marketing speil he's fed. He is obviously talking out of his hindquarters.

    C/C++ are still widely used and widely supported. Most shops do not dictate the implementation language. That decision is left to the project leads. Software engineering projects at most companies vary in scope greatly. Some projects must be done at a lower level than Java and require C/C++ or even assembly. For other projects, Python might be a more reasonable choice. Hell, for some projects Lisp or Guile might be the language of choice. Just because it is uncommon does not mean that choices don't exist.

    In any case there is a wide range of tools available. The only folks saying that Java and .NET are all that there is are Sun and Microsoft. You just don't see Guido or Larry or Bjarne sending out PR statements that frequently.

    --
    the growth in cynicism and rebellion has not been without cause
  50. not so funny by Anonymous Coward · · Score: 0
    Who gives a rats ass about commercial application development?


    Do you think that all the software developers out
    there are writing commercial apps?


    I doubt it.


    More likely, the vast horde of swengers is
    writing custom apps for their employer.
    Only a small percentage are writing shrinkwrap crap.

    1. Re:not so funny by ergo98 · · Score: 1

      The difference between "for your employer" and "shrinkwrap" is usually merely one of scope (otherwise are you saying that in house applications don't require the same performance/scalability as shrinkwrap?), and the reality is that large projects (which many "for your employer" apps become) do not benefit from silver bullet languages: All that benefits is a 0-demo, and that usually gives the flawed perception of greatly increased productivity.

      Exactly as I stated: There are countless places where RAD languages and tools are extremely beneficial (for apps that truly are micro-apps, usually with few requirements for performance), but it is interesting how so many organizations who promote a development paradigm don't eat their own dogfood.

    2. Re:not so funny by Evangelion · · Score: 1

      (otherwise are you saying that in house applications don't require the same performance/scalability as shrinkwrap?)

      Exactly. When you're developing in-house applications, and there's a non-fatal "issue" with one of them, it gets a priority that's slightly lower than cleaning the coffee grounds out of the sink drain.

      The reason is simple. The user encounters a problem. He then asks the programmer (or the head of the programmer's team), who is likely in the same building as him, he's told, the workaround works. He puts in a bug for it in whatever bugtracking system they use, and the programmer's manager sees "non-fatal in-house" bug, and all the other things this programmer has to do that involve actual paying client requests, and prioritizes accordingly.

      Inhouse apps tend to suck, and are generally unsuable for public consumption. This is the case in almost any development house. (The exceptions would be where the team's sole priority exists to write internal software -- obviously such teams have different priorities. But there will still be alot of half-assed internal software that alot of people rely on, simply because it works, and no one has the time to make it better.)

  51. Disappointing by GSV+NegotiableEthics · · Score: 3, Insightful
    I was a little disappointed by this, for two reasons.

    Firstly, the writer has donned blinkers and cannot see outside the very limited problem of the quick construction of client-server systems based on reusable components.

    Secondly, it really doesn't matter what the implementation language is. It never did. A talented programmer will use what is there. In the course of my career I have used everything from PDP11 assembler to perl by way of Cobol, Pascal, C/C++ and Java. The writer just doesn't seem to appreciate how much code holding the internet together is in languages that are rather more mature and fitter for purpose than the latest craze has a chance to be.

    Color me cynical, but I suspect he's only talking about this particular thing because that's the kind of thing that gets convention-goers to bug their bosses to send them to.

  52. So things like Perl are dead too? by Spock+the+Vulcan · · Score: 1

    Whatever happened to "Use the right tool for the job" ? There still isn't a language half as expressive as Perl, for things like text manipulation. Sure Java has a regular expression library, but things like in-place text substitution, and a myriad of other conveniences are built into Perl - that would just be painful to do in Java (which I understand fairly well), or C#/VB (which I know little about, admittedly).

  53. This question is BS to begin with by Anonymous Coward · · Score: 0

    It doesn't matter what development tools you have, it's what you do with them that counts.

  54. Comment removed by account_deleted · · Score: 5, Interesting

    Comment removed based on user account deletion

  55. C# & .NET are not new or innovative by jmccay · · Score: 2

    Neither is new or inovative. C# is a combination of C++ & Java with a few changes here and there.

    As for .NET, Microsoft just combined existing technologies for other areas. Take there idea to compile everything down to one to one language. It is not new. I go into this here. The only thing Borland didn't do is create a an interpreter for the common language. If they would have done that, you'd have part of the new compiler that Microsoft has in VisualStudio.Net. I should also mention that Microsoft owns a portions of Borland.
    The idea that Microsoft created this completely new and innovative technology is strictly a PR campaign.

    --
    At the next eco-hypocrisy-meeting, count the private jets used to get to the meeting. Should be interesting to see that
    1. Re:C# & .NET are not new or innovative by AndroidCat · · Score: 2

      I could be wrong, but the Borland stock Microsoft owns is non-voting stock. (Part of the settlement for Microsoft spending $2M to buy Borland's chief architect to work on C#.)

      --
      One line blog. I hear that they're called Twitters now.
    2. Re:C# & .NET are not new or innovative by jmccay · · Score: 2

      I think you are thinking of Apple. As long as they haven sold it, it was reported here, but also including as a part of the same deal was the sharing of technology. You will notice Microsoft paid Borland (then called Inprise) $100 Million for "the rights to use Inprise-patented technology in Microsoft products and to settle a number of long-standing patent and technology licensing issues" (this is from the actual press release. I wouldn't be surprised if compiling to a common language was one of the things they paid the rights to use.

      --
      At the next eco-hypocrisy-meeting, count the private jets used to get to the meeting. Should be interesting to see that
  56. Morons. by Hagmonk · · Score: 5, Insightful
    By the end of the year, two platforms--J2EE and .Net--will essentially control the programming languages market.

    Oh my god. Moses handing down tablets from on high? A sweeping statement supported by no figures, no examples. Why will they be dominant? Why will they supplant C/C++?

    I would assume that basically all of the Unix market will remain on C/C++/fortran/cobol. Why? Because J2EE and .Net are buzzwords and Unix people have an uncanny nose for sniffing out this kind of crap. And the Unix market is big enough to ensure that your virtual-machine-of-the-month based language "controlling the programming languages market" is always going to be a dream.

    So today's developers will use one of three languages: Java, C# or VB.Net.

    And everyone will shop online, and bookstores will go out of business. I'm sorry Matt, haven't you heard of MY object orientated virtual machine based runtime enterprise kidney beans based language? It's called Bollocks# and I think you will be finding it dominating the programming language market this year.

    Developers switching from C++ to Java concluded that Java was the natural evolution of C++.

    Java is the natural place that people flee to when they can't cope with memory management and pointers. Java is a beautiful language, and the class library is exceptional. But the layers of indirection added through the JVM will always make it slower, and never a language that will replace C++. Just as C++ will never replace C (in the forseeable future), because C++ has its own levels of indirection and safety which slow it down (RTTI, virtual tables, etc). Different tools for different jobs matey, not "one language to rule them all".

    if one were to look at computer science departments across the country, you'd see that Java has replaced C++.

    Java is easier to learn. Hence you can push out more graduates from Compsci courses with it. Unfortunately, you can't apply those guys to say, kernel programming or embedded systems work because they are clueless w.r.t memory management and the guts of the machine. And when speed is paramount, what is a Java programmer going to do? Turn the hotspot flag on and hope for the best? What if it needs to be *reallly* fast, like "we want operation X under Y instructions on the CPU". You're out of luck. Wrong tool for the wrong job.

    Fuck I'm sick of reading this. Another pundit just jabbering off his ideas with only a market analysis background (a poor one at that), not a technical one. I'm sure heaps of IT managers will be reading his column around the world, nodding their heads sagely.

    I haven't even had a coffee yet.

    --
    Ash OS durbatulk, ash OS gimbatul, ash OS thrakatulk, agh burzum-ishi krimpatul! Uzg-MS-ishi amal fauthut burgulli.
    1. Re:Morons. by Technique · · Score: 1
      Java is the natural place that people flee to when they can't cope with memory management and pointers.
      This is very negative (and wrong) statement. Java is a natural place for people to work when they don't need to actively pursue the issues you outline above. C and C++ are both strong languages, Java is another in a evolutionary step. It is a well-designed language that simplifies many of the processes that developers previously had to constantly be on the alert for. This may appear to the hard-core crowd to be an abdication of duty, but Java's acceptance in the development world is validation that large programs are about strong design and ease of maintenance. The Java language implementation achieves this in a way that C/C++ doesn't easily do. I'd not want to write an operating system in Java as much as I'd write a large enterprise sized app in C (And yes, I'm sure you could give examples of the latter, but I was speaking about weather you would WANT to do it).
    2. Re:Morons. by Hagmonk · · Score: 1
      I'll mitigate my statement somewhat, since it was made pre-coffee :)

      Java is an easier language to program in, but personally I have a performance daemon that sits on my shoulder and says "it's damn slow". So it's a tradeoff - you write code that is perhaps better structured and less prone to memory management issues, but at a considerable performance penalty.

      But the author of the original article would have you believe that it will be one of two platforms left at the end of this year. Clearly when peformance is at stake, Java and other virtual machine based languages will suffer. Hence his original statement is jibberish.

      I love Java as a language, but I do think that universities do use it as a safe hiding place to make their courses more palatable, both from a buzzword and difficulty perspective. Gone are the days were 101 Compsci required you to write a parser with yacc.

      Yes it does have its place in enterprise applications (which I find mysterious, personally because my experiences have seen it run so ponderously slow), but there is no way it will supplant everything else. Same goes for C#

      --
      Ash OS durbatulk, ash OS gimbatul, ash OS thrakatulk, agh burzum-ishi krimpatul! Uzg-MS-ishi amal fauthut burgulli.
    3. Re:Morons. by Benjamin0001 · · Score: 1

      Where I went to school their was a professor who was the Major Programming God at our school, he was responsible for most the system level programming down out at the local branch of the FFA named Will Rogers World Airport. He wrote all the code in Assembler (because that is what he knows) He refuses to teach courses in Java. He only teaches C and Assembler and COBOL. Upon entering into his class you have to take your notes from the board all the while he grumbles on about Java and all other scripting languages being complete SHITE. He is not wrong of course. And he realizes full well that they are two different tools and yes it almost reminds me of Bartleby the Schrivner I don't feel sorry for him at all, I really and truly feel sorry for everyone who missed the GOLDEN AGE OF COMP SCI and the period from about 1956 to 1987. I didn't get in on the Computer stuff until 1978, but I think back and feel the most incredible sense of awe by what was going on.

    4. Re:Morons. by FireWhenRady · · Score: 1

      Remember C was a latecomer in programming languages, let alone C++. The first object-oriented language was called Simula-67 (for 1967, the year it was first published). It was developed as a simulation language in Norway. It had inheritance (static and single only), methods, properties and many other features of modern OOP languages. So not even object oriented programming is new.

    5. Re:Morons. by The+Cat · · Score: 2

      I'm sure heaps of IT managers will be reading his column around the world, nodding their heads sagely.


      As they, without looking, drop 50 lbs. of resumes in the trash.

    6. Re:Morons. by rfsayre · · Score: 2

      What if it needs to be *really fast* and *developed really fast* but the project is huge? You write it in Java and see where the bottlenecks are. Then you take those small portions and write them in the compiled language of your choice.

    7. Re:Morons. by IkeTo · · Score: 1

      > Just as C++ will never replace C (in the
      > forseeable future), because C++ has its own levels
      > of indirection and safety which slow it down
      > (RTTI, virtual tables, etc)

      I can't agree with this. RTTI, virtual tables, etc., never shows up until you actually use the feature. If you decide it that way, you can always use the C library subpart of the language and forget about dynamic binding. RTTI is actually rarely used even in the standard library of C++.

      On the other hand, if you need the capability, you can't do it better in C. If you write a C language object system, chances are that you will get worse performance, rather than better performance, than a corresponding C++ system, because the developers of the C++ compilers have really put a lot of efforts into supporting the OO concepts in language level.

      But your main point is still correct: C++ contains some features that will make it slower and more bulky. Basically, exceptions. If you go into the compiled assembly generated by any recent C++ compiler, you'll find that 20% of the code is generated only to get exception handling correct. While C++ designers will tell you that it won't cause performance problems, in reality it clutter the cache, create a few more branches to fool branch prediction hardware, etc.

      But most C++ programs are slow for a completely different reason: the people are more concerned about other things like adding features and maintaining software.

      That said, the most serious problem of C++ against C is not performance issue. It is the learning curve issue: C is a small language. You can learn it in a couple of days, and start your venture into each of the library. C++ is a huge language: the language specification goes over 1000 pages, and you'd like to understand the whole standard library before actually working on any real project. That makes it very unattractive for people who don't have their background in C.

    8. Re:Morons. by Aapje · · Score: 2

      But the layers of indirection added through the JVM will always make it slower, and never a language that will replace C++. Just as C++ will never replace C

      [sarcasm]And C will never replace assembly. The abstractions are just to slow to write a kernel with. You really need all the speed you can get, that's why all the kernels around today are written in assembly.[/sarcasm]

      Why don't you just replace 'never' with 'it will take longer than people think'. This is almost universally the case with hypes/new technologies, in the short term they fail to achieve the desired traction (and critics put them down), but in the long term they have far greater impact than expected. I have no doubt that garbage collection (gc) will make it into (serious) kernels one day, although no-one will believe me. Ten years ago nobody believed you if you told them that gc would be in a mainstream programming language. As computers get faster and we learn more about how to effectively use technologies like garbage collection, they will be used more and more for low-level programming.

      And when speed is paramount, what is a Java programmer going to do?

      He will follow this list until the problem is fixed:

      1. Find the problem and try to fix the basic algorithm
      2. Buy "Java Performance Tuning" and optimize
      3. Buy a profiler and optimize
      4. Find someone to write the routines in C and call them using JNI

      It seems to me that C programmers have to go through steps 1-3 as well (unless they are born as expert programmers). It appears that Java programmers are worse off since they might get an application with both Java and C code, but I think that this actually an advantage. 95+% of their code will be fairly safe against buffer overflows, memory leaks and can be written quickly. The mean, lean code is neatly seperated and gets a dedicated bad-ass programmer. A coder that knows how to prevent leaks and other problems.

      Compare this to a 100% C program of which 25-50% is written by less experienced programmers. Programmers who leak, let their buffers overflow and write slow C code. In fact, I work at a company that has very good programmers, but their programs still leak a lot of memory. This is a big problem for web applications, it's a bitch to retire instances every few hours. I just hope they migrate to Java soon ;)

      --

      The Drowned and the Saved - Primo Levi
  57. So inexperienced, shouldn't be taken seriously by Seth+Finkelstein · · Score: 2
    Here's just one howler:

    This is because Microsoft introduced the concept of the CLR, or common language runtime.
    Sigh. This is proof that all the hype about "Microsoft innovates" actually does work (in producing people who believe it, not in producing innovation).

    To cite just one example, the author seems never to have heard of the venerable UCSD P-SYSTEM

    Sig: What Happened To The Censorware Project (censorware.org)

  58. well, no by markj02 · · Score: 2
    There are two platforms that are nearly identical: Java and C#/.NET. They are well adapted to industry needs and are likely to take over from the current two industry darlings: C and C++ (with a little bit of VB thrown in). C#/.NET actually even makes provisions for linking in C++ code The move from C/C++ to Java/C# is good. Applications programmers should have done that long ago: languages like C/C++ simply aren't well suited to the uses they are being today--high performance, component based software development.easily.

    Beyond that, little has changed in terms of choice. If you don't want to go with the industry standard, you can still program in Lisp, Smalltalk, SML, Ada, Objective-C, or whatever else you fancy.

  59. What about MI? by richieb · · Score: 2
    The article also makes it seem like MS is advocating C# completely replacing C++, which it is not. C++ is still included in Visual Studio.NET and although MS is pushing C#, it's not going away in the MS toolbox.

    Does C++.NET still support multiple inheritance?

    --
    ...richie - It is a good day to code.
    1. Re:What about MI? by storem · · Score: 1
      It supports multiple inheritance through interfaces. You could even call it multiple interfacing (but it's kinda logical you can implement more than one interface, isn't it).

      Implementing an interface is like inheriting from a pure virtual class, no? More or less... (without requiring object construction)

    2. Re:What about MI? by Keith+Russell · · Score: 2
      Does C++.NET still support multiple inheritance?

      You have to be careful when speaking of C++ in VS.NET. You see, there's C++ and Managed C++.

      C++ is C++. As close to ANSI/ISO as Microsoft feels like this week. All the wonderful toys you had in VC++ 6 are here, including multiple inheritance. There's only one catch: As is, you can't write CLR-compliant classes with raw C++.

      For that, you need Managed C++. By designating a class as managed, you tell the compiler that this class is to be managed by the CLR. That means it will be garbage collected. It also means that CLR type compliance must be enforced on your public interface. The class and it's public members must all be, or derive from, CLR types. Templates are strictly verboten, and while you can implement multiple interfaces, you're restricted to single inheritance.

      Note the emphasis on "public interface." If a class is assembly-private, you can use language-specific features to your heart's content. And class-private members of an assembly-public class can still use non-CLR types. For C++, this means, among other things, templates and classes built with multiple inheritance. This is not a big deal for VB.NET or C#, since they're purpose-built for the CLR. This allows libraries from other languages, including C++, to play nice in the same framework.

      This is one of the biggest misconceptions about the .NET Framework. Unfortunately, it appears that the author of this ZDNet puff piece fell for it.

      --
      This sig intentionally left blank.
  60. My god he's right...!!! by linuxrunner · · Score: 2

    I think the editorial dude is right... I mean look at this!
    Return Line:

    Perl - /n

    C - /n

    C++ - /n

    Pascal- /n

    Delphi- /n

    Batch - /n

    My god.... they are all the same!!!!!

    --
    www.slightlycrewed.com - Because aren't we all?
    1. Re:My god he's right...!!! by linuxrunner · · Score: 2

      hehehehe....
      What's really funny about it is that I fscked up on the return line and should be "\n"....

      As you see, I program all so often :P

      --
      www.slightlycrewed.com - Because aren't we all?
    2. Re:My god he's right...!!! by Anonymous Coward · · Score: 0

      Or what about '\n'?

  61. Uh. Who was this written for? by Fixer · · Score: 2, Interesting
    And I quoteth:

    Developers switching from C++ to Java concluded that Java was the natural evolution of C++. This was because it offered similar object-oriented capabilities in a safer way, by making use of a runtime much like VB. Most assume that interpreted languages had long ago proven their advantages, elbowing aside compiled languages to a niche in high performance computing.

    In fact, if one were to look at computer science departments across the country, you'd see that Java has replaced C++. So which language is really an evolved C++? The better answer is, simply, that new languages are more revolutionary than evolutionary. If we accept this, then VB.Net starts to make sense as a replacement for VB. However, one has to ask how different VB.Net and C# really are, given that they use the same runtime.

    Interpreted languages pushing aside compiled languages for high performance computing? Uh, no, that doesn't follow, and the reason is that if you need the maximum possible speed and efficiency, you don't want the over-head of an interpreter. In other words, if you can get by with using an interpreted language, it is not high-performance by nature. Only by having the luxury of more-than-adequate system performance can you afford to interpret everything.

    But, on a different tack, why do we care so much about the languages we use? Why are we so stuck on "my-flavor versus your-flavor"? And more importantly, why is there always this huge push to make one language dominant over all fields? Why can't I just use the language that best expresses my ideas? (if starting a new project ;-)

    --
    "Avast! Prepare for the rodgering!" THWACK! "Arrr.. me nards.."
    1. Re:Uh. Who was this written for? by Corporate+Drone · · Score: 1

      umm... no. he says that that interpreted lang's have relegated compiled lang's to a niche role: high performance computing.

      anyway, although I'm a Java prosyletizer, I think that defining the world as either interpreted lang or high performance computing causes high performance computing to be, oh... 80% of the world?

      --
      mmm... yeah... You see, we're putting the cover sheets on all TPS reports now before they go out...
    2. Re:Uh. Who was this written for? by Anonymous Coward · · Score: 0

      Read your own quote... he says elbowing aside compiled languages TO a niche in high performance computing.... Meaning that he thinks Java is forcing compiled languages out of every area *except* high performance computing. This is, of course, bullshit like the rest of the article, but...

    3. Re:Uh. Who was this written for? by Fixer · · Score: 1

      Whoops! :-} I miss-read his screed. I need to, in the future perhaps, learn to not shoot from the hip QUITE so much.. thanks.

      --
      "Avast! Prepare for the rodgering!" THWACK! "Arrr.. me nards.."
    4. Re:Uh. Who was this written for? by whee · · Score: 2, Interesting

      This article appears to be aimed towards those who use languages because their job requires it. I don't see Java as an evolution of C++, just as I don't see something like Objective-C being an evolution of C. I don't think _we_ care what language we use, but business people do. Most geeks use what's right for the job, whether it be it perl, C, java, or bf. As usual, the people making these decisions are higher up, with no idea of what any of it means. They want to believe that they're supporting the latest technology, and therefore are more capable at doing whatever it is they're attempting to do.

      All this replacing of language A with language B is pointless. In a sense, every single language is the same. They're all either compiled or interpreted into something the computer understands, and we, most likely, don't. The main differences are syntax and semantics; The logic behind everything is largely similar. And this brings us back to the CLR mentioned in the article: is it such a bad thing? Everything eventually boils down to the same sets of instructions, so why not completely seperate language from instruction? The syntax of language A might offer advantages over language B for some task, but the task can still be completed either way. It's just a matter of taste. Only where performance absolutely matters do the choices narrow; Outside of that, what gets chosen is what the developer is comfortable with.

    5. Re:Uh. Who was this written for? by myawn · · Score: 1

      "a niche in high performance computing" == "programs I need to run more than once"

      --
      Subscribers can see articles in the future? So what? Everyone gets to see them in the future.
  62. Absurd by Reality+Master+101 · · Score: 2

    Just to close out the whole function language argument that came up the last time .NET and languages came up, here is a link to a paper that was in Dr. Dobbs about a functional language for the .NET platform: http://research.microsoft.com/~emeijer/Papers/Mond rianDDJ.pdf

    --
    Sometimes it's best to just let stupid people be stupid.
  63. Faulty ARgument by Amazing+Quantum+Man · · Score: 2

    Because all languages can be reduced to a Turing Machine, we should all program in UTM.

    --
    Fascism starts when the efficiency of the government becomes more important than the rights of the people.
  64. Not quite so... by pinkpineapple · · Score: 2

    I've been programming for more than a decade using Objective-C, until recently on Yellow box, and not so long ago, switched to GNUSTEP and Cocoa.

    Even if the syntax is very close from C if you want it to be that way, I've never had the feeling of programming with a language that ressembles any other C based languages.
    It's quite powerful, indeed, and gets your projects done in less than anything else I know of, and the environment is just beautiful too.

    PPA, the girl NeXT door.

    --
    -- I feel better now. Thanks for asking.
  65. Historican Revisionism by furiousgeorge · · Score: 2

    >>If this is true, then how did Java get into the >>mix after starting from scratch only five years >>ago? As you may have guessed, many people see >>things a little differently to the way
    >>Microsoft does.

    5 years ago? Strange...... i must have been halucinating when i was running Sun's HotJava web browser on my Sparc10 back in '94.

    And before it was branded 'java' it existed as 'oak'.

    Not to slag Sun since i think java is pretty sweet, but you'd think in the EIGHT damn years since it first came out they'd have sorted out some of these same platform incompatibilies that plague java developers. "Write once - debug EVERYWHERE".

    Well, at least they admitted AWT was a piece of shite and moved on to Swing (which is nice, but a reasource hog).

  66. C++ is not dead... by SoftwareJedi · · Score: 2, Insightful

    Becuase in some cases it is just barely coming alive. If you look at the source code for most of the Open Source Projects you can see that a vast majority of them are still written in C. C++ still does not have as much of an installed base as C.

    Predictions that the .NET technology is going to knock off a language base over night is just plain false when one considers just how many technologies are all ready implemented in that langauge and how important it is that those technologies be maintained.

    It is more likely that .NET will be a short lived fad than the likelyhood that an established technology will just disapear in the night.

  67. I disagree by NitsujTPU · · Score: 1

    There are still many other languages in use. People will not abandon all others for these. Platform independance is nice, but somebody has to write the J2EE and .NET environments. Not only that, but somebody has to be able to write device drivers, operating systems, and other programs that would be difficult to write in such a framework. This all seems to assume that anything but web programming is dead.

  68. building the future by brlewis · · Score: 5, Insightful

    Given that Perl imitates Lisp and Scheme more closely with each release, that GC made it into the mainstream with Java, and that Python eventually got lexical scoping, maybe you should revisit your idea about whether what they teach in school is what will build the future.

    1. Re:building the future by Anonymous Coward · · Score: 0

      just because the language cleanly represents certain kinds of algorithms doesn't mean it will "build the future"
      ultimately the programmer's art is to define these algorithms, not merely to make cookie-cutter shapes in the amorphous dough of code language.

    2. Re:building the future by wdr1 · · Score: 1

      Given that Perl imitates Lisp and Scheme more closely with each release...

      Huh.

      I'm decent at Perl, Scheme, and Lisp but don't see the progression you're mentioning.

      Sure there are similiarities (and have been there for a long time) such as 'type-less' values (e.g., no need to specify int, float, etc.), garbage collection, closures, lexical scooping, etc. but I certainly would say Perl's a procedural language with an optional OOP dressing vs. a a strictly functional language like Scheme & Lisp. Could you elaborate?

      -Bill

      --
      SlashSig Karma: Excellent (mostly affected by moderatio
    3. Re:building the future by Anonymous Coward · · Score: 0

      Neither scheme nor lisp are strictly functional. Duh. Common Lisp, in fact, is pretty much anything you want it to be.

      In 5-10 years time I confidently predict that the other language communities will have reinvented Common Lisp, badly.

      Just like what they say about Unix - those that do not understand it are doomed to reinvent it, poorly...

  69. Re:What are YOU smoking by Havokmon · · Score: 5, Insightful
    The author obviously is not in the right industry if he thinks developers only will program in VB.NET, C# or Java.

    Interesting perspective..

    What I got out of the article was:
    Because of CLR, most languages for a common runtime will end up having the same abilities, just different syntaxes.
    So, if you know VB.Net, you'll be as 'powerful' a developer as someone who knows C#. But then your C# is probably watered down also.

    I think he's saying CLR has it's advantages, BUT keep in mind you may be sacraficing a better tool for the current job.

    Kinda like Java.. choose interpreted platform interoperability over compiled speed.

    I saw/remember nothing about "All other languages will die.." What would I do with my REXX knowledge? :)

    --
    "I can't give you a brain, so I'll give you a diploma" - The Great Oz (blatently stolen sig)
  70. Gee by Pvt_Waldo · · Score: 1

    Maybe languages are close to the same because a) they evolved from the same root, or b) they are settling in to some pattern that meets most of the needs of programmers.

  71. Haskell by Andrew+Coles · · Score: 1
    I'm starting to use Haskell more - it has dozens of modules to support GUIs, IO etc. and as with most FP languages has the wonderful property of 'if it compiles it's probably right'. IMO the laziness is great, in places it allows for efficient code to be written whilst allowing code to be clearly separated into chunks which are easy to reason about.

    For example, say you had a function which performed a series of calculations and returned an list of integers. You then wanted to know what the first of these numbers was. The haskell statement for this is:

    head yourFunction

    Unlike Java/C++ the whole of 'yourFunction' isn't evaluated, just enough to generate the first element, as that is all that is required. It isn't necessary to write a function which specifically works out just the first element with the minimum amount of work. Well, this example is trivial but you can imagine this has many time saving / code simplifying advantages.

    Strangely enough, Haskell is nothing like any of the mentioned programming languages...

  72. dismissed on premise... by programic · · Score: 1

    ...because the language market is not only j2ee and .net. I mean, come on: these are server-based technologies. What makes them useful for the average (read: non-connected) desktop application? Ok, I need to edit a text file, but before I can do that, I need to fire up my own personal .net server or bea server or whatever. right...

    That is like saying computers are only for the internet.

    --
    -- yawn. --
  73. Turing Completeness and Virtual Machines by Baldrson · · Score: 4, Insightful
    People forget that a machine/language that is Turing Complete can emulate any other machine/language that is Turing Complete.

    The most widely deployed Turing Complete machine/language is a close race beteween Javascript and the Wintel machine code, with Java a distant 3rd. Since there is a problem with reliance on machine code for dynamic installation of software over the network, that leaves Javascript the most obvious candidate in which to write other languages. Most people never thought of Javascript as anything but an afterthought to HTML so they might have their eyes opened a bit to the power of Turing Completeness by seeing the TIBET virtual machine written in about a 100K Javascript embeded in a web site's (gzipped) HTML. It gets away with this by dynamically patching (Perl-config style) Javascript incompatibilities and building out from the set of features thereby supported cross-browser.

    As I've written elsewhere, this isn't the ultimate language by any means -- but it is a critically needed repair to the foundation of the web that can be followed by more advanced VM's later on.

    1. Re:Turing Completeness and Virtual Machines by Anonymous Coward · · Score: 0

      Hmm, your paper is hard to read.

      I can't tell if you are for functional programming, procedural, or some weird combination (inference engine using procedural techniques?).

      On the one hand you are talking about inferences engines and the like, on the other you are talking about OO programming... help me, I don't understand.

    2. Re:Turing Completeness and Virtual Machines by Baldrson · · Score: 2
      I guess you're confused by the example of method inferencing they gave:

      "123.45".round();

      The point to remember here is that method look up happens as it usually does. If that succeeds, then no method inferencing occurrs. It's just a normal multiple inheritance method lookup system.

      Where things get inferential is if the system can't find an implementation via inheritance. Then, and only then, does it go inferential. When it goes inferential it looks around the system for a type:

      1. to which it can convert the instance via "as" and/or "from" methods
      2. that has an implementation of the "round" method
      If it finds such a method, it:

      1. strings together the appropriate "as" and/or "from" methods
      2. runs the original instance through those conversions and
      3. invokes the "round" method from the "round"-capable type
      The fact that it encaches the method chain and invocation for you is gravy on top of inferencing just as inferencing is gravy on top of normal multiple inheritance.
  74. Your sig by Anonymous Coward · · Score: 1, Interesting

    Hah! That bug was in certain versions of the commodore 64 rom (backspacing over an extended line could crash the machine). Of course commodore basic was originally written by ... microsoft!

    1. Re:Your sig by ahfoo · · Score: 1

      Wow, that is good.
      A malicious individual (not me of course) could implement that in a million ways to various effects. Management types are gonna freak when they see their XP boxes going down left and right. What an impressive oversight by MS and it looks like it's here to stay rather than a quick patch up. No wonder they took a month to think about what they were doing.
      What was MS thinking with XP anyway? The installs suck. Once upon a time that was their big advantage over Linux. It's like give them enough rope and sure enough they hang themselves.

  75. HATE by Anonymous Coward · · Score: 0

    This is the worst piece of trash I've ever read. I hope this doesn't do any harm to the industry. I guess I'm going to have to learn VB.net or C# if I want to keep my job huh? I don't plan on learning those anytime soon. If my company requires it, I'm leaving. I'll go work at Taco Bell and get discount meals and paid vacation!

  76. Re:What are YOU smoking by Rupert · · Score: 2

    *Only* C# can access the whole feature set of the CLR. Other languages get close to varying degrees. So the C# developer reigns supreme in the .NET universe.

    --

    --
    E_NOSIG
  77. The REAL problem with developing... by gergi · · Score: 3, Interesting

    ... is being an engineer who's boss will read this article and take it as The Truth.

    --
    Nosce te Ipsum
  78. Re:What are YOU smoking by rootmonkey · · Score: 1

    I understand your point and his ... its the framework not the langauge. The problem is that the J2EE and .NET framework do not solve all of the programming problems out there, especially in the low level system and the embedded world.

    Also the power of different languages is in their implementation methods particularly procedular versus object model designs. Again one or even two frame works cannot solve all of the problems out there. If the author's piece is in the view of web services the I agree you will most likely be using J2EE or .NET.

    --

    Yes but every time I try to see it your way, I get a headache.
  79. Delphi or Kylix by jark · · Score: 1

    Delphi and Kylix are exceptional languages, though essentially the same, which offer many benefits over VB, especially in their cross-platform support.

    1. Re:Delphi or Kylix by Anonymous Coward · · Score: 0

      I like their small applications with no runtime libraries to deal with. Installation issues are a nightmare!

  80. Re:What happened to Ada? by Anonymous Coward · · Score: 0

    It is now Ada.NET

  81. developers developers developers developers... by supernova87a · · Score: 1

    Steve Ballmer: developers developers developers developers...
    developers developers developers developers...
    developers developers developers developers...
    developers developers developers developers...

    The funniest video I've ever seen...

    1. Re:developers developers developers developers... by Anonymous Coward · · Score: 0

      gawd that sweaty fucking pig bastard from the depths of hell...

      monkeyboy ballmer, the original carrier of ebola.

  82. Don't forget the reliant robin! by Anonymous Coward · · Score: 0

    And there may be other three-wheelers out there.

  83. Missing a demographic by Joel+Ironstone · · Score: 2, Interesting

    I suppose the key advantage of microsoft's new langauges is their accessibility. They make programming easy and allow just about everyone and their pet monkey to make interactive web-based services. The problem with the article is that it refers to the majority of programmers and not the majority of programming. I'm sure 5x as many people are employed using these langauges, but I truly believe they are doing 5x less programming from a difficulty standpoint. The difficult applications (signal processing, computer graphics and games, server and embedded systems, AI, whatever) are all developed using C, assembler, or some other more empowering language. I think we need to develop a distinction between end-user net-service based programmers and true developers. Something like the distinction between a carpenter and my sister who assembles furniture from ikea. I apologize to everyone I have offended. But all the hard stuff is still done with langauges that I respect.

    1. Re:Missing a demographic by iPaul · · Score: 1

      I agree. In addition it's applications programming, and usually custom applications or web sites. It's annoying to walk onto a project and find a 'developer' whose development ability is basically a little Java or VB (which he does poorly) and that's about it. Very few 'developers' now-a-days can seem to write any code at all.

      --
      Leave the gun, take the cannoli -- Clemenza, The Godfather
    2. Re:Missing a demographic by Joel+Ironstone · · Score: 2, Interesting

      A good C or Assembler programmer can always move up and figure out what to do with a new language. I am not convinced VB.NET designers will have the same veratility. There is no need to understand how a machine works, and without that knowledge one can, and often does, miss something.

  84. Time for the next step in software development! by 3seas · · Score: 2


    Autocoding project proposal

    If you cannot tell the difference between a three deminsional data array or 3D computer graphic from
    3 dimensional Reality, then the Matrix has you. If you are confused about the three deminsions of length,
    width and height, then the matrix has you and you don't know it.

    But seriously, see the code for what it is, super-impose the nine action constants upon what you do in
    coding to find the control points for automating.

    As an example of these nine action constants, everybody uses them all when
    comming to slashdot, reading and posting comments.

    It's physics!

    Lets see now:

    Switch (AI - alternate/activate interface) - start and stop, change
    interfaces - Uh, start up Web Browser and connect. Go to slashdot,
    newsarticle, thread....

    Apoc (PK - Place Keeper) - keep track of where you are - Pick up where
    you left off on the thread..

    Tank (OI - Obtain Input - Output to-> Input) - get input - read with eyes.

    Mouse (IP - InPut set) - input from - internet and monitor

    Dozer (OP - OutPut set) - push output to - via keyboard/mouse to
    Slashdot comment posting

    Neo (SF - Sequence stufF) - one step at a time - damn this non-polyphonic
    qwerty keyboard and mouse...

    Morpheus (IQ - Intelligence Quotient) - what's the meaning of the post
    I'm reading, what the meaning I want to respond with - within the
    (KE'd) constraints of ....

    Trinity (ID - IDentify) - identify posters and forum - hey there is one
    by ____ in ____ forum, now I know to be (KE'd) constrained as to
    how I respond.

    Cypher (KE - Knowledge Enable)- constraints to apply to Morpheus (IQ)
    meanings and Trinity (ID) poster named _____ and _____ article.

  85. VB used for keeping track of nukes by Anonymous Coward · · Score: 0

    which is why the russians moaned that your software kept losing them...

  86. Die laughing! by Anonymous Coward · · Score: 0

    As recovering former ZD employee, I can attest that the "the glory days of pitting WP against Word against Ami Pro" is dead on!

    1. Re:Die laughing! by ahfoo · · Score: 1

      And notice they dropped their talk back feature under the guise of a remodelling when it was quite clear that the number of responses had started dropping off and references to /. were all over the place.
      They did post your picture sometimes though if you were a frequent talkback poster. That was cool. /. should have a place for a photo in the user prefs. Sure, there's the home page link, but a lot of people's home pages aren't appropriate places for a mug shot.

  87. WHY: The article is simplistic... by JohnDenver · · Score: 2

    My conclusion: The author is trying to reach a broad number of readers, many who aren't familiar with .NET, the CLR, Java and how thier programming paradigms are almost virtually identical. (I've mentioned it before, .NET is a Java rip off)

    As far as his claim is concerned, "Java and .NET being the only 3 choices in the future." I guess he figured that C is going to go way of assembler as virtual machines begin to outperform C code with super optimized JIT code.

    In light of all this, the author has concluded that any modern language will be a Java clone only varying slightly in basic expression syntax.

    Futher, he seems to suggest that Java and .NET are only capable of supporting the language paradigm that Java and .NET share.

    THIS ISN'T TRUE...

    People have already implemented a number of alternative languages for the Java platform including Lisp, Python, and god knows what else.... The same for .NET...

    THIS DOESN'T MEAN THERE ARE NO ISSUES

    The big issue with JavaLisp, JavaPython, and JavaBasic is how to get them to interoperate. Microsoft provides the interoperation with .NET's CLR. I suspect that Sun is probably working on an Interoperation method somewhere...

    In conclusion: He's wrong and he's right...

    --
    "Communism is like having one [local] phone company " - Lenny Bruce
  88. Needs qualification ... a lot by outlawstar · · Score: 2, Insightful
    The article applies only to a very limited group of programmers. Even Fortran is still heavily used in scientific computing, LISP and Prolog in artificial intelligence, and of course, assembly, C and C++ for system-level programming.

    I disagree slightly that Java was the logical evolution of C++, because it lost something that the creators of C++ tried very hard to maintain when they "upgraded" C: efficiency. Java, whatever the excuses, is not very efficient, and most developers know it. This is NOT to say C# is much better, but it does leave us wondering why Java, which had such a big head-start on MS, could not have done a better job with the architecture of Java.

  89. JVMs by SilLumTao · · Score: 1
    Many are quick to point out that the JVM--Java's runtime--supports other languages as well. While this is true, it seems this is more of a hack than a feature of the JVM.

    A virtual machine runs bytecode. Bytecode is generated by a compiler. The high-level language is superficial. How exactly is this a hack?

    --
    "He was a wise man who invented beer." -- Plato
  90. His Credentials Say It All by stoolpigeon · · Score: 1

    From the article:

    Matt Liotta has been a software architect for several start-ups in San Francisco and Atlanta. He is now an independent consultant and speaker at industry conferences.

    He did some quick programming for some failed startups and realized that the money was in being a consultant and talking about software rather than creating it.

    Anyone surprised he does not know what he is talking about?

    .

    --
    It's hard to believe that's how Micronians are made. Why don't we see it right now by having you both kiss one another?
  91. Action now in Libraries and Glue Languages by persaud · · Score: 1

    No surprise that frameworks designed for the same market provide similar interfaces. J2EE and CLR compete for infrastructure ubiquity, so their goal is to be portable and invisible. The interesting work takes place at the layer below (operating system VM) and layer above (application-specific libraries).

    The layer below will be done by Sun, Microsoft and assorted platform vendors. Over time, the VM's will be optimized up to platform limits. But the application layer will remain wide open for innovative, industry-specific libraries.

    Vigorous competition will take place among Visual Basic and Java/J2EE components (ported to their web-services equivalent). To speculate on the topology of that landscape, one could interview domain experts (e.g. telecom, bioinformatics, finance, geodata, defence) about their investment in application toolkits.

    A question worth asking -- at what stage of its evolution will the Apache API gain "language" status?

    Don't miss the Feb 2002 article on the MIT Lightweight Languages Workshop.

    Rich

  92. that's what I said .. by josepha48 · · Score: 2
    .. on my web site.. that all languages are essentially the same. Yes there are slight differences, but they all have if, then, else, for / next, while / do, records/structures, and many other features that are similar. Once you have learned one languages you can move to just about any other programming language and then it becomes a matter of what do you like most about language X, Y or Z. Basically it comes down to pick your poison and it has its plusses and minuses. You want feature foo, its in language X, but it also has feature bar which you probably don't want.

    IMHO the ideal language would have the following: objects/classes, inheritance, polymorphism, private data, public data, NO MEMORY allocation or automatic like perl/Java and a good clean garbage collector (like perl), i.e this leaves out C/C++ as both require either you write a garbage collector or you do the alloc/free. Compiled to executable code, with a fast easy to use GUI IDE for graphics, cross platform capability with NO "if window do this else if mac do that etc. (Java is not compiled to native exe). Also it needs the standard for/next, switch/case, while/do, etc. Visual basic comes close but it is not cross platform compatible. Lastly it needs to be fast. What language do you know of that fits this? Oh and there is more......

    --

    Only 'flamers' flame!

    1. Re:that's what I said .. by jacobm · · Score: 2

      " ... but they all have if, then, else, for / next, while / do, records/structures, and many other features that are similar ... "

      No. Every mainstream language, maybe, but not all languages by a longshot.

      --
      -jacob
    2. Re:that's what I said .. by Anonymous Coward · · Score: 0

      assembler, anyone?

    3. Re:that's what I said .. by josepha48 · · Score: 2

      Yes I am primarily talking mainstream languages. Java, C, Perl, php, python, C++, JavaScript, ASP/VB, scheme, and shell programming. Outside of assembly what language does not fit this build?

      --

      Only 'flamers' flame!

    4. Re:that's what I said .. by jacobm · · Score: 2

      Scheme doesn't have for / next, while / do, or records/structures in its standard (though records are implemented in every useable implementation). Besides, high-power Lisp programming is all about macros, which don't even exist in any serious way in any other language (C macros are a joke in comparison; read On Lisp by Paul Graham for good reasons why). Your usual functional programming suspects -- Haskell, ML, etc -- as well as hard-core OO languages eschew most uses of the control operators you list in general.

      --
      -jacob
    5. Re:that's what I said .. by josepha48 · · Score: 2
      scheme does not call them for/next and while/do, it calls them "loop". The principal of looping in scheme is still present just under another name. Assembly also has loops, I believe they are called jumps. I think any language that did not have some way of looping would be pretty worthless. Any programmer knows that there are often times when data needs to be iterated through.

      As far as records / structures. I find that hard to believe that there is no way to declare a record in scheme. Even pascal and basic can do records. A C/C++ structure is very similar to a record. Heck even vax Basic has records.

      I don't do to many C macros cause they are joke.

      The point I was trying to make is that no one language has encompased the best of all the languages with a easy to use gui as well.

      --

      Only 'flamers' flame!

    6. Re:that's what I said .. by jacobm · · Score: 2

      Scheme does not have any construct called "loop" defined in the standard, nor do any implementations I know of define one. R5RS (the scheme standard) does specify that scheme implementations should define in their standard libraries (!) two iteration constructs, one called "do" and the other a variant of "let" (in practice often called "let loop," which might be what you're thinking of). The standard explicitly says that these should be in the library, not primitive Scheme syntax. In practice, neither iteration construct is used all that often by experienced Schemers (I've been programming in Scheme for 5 years and I actually didn't know about the "do" macro until I looked it up just now).

      So you might be wondering: How the heck do experienced Schemers loop over things if they don't use those loop constructs? And anyway, how are they implemented in the library if there are no more primitive loop constructs around?

      The answer is recursion -- functions that call themselves. Scheme is all about recursion; the specification even forces implementations to make certain efficiency guarantees about it so that Schemers can recur to their hearts' content without incurring runtime penalties over looping. For instance, in C, you'd probably count the size of a list like so:


      int list_size(List* l) {
      int count = 0;
      while (l != NULL) {
      count++;
      l = l->next;
      }
      return count;
      }


      In scheme, you could define it the same way:

      (define (list-count lst)
      (let ((count 0))
      (let loop ((r lst))
      (if (null? lst)
      count
      (begin
      (set! count (add1 count))
      (loop (cdr r)))))))


      ... but that would be awful scheme. More advanced schemers would write

      (define (list-count lst)
      (cond
      ((null? lst) 0)
      (else (add1 (list-count (cdr lst))))))


      or even:

      (define (list-count lst) (foldr add1 0 lst))

      So, you might be thinking: 'That's nice. So it's just a funny way of saying "for" that I don't understand very well and doesn't seem to have any advantages.' A lot of people have that impression and get turned off to Scheme because of it. But it's not true: for one thing, see how much prettier my second Scheme definition is than my first? It's more compact, and once you get used to it, easier to write, read, and debug. Furthermore, it's more directly applicable to many programming situations, particularly when they involve complex data. Read all about it in How to Design Programs , an excellent introductory textbook on Scheme and programming.

      And nope, the Scheme standard defines no record or structure type. Look through the standard yourself, you won't find it there. This is in fact pretty frustrating to the Scheme community.

      As for assembly, first of all, remember that every processor has its own assembly language and they're not all the same. That said, jump is not the same as a loop. Jump means "go straight to some other point in my program and keep going," which is more general than loop (but can be used to implement loop).

      --
      -jacob
    7. Re:that's what I said .. by josepha48 · · Score: 2
      Hmm hen scheme is NOT a language that I'd choose to use if it does not define some type of record or structure, and neither is asm. I knew that they had a 'looping' construct, and had seen it as loop or let loop yes. I had also heard of the do to.

      I'm glad you like scheme, and know so much. not having records or something like that to me would make it a more primitive language than C or even pascal. If you read my initial post one of the requirements of my ideal language would include this construct. Since you have pointed out neither asm or scheme include these constructs then these are not going to be languages that I am going to move to.

      If I knew more about asemblers and creating new programming languages I'd write my own. I am considering working on the design of one though.

      --

      Only 'flamers' flame!

    8. Re:that's what I said .. by jacobm · · Score: 2

      Well, the scheme standard doesn't define a record type. Every usable Scheme implementation extends the standard with one, and they can in fact be defined with library functions in standard Scheme (based around vectors or lists, which are provided by the standard). But it does make scheme code less portable than it ought to be, because you're right, everybody wants to use structures for things.

      As for designing programming languages, I encourage you to design one for yourself. There are books on the subject -- you might want to see if you can find a library that has a copy of Essentials of Programming Languages, it'll introduce you to a lot of the decisions you'll need to make as well as giving you ideas for how to implement whatever you decide to do.

      --
      -jacob
  93. Re:What are YOU smoking by ethereal · · Score: 2, Insightful

    Well, until you write a different "dialect" of your language, like using Eiffel# instead of Eiffel - which is not really an improvement and not the vast world-changing development improvement that Microsoft said it would be.

    I wish I could find the previous /. or k5 story that had a link to this article, but basically someone did the math and discovered that the CLR only really supports certain kinds of language characteristics, and so eventually to use the full power of it you have to use a language that is essentially C# with different tokens. C# is the "common denominator", and other languages will need a C# compatibility layer of varying complexities, depending on their similarity to the concepts that make up C#.

    --

    Your right to not believe: Americans United for Separation of Church and

  94. Dude, AppleScript is where it's at by ktlyst · · Score: 1

    Delicious mix of procedural and object-orientedness expressed like smalltalk that can control most applications on the platform, now with Aqua UI. Course, it is slow, it is interpreted, but it's faster than doing it by hand.

    Do I get to be a developer? I've only been making programs for eight years, though.

  95. The real problem with languages today by iPaul · · Score: 2, Insightful

    The real problem with languages today are that they aren't created to solve a problem, they're created to make money. Languages used to be developed to make systems programming easier than doing it in assembler (C), or make logic programming easier for first order predicates (Prolog). VB.Net and Java are there to make money for their creators (Sun and Microsoft). They have a kitchen sink attitude with features and are targetted at applications developers with sometimes no formal training in Math or CS. They're not efficient, different or revolutionary. They're designed for what Sun and Microsoft think the IT market wants.

    --
    Leave the gun, take the cannoli -- Clemenza, The Godfather
  96. methinks you misread that by Preposterous+Coward · · Score: 3, Informative
    probably because it was shabbily written and edited... but what he's trying to say is that intrepreted languages had proven their advantage in most (ie, non-high-performance) apps, leaving just one niche (high-performance apps) for compiled languages.

    Whether this claim has any merit or not is left as an exercise to the reader.

    --

    "Biped! Good cranial development. Evidently considerable human ancestry."
  97. C++ finally getting good by Anonymous Coward · · Score: 1, Interesting
    Every pundit in the universe is proclaiming the end of that obsolete old C++. Meanwhile, C++ programmers are snickering into their hands, because the language has just recently developed some dramatic and unexpected capabilities.

    We're just now getting standards-compliant compilers, implementing the fancy stuff like partial template specialization. At the same time, people like Andrei Alexandrescu have just lately (past couple years) showed us what can be done with these capabilities. The combination of operator overloading, multiple inheritance, and fully-implemented templates lets you do some flat-out amazing things.

    To paraphrase Andrei's book: You have a meeting about this big app you've written. You decide Module X needs to be speeded up, so all the smart pointers should go unchecked. You change one line of code. You discover you need multithreading in module Y, and all the smart pointers need to handle multithreading and locking. You change one line of code...

    That's policy-based programming, which is just one of the techniques Andrei presents. Design your app right, and you can put off all sorts of architectural decisions until later, and change them whenever you want. And this flexibility costs you nothing at runtime.

  98. Obligatory Python post ;) by LM741N · · Score: 2

    What about Python?
    Python is not "like" any other language- it is an amalgamation of the best features of many languages.
    I program in Python because the language does not get in my way- of doing things. Later its easy to port Python apps to C, Fortran, whatever. The opposite route is pure hell.

  99. Diversity by gnovos · · Score: 5, Funny

    Replacing a position because some guy back in '83 decided to use the odd-ball programming language : $120k

    Maintaining 17 different operating system at once : $225k

    Answering calls from 200 end users with slightly different desktops : $57k

    Having your entire network, the networks of all your end users, and your entire array of backup systems turned into incomprehensible mush overnight due to an advanced virus that could easily target and replicate in your undiversified computer systems : Priceless

    --
    "Your superior intellect is no match for our puny weapons!"
    1. Re:Diversity by crgrace · · Score: 2

      (Btw, I am not suggesting that Windows is the very platform that should be standardized on. How many widespread virus out there have had that effect on Solaris?}

      Ever heard of rtm? Brought our SunOS network to its knees about 10 years ago.

    2. Re:Diversity by Anonymous Coward · · Score: 0

      RTM is ancient history in computer terms.

      The thing that the poster doesn't mention is that Solaris isn't very standard. At this level adding Solaris to your network adds diversity.

      There are not enough solaris boxes to act as carrier vectors for a solaris only worm.

    3. Re:Diversity by Manhattan+Project · · Score: 1

      The point is not that Windows is an unstable platform. The point is that a standardized network is at risk of common-mode failure. If all of your ethernet cards are the same, then an unpredicted common failure will affect a percentage of them based on the expected failure rate after discovering the failure. With two varieties, evenly distributed, you will only lose 1/2 of that percentage.

      Similarly, if you have standardized on one operating system, an attack that targets that operating system puts 100% of your machines at risk.

      An airplane often has redundant parts, not simply duplicated but built by different vendors with different supply chains, etc. This decreases the chance that the secondary device will fail exactly as the primary.

      When building a network, one should consider common-mode failures. I don't think it's considered in Gartner's TCO reports.

  100. Two Things by SimonK · · Score: 2

    I largely agree with you about Smalltalk. I often rant in a similar veign myself. I just want to present some things that have given Java (at least) something of an advantage:

    1. Memory usage. I know its somewhat spurious, but things like VisualWorks could get really huge. Squeak is better, and of course computers have largely caught up, but Java's one-application-per-process approach and dynamic class loading has arguably been more practical than the Smalltalk wopping great image file approach.

    2. Dynamic compilation. OK, it was invented for Self, which is arguably even neater than Smalltalk, but its finally found widespread use with Hotspot.

    3. Static typing. I'm unconvinced myelf, but a lot of people are very suspicious of dynamically typed languages, probably because they're confusing dynamically typed with weakly typed. However, it does help with static analysis - although of course 99% of Java environments don't do this.

    1. Re:Two Things by RevAaron · · Score: 2

      Having .class or .so files is very much so more practical for most people's situations. A monolithic Smalltalk image doesn't bother me, but I am used to Smalltalk. For a person coming from magical-60s land, where everyone lives in the past and still uses files, the way Smalltalk does this is pretty foreign.

      Yes, indeed, Self is/was quite the awesome project. It's a shame it had to turn into Java, rather than being in the position where Java is today.

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  101. My beloved Fortran! by TheMatt · · Score: 2

    Where is it?

    You know, real programmers code their apps in Fortran 95. Well, I suppose real programmers program in 66, or FORTRAN IV or something, but I'm young and I don't take to Hollerith. Fortran!

    --

    Fortran programmer...oh yeah. Array math for life!

  102. Ignorance by SimonK · · Score: 2

    There are huge numbers of major Java projects. You just haven't seem them because they are used internally by large corporations in "invisible" roles. Absence of evidence is not evidence of absence. I happen to have lots of evidence of presence.

  103. All developers aren't MS developers by RazzleDazzle · · Score: 1
    Yeah, i guess Zope written entirely in Python is just a complete waste of time. All those 30+ employees or so (mostly software engineers) need not bother anymore. Just a drop of water in the bucket compared to the great programming of VB.NET.

    I hate how corporations feel like they get to dictate when things as global as the internet need to change just because they want to. Let the people catch up to the langauges. I am just learning Perl, my first programming language, and MS already has 2 new languages that are supposed to be the norm for the Net.

    s/Microsoft/Greedy-Mongrosoft/g

    --
    ZERO ZERO ONE ZERO ONE ZERO ONE ONE! Just brushing up for my next big invention: Ethernet over Voice (EoV)
  104. WTF ? by SimonK · · Score: 2

    You could explain to anyone with a modicum of intelligence how C's pointers differ from object references in Java in about 10 minutes. Anyone with a CS degree will know about the memory model of computers well enough to understand.

    I don't know what planet you live on, but on mine "top coding jobs" rarely hire people on the basis on knowledge of awkward features of aging programming languages.

    1. Re:WTF ? by rufusdufus · · Score: 2

      Sadly, your first statement is apparently not so.

      My planet is a major software producer known as "Microsoft". Yours?

  105. Bad Example by pyrrho · · Score: 1

    >In fact, if one were to look at computer science departments across the country, you'd see that Java has replaced C++.

    Too bad they don't define the standard languages... PASCAL anyone?

    This guy had no idea what is going on in languages. IMNSHO.

    --

    -pyrrho

  106. 25 years from now... by cperciva · · Score: 2

    I don't know what language we're going to be using 25 years from now, but it's going to be called FORTRAN.

    (sorry, someone had to say it.)

  107. The Problem of Developing... by Anonymous Coward · · Score: 0

    That's the prequel to the movie "The Unbearable Lightness of Being", right?

    Help me out here, c'mon.

    Thanks.

  108. Problem with programming languages today by Steveftoth · · Score: 2

    Is that they really don't improve programmer efficiency over the languages made yesterday.
    Java is not much better then C, C# and Java are very much the same. VB, well VB doesn't make it easier to program. All these languages suffer from the same problems.
    It's still very easy too.
    Write unmaintainable code.
    Write APIs that make no sence.
    Write insecure code.
    Write code that nobody else can use.

    And too hard to write code that is..
    backwards compatable
    self-documenting
    easy to read
    self organizing

    Without good programmers it doesn't matter which language you are using, as all of them suffer from the same faults. Where are the totaly visual languages, LabView anyone? Not as good as it could be, but it's a start.
    Why are all new languages text-based? None use color (does color fourth count?). Python uses whitespace as a way to imply function (a good thing). With 17" COLOR monitors being the minimum that a new or year old computer has as it's display you would think that us developers could devise a language that allows us to express to ourselves as well as it expresses to the computer.

    1. Re:Problem with programming languages today by tomhudson · · Score: 0
      vim does all my syntax hilighting, in c, php, whatever. That's enough color for me.

    2. Re:Problem with programming languages today by Steveftoth · · Score: 2

      yeah, but I think that it would be faster if instead of highlighting words on the screen , it actually made it part of the language.
      Like instead of using brackets to represent a scope block, it would instead be a green rectangle. and anything in the rectangle would be in scope.

  109. Managed vs Unmanaged C++ by SimonK · · Score: 2

    You can write unmanaged C++ and target the CLR, in the sense that the compiler will generated CIL, and a CLR-compliant execution environment will be able to run it. What you cannot do is have the CLR understand your C++ classes and objects as classes and objects, because the CTS object systems only supports single implementation inheritance, uses a garbage collector and so on. To shoehorn C++ classes into the CTS object model you have to use managed C++ (which is really gross lookinng).

    In order to interoperate with other CLR languages you need to comply with the CLS as well. This limits the use of various things. I think it is at this level that you lose templates.

  110. Re: The Problem of Developing by Anonymous Coward · · Score: 0

    This editorial shows how completely out of touch zdnet has become. EVERY project I've done for my CS degree has been in C or C++. I've NEVER had a class that used Java for ANYTHING. And I'm at a very major engineering university. VB and VB.NET my ass.

  111. Object orientated or sequential is the key issue. by Saggi · · Score: 2, Insightful

    Someone who doesn't know much about the deep technical levels of programming has been writing this article or he is attempting to aim the article at a non-technical audience.

    First many will note the lack of many common programming languages. As an example, have I seen quite huge programs made in Perl.

    In my experience (by now I know more than 15 programming languages and shift between them depending on assignment or task) I have only found two major categories of programming languages. Sequential (C, Perl etc...) and Object orientated (Java, C++ etc...). When you know 2-3 languages in each of these categories it becomes more a question about knowing the syntax and knowledge of the language supporting procedures (or libraries if you prefer).

    Today the OO languages become more and more commonly accepted as best practice. I believe that's why Microsoft goes the OO way with their .NET initiative. The rest moves toward Java. In the company I work we have productions on both platforms. We don't have the focus on the name of the language anymore. For us its much more important to make the correct architectural design of the system as a whole, and this require skills in IT architecture (especially OOA). In that sense I agree with the article, when it says the choice of language is not the key issue.

    Some of the solutions I have been involved in I have found some algorithms to be more effective to optimise when using a sequential language. Especially when you have to work on long arrays of data or the amount of objects that interfere with each other increase dramatically. (I have seen this in some chemistry and physical models.) It is therefore not easy to conclude anything in general, but choices have to be made case-by-case.

    Other things to consider are the computer on a hardware level. A CPU typically runs programs sequential order. Those working with assembler know this. (Of cause some may be working with parallel computing and multi processors, but that's an entire story of its own...)

    --
    -:) Oh no - not again.
    www.rednebula.com
  112. some stats by GutterBunny · · Score: 1

    Sometimes you have to look at the content of the message to determine its validity.

    Here are some stats:
    Article paragraphs 16
    Words 2257
    Lines who cares

    Is it even remotely possible to make a detailed, technological, informative argument comparing the costs-benefits of all the different programming language and runtimes available in 2257 words.

    I think not.

    --
    managers...why god invented purgatory
  113. Diversity in the Help Wanteds is Declining by Anonymous Coward · · Score: 0
    As an old guy looking for work, I've been watching the help wanteds for some long time. This is what I see in the ads in my region:

    Java is way up, but recently .net is getting some of its share. VB is down over the past two years. C/C++ is down but holding on, expecially for embedded applications. Delphi never was big, but it is hanging in there ok. Cobol is way down, about equal to Delphi now for advertised positions around here. SAS is also small but strong. Demand for Perl and Powerbuilder are shrinking fast. Python was a little blip a year or three back, but it has just about vanished. All the other favorite languages are very rarely advertised for anywhere I can see here. Demand is nearly nil for all the functional and constraint languages, also for Smalltalk and Tcl (which were very hot five or six years ago), also for awk, Eiffel, Modula, Ada; I've got three hard drives full of worthless software, and no income to get updated with.

    1. Re:Diversity in the Help Wanteds is Declining by iPaul · · Score: 2, Insightful

      Unfotunately these adds aren't written by rocket scientists. Someone in HR writes up an add and runs it by a manager in IT. The manager says, Java's good, SQL is good, .Net is good (manager doesn't really know what it is but it's on the cover of Infoweek), and probably should have some Windows, Solaris, Unix, VB. So, the final add comes out "Java, SQL, Oracle, VB.Net, .Net, Windows, Solaris, Unix, VB". What they actually needed was a guy to install Windows, install Office, write some VBA, and handle their exchange server.

      --
      Leave the gun, take the cannoli -- Clemenza, The Godfather
    2. Re:Diversity in the Help Wanteds is Declining by The+Cat · · Score: 2

      I think this describes about 90% of the problems in the "IT Industry." It doesn't get any better after someone gets hired either.

  114. Java - Write Only by DrCode · · Score: 2

    Good analysis. I find writing in Java to be a very pleasant experience. But when I'm searching for a utility on Freshmeat, the Java programs don't get even a glance. I'll always prefer programs that are faster and smaller to those that are slow and bloated.

    1. Re:Java - Write Only by Anonymous Coward · · Score: 0

      Java is very readable.

      It has an actuall standard library which c and c++ lack. Also there is no pointer wierdness.

      Java programs tend to get written in reasonable sized files instead of huge c/c++ files.

      Perl is unreadable. There are too many things to know before you can understand someone elses code. There is too much punctuation. (Perl is fun to write though)

      VB is unreadable. There is too much crap hidden in little menus and you can't sort through it in any reasonable way.

      Cobol programmers use too many capital letters.

  115. COBOL and Fortran running rampant!!! by anonymous_wombat · · Score: 1

    Of course marketing types will always write articles like this, and the definition of "using" a language is dependent on how many tools you buy.
    There are lots of people out there maintaining COBOL and Fortran.
    There are lots of C programmers using vi who don't show up in marketing research reports because they aren't buying the latest tools, and are just busy writing code.
    There are lots of people working in C++, because while Java provides a lot of nice features, power is nice too, and it is easy getting used to templates, operator overloading, inline methods, etc, etc, etc.
    Java is nice (it is what I have used for the last few years), and is a good general purpose programming language, after you get over not having destructors, etc, etc, etc.
    There are lots of oddballs out there using Objective C, Smalltalk, Lisp, Prolog, etc, etc, etc. My first professional programming job involved using Commodore 64 BASIC. It was perfect for our application, and at $120 a shot, it was by far the cheapest solution.
    There will always be a diversity of programming languages, especially with middleware like CORBA and XML to allow old code to communicate with newer code.

    1. Re:COBOL and Fortran running rampant!!! by elhakimz · · Score: 1

      COBOL is still being used by enterprise legacy apps, especially for IBM mainframes which there are too many budget spent on the machine itself

  116. I don't trust him by Anonymous Coward · · Score: 0
    Matt Liotta has been a software architect for several start-ups in San Francisco and Atlanta. He is now an independent consultant and speaker at industry conferences.

    When did /. geeks start taking programming language advice from fashon models? Did you see that smarmy, blow-dried GQ-ish picture?!? Swoon, ladies!

  117. What universe does he live in? by SIGFPE · · Score: 1, Flamebait
    I've been programming for years. So have the people around me. Most have never written a line of Java (I've written about 20 and one of my colleagues has written a Java VM - that's about it.). Certainly none have written a line of C# or VB.NET. If I ask anyone here what .NET is they give me blank stares.


    What language is the Java VM written in? What about the C# compiler? What about the network drivers that .NET require (does it require network drivers? I'm not sure what it is.)? What about the languages used to write the OS these things run on? What about the 2D drivers that display the GUIs they undoubtedly use. What about the file systems they use?


    Maybe weenies will be using Visual JavaBaby#.NET in years to come but the people who write the 90% of the iceberg journalists don't see will be using real programming languages.

    --
    -- SIGFPE
  118. WTF is this guy talking about? by sethamin · · Score: 1

    Mr. Software Architect in this article clearly doesn't ever touch programming languages. I do hope we can all at least agree that he has no business writing about the evolution of development tools.

  119. If this guy is right THANK GOD! by volcanic_god · · Score: 2, Interesting

    Hell, I am tired of arguing over what language to use to do simple applications, and most applications are pretty simple. Don't believe me? Then consider the poliferation of applications that are written in VB.

    I take the "if it feels good do it" approach to programming. If you like the language and feel productive with it, then, hell, use it.

    I like writting apps that do things, not learning new languages or arguing what language it better.

  120. Over Simplifying by arn@lesto · · Score: 2, Interesting

    The author has over simplified multiple things in his article. Every simplification has enabled him to claim things that on the surface seem reasonable but in practice are false. To further increase the noise he has a lot of his 'facts' and 'assumptions' incorrect.

    1) "J2EE and .Net--will essentially control the programming languages market"

    How does he define the programming languages market? There are more people employed writing "vertical applications". Their choice of language and libraries is typically dictated by legacy: fortran, cobol, lisp, C, pascal, etc. What about embedded systems: assembly language, C, C++, Forth. High performance computing using vectors and parallel algorithms have a whole set of specialized languages.

    2) "Still, it is an amazing achievement to be able to support different languages on the same runtime, right? I certainly think it is, but others would disagree."

    Where has this guy been? By the early 1980s there were compilers for Pascal, C and Fortran that compiled to P-code (a common runtime) and were either compiled to native machine code or ran in an interpreter. Not a new concept. It is just that people are ready to accept the cost today.

    3) discussion of what is the natural descendant of C++.

    Who really cares? Once you've chosen a language to write in, it doesn't matter how it came to be. It supports a set of programming constructs and has a number of libraries available for use (that may support the type of program you are writing). The evolution of the language is completely irrelevant.

    Language designers are very aware of other languages (more so than Liotta) and will borrow/steal ideas and syntax that they like. The language is designed with a particular purpose in mind. There are literally hundreds of domain specific languages that work better than C#, Java, VB for their intended task. They may be similar to another language, or use similar constructs but they are not the same.

    4) "With .Net, there is only a single runtime (functionality), but different language syntaxes (look and feel) can make use of it."

    There has always been a single runtime, the machine code. It hasn't prevented languages from having different semantics from one another. .Net and JVM won't prevent it either. The syntax of a language is almost accidental from the point of view of the language designer.

    I could keep going but I'm also over simplifying so I'll stop.

    --
    - AndrewN
  121. Re:WHY: The article is simplistic... by Cyno · · Score: 1


    Is that where J2EE comes in? I don't know that much about java. But I heard somewhere that .NET and the like will have some major problems with the EPIC architecture in the Itanium. EPIC is supposed to be some explicitly parallel instruction semantics that are going to revolutionize computing, blah, blah, blah. Anyway I heard .NET's JIT compilers aren't parallel enough to take advantage of these systems and will have some problems changing inherent to the API or something. I don't know, I'm just a sys admin. But if that's true then maybe both IA64 and .NET will be too slow to beat AMD and Linux.

  122. Doesn't everything nowadays just look like C? by Rocko+Bonaparte · · Score: 1

    Disregarding ZDNet's best efforts of attracting attention to themselves, this brings up a subtle point -- possibly alarming to those bonafide "computer scientists" out there. Unfortunately, this will be somewhat off-topic, but it reminds me of current programming method. It has been my experience that the popular languages follow a familiar syntax: function foo { do { weeeeeeee(); } } This describes things like Perl, C, C++, Java, JavaScript, ... you get the idea. How many people do you know that write in any language as if it were C? There should be some nods out there. C is procedural, of course, and came from a bygone era where a console was the hip new thing. Unfortunately, people still seem stuck in these times. Object-oriented programming, is a technique, not a language. Some people have picked up on this and relish in object-oriented design, milking it like a cash cow. Others have taken it about this far: function foo() { do { IhateOOP->weeeeeee(); } } Some people, no matter what one does, will take the newest thing and try their darndest to change the smallest amount while learning it. In the process, they disregard any new methodology these newer languages could provide. At this point, I would like to make some people here scream by mentioning... LISP. Remember this thing? Did you have to program under one of its cousins in college, like Scheme? It's a nifty language, with some powerful stuff. In between all the brain damage of recursive, paranthetical expressions, there is some important lessons in programming in there. I feel people forgot the big picture here. They can make these C-like languages do anything, if they hack at it enough. That includes GUI programming. So what if it gets the job done. Does it have a level of elegance? There is plenty of disgusting GUI code out there. Programmers shrug and accept it as a way of life. But who is trying to innovate and create the language of the future? We need to step back, and think about everything we really want to do. Then we need to ask ourselves if the languages we have right now do it best. I believe they don't. And worse yet, they don't try. The newest thing is just another extension on C. In some ways, Perl is C++++++, but it still has that C in there. It changes the words around, but the grammar is the same. And I'm betting the grammar is restricting the way we innovate in our software.

    --
    No I'm not trolling.
  123. What about K? by Jayson · · Score: 4, Interesting
    I agree that most language are the same C derived POS. C was different and inventive when it was created. Lisp, APL, Prolog, and Smalltalk were all different when they were created. It seems like as time went on we started narrowing our field of vision and implementing the same languages: C to C++ to Java, what kind of intereting steps are those? At least Smalltalk to Self was a very interesting pushing of the boundries. Today, almost nobody pushes anything, except how similar their langauge is to C and why that it good. Even Python and Perl don't attempt to explore any new concepts, they are happy being a Frankenstein of older languages that people seemed to have forgetten about; name three new features of either language, just try to name one!

    My sole exception to this is a language called K. Yes, it has its roots in APL and has added to the APL model from languages such as Lisp and Scheme, but it has some very interesting new features of its own.

    K is very very very fast to write and the run. It blazes in both categories. There is a full relational database that is written in K, called KDB. It crushed Oracle on the TPC-B and TPC-D benchmarks in both speed and storage size, requiring only a few percent above the dataset size in overhead. It has native clustering and replication that allowed it to run on a 50 cpu Linux cluster loaded with 2.5 billion stock trades and quotes and have simple table scans (such as, select max price from trade) take under a second and multi-dimensional aggregations (such as, 100 first desc select sum size*price by sym from trade) take only 10 seconds. Starting the database cluster took a tenth of a second. It is SQL92 compliant, has an extended ultra-powerful query language called KSQL that makes writing queries very simple, and the stored procedure languages are K and C.

    In bwk's language benchmarks, even though this is not the K strong point, the sum of the execution times were: K at 32 seconds, Perl at 95, Java at 300, and TCL above 1400. The lines of code to implement were: K at 9 lines, awk at 95, Perl at 96, TCL at 105, Scheme at 170, VB at 200, and Java at 350.

    Yes, K can look like line noise, but unlike Perl, you get alot from this. First you get extreme code density and see the entire problem on the screen at once. I came from a Scheme background and Perl hurt my eyes, so I was very skeptical, but after my roommate persuaded me to look at K harder, I realized that this high code density made it very easy debug and write code. It is rumored that KDB is written in 26 files of code, each file consisting of a single screen of code, labeled a to z. Try doing that in any other language. The language is exceptionally regular. It is so logical and consistent that it takes a little getting used to. You never have to remember any baroque language rules. Anything that makes sense, you can do. Also, even though it looks difficult, it is extremely easy to learn because K is directly translatable to English, in fact there is a K program that will do this automatically. For example to split a line by tabs you could write:
    cut:{1_'(&x=*x)_ x:"\t",x}
    And this is read:
    cut gets function, 1 drop each, where x equals first x quantity, cut x. When X gets tab join x.
    It may take a little getting used to, but with a month of K, my roommate and I were able to converse this way when describing K and you could see the picture developing in your head. It was amazing.

    A unique feature of K is what is called the K tree. Unification is a very strong idea in K, so it unifies the idea of object, variables, attributes, namespaces, and dictionaries. A dictionary is a native K type. Each variable lives in a dictionary (somwhat like Python). These dictionaries are joined hierarchically and can be removed and added dynamically. All variables are on the K tree, too, so a new namespace is really just a dictionary on the K tree! This means that you can rearrange the K tree and change what functions get called. This is the most reflective language that I have ever seen (Python, Scheme, and CLisp come in a very close behind). All variables have attributes. All attributes are is a special dictionary attached to the variables (the language is so regular that this is really a namespace with a blank name so to refer to the attributes of a variable you say ns.var..attrib). And, of course, each attribute is just a variable so each of those can have attributes, too.

    This interesting K tree leads to a very elegant GUI. Each variable can have an attribute named c (for class), and this can have certain values like `table, `check, `radio, `button, and others (the backtick ` is how you make a symbol). Lets take radio for an example. Then you would have another attribute o (for option) with possible values:
    r..o:`zero`one`two`three`four
    r:r..o[1]
    r..c:`radio
    `show$`r
    These four lines would create a radio box with five choices, zero through four, and everytime you evaluated r whatever the radio was set to, r would evaluate to. Basically, each variable has a direct on-screen representation (they default to `data) and is directly manipulable.

    K also has the ideas of dependencies and triggers in the language, so if a..d:"1+b" then refering to a will dynamically calculate 1+b, but only when necessary (if you refer to a multiple times but b does not change between those references, a will only be calculated once and stored; K figures out the dependency graph for you). There are also triggers. If b..t:"a:b-1" then whenever b is assigned or modified then a will get the appropriate value. This trigger can be anything, such as a network operation or a gui command.

    The language has some other unique features like an interesting callback oriented interprocess communication system and an on-the-fly optimizing vm.

    Of course since it inherits some background from APL it has bulk operators, called adverbs, that modify functions in every conceivable way (much more powerful than APL or Perl). One of the signs of a good K programmer is one who knows how to do this and doesn't use any loops (KDB, the relational database, is written without any loops).

    From functional languages K inherits higher-level functions and projections. Both which are very standard practices especially when combined with the bulk operators. b f[a;;c;]'d takes the four argument function f, fixes the first and third arguments projecting a function of two arguments, then applies it to each down the list of argument in b and d.

    When you use K you truly are standing on the shoulders of giants. The person who wrote it, Arthur Whitney, has this amazing ability to identify the important pieces of a problem and simplify away the rest. The performance in K and KDB is incredibly; the simplicity and power of the language and the database is incredibly.

    K runs on various flavors of Unix and NT, so people should take an open mind (I didn't have one at first and was very skeptical) and really try the language and try a new style of programming. Your code and thoughts on developing will never be the same.

    -j
    1. Re:What about K? by Anonymous Coward · · Score: 0

      OK, I want to try K... where do I get it from?

      I can't figure out how to get it from the kx site... Searching on google for 'K' isn't exactly going to be useful.

      What license is it released under? GPL, BSD, non-free, or what?

      ???

    2. Re:What about K? by Anonymous Coward · · Score: 0

      OK, I found the download link.

      K is not free... Why invent a language that will never get used? Don't they make money by selling the database? I don't get it.

    3. Re:What about K? by muchandr · · Score: 1

      It should be possible to translate Scheme to K code 1-to-1, but there is usually a better way
      to do it in K that is not entirely obvious. If you entire code is so short that you can have the whole thing in front of your eyes, you can really
      get a lot of optimizing the code on global scale - it is kind of similar to how the hardware guys look for a logic function that just happens to produce the same result as the required gate. kdb tends to SHRINK with subsequent releases, as it adds features. You can think of K conceptually as a sort-of-Scheme that is based on a triple

      (hashvalue, value, next) instead of a usual
      double (first, next) Unlike any LISP I am aware about, there are a lot of features oriented towards system programming specifically and the performance is exemplary - it takes very non-trivial COMPILED C code to beat INTERPRETED K, especially on large datasets.

      kx never had any official TPC scores for kdb submitted, (lots of work for such a small company) but the issue of performance vs. Oracle or even research IN-MEMORY databases such as Blitz is not even funny. I did millions of transactions per second to a STANDARD IDE DRIVE (using a custom transaction reordering scheme and multidimensional bulk transactions. You can't do either in Oracle) Fundamentally, the performance of kdb is gated solely by the throughput of hardrive or network controller (whichever one is smaller)

      At some point, the 'line noise' is worth it.
      Would you rather have a line of noise than 10
      'readable' lines? What about 100? 1000? There is a break-even point somewhere. I had 4! lines of K and KSQL replacing 2.5K lines of Java. (132-wide lines, not 80, mind you) It is just amazing how little fluff K has. Take this example:

      convert seconds to hours, min, sec format:

      24 60 60 _vs numseconds

      convert IP address to octets:

      4#8 _vs ipaddress

      Same function ('vector to scalar', basically a conversion to variable radix) is used for both and it is a function that is part of the language and is used all over the place. Pretty much elsewhere, both tasks would have you use completely different calls into some sort of standard library. Result - code bloat.

      K is the most elite language out there, bar none, IMHO. Check it out.

    4. Re:What about K? by Anonymous Coward · · Score: 0

      Does K compile itself, or do they actually use C to compile the K compiler? If they use C, then I can't see that it would be any faster than C, and probably slower. Of course, there is no way to tell because they don't give you source code.

    5. Re:What about K? by muchandr · · Score: 1

      It is released in binary, free for non-commercial use:



      Arthur told me that he will open-source it, if there is sufficient interest. It is not very difficult to obtain the source from kx for your private use right now.

    6. Re:What about K? by muchandr · · Score: 1

      K is mostly written in itself and you can freely examine that code from inside the environment. There is a C part to it, but I am not sure you'll be able to make any sense out of it if you are not used to APL-like code density. To put it simply, the C part of K is written in K implemented in C macro language. This was generative programming way before it was officially invented. To get a taste of what I am talking about, look at the source of A+ at

      http://www.aplusdev.org/

      (A+ is a precursor language to K, that Arthur wrote at Morgan Stanley. It is a lot more APL-like than K)

      K has been known to beat carefully written C code on a few ocassions and here are some possible explanation (It is weird, considering that K is itself written in C)

      a) K uses bulk allocation. The smallest memory unit it uses is a VM page. To achieve the same result with C, you will have to hoist all your mallocs to the upmost level and do all your own memory allocation - this is not a very common thing you see.

      b) A lot of C code uses stdio here and there. K's native I/O mechanism is memmap (This is another reason why the Bell labs benchmark rubs K the wrong way - it uses stdio (and loops like Jason said before))

      c) Do not underestimate the power of lambda/delayed eval combined with JIT compiler. For example, it is possible for the K runtime to detect an inverse function to a given function and drop both before evaluation.

      d) K tends to produce code that is nearly branchless, eq not a single explicit loop in the whole of kdb! This is very nice on your memory subsystem. In general, kdb's got to be world's only IN-CACHE db (at 150K, the whole thing tends to stay cache resident at all time. I checked -
      the code had virtually no trace. The data trace is extremely linear due to the embracing of inherent temporal ordering in relational data. This is very unusual - for example Oracle is all over memory and routinely trashes 4MB caches. How is that for a paradigm shift if I tell you that relational databases are actually among the most vectorizable/paralleralizable codes out there?!? They ran the wrong software on those Crays...

    7. Re:What about K? by Anonymous Coward · · Score: 0

      I did a little test. I tried Ackermann's function from the bell.k proggy.

      \t {:[~x;y+1;~y;_f[x-1;1];_f[x-1;_f[x;y-1]]]}[3;7]

      Output: 1451

      OK, but the result is wrong (?). Should be 1021 (?).

      If I try [3;9] it explodes. Stack overflow I guess.

      It's also very much slower than Ackermann's written in C.

    8. Re:What about K? by Anonymous Coward · · Score: 0

      Sorry, I didn't know what the \t was. It produces the correct result of 1021.

      It is noticably slower than the same thing in C though.

    9. Re:What about K? by Anonymous Coward · · Score: 0

      Try this

      Tack:{[m;n]
      :[t[m;n]; t[m;n]
      ~m; :t[m;n]:n+1
      ~n; :t[m;n]:_f[m-1;1]
      :t[m;n]:_f[m-1;_f[m;n-1]]]}
      t:4#,222222#0
      Tack[3 ]9

      -gheil

    10. Re:What about K? by Anonymous Coward · · Score: 0

      I don't understand what that does, but it is pretty fast (can't do values above 9 though).

      I assume that a C program could be written using the same approach and it would still be faster.

      C is the Swiss Army Knife of programming languages, it is portable and can do anything. I mean, other languages are written in C. Not to say that C is prefect, but if you need higher level functionaly, you can add it if you want, or work at the low level. It does everything and is as fast as you can get without going to machine code (which is not very portable BTW).

    11. Re:What about K? by Anonymous Coward · · Score: 0

      >I don't understand what that does, but it is pretty fast (can't do values above 9 though).

      It simply archives values so they need not be recomputed.

      Tack[3]10
      8189

      On a 400 MB machine running a K research license it overflows stack at (3;11). The free license has a limitation on memory usage (100MB) and should poop out earlier.

      >I assume that a C program could be written using the same approach and it would still be faster.

      Tack was written within an hour of when the problem (stack overflow) was presented - look through the k@listbox archives under "stack error" and "[Fwd: More interesting challenge (was Re: Challenge problem)]".

      i would be interested in a C program which actually was faster though, however long that took you. Life is too short for me to try. Anyway machines are much better C programmers than i am, and they are dirt cheap with no need for medical benefits. C is far too cumbersome for my pocket, i am happy to carry the Swiss bankers K'nife (AND a real Swiss Army Knife:) though.

      -gheil

    12. Re:What about K? by Anonymous Coward · · Score: 0

      What??? Ah, I sense some anti-C sentiment. I'll write up a quick C version.

      This took 10 minutes (no kidding) to write a memoizing version in C. This can calculate Ack(3,16)=524285 instantaneously on my 800 Mhz PC. Of course it has the same problem of using a crap-load of memory, but it is unbelievably (!) fast. And simple too. BTW, this C version only uses 40 MB of memory.

      #include
      #include
      #include

      int val[4][1000000];

      int Ack(int M, int N)
      {
      if (val[M][N]) return(val[M][N]);
      if (!M) { val[M][N] = N+1; return(val[M][N]); }
      if (!N) { val[M][N] = Ack(M-1, 1); return(val[M][N]); }
      return((val[M][N] = Ack(M-1, Ack(M,N-1))));
      }

      int main(int argc, char *argv[])
      {
      int n = ((argc == 2) ? atoi(argv[1]) : 1);

      printf("Ack(3,%d): %d\n", n, Ack(3, n));
      return(0);
      }

    13. Re:What about K? by Anonymous Coward · · Score: 0

      Oops, the includes got wacked.

      You need to include stdio.h

      And the val definition got chopped, it should read:

      int val[4][10000000];

    14. Re:What about K? by Anonymous Coward · · Score: 0

      It slices, it dices, it has a razor sharp edge that never dulls.

      There is only one, and it is C.

  124. Comment removed by account_deleted · · Score: 2

    Comment removed based on user account deletion

  125. Which developers? by rusti999 · · Score: 1

    Obviously, the article generalizes on the word "developer", which the author means to be enterprise developers. On the other side of the spectrum, I don't see embedded system developers using C# or VB.Net in the near future.

  126. Choice...? by zephyrfalcon · · Score: 1

    If you think that VB, C#, C++ and Java are the only languages around, then they all indeed look the same, I guess...

  127. WAKE UP! by gibara · · Score: 1

    I'm staggered by the levels absurdity the topic of CLR's polylingual capabilities generates in the Slashdot readership, I'm pulling extracts from various comments here to illustrate my points:

    WildBeast wrote: Like Python, Perl, Ada, Eiffel, VB, C#, Cobol, etc.? I don't look at them as skins

    I say: The authors analogy is actually excellent. The languages of C# provide nothing more than a semantic gloss over the entrenched runtime characteristics.

    nebaz wrote: Hello? How is [skinning] different than compiled languages?

    I say: The target language of compilation for such languages is typically assembly/machine code. Thus compiled languages can have no better performance than assembly language allows (obviously). In general it is obvious that no language can perform better than the language into which it is compiled. Thus languages for the CLR can perform no better IN ANY RESPECT than the equivalent C# (which has 1-1 correspondance with the CLR feature set).

    mestar wrote: You guys are missing the most important point: there is only one API to program against.

    I say: How can there be one API? How can an API for a functional language, such as Haskell, which makes use of closures, monads, higher level functions etc. _possibly_ be represented within the CLR framework without becoming utterly bastardized.

    jovlinger wrote: So you see, having several languages implemented for one back end, so that I can write my lexing routines in PERL, write my AST construction routines in Java, and my compiler in Scheme, ammounts basically to choosing the right tool for the job.

    I say: Doesn't this make the fallacy obvious to you? This would imply that the lexing routines of PERL.Net could be no better those implemented in Java!

    bentini wrote: Just because I can run LISP and C on the same [runtime] doesn't mean that they're similar. ... Of course you can have the same underlying structure, you can have different underlying structures too.

    I say: No you cannot have different structures, this is why the advantages touted for the CLR are such gross distortions of the truth. Essentially your LISP.Net language is an implementation of LISP in C#. Thus it will share all of the performance characteristics of the C# language. For example, the CLR unifies all primitive types (as does Java) in a way which is inevitably inadequate for some languages. How can those languages (LISP included) be said to be fully supported by a runtimes which cannot even handle their primitive types?

    Finally, the Doctor Dobbs artical which Reality Master 101 quotes (http://research.microsoft.com/~emeijer/Papers/Mon drianDDJ.pdf) offers a lovely sleight of hand where the memory resources for a C# implementation of the sieve of Eratosthenes using a growable array are traded for a Mondrian implementation which uses infinite lists (ala Haskell) via recursion which uses up unquantifiable volumes of stack space. The author's tone is suggestive of, though he does does not state explicitly that, Mondrians solution is not possible in C# or VB.Net.

    Believe it or not I actually have very little against the CLR. It's the purported (and preposterous) claim of it's language independence which really irks me.

    --
    Programmers of the world unite, you have nothing to lose but your strings.
  128. All languages are wonderful by Anonymous Coward · · Score: 0
    Well, I'm currently earning a pleasant living with C/C++/Assembly in the games industry. I have not coded C#, but I have coded Java (for three years), and can conclude that all programming languages are excellent for the problems they were designed to solve.

    The more programming languages, the more problems can be solved in an elegant manner. Long may new languages appear!

  129. What about Pascal? by Slime-dogg · · Score: 1

    The dude totally left out Delphi, which is used by more than a few places... (It's huge in Eastern Europe.)

    Borland's got a nice product, and OO pascal has it's virtues.

    --
    You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.
  130. do you realize the world you live in? by Stu+Charlton · · Score: 2, Insightful

    "VB.Net is completely useless for the majority of software being developed"

    The majority of *programmers* are VB programmers according to the last 4 years of programmer surveys by Giga and Gartner. COBOL is 2nd, C++ is 3rd. Java is trailing in 4th.

    VB creates the most software out there: those hidden custom applications that you never see that run the backoffices of your banks, utilities, and insurance companies. It's changing, there's a lot more Java out there than before, and a lot more web based stuff, but this is just reality once you move beyond the ISV world.

    The author of this article is looking at the aggregate software community which is primarily made up of business developers.... C programmers aren't the majority of these.

    --
    -Stu
    1. Re:do you realize the world you live in? by Pfhreakaz0id · · Score: 2

      No, they don't. Here's a further clue:

      Most desktop computer (not embedded systems) programmers work for a business, for profit company whose profits derive from selling something besides software, or anything computer related. Of those, most development is done in VB. People working for sofware comanies/universities/ISP's are the small minority of developers.

  131. m'kay by n1k0 · · Score: 1

    The idea of adopting a single platform or programming language for all programming needs isn't just naive, its dangerous and stupid. Do languages not simply expose the features of the platform they operate on? Isn't it a bit superficial to choose the language that you like to program in over the language that would best solve the engineering problem at hand?

    Its okay to be superficial about language when you're writing end-user applications, but when you've got real engineering problems to solve, language is about the last thing you care about. Performance, portability, and planning should make the decisions, not the ease with which you can program in a particular language.

    For example, it doesn't really matter which language I write a word processor, IM client, or file-sharing client in, but a high-performance web server, 3D rendering engine, statistical analysis engine, or RDMS have specific needs that modern RAD languages don't accomodate.

    Programmers and software engineers are turning out to be two very different breeds.

    niko

  132. Everything looks the same when you are blind. by Jagasian · · Score: 2

    Python, Haskell, Clean, Mozart-Oz, Mercury, etc... all the same? Only to the blind. Open your eyes, open your mind.

    Most "real" hackers, coders, developers, computer scientists, etc... love programming for programming's sake. I suggest that if you are one of these "real" types, you spend a weekend programming in Mercury, another programming in Haskell, another in Python. Each time think up a project that could be done in around 16 hours of time, and code it using a certain paradigm: functional, procedural, object-oriented, declarative, etc... Trust me, it will open your eyes to the many different ways to accomplish the same thing. For certain tasks some things are better than others.

  133. Not only embedded... by chennes · · Score: 1

    Not only is he missing the embedded market, he is missing the scientific computing market - even C/C++ isn't used that often to do things like computational fluid dynamics, etc. In fields that rely on heavy number-crunching, Fortran is still the language of choice (whether by tradition or actual performance benefits is still unclear!). And believe me, there are still many, many people coding away in these fields.

    1. Re:Not only embedded... by Anonymous Coward · · Score: 0

      "New" Fortran ( HPF, F95, etc.) has explicit control of parrallelisation, so yes, there can still be actual performance benefits.

    2. Re:Not only embedded... by Mr.+Slippery · · Score: 1
      Not only is he missing the embedded market, he is missing the scientific computing market...

      And the aerospace market. And the telecom market.

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
    3. Re:Not only embedded... by ahfoo · · Score: 1

      And education.
      Might as well toss in a me too here. Macromedia's development tools commonly used for instructional software are based on Pascal!

  134. Not Lisp by horse · · Score: 1

    Check out http://www.paulgraham.com/articles.html

    The problem isn't that there aren't better languages than C/C++/Java/C#/Perl (whatever the next ugly language in this chain might be), the problem is that they are familiar and most folks don't want to venture outside the familiar. (And there's the little detail that a lot of source is already IN those languages.)

    That's life. Folks eat at McDonald's too for some reason.

  135. C++, Java, and C# are the only choices... by Anonymous Coward · · Score: 0

    Sure, I myself faced this question recently... I could write in PowerBuilder, Visual Basic, Java, C, Pascal, ... Maybe I should pick up one of the newer players (Python, Ruby, Pike, Rebol, ...)? So I looked around some. Python is written in? C. Perl (6) is being rewritten in? C.

    Let's just say that I think I will stick with C. Besides, when did Microsoft release "their" C# version of Word/Excel/Access? I can't wait to see when MS starts to use C# to make money for the bottom line.

    Don't get me wrong, I think VM/CLR is the way to go... let's just say that I always try to look at what the compiler writers are using to write in. (I like to think that if they use it themselves, it will give me what I want too)

  136. The groupthink here is amazing. by Stu+Charlton · · Score: 5, Insightful

    Won't anyone stop and possibly think: maybe this isn't a ZDNet-FUD story, or a clueless journalist, but maybe a practitioner with a point?

    There seems to be a tremendously insular mindset here on Slashdot... Java and .NET have little relevance here, whereas C and C++ maintain their positions as the "true" languages.

    The majority of software developers and software development work gets performed today in large corporations in industries like financial, insurance, manufacturing, utilties, pharmaceuticals, defense, real estate, retail, etc. 90% of this work is effectively about writing something that talks to a database somewhere for operational or decision support (reporting) purposes.

    The culture of these companies is tremendously insular with regards to technological change. Here's a quick'n'dirty view of what tools are used generally out there, all IMHO:

    up until 1998:
    C++ (MFC, COM, UNIX), pick a 4GL (VB, Powerbuilder, Delphi), some Perl, tinkerings with Java, some niche technologies (WebObjects, Smalltalk, Lisp), and mainframe legacy (COBOL, fortran, etc.)

    past 1998:
    more Java, C++/COM going well, C++ UNIX going legacy, VB holding steady, Perl growing, other 4GLs going legacy, niche technologies being replaced with prior mentioned technologies, mainframe legacy being retrofitted for Y2K

    2002:
    Lots of Java, steady amounts of Perl & PHP, VB is legacy, C++ is legacy (COM and UNIX), some niche technologies remain but are targetted to be 'sunsetted', mainframe legacy systems in place but some are looking to be replaced with Java systems. Growing interest in .NET -- lots of training gigs, but very few consulting pilots yet.

    ANSI-C doesn't really enter into the picture. The #1 one criteria for choosing a technology in these businesses (usually) is how easy/quick can it talk to a relational database. Java's past performance problems are largely irrelevant today -- this language is running billions of dollars of transactions a day through thousands of companies. It works, and it's fast enough for most purposes.

    You may not agree with this picture, but it has been my experience as a senior consultant to many different companies throughout the world, and working for a company that is a Microsoft .NET national trainer. I don't think I'm alone in looking at these figures. Let me be very clear: The greatness of open source development is that none of this really matters. If you love a language, use it. The marketshare of a language really has no effect on whether you can use it to write good software, it really only speaks of the probability of getting a job or contract using a particular programming language and working as a custom software developer.

    Remember: my assumption is that the custom software marketplace is very conservative in the technologies it chooses because of the maintainance costs involved. So you see less diversity in using niche technologies unless a group with complex needs (i.e. an OODBMS in Smalltalk, or an expert system in LISP) shells out the extra $$ to get it done. Most systems just aren't written that way. If I'm wrong on this, if Goldman Sachs or Johnson & Johnson or Royal Dutch/Shell are really building most of their next projects spread over hundreds, if not thousands of developers -- all with ANSI-C, then I sit corrected.

    The author of this article is making an important point, though he didn't qualify it properly enough... language diversity is drying up in the custom software development market..

    This year, if you look at "growth", i.e. what languages are being used for new projects, there are only three major players: Java (mainly JSP/Servlet based), VB, and Perl (for backoffice automation), with other scripting languages like PHP and Python and Ruby in Japan doing smaller projects.

    In 2003, there will be more .NET in that equation. The author's prediction of a 50/50 .NET/J2EE split is silly. More realistically, by late 2003, mid-2004 I would suggest:

    50% J2EE
    30% VB, C++, Perl, Python, etc.
    20% .NET.

    Eventually .NET may grow to overtake the other languages, but I wouldn't bet on it until 2004 at best, no matter what the hype. It's a conservative industry, and not even Java, the current adoption rate record holder, was adopted as fast as some think .NET will be.

    The problem that Java introduced, and one that will be compounded is that if .NET catches on, there is a problem that the JVM or the CLR does not have a design that allows for true language innovation. We're stuck at extracting and sharing "design patterns" to patch all the shitholes we find in our languages instead of inventing new langauges to fix these problems.

    Sure, many people in this forum will point to implementations of ML, Haskell, LISP and Smalltalk on .NET. They won't point you to the absolutely horrendous performance problems of porting languages to .NET if they don't walk & talk like C#. This is where the "skinnable language" concept comes from... the CLR shipped with Windows is optimized for statically typed object oriented imperative ALGOL-like languages, C# and VB.NET in particular. You're not going to run Lisp, ML, Haskell, Self, Smalltalk on them with reasonable performance without a) bastardizing the language and b) using the .NET base class libraries & foregoing the libraries that ship with your language (a major hinderence for Common Lisp and Smalltalk, I'd say).

    I have a great interest in programming language innovations.... life isn't getting any simpler, and our programming languages are going to have to start looking more like Ruby, Python, Smalltalk or eventually even Lisp if we're going to be handling the burgeoning complexity that's out there. I get frustrated when BigCo's set the agenda with their marketing pushes and the industry sits still for yet another 5 years... until the next hype wave rolls through. We're going to have more failed projects, more long hours, and more stressed-out/cynical developers because language design isn't keeping pace with the rising complexity of problems we're trying to solve.

    While Java did a lot to bring some innovations like garbage collection to the mainstream in 1996... we should me moving beyond this... unfortunately and .NET is sealing us into another 5 years of the status quo.

    disclaimer: my opinions, not my employer's. take with grain of salt.

    --
    -Stu
    1. Re:The groupthink here is amazing. by Anonymous Coward · · Score: 0
      Sure, many people in this forum will point to implementations of ML, Haskell, LISP and Smalltalk on .NET. They won't point you to the absolutely horrendous performance problems of porting languages to .NET if they don't walk & talk like C#.

      I'm not saying you're wrong; I'm just curious; do you have any evidence for the "absolutely horrendous performance" of non-C#-like languages on .NET? I know there has been a lot of speculation, but I haven't seen anything empirical, or even any good anecdotal evidence. (Please don't point to that "One Runtime to Bind them All" paper. IMO, that was almost entirely bogus.) I think it's clear that .NET is optimized for C#-like languages, but how well or poorly do other languages run? Ten times slower than native? 25% slower?

      You're not going to run Lisp, ML, Haskell, Self, Smalltalk on them with reasonable performance without a) bastardizing the language and b) using the .NET base class libraries & foregoing the libraries that ship with your language (a major hinderence for Common Lisp and Smalltalk, I'd say).

      I don't understand point (b) at all.

    2. Re:The groupthink here is amazing. by Anonymous Coward · · Score: 0

      Most of the evidence for poor performance is anecdotal from the teams currently trying to build a production .NET version of Common LISP or Smalltalk. While I agree that emperical evidence backed by some rigorous research is needed to reach a solid conclusion, it's a bit early for these numbers.

      So effectively, I'd suggest downloading the existing implementations of Lisp, Smalltalk, Eiffel, Haskell, etc. in .NET, and try running them through some hoops.

      Point (b) was that the .NET base class libraries were designed with C# or VB in mind, not Smalltalk or Lisp. Those languages have very elegant libraries with features that take advantage of the language in question. Why use .NET collections when you could use Smalltalk collections? Unfortunately, this will bloat your assembly because you'll need to bundle your extra libraries around with your program. .NET's marketing message is on language interop and common libraries -- I'm stating that this doesn't map together at all when you're dealing with more dynamic languages and their libraries. You're stuck with what the "core" is. It's not a totally bad thing, but it is if you're looking for a more productive language & library set, something that .NET can only claim to be when looking in comparison to Microsoft's prior toolsets (its productivity benefits over Java have yet to be determined).

  137. Operational Properties Matter by horse · · Score: 1

    Some examples:

    C got a huge boost as a language for programming PCs in the mid 80s. Prior to that, everyone used assembler... they didn't have much choice. PC processors weren't powerful enough for the desired applications. C's claim to fame was that it was fast.

    In the same time period, Smalltalk's slowness and relatively exhorbitant memory requirements relegated it into a niche from which it has yet to recover.

    Nowadays, Smalltalk would run fine on common desktop PCs -- certainly as well as Java for all but hardcore mathematical applications. But those first impressions still linger.

    It's great to choose a language for its denotational properties if you are writing a one-off script, but it can be a lousy idea if you are planning a major project and scaling issues are important. What do you do if the language captures the essence of your problem well but runs like a pig? (Come to think of it, this is what happened to Stroustrup with Simula... remembering this experience, he created that C++.)

    Denotational properties do matter. However, so do the operational properties. Which of the two is more important depends on the characteristics of the problem at hand.

  138. aspect oriented programming by Stu+Charlton · · Score: 1

    ..this is all stuff that LISP has had for a while too, and more recently Java with AspectJ... where it's called 'aspect oriented programming'.

    the only problem with C++ policy oriented programming as i see it, which is similar to stuff talked about in Czarnecki's Generative Programming book, is that the amount of cognitive engagement one has to have when generally programming with C++ or C++ templates for that matter is just astounding. The syntactical complexities and programmatic options available are pretty difficult to deal with... I like it to developing COM with straight C++ and now ATL... it's conceptually clean, but your eyes have to wade through a lot of noise to see the patterns.

    Another analogy would be those garbled/noise paintings that have the sailboat buried inside them if you just look at them the right way... some people, normal/smart people at that, just can't see the sailboat.

    --
    -Stu
  139. Step back and take a realistic view... by fuali · · Score: 0

    Yes, there are many language choices for developers(too many if you look at things like mindf*ck).

    But look in job listings. As far as companies that are hiring developers there are basically 3 laguages: C++, Java, VB. The minor ones and still sought are Perl and Python, are out there but not as marketable.

    I know and use Java, Perl, and VB. I think I am a little more "marketable" (that means I am quicker to get a job) then a K or a LISP coder. Most employers don't care if you are moderatly comfortable in 15 programming languages. They would rather you just be a Killer Java Guru, or a lightning fast VB coder.

    This doesn't mean it's right, just the reality of the situation. There will always be marketable Development Platforms. And there will always be esoteric, and near artistic Development Platforms for us to geek out on.

    Esperanto was a better language, it doesn't mean it will be embraced.

    BTW Embedded systems developers don't get paid as well as Application developers. That's why I switched. That, and I find the work more demanding.

  140. We mourn the loss of C# by Anonymous Coward · · Score: 1, Funny

    Control for C# was fought over in courts for Years. Musician's Friend fought a long and grueling battle for the long used, but never copyrighted, C# but in the end the magnificent monolith of the west prevailed. Many musicians weep, and the keys of D, E, A and B will never be the same.

  141. *all* people think in OO? Heck No! by Tablizer · · Score: 1

    (* The difference between procedural and object-oriented isn't that big a deal, other than it's often easier to think in OO and easier to implement a language that's procedural. *)

    This is purely subjective. Some of us cannot stand OOP and OO modeling.

    oop.ismad.com

  142. Re:Object orientated or sequential is the key issu by Tablizer · · Score: 1

    (* I have only found two major categories of programming languages. Sequential (C, Perl etc...) and Object orientated (Java, C++ etc...). *)

    I would also add "scripting" versus "strong-typed" to the list of attributes. There are scriptish procedural languages like Perl, C-shell, etc., and OO scriptish languages like Smalltalk and Python.

    Then we have strong-typed procedural languages like Pascal, and strong-typed OO languages like Java and Eiffle.

    The flame-wars over scripty-vs-strong-typed are pretty nasty at times. Eiffle and Smalltalk fans are always fighting with each other over "proper OO" and productivity claims.

    (* Today the OO languages become more and more commonly accepted as best practice. I believe that's why Microsoft goes the OO way with their .NET initiative. *)

    In my opinion, MS went more OO *purely* to compete with and kill Java and the Java hype. They resisted inheritance in the past, but just want to kill Java so much that paradigm philosophy has taken a back seat to squishing competitors.

    There is no fricken evidence that OO is "best practice" in practice. It still has hype value, but that cannot last forever. Eventually convoluted crap like EJB will make the world realize the failed promises and pretzels caused in the name of OO.

    oop.ismad.com

  143. Re:WHY: The article is simplistic... by Anonymous Coward · · Score: 0
    .NET's JIT compilers aren't parallel enough to take advantage of these systems and will have some problems changing inherent to the API or something.

    JITs have a hard time producing good code for VLIW processors like Itanium. However, since VLIW is a bad idea to begin with, and Itanium isn't going to go anywhere, this isn't such a big deal.

  144. Re:What are YOU smoking by tyse · · Score: 1

    This is not true. There is functionality in
    the CLR that is not used by C#. For example
    variable number of arguments (varargs) and function pointers are both in the CLR but not available from C#. Similarly with the tail.call instruction that C# doesn't use.

    It is true that the CLR is similar to C# in feature set, but it is certainly not the same.

  145. Re:WHY: The article is simplistic... by tyse · · Score: 1

    My discussions with Sun engineers have indicated that they are not particularly interested in having multiple languages running on the JVM, and are not going to do any significant work to make it happen better or to help them interoperate.

    Sun markets Java the language a lot more than JVM the platform. The 100% pure Java campaign is exactly that -- *not* 100% pure JVM bytecode but 100% pure Java.

  146. I love Java by elhakimz · · Score: 1

    sorry folks,
    I have done many things in PHP and Visual Basic but: I love Java. There are many projects that needs java.

  147. I've read the article up to... by Anonymous Coward · · Score: 0

    ...the sentence reading:

    "Developers switching from C++ to Java concluded, that Java was the natural evolution of C++."

    Yes, those same developers participated in the "tremedous success" of the dot.com era.

    Next time I will be more careful not to visit any URL including the name "zdnet". Those folks have either don't have any clue, or they are just paid by the dark side.

    That's how it runs out when a journalist tries to be clever on development, and misses the whole point, that it's not the programming language, but the design, what is important there.

  148. Narrow views by abdulla · · Score: 1

    C# isn't really an evolution rather a devolution of C++, they are trying to meet 2 different goals. J2EE and .NET are platforms with very narrow goals, development goes on elsewhere in the world, and would you believe it, neither Java or C# are used in the majority of code out there.

  149. The Next Thing by Anonymous Coward · · Score: 0

    Languages will drop static overloading, which is not only less powerful but also unsafe, in favor of dynamic multiple-dispatch.

    Then people will realize single-class-based encapsulation hinders extensibility.

    That's enough for now. See you in a couple of years to continue...

  150. rehash of prevously reported article by StrawberryFrog · · Score: 2
    This is just an insipid rehash of One Runtime To Bind Them All: http://www.javalobby.org/clr.html

    As reported here on slashdot

    --

    My Karma: ran over your Dogma
    StrawberryFrog

  151. people are lazy by Anonymous Coward · · Score: 0

    they usually don't want to learn anything too different...

  152. A little knowledge is a dangerous thing... by Smid · · Score: 1

    So why do they keep paying people to write articles they obviously know nothing about.

    .NET? C#? VB.NET? Good god, a less diverse view of the programming industry there cannot be.

    Does he imagine computers are all MS? Does he believe everyone programs net based applications?

    In my industry (telecoms), they used C, C++, unix, perl, tcl, python and maybe some java for the graphical things.

    And thats just my industry. But every time a tech journalist writes such obvious nonsense, a thousand pointy haired bosses sit up and listen.

    So expect your telecoms products to all crash in about 2 years time...

  153. BASIC is best by Anonymous Coward · · Score: 0

    Some languages will always be important like Basic. These are languages anyone can easyly learn and understand. That hav a reduced syntax, where you don't need large books.

    www.kbasic.org

  154. Re:What are YOU smoking by j7953 · · Score: 2
    Because of CLR, most languages for a common runtime will end up having the same abilities, just different syntaxes. So, if you know VB.Net, you'll be as 'powerful' a developer as someone who knows C#. But then your C# is probably watered down also.

    Which is, of course, a very flawed argument. All serious programming languages have the same capabilities, also known as "turing completeness." This doesn't make them the same languages, though. I'd agree that there's not much difference between different object-oriented/imperative languages (e.g. C#, Java, VB.NET, Delphi, ...) any more, but there are still lots of languages that are different.

    E.g. take a look at Mercury, a logic programming language (somewhat similar to Prolog, at least in syntax, I haven't used it yet). It's probably not very similar to an object-oriented language, but still it's available for .NET.

    Saying that all programming languages will become the same because they compile to .NET is about as logical as saying that they'll become the same because they all compile to machine language.

    There may be valid arguments against .NET, but this is just FUD.

    --
    Sig (appended to the end of comments I post, 54 chars)
  155. A few applications of other languages by Anonymous+Brave+Guy · · Score: 2

    The author obviously is not right about a lot of things...

    By the end of the year, two platforms--J2EE and .Net--will essentially control the programming languages market.

    S'funny, I coulda sworn all my friends who work in the embedded and/or instrument control markets couldn't even write most of their stuff using either J2EE or a .NET-hosted language. And there is orders of magnitude more development done there than for all the desktop and Internet-based apps put together. (Shock news, everyone: most applications would gain precisely 0% benefit from being Internet-enabled, distributed, turned into Web Services, or otherwise buzzworded up.) C (and sometimes C++) still reign supreme here.

    I know a few PhD or professional research level scientists whose work is computationally intensive, too. Many of them still use Fortran, because the mathematical abilities it provides are still hard to beat.

    Oh, and aren't something like 7/10 of the most-hit websites actually running on C++ back-ends, not any of the "distributed-friendly, Internet-friendly, no-buzzwords-here-honest-guv" languages?

    According to Microsoft, C# is the logical evolution of C++ and VB.Net is the logical evolution of VB. [...] Developers switching from C++ to Java concluded that Java was the natural evolution of C++. [...] In fact, if one were to look at computer science departments across the country, you'd see that Java has replaced C++.

    And yet none of these new languages can do some of the simplest things available to a C or C++ programmer, and the simplicity and fast prototyping that were VB's strongest points have been all-but-destroyed by VB.NET exposing everything to everyone.

    As for Java replacing C++ in academia, that is largely because most people teaching C++ at college/university level don't have a clue, and are readily embarrassed by their students asking awkward (but really quite simple) questions in lectures. Java makes it harder for the lecturers to make an ass of themselves within five minutes of the start of the course, and the reason for switching is as simple as that. Their teaching of Java often sucks, too, but it's not quite so obvious. (BTW, I do have an academic CS qualification, and I have had a lot of benefit from the course. The popular programming language tuition -- Java, C++, etc. -- was abysmal across the board, though.)

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  156. atleast some categories. by Anonymous Coward · · Score: 0

    Whether its
    Object Oriented
    and/or
    Procedural
    and/or
    Intepreted/V M
    and/or
    Native

  157. What does the Maintenance programmer use ? by Anonymous Coward · · Score: 0

    I think most developers completely miss the issue.
    The question is not what language they like but what language does the maintence programmer whant to use. The problem is not computer languages but the abiliity to easily view a program in C/Java
    C# etc. Until a maintence programmer has a choice on what language he want's to maintain a program in CS won't move forward. I don't think "frameworks" J2EE or .NET since they sidestep the issue nor are CLR and byecode.

    The best old style progression was

    asm->C->(C++ || ObjectiveC )

    Java has

    asm->C->JNI->ByteCode

    .NET well umm
    Language X ->>CLR Language X and neither does Java.

    The next "revolution" IMHO

    asm -> FORTH --> ByteCode > Java/4GL

    The real important revolution is Runtime Compiler
    technology which allows you to express a program in a fairly high level format. Unfortuntley the only language taking advantage of that today is java. Adding a few bytecodes as a C equivlent along with the ability to embed a few native/asm code snippets allows a full spectrum program that can be runtime compiled. The reverse enginering of bytecode is almost trivial allowing easy regeneration to a alternative language chain.

    I just think the future lies in dynamic compiler technology plus a format which can be easily resourced to the language of choice for the maintainence programmer.

    Stack machines since they don't "complicate" the code with register allocation issues make the obvious choice for intermdiate format. Java simply hides the stack machine for bytcode and java bytcode does not provide a complete word set for a "real" computer. The addition of a few core forth words plus its extensible nature allows a complete stack machine. Dynamic compilers can easily retarget this code to a particular processor ahead of time runtime etc doesn't matter. The next big hurdle is source recreation from the same "bytecode". Luckly the Java class file format allows you to add more information to allow for source regeneration.

    Thus the future as I see it.

    Programs expressed as a set of java style "Classfiles" these contian high level bytecode
    "c level" bytecode for low level routines and a few contain processor specific machine/asm code.

    Plus.
    XML/UML design information original code info like
    debugging information ( optional ). Basically its the flow or link diagram plus documentation for the code this may even include the original source language but I don't think its needed if done right. I think you just need the grammer for the highlevel language plus the backend emit rules for the terminals. Plus version/ bug fix info.

    Now here is where the concept of a CLR makes sense but it should be Common Language Representation not Runtime ..
    Check out http://www.antlr.org/Articles/needlook.html

    The trick is generation of the interlanguage transforms. So given Grammer A and Grammer B generate a LL(k) parser which transforms A source to B. I think a intermediate transform to a stack based "real" language ala extended bytecode plus design info then out is the way to go but the point is that a "real" program should be expresible in basically any high level language.

    The maintenance programmer can either run the module or view it in there preferred language make there changes and forget about it. The java class file format is the right start. CLR went backwards to monolithic modules what a failure. Elf object files ( not executables/shared libs) almost had it but are too tied to the problems of linking machine code the java classfile is really just a clean Elf object file.

    When "compiled" code contains all the information about the program then were finally getting somewhere as long and the informaiton of a program is fragmented into compile rules ( Make cpp etc ).
    Source/ Binary / Revision history/Design /documentation/Installer/Package rules/ then we aren't "there" yet. A java jar file is very close but the information needs to be moved into each class file with just a small "Meta directory class" Which should itself be a executable class file.

    I should be able to take a program and do this.

    foo info | netscape
    foo use | netscape
    foo api | netscape
    foo source java-c-asm | vi or foo source asm-C++-C# etc...
    foo history | cvs
    foo design | uml-viewer
    foo build
    foo run

    foo export ( converts to opaque external use format simialr to todays binaries )

    Thats a real program.

    Of course with emacs it would just be
    emacs foo : )

    Personally I think its probably easy to create programs which can be viewed in any programming language just people just havent felt like its really important. Microsofts any language to CLR and Suns Java to any computer don't solve this problem what we really want is any program to any language to any computer. ( Note the JVM has the any computer part /CLR kinda has the any language part.) Neither have the critical any program any language part.

    Wouldn't be cool if you could say I don't care what you write the program in I'm going to read it in asm->C->C++ or asm->C->C# or asm->C->Java.
    (Of course the program could be "best viewed" with scheme or lisp or C# or java but that should be and opionion)

    When that's doable then people are finally doing real programing.

  158. It all comes down to the individual project!!! by Anonymous Coward · · Score: 0

    CLRs have their place in the world, but they do not solve every programming problem.

    The benefit of .NET is that the industry now has two primary CLRs to choose from: Java or .NET. Even they differ greatly what they bring to implementation!

    Today, the only real benefit of .NET is that you can realistically have developers working on a project together but still allow each developer to code in the .NET language they are most comfortable with. For the small percentage of developers that know both VB.NET and C#, they can choose the language that helps them best approach the problem at hand due to syntax. But as long as the MS CLR only runs on Windows machines, you are still only developing to the Windows environment. Now, true, thanks to the CLR, .NET brings much needed consistency to the deployment and execution of code in the Windows environment, but again, that only impacts the Windows world. All of this comes with some drawbacks like performance issues.

    Java, while also a CLR with many of the same drawbacks, brings a whole different set of advantages to the table. The most commonly proclaimed of those advantages is the ability to write one set of code and deploy it to multiple platforms.

    This does not change the fact that many technically-smart IT executives, managers and developers do not (today at least) take any CLR code seriously for an application where performance is important. If you need good, fast code in the Windows environment, you are probably going to C++.

    I work for a large retail sales corporation in the United States that is a 100% Microsoft OS environment. We get to write a little bit of everything. For web applications with a limited user base, we use ASP/COM/SQL with all the ASP written in VBScript and JavaScript, the COM written in VB and using Stored Procedures on MS SQL 2000. For heavy use web apps, we move the COM to C++. We looked into moving to VB.NET and ASP.NET, but we found that much of the code we have in production today actually ran slower on .NET. Once the performance and security issues are beaten down to an acceptable level, this group will likely move to .NET later this year, early next year.

    Our Point Of Sale system is a desktop application that takes total control of the PC. It is written in C++, but we used Borland C++ Builder. We have found Borland to give us faster development time and code that is easier to support for desktop apps than Visual Studio C++. This group would quit before giving up Borland C++ Builder.

    We have one small application that we have written that generates converts EDI into XML for us to import. We have given this to some vendors. It is written in Java so that it can run on darn near anything. This is the *ONLY* Java we have in the whole company.

    Lastly, we have a small team of embedded developers who write code for things like fuel pump controllers. They code in C just like they have for years with no plans to change anytime soon.

    As you can see, we have teams of developers that each code with the language and IDE that best suits the task at hand.

  159. oops, use this link instead by muchandr · · Score: 1

    I screwed up the link in the previous post, try this one:

    here

    K was invented way before OSS really got off. kdb is free for non-commercial use and their license is no more anal than say MySQL's was before recently while the quality is way above. I hope K will get used, even if only for writing kdb extensions/stored procs. You have no idea how useful a FUNCTIONAL database can be (as opposed to relational)

  160. Re:WHY: The article is simplistic... by Cyno · · Score: 1

    I hope you're right, but its hard not to believe the Hype machine.

    - Luckily I wrote such a short comment, easy to remember. Since slashdot likes fucking with posters so much they find it necessary to add in annoying timelimits. Arrgh! I come here to vent, people, not get MORE frustrated! Gah!

  161. Easier to learn, so what? by staplin · · Score: 2

    Java is easier to learn. Hence you can push out more graduates from Compsci courses with it. Unfortunately, you can't apply those guys to say, kernel programming or embedded systems work because they are clueless w.r.t memory management and the guts of the machine.

    But you know what, school is a place to learn!

    When I got my CS degree, Java wasn't around, and C++ was just starting to be taught... often with the concept that OO would make it easier to learn. And you know what? The C and C++ I learned in school did very little to prepare me for how the languages were really used in industry.

    Even if a student had the best, most industry oriented schooling available, I doubt they could go immediately into kernel programming or embedded systems work and be productive the first day... And a lot of schools will acknowledge that fact.

    Schools are there to give you a solid understanding of how languages work, how to build the basic underpinnings of software, not the detailed knowledge of how software is applied in industry. Especially since that changes for every domain that is out there. As long as they know one language, it becomes simpler to pick up another, and to learn the nuances of that new language.

  162. No not amazing! by hey · · Score: 1
    "Still, it is an amazing achievement to be able to support different languages on the same runtime, right? I certainly think it is, but others would disagree."

    I'm sure others have made this point but... All languages on a given computer run on the same instruction set.
    So -yeah- I disagree.

  163. K isn't good at scalar processing by Jayson · · Score: 2

    This has been discussed heavily on the K mailing list. Somebody has done a done a K-ish version of Ackermann's function that works very well. The way you program in K is different from the way you program in C. In K you choose to operate over bulk data and you slive object arrays length-wise, i.e. if you have an object of three fields x, y, and z, you would operator over all the x's, then all the y's, then all the z's.

  164. Java and .Net are written in C++ by GCP · · Score: 2

    His perspective is too narrow, clearly. Neither Sun nor MS have claimed that their operating systems will be rewritten in Java or .Net. These languages / platforms are designed to give custom app developers a better toolbox, but they aren't designed for all programming tasks.

    Even at Sun and MS, they'll take the extra time and effort to write in C/C++ if the breadth of deployment can support the extra hassle and cost. This choice will remain available to all other developers as well, along with quite a few other languages for other purposes (Perl for unix admin work, Fortran for number crunching, and so on.)

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  165. Yes, that's sensible by Tim+Ward · · Score: 1

    I never can quite understand the reports one reads of CS courses not teaching multiple languages. And any CS course that doesn't at least show you what assembler looks like is surely not worth doing.

  166. The Problem Of Developing. by Anonymous Coward · · Score: 0
    The author suggests that developers have been left with little choice because all of the current programming languages are essentially the same.
    The author says no such thing. In fact, Mr. Liotta only mentions a few languages; he neither criticizes nor praises Ada, APL, FORTRAN, ICON, Pascal, Perl, PL/I, Python, REXX, etc., nor does he discuss the degree to which they differ, one from another.

    The most dementing of all modern sins: the inability to distinguish excellence from success. David Hare

  167. Why We Care by epepke · · Score: 2

    Inexperienced programmers care, because they have ego space associated with a language.

    Experienced programmers care, because they know diversity brings health.

  168. I see your point, but... by Anonymous+Brave+Guy · · Score: 2
    Think about how much time you need to learn another language: 1-2 hours (or less) to learn the language, days or months to learn the API that language uses/has.

    I've heard a similar argument made several times recently: learning a language is easy, learning the API is hard. I'm sorry, but that's just rubbish.

    Learning to use a language well does not take 1-2 hours, it takes months. It's not just the keywords, it's the particular idioms, the underlying paradigms. If you choose to use a framework like .NET or J2EE where all languages are equal (even if some are more equal than others) then obviously the learning curve is dramatically reduced, but that's because all you've really changed is the syntax. The semantics of these languages are all much the same, which was kinda the point.

    On the other hand, I have never bothered to learn any APIs in all their 10,000-call detail. Most programmers use only a tiny fraction of such an API with any regularity, and will learn that along the way through frequent use. The skill with APIs isn't knowing all the details, it's knowing what it can do, and where to look to find those details if you happen to need them.

    Look at a couple of typical examples. If I'm programming C++, do I learn every detail of every interface in the standard library? No, of course not. I learn what algorithms, iterators and containers are, and how they fit together in the library. I learn what sorts of algorithms and such are available. Then I just keep a good reference book on the shelf, and look things up as needed.

    If I'm programming MFC for a Windows app, do I learn all the intricate little details about each class? Again, of course not. I learn roughly how the classes fit together -- windows, command targets and controls, the document-view architecture, and so on -- and then I keep a good book on the shelf.

    Basically, the flaw in the language vs. API learning argument is that while you have to have a fairly deep understanding of how to use a programming language to get good results, you don't need to learn whole APIs, just a sound overview and where to find out more.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  169. Re:What are YOU smoking by smaug195 · · Score: 1

    Not at all, C# and VB.NET are basically the same language(ok so C# has un CLR compliant unsafe code). So they both have the same feature access of the CLR.