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

38 of 438 comments (clear)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  18. 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)
  19. 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

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

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

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

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

  25. 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
  26. 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)

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

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

  29. 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
  30. 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
  31. 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
  32. 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
  33. 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