Slashdot Mirror


6 Languages You Wish the Boss Let You Use

Esther Schindler writes "Several weeks ago, Lynn Greiner's article on the state of the scripting universe was slashdotted. Several people raised their eyebrows at the (to them) obvious omissions, since the article only covered PHP, Perl, Python, Ruby, Tcl and JavaScript. As I wrote at the time, Lynn chose those languages because hers was a follow-up to an article from three years back. However, it was a fair point. While CIO has covered several in depth, those five dynamic languages are not the only ones developers use. In 6 Scripting Languages Your Developers Wish You'd Let Them Use, CIO looks at several (including Groovy, Scala, Lua, F#, Clojure and Boo) which deserve more attention for business software development, even if your shop is dedicated to Java or .NET. Each language gets a formal definition and then a quote or two from a developer who explains why it inspires passion."

264 comments

  1. Language Independent? by Beardo+the+Bearded · · Score: 4, Insightful

    Your programming skills should not be tied to the language you use.

    --

    ---
    ECHELON is a government program to find words like bomb, jihad, plutonium, assassinate, and anarchy.
    1. Re:Language Independent? by dedazo · · Score: 5, Insightful

      Agreed, but even assuming you can become proficient in a given language quickly, there's usually a huge learning curve associated with the library(ies)/runtime. Not to mention the amount of time needed to arrive at the "this is how you actually do it" point for any language.

      I can write a 20-line utility script in Perl or Scheme just fine. Applications are another matter.

      --
      Web2.0: I love when people Flickr my cuil and digg my boingboing until my google is reddit and I start to yahoo
    2. Re:Language Independent? by quanticle · · Score: 4, Insightful

      While your skills should certainly be language independent, it is also true that different languages make different things easy. Otherwise, why would we have so many of them?

      I think the main thing I see is that the old argument, "Scripting languages are far too slow!" has finally been put to rest. All of the up and coming languages cited in the article are dynamically typed, interpreted (or bytecode-interpreted) languages.

      --
      We all know what to do, but we don't know how to get re-elected once we have done it
    3. Re:Language Independent? by Xest · · Score: 2, Interesting

      Indeed but I can understand what the article might be getting at without having read it yet.

      It's always best to use the best language for the job and far to many Java or .NET shops will use Java and .NET for everything even when there are much better tools for the job. It's a problem that arises time and time again and it took some time to convince many C++ developers that whilst C++ could do everything it wasn't necessarily best for everything.

      If the article is suggesting these languages should be used for the sake of being used then that is rather daft and I don't know why we see many blogs like this (e.g. "Use F# it's awesome!"- well no, it's not in every scenario). If however it's suggesting that these languages each have a specific niche that it should be used for where it beats the likes of Java/.NET then yes he's on to something.

      There's always a balance of course, a project consisting of 20 different languages would also almost certainly be rather stupid and messy, but there's a balance to strike for sure to achieve maximum efficiency, stability and features and in some cases there is merit in using more than one language.

    4. Re:Language Independent? by steveha · · Score: 4, Insightful

      I think the main thing I see is that the old argument, "Scripting languages are far too slow!" has finally been put to rest.

      Well, that was always an oversimplification anyway. Too slow for what, specifically?

      Even today, no one would seriously think about writing a video encoder entirely in a dynamic interpreted language. That's a very compute-intensive application and you can't afford the overhead. But how many of us write video encoders? There are many tasks for which the overhead of a dynamic interpreted language is no big deal.

      Computers are really fast these days, so you can afford some overhead. If your trivial program runs in 0.6 seconds instead of 0.01 seconds, you may not care about the difference. And if you can write your program in 1/10 the time, you may come out way ahead. (And if the program is a one-off, that only needs to be run a few times, all you really care about is how much of your time it took to write the thing and get it correct.)

      steveha

      --
      lf(1): it's like ls(1) but sorts filenames by extension, tersely
    5. Re:Language Independent? by dword · · Score: 1

      You forgot to give a clear example of what you meant by that learning curve. If anyone has trouble with that, try to picture the difference between C and C# with .NET. Good luck using C to do what you can do in C# using just a few clicks.

    6. Re:Language Independent? by zullnero · · Score: 4, Insightful

      I had this discussion with a recruiter the other day that was adamant about me inserting every single language and tool they wanted into every job description I had.

      I said "the situation is very much like a mechanic where I have a wide range of tools I use to solve a problem, but the only thing that anyone cares about is that at some point, I used a wrench for something...without really caring about what the problem actually was."

      Anyone can sit down, surf the web, find some sample code, stick it into a project, and then site that you used said tool in your resume...but it's not about that, it's about how you solved that problem.

    7. Re:Language Independent? by Tyger · · Score: 1

      I find recruiters often miss the mark.

      Don't get me started on the number of online recruiter forms that ask you to list out the languages in a web form. If I tried to list out everything I could competently program in, I ran out of room in the entry field provided. And that doesn't even touch on the subject of the language agnostic nature of problem solving in programming and the fact that a good programmer can pick up any reasonable language in a few days.

    8. Re:Language Independent? by burris · · Score: 3, Informative

      All of the up and coming languages cited in the article are dynamically typed, interpreted (or bytecode-interpreted) languages.

      scala and f# are both statically typed

    9. Re:Language Independent? by MBGMorden · · Score: 1

      Indeed. It's all in choosing the right tool for the right job. For instance, my servers all do various odd jobs on scheduled intervals. Check the size of the mail queue (and email me via a separate system if it's grown unexpectedly large), update a user list from an LDAP server, batch convert files from one type to another, etc, etc. All trivial stuff that needn't run really fast. I don't mind writing that stuff in Perl or PHP. They work, and they work well. I also get the added benefits of easily portability, easy editing (no compiling), and very easy access to common functions like SMTP or Syslog.

      However, if I wrote any sort of interactive application, a scripting language would not be my first choice. To me, it basically boils down to this: a "job" that cranks off, does it's own thing, and then ends, is a very good candidate for a scripted language. For an "application", I'm probably going to crack out C or C++ to tackle that one.

      --
      "People who think they know everything are very annoying to those of us who do."-Mark Twain
    10. Re:Language Independent? by Fred_A · · Score: 4, Funny

      Your programming skills should not be tied to the language you use.

      Quite. I use harsh language and it hasn't interfered with my programing skills whatsoever.
      Stupid git.

      --

      May contain traces of nut.
      Made from the freshest electrons.
    11. Re:Language Independent? by Frater+219 · · Score: 5, Insightful

      Your programming skills should not be tied to the language you use.

      Anyone who thinks this doesn't know very much about the diversity of programming languages, I suspect.

      What you say may be true about a restricted set of languages: I would expect a good C++ programmer to be readily able to learn C# or Java; likewise I would expect a Python programmer to be readily able to learn Ruby. But that's because C++ and Java are not very far apart, nor are Python and Ruby.

      But there are plenty of good C++ or Java programmers who would be completely lost in Lisp or Haskell. Why? Because a good Lisp or Haskell program does not break the problem down along the same lines as a good C++ or Java program. They involve a different set of skills. C++ coders do not tend to think of programming as extending the language to fit their problem space; they do not tend to use higher-order functions; they do not necessarily isolate I/O from core algorithm as Haskell programmers must; and they don't have access to anything even remotely resembling Lisp macros.

      Now, you might say that a person is not a good programmer unless they have mastered a wide range of languages with vastly different approaches. But that's a much higher bar than most folks would use to qualify programmers.

    12. Re:Language Independent? by LarsWestergren · · Score: 2, Informative

      All of the up and coming languages cited in the article are dynamically typed, interpreted (or bytecode-interpreted) languages.

      Incorrect. Scala is very much statically typed (but has type inference).

      Besides, what an article in a magazine considers hypeworthy may not correspond to real world usage. There are many opionions in the article put forward as facts.

      --

      Being bitter is drinking poison and hoping someone else will die

    13. Re:Language Independent? by convolvatron · · Score: 1

      to some extent this is true, but there are language facilities like horn clauses, automatic memory management, persistence, closures, partial application, streams, type inference, polymorphic functions, and lazy evaluation which really change the substantial character of programs.

      ever written a non-trivial parser in fortran?

    14. Re:Language Independent? by orclevegam · · Score: 3, Insightful

      Exactly! There's very little difference among the syntax and features of most languages. Sure there's big differences in some areas from one language to the next, but there's also usually big similarities to offset those. Once you've got 6 or 7 languages under your belt, there's very little that's genuinely "new" in any language, it's just a question of the subset of things you're already familiar with that happen to be included in X language.

      The libraries and runtimes of any particular language on the other hand are unique for just about every language out there (exceptions being those that re-use large portions of existing libraries/runtimes such as Groovy which isn't so much a new language as it is an alternative syntax for Java), and that's where most of the time in "learning" a new language comes from. Just about any remotely competent programmer can write hello world in any language you choose with access to minimal documentation and about 5 minutes, but to write a clean and efficient implementation of any non-trivial program takes a serious time investment to learn the libraries and APIs.

      The real question to ask about any particular language is what are its priorities? Does it focus on minimalist syntax in an attempt to speed development but at the cost of reduced readability? Does it use strong typing to improve efficiency and reduce runtime bugs but at the sacrifice of flexibility? In other words, what trade offs has the language made?

      --
      Curiosity was framed, Ignorance killed the cat.
    15. Re:Language Independent? by Anonymous Coward · · Score: 0

      Yeah, that's a lovely sentiment that gets repeated a lot. And it probably makes perfect sense if, like most people, one has only been exposed to different languages in the Algol family, which basically all use the same block-structured imperative paradigm.

      But the fact is, many skills are specific to a computational model. Knowing lots of C won't help you any with Prolog. Knowing all the patterns in the GOF book by name won't help you write good SQL queries. Knowing best uses of all the imperative data structures in the Java standard library won't help you write anything in a purely functional language.

    16. Re:Language Independent? by 0xABADC0DA · · Score: 4, Interesting

      However, if I wrote any sort of interactive application, a scripting language would not be my first choice. To me, it basically boils down to this: a "job" that cranks off, does it's own thing, and then ends, is a very good candidate for a scripted language. For an "application", I'm probably going to crack out C or C++ to tackle that one.

      And I completely disagree about GUIs. The only requirement on language choice for an application is that user interaction happen in ~0.1 seconds or less, and on today's computers scripting languages can do this easily. So with that out of the way the choice is on how easy it is to write, how nice it looks, how reliable it is, etc. And in these categories scripting owns C, C++.

      A lot of great programs are being written in JavaScript or Python these days. For instance, MusicBrainz' Picard is written in python, but you would never know it from using it. Even ones that are supposed to be 'fast'... users don't notice a performance difference between mercurial (python) and svn (c), but mercurial is already light-years better because people can understand the code (svn sourcecode is an absolute disaster re: readability).

      I would go so far as to say that the primary reason to write most GUIs nowadays in C or C++ is just so they can't be reverse engineered.

    17. Re:Language Independent? by immcintosh · · Score: 3, Insightful

      Don't make the diversity out to be more than it is. You point out the two major breeds of programming languages which currently exist: declarative and imperative. That's fine. When it comes down to it, the "wide range" isn't any wider than these two underlying concepts. Once you understand how imperative languages fundamentally work you can translate that into any one, and the same goes for declarative languages.

      So yeah, imperative programming skills translate across any largely imperative language, and declarative programming skills translate across any largely declarative language. I'd say that a really good programmer should be proficient in either, and some languages allow a degree of both (even C++, if you don't mind somewhat terrifying template trickery). Beyond that, this is his whole point. Once you understand those fundamentals, any other kind of variety just drops away.

    18. Re:Language Independent? by lennier · · Score: 1

      "Once you understand how imperative languages fundamentally work you can translate that into any one, and the same goes for declarative languages."

      You reckon? You think Lisp works just the same as Prolog?

      Prolog doesn't even have the concept of *function*, you know.

      --
      You are not a brain: http://books.google.com/books?id=2oV61CeDx-YC
    19. Re:Language Independent? by quanticle · · Score: 1

      That example works, though the thing I had in mind was more along the lines of C vs. C++ or Java. Object orientation in C is a pain.

      Or, if you're of a more functional bent, you could think of Lisp vs. Java - its very hard (but possible) to write functional code in Java. Its dead easy to do the same in Lisp.

      --
      We all know what to do, but we don't know how to get re-elected once we have done it
    20. Re:Language Independent? by orclevegam · · Score: 2, Interesting

      You forgot to give a clear example of what you meant by that learning curve. If anyone has trouble with that, try to picture the difference between C and C# with .NET. Good luck using C to do what you can do in C# using just a few clicks.

      You're conflating the tools with the language. There's nothing inherent within C# that cannot also be done with C given the proper libraries. Likewise there's nothing that you can do in C that you cannot also do in assembly. Of course the effort involved will be different from the standpoint of the programmer using the language depending on what libraries one utilizes. When you add in tools (such as IDEs like Visual Studio which .Net programmers tend to forget is different from the language) certain operations are optimized further in that you can use large chunks of what is essentially boilerplate code inserted automatically by the IDE, but you also sacrifice control and flexibility in that case (a well written tool should allow you to override it, but once you've made that jump it's essentially useless for further adjustments of that same piece of code).

      An honest appraisal of a language should be done in two parts. First you should compare the language itself. What features does it provide, what sacrifices have been made, how stable is the language, etc. Secondly the tools, libraries, and IDEs should be compared. Any decision concerning a language needs to factor in both the things the language excels at, as well as the availability of tools and libraries for the language to accomplish the task you're attempting.

      --
      Curiosity was framed, Ignorance killed the cat.
    21. Re:Language Independent? by Hatta · · Score: 2, Interesting

      Have scripting languages gotten faster, or have the computers we run them on gotten faster?

      --
      Give me Classic Slashdot or give me death!
    22. Re:Language Independent? by dedazo · · Score: 2

      there's very little that's genuinely "new" in any language, it's just a question of the subset of things you're already familiar with that happen to be included in X language.

      Yes, this is a key point. All modern all well-established runtimes provide effectively the same set of services. Zip up some files, create an HTTP request to download a file, parse a command line. The trick is to become accustomed to "the way it's done" for your platform (and here by platform I mean language+runtime library+VM as applicable). Being able to find where everything is and how things interoperate in the context of whatever it is you're writing for fun or profit.

      After many years of COM-based VB and C++ code, I started to learn Python during my transition to .NET back in 2001-2002. I consider myself a relatively good software developer, and I estimate that it took me about a year of constant C#/.NET usage and slightly more for Python to get to the point where I felt comfortable creating professional (i.e., pay the bills), full-fledged solutions with them.

      Learning a language's syntax takes three days. Domain knowledge of the platform and runtime you're coding against with said language is typically a slow process, no matter how good a coder you happen to be.

      --
      Web2.0: I love when people Flickr my cuil and digg my boingboing until my google is reddit and I start to yahoo
    23. Re:Language Independent? by w32jon · · Score: 0, Redundant

      I would agree to some extent, but I think more importantly, a good programmer should have a strong sense of logic and general problem solving skills.

      With that, a programmer could pick up any type of programming language, it's just a matter of understanding the style of the language, and getting familiar with libraries and what not.

    24. Re:Language Independent? by rk · · Score: 1

      Okay, I'll admit that I haven't programmed in Prolog for just this side of two decades, but can't the backtracking of inferences be used as a "function-like" thing, though it's not a function in the way a Java, C, or Python programmer would think of it as?

    25. Re:Language Independent? by Anonymous Coward · · Score: 0

      That's why we all program in APL.

    26. Re:Language Independent? by Anonymous Coward · · Score: 0

      Is that you, Linus?

    27. Re:Language Independent? by Anonymous Coward · · Score: 0

      But there are plenty of good C++ or Java programmers who would be completely lost in Lisp or Haskell. Why? Because a good Lisp or Haskell program does not break the problem down along the same lines as a good C++ or Java program. They involve a different set of skills.

      But that's kind-of the point!

      The old saw (Richard Stallman?) about becoming a better programmer if you learn Lisp -- even if you never write one line of Lisp -- is true, and mostly because you are forced to crack that habitual "style" of thinking about a problem, usually caused by the amount of effort required to learn the old language in the first place.

      I have found it *really hard* to learn Haskell, even more so than Lisp, or meta-programming in Perl (which is more complicated than Ruby, Python, etc, etc). I have stuck with it -- forcibly smacking apart almost ingrained programming habits, and with a few breaks along the way -- and I now find it unbelievably useful and even rewarding to be able to use that skill.
      Frequently, a hard problem in one language is an easy problem in another, and it is often possible to convert the easier version over after a fashion. And those time when it's not possible, Foreign Functions Interfaces are almost guaranteed with every mature language -- though not always recommended!!

      Now, you might say that a person is not a good programmer unless they have mastered a wide range of languages with vastly different approaches. But that's a much higher bar than most folks would use to qualify programmers.

      I would always say a good programmer is one who has mastered several languages, and can apply appropriate concepts to all of them successfully.

      A great programmer is one that's also mastered several language styles and "types" (for want of a better description).

    28. Re:Language Independent? by GodfatherofSoul · · Score: 1

      WTF? So, you'd rather work in assembly? That's like saying the quality of tools doesn't matter if you're a good enough mechanic.

      --
      I swear to God...I swear to God! That is NOT how you treat your human!
    29. Re:Language Independent? by Anonymous Coward · · Score: 0

      Very good comments. I agree with much of what you're saying, especially on the point
      that learning programming paradigms is very important. To make an analogy, it's the
      difference between speaking American English and British English as opposed to speaking
      some sort of English and also some sort of Spanish.

      I would like to point out that in the case of C++, advanced users can and do use a
      number of principles, including quite a bit of higher-order programming. Many good
      ideas are being adapted from Haskell, for example, even though the mechanism is
      of course often shoehorned. All the same, a great new breadth of power and expressiveness
      in C++, which is currently experiencing a sort of ideological renaissance, is presently
      blossoming. Much of this is specifically /because/ its users are taking far more advantage
      of its support for multiple paradigms (and "workalikes") than ever before.

      In these contexts, it is definitely true that a familiarity with paradigms like generic
      programming, object-oriented programming, structured programming, and functional programming
      is extremely useful and will make the learning of second-order things like syntax and
      language-specific semantics much eased.

    30. Re:Language Independent? by Anonymous Coward · · Score: 0

      Prolog doesn't even have the concept of *function*, you know.

      Sure it does. Functions are just one type of relations.

    31. Re:Language Independent? by Pollardito · · Score: 1

      While your skills should certainly be language independent, it is also true that different languages make different things easy. Otherwise, why would we have so many of them?

      It seems to me like at least a third of the languages we have exist only because they were fun for someone to make. There are as many reasons to make a new language as there are to make a new Linux distribution, and at least one of those reasons is vanity.

    32. Re:Language Independent? by pimpimpim · · Score: 2, Insightful

      Of course you are partly correct, but each time I try to run the music player on the eee (amarok), I find that it is written in such a bloated way that it hangs the music each time I open a page in firefox. I now just run mplayer directly, using up about 0.1% of cpu power. We don't have to write everything by hand in assembly anymore, but at least a basic optimization of the overhead should be fundamental in every software project.

      --
      molmod.com - computing tips from a molecular modeling
    33. Re:Language Independent? by Frater+219 · · Score: 4, Informative

      There are not just two kinds of programming languages. There are a whole bunch of different features that languages can have, that affect how programmers think about problems. I mentioned a few of them above, but consider:

      Extensible syntax. Some programming languages have extensible syntax; they allow you to define macros or "parsing words" that act like new syntactic constructs. Lisp is the usual example here, but some of the stack-based languages, like Factor, also have this property. C++, Java, and Python do not have it. Extensible languages allow programmers to create embedded domain-specific languages, moving the language's syntax closer to that of the problem domain.

      Type system differences. This isn't just static vs. dynamic typing, either. In Haskell, you create types that describe the meanings of the values your program will manipulate. In contrast, C++ programmers usually use types just to describe the implementation of data structures in memory. In Common Lisp you can talk about "the type composed of integers from 0 to 10".

      Density and function length. Languages that are very dense and do not have a lot of syntactic sugar tend to encourage very small functions. Languages that are more verbose tend to encourage longer functions, if only because it takes more words to get an idea out.

      Object system. There are many kinds of object-oriented languages: prototype-based ones like JavaScript, static ones like C++, multiple-dispatch ones like Common Lisp, and so on. Interfaces? Multiple inheritance? Mixins? Around methods? MOP? The presence or absence of these features greatly influences how you can use objects in a program.

      These are not minor differences. They dramatically change the way that you have to approach problems in order to write good code in a language. If you write Common Lisp as if it were C++, you are going to be producing bad code. If you write functions in Haskell that are as long as the ones you'd write in Java, you are going to produce incomprehensible code.

    34. Re:Language Independent? by Anonymous Coward · · Score: 0

      The music player and mplayer are not "trivial" programs. They are more like that video encoder.

      Programs that will be run for hours ever day by many people are worth taking more time to write, and thus the tradeoff favors using a language like C or C++. The developers will spend more time developing, but the final result will be faster, so it's worth it. Trivial programs, or programs that will be only run a handful of times, are good candidates for convenient languages even if they are slower.

      Actually, you also can do nontrivial things with a "scripting" language if it has libraries written in C. People do cool things in Python, like matrix math or video processing, taking advantage of C libraries (or "modules" as Python would call them).

    35. Re:Language Independent? by gd2shoe · · Score: 1

      Short answer... both.

      --
      I won't join Slashcott. OTOH, If Beta goes live, I just won't be back until it's fixed. Sorry Dice.
    36. Re:Language Independent? by johanatan · · Score: 1

      Dude, there still slow. On the order of a couple of magnitudes on average. The best bang for the buck perf-wise are languages like F# and Haskell which give you the benefits of scripting and also compilation.

    37. Re:Language Independent? by Alpha830RulZ · · Score: 1

      It's always best to use the best language for the job and far to many Java or .NET shops will use Java and .NET for everything even when there are much better tools...

      One reason for doing this is that you don't have to specialize maintenance. If you have five Java guys, and only one of them is facile in say, Perl, it may make perfectly good sense to use Java for everything, so that any of your team can maintain it, even though Perl is a better choice for writing, say, filter programs. Now, I'd rather have the folks learn Perl, too, but I understand and accept the rationale.

      --
      I was taught to respect my elders. The trouble is, it's getting harder and harder to find some.
    38. Re:Language Independent? by Anonymous Coward · · Score: 0

      Stupid git.

      Try subversion.

    39. Re:Language Independent? by SL+Baur · · Score: 1

      I can write a 20-line utility script in Perl or Scheme just fine.

      In the Real World(tm), so what? Unless you are a hit & run programmer, inflicting crap everywhere you go, and then fleeing before the bug reports start pouring in, you are spending a lot more time maintaining code than writing new code.

      The important thing is developing what Linus Torvalds calls "taste". If you can recognize crap code when you see it (regardless of language), you are way ahead in the game. Combine that with a rule from The Elements of Programming Style - if you find one bug in a piece of code, DO NOT stop looking, there are probably more, and you can impress anyone and for good reason.

      The last major bug of mine in code I had to write myself, I had diagnosed down to a small function. I thought to myself "that really looks like shit, but it ought to work". On a little reflection it was easy to see that it was shit and buggy.

      I forget who wrote The Psychology of Computer Programming, but that book advocated egoless programming and all my experiences with Open Source software development and proprietary closed source software development only reinforce the idea that that is a correct model. Always have your code reviewed. Always. Shit happens, but it happens less when there are multiple eyes looking at it.

      there's usually a huge learning curve associated with the library(ies)/runtime.

      If this is an issue, then you are in the wrong profession or using the wrong development environment.

    40. Re:Language Independent? by johanatan · · Score: 1

      Self-owned. I meant "they're".

    41. Re:Language Independent? by SL+Baur · · Score: 1

      I think the main thing I see is that the old argument, "Scripting languages are far too slow!" has finally been put to rest.

      Well, that was always an oversimplification anyway. Too slow for what, specifically?

      True. And it is also true that the answer to that question (since the time the geniuses at IBM proved beyond a doubt that compiled Fortran could ran faster than handcoded assembly) has been to require a compiled language.

      Both have their domains and their uses. Back in the late 1980s, I was writing and rewriting a program to decode "cryptograms" - ciphers that you see in puzzle books and daily newspapers, etc. At one point I got my hands on the (at long last) public domain Webster list of American English list of words and wanted to plug that into the program. I needed a very specialized search routine that would handle not-so regular expressions that obeyed the rules of 1-1 cipher text substitution. I wrote that matching routine in less than 5 minutes in Icon and plugged it into the main program for testing.

      Once it worked with the rest of the program, I rewrote the thing in C because interpreted Icon was just too slow on the processor I was working on (M68010 9MHz).

      But it depends on your application, your requirements and the available hardware you have to work with. Good programmers will satisfy all three, great programmers will satisfy all three with balance to spare on the most critical element.

    42. Re:Language Independent? by SL+Baur · · Score: 1

      Have scripting languages gotten faster, or have the computers we run them on gotten faster?

      A little of both, depending on which you're referring to.

      I hate the term "scripting language" being applied to an interpreted computer language. "Scripting language" to me has always meant something like JCL, DCL or (MS not IBM) DOS "batch" that is extremely awkward to do anything complicated with.

      Perl is specifically optimized so that it is faster for some regular expression matching stuffs than native C.

    43. Re:Language Independent? by SL+Baur · · Score: 1

      It seems to me like at least a third of the languages we have exist only because they were fun for someone to make.

      Duh. Most of the other two-thirds were done to satisfy masters or doctoral thesis requirements.

      There are as many reasons to make a new language as there are to make a new Linux distribution, and at least one of those reasons is vanity.

      Yeah, so what? I made a Steve/Linux for work because distros weren't ready then (~1996).

      There is nothing wrong with choice.

      There is nothing wrong with dozens if not hundreds of computer languages. Professionals like me can deal with that.

      There is nothing wrong with dozens if not hundreds of different O/S configurations. The world would be a richer place if there were (and not subject to these multibillion dollar MS-Windows viruses/worms/zombie nets).

      "Specialization is for insects." - Robert Heinlein

    44. Re:Language Independent? by SL+Baur · · Score: 1

      I had this discussion with a recruiter the other day that was adamant about me inserting every single language and tool they wanted into every job description I had.

      They're generally pretty clueless and I've experienced similar "discussions" in the past.

      Suggest you read: http://slashdot.org/comments.pl?sid=994501&cid=25365639

      What the recruiter is probably thinking of is that some employers only do keywords searches, so you have to get as many keywords into your resume as possible. Of course, this defeats the purpose of keywords searches to begin with ...

      Anyone can sit down, surf the web, find some sample code, stick it into a project, and then site that you used said tool in your resume...

      Suggest you also work on your English language skills. You never know when a Grammar Nazi like me is interviewing you ... Also be aware that I was putting resume text through search engines in 1997 (the last time I was interviewing people). I cannot believe the practice has not been continued.

    45. Re:Language Independent? by SL+Baur · · Score: 1

      I find recruiters often miss the mark.

      Yeah. Sometimes they aim wildly and hit the right person. When I got hired as a contractor to the company I am now working for, the job notice was worded in such a manner that I was the single best person in the world to take the job - literally. (XEmacs lisp programmer to do development on what proved to be XEmacs 21.1, the last XEmacsen released by my hand). It turned out they didn't want exactly that, but I'm not complaining.

    46. Re:Language Independent? by Anonymous Coward · · Score: 0

      Now, you might say that a person is not a good programmer unless they have mastered a wide range of languages with vastly different approaches. But that's a much higher bar than most folks would use to qualify programmers.

      Surely when defining "good programmers" as distinct from mere "programmers" you would want to set the bar high.

    47. Re:Language Independent? by SL+Baur · · Score: 1

      Now, you might say that a person is not a good programmer unless they have mastered a wide range of languages with vastly different approaches. But that's a much higher bar than most folks would use to qualify programmers.

      I do not care what most folks think. That is the standard.

      The lowering of the bar is what is causing jobs to get outsourced from the US. I'm computer language agnostic, I'll program, but more importantly read code and find and fix bugs in any language. My job is NEVER going to be outsourced. Never.

      The only restriction I've ever held on employers (since this decade, sigh, before then it never used to be a problem) is that I refuse to touch Microsoft Windows.

    48. Re:Language Independent? by SL+Baur · · Score: 1

      Okay, I'll admit that I haven't programmed in Prolog for just this side of two decades, but can't the backtracking of inferences be used as a "function-like" thing

      Egad has it been that long? Me too. Backtracking as implemented in the functional language Icon (SNOBOL 6) is similar to what goes on in Prolog, but unification makes Prolog a bit different.

      Think of functional languages as a great idea that have never conquered popular mindshare, but Prolog as a neat idea that never kind of, sort of worked out much in real life.

      The memorable experience I had with Icon was with a functional programming (our choice of implementation language) class in college to solve generalized missionaries and cannibals problems. I had the thing coded in Icon in minutes, but took hours debugging the answer to figure out why it was correct.

      I've continued to write stuff in Icon, but like you, haven't touched Prolog in over 2 decades so my memory is definitely hazy.

    49. Re:Language Independent? by rk · · Score: 1

      Yeah, I like the functional programming paradigm, which I only ever used in LISP, which has also been a nearly unmentionable number of years since I've used. Python has some functional aspects to it, which are also fun to play with.

      Icon and SNOBOL. I never worked with either, but boy howdy are those names blasts from the past, too!

    50. Re:Language Independent? by Anonymous Coward · · Score: 0

      Have scripting languages gotten faster, or have the computers we run them on gotten faster?

      Yes.

    51. Re:Language Independent? by SL+Baur · · Score: 1

      Icon and SNOBOL. I never worked with either, but boy howdy are those names blasts from the past, too!

      Icon, the successor to SNOBOL has never gotten the love it deserved from the Open Source community. It was always open, never controlled by some hard to decipher company, and always a fascinating thing to study.

      It's still alive now through one of Dr. Griswold's successors.

      I made RPMs for Icon when I worked at Turbolinux, but it appears no one else ever picked them up :-(.

    52. Re:Language Independent? by shutdown+-p+now · · Score: 1

      No, but your productivity is. It's certainly possible to drive nails in with pliers if that's the only thing that you have (or are allowed to use), but it's not the most efficient way to do that.

    53. Re:Language Independent? by shutdown+-p+now · · Score: 1
      Neither Scala nor F# are dynamically typed, and neither are bytecode-interpreted - both are JIT compiled (well, okay, Scala bytecode is sometimes interpreted by the JVM when it's not a "hot path", but .NET always compiles bytecode to native before running it - it doesn't even have a bytecode interpreter). For that matter, neither Scala not F# can be reasonably called "scripting languages".

      By the way, if by "scripting languages" you mean "dynamic typing with symbolic dispatch" - like Python, Ruby, Lua, JS etc - then they are still slower by an order of magnitude.

    54. Re:Language Independent? by shutdown+-p+now · · Score: 1

      By the way, so is Boo.

    55. Re:Language Independent? by master_p · · Score: 1

      Compare M-Torrent, which is written in C++, to Azureus, which is written in Java, and to Deluge, which is written in Python. Deluge is dog slow, Azureus is so-and-so (and it takes huge amounts of memory) and M-Torrent is fast and lightweight.

      Your argument does not really hold a candle. A complex GUI can be slow in scripting languages.

    56. Re:Language Independent? by 0xABADC0DA · · Score: 1

      Your argument does not really hold a candle. A complex GUI can be slow in scripting languages.

      So lets examine the parts of a bittorrent gui:

      * URL field (optional)
      * Start button (optional)
      * Progress bar
      * Cancel button

      A good bittorrent UI could be done in logo.

      The programs you list are solutions searching for a problem. They're like gentoo users and gcc's -Oawesome option, and discussions about them will be just about as rational.

    57. Re:Language Independent? by RAMMS+EIN · · Score: 1

      ``If your trivial program runs in 0.6 seconds instead of 0.01 seconds, you may not care about the difference. And if you can write your program in 1/10 the time, you may come out way ahead.''

      Also, the two are not mutually exclusive. You can have a language in which it takes you little time to write the program _and_ end up with an efficient program (depending on the language implementation, of course).

      --
      Please correct me if I got my facts wrong.
    58. Re:Language Independent? by Up+Cracky · · Score: 1

      However, if I wrote any sort of interactive application, a scripting language would not be my first choice. To me, it basically boils down to this: a "job" that cranks off, does it's own thing, and then ends, is a very good candidate for a scripted language. For an "application", I'm probably going to crack out C or C++ to tackle that one.

      You should check out the modern state of GUI and scripting languages. Both PyGTK and Perl::Gtk2 are great for writing GUI apps, and are a lot easier than C/C++.

      They really shine on smaller apps.

      I actually have a rant about this outdated view on scripts and GUIs at <ShamelessPlug>upcracky.blogspot.com</ShamelessPlug>./p

    59. Re:Language Independent? by Pollardito · · Score: 1

      all that is true, I'm just saying that it's not true that all languages exist because they fill a performance or ease-of-use niche like the OP suggested

    60. Re:Language Independent? by dedazo · · Score: 1

      If this is an issue, then you are in the wrong profession or using the wrong development environment.

      I know you're one of the XEmacs developers, and as such you have my respect. But I wonder how well you'd fare if I dropped you in a completely unfamiliar language with a completely unfamiliar runtime. You can be the best damn developer in the world, it's still going to take time for you to adapt to the new environment. There's no way you're not going to be fully productive inside of three weeks. You might grok the language quickly, you might get a hang of where everything is in the library in a few weeks, but domain knowledge, the point where you can actually do something productive with the platform, that takes time. No matter how awesome you are.

      --
      Web2.0: I love when people Flickr my cuil and digg my boingboing until my google is reddit and I start to yahoo
    61. Re:Language Independent? by Actually,+I+do+RTFA · · Score: 1

      Computers are really fast these days, so you can afford some overhead.

      I still have a 133Mhz machine. I just avoid bloatware on it.

      --
      Your ad here. Ask me how!
    62. Re:Language Independent? by master_p · · Score: 1

      Obviously, you haven't used any bittorrent client.

    63. Re:Language Independent? by 0xABADC0DA · · Score: 1

      Obviously, you haven't used any bittorrent client.

      Case in point...

    64. Re:Language Independent? by Anonymous Coward · · Score: 0

      You can have a language in which it takes you little time to write the program _and_ end up with an efficient program

      Well, to quote Han Solo, "That's the real trick, isn't it?"

      I don't know about you, but in my experience, I am tremendously more productive in Python than I am in C/C++. But of course my C/C++ programs run very fast. So, I'll write log scanners and such in Python, and if I ever work on a video codec again, I'll use C/C++ again.

      The LISP guys claim that LISP is smooth chocolatey goodness, as yummy as Python or anything else, and compiles to code as fast as C. I personally find Python to be much yummier so I haven't tested the speed claims. But if they are right they are the exception that proves the rule because in my experience, platforms like Python where I can solve problems with 1/10 as much code run much slower than C/C++.

    65. Re:Language Independent? by SL+Baur · · Score: 1

      You can be the best damn developer in the world, it's still going to take time for you to adapt to the new environment.

      That's true, but ...

      There's no way you're not going to be fully productive inside of three weeks.

      That's a double negative and means the opposite of what you probably intended to write. As written, I agree with you.

      As a matter of fact though, I got an assignment that was more less exactly what you wrote last spring. I wasn't writing new code though, just adapting existing code to a situation that none of the previous developers were ever required to deal with. I had no problem getting it done well within 3 weeks either.

      I brought that up because I wanted to be Anything Other Than A Programmer when I started college. Preferably a physicist, but at least a scientist. I had no aptitude for it. Absolutely no intuition whatsoever. I could do the math, then stare at the resulting equations and stuff and gain no enlightenment on what it actually meant. That was also a quote from an upper division accounting professor in a required upper division core course[1] after a first disastrous midterm who said something like "if you scored below XX% on this test you should not only rethink being in this class, you should rethink being an Accounting major and a CPA."

      You might grok the language quickly, you might get a hang of where everything is in the library in a few weeks, but domain knowledge, the point where you can actually do something productive with the platform, that takes time.

      I can see your point on that, but that is different than the point I was trying to make. If you plunked me in something Microsoft Windows and expected me to do such and such a task in C as new code, my 25+ years of experience in C probably wouldn't help me very much. But, (in the same environment) if you said there's a problem in this piece of code, FIX IT!, I can do that and so should anyone else in that situation.

      Buy me a beer and I'll tell you about the time I saved a multimillion dollar defense contract in about 10 minutes of work after attending an initial meeting where their technical lead was explaining that he thought the computers they were using were unusually succeptible to cosmic rays and that's why they were having software failures. Got a promotion, multiple bonuses in the same year and huge face with upper management out of that one.

      [1] My father always wanted me to follow in his footsteps and study accounting and after years of fighting over it, I attended the University he professed at took all the core accounting courses. I'm glad I did that before he died, actually.

    66. Re:Language Independent? by Count+Fenring · · Score: 1

      I'm addressing a side-point here, but what's your database backend on Amarok?

      I was having slowdowns, crashes, and basically experiencing torment of the slowdown kind every single goddamn time I ran Amarok. Then I realized (via the readsing, not the logicsing, full disclosure here) that this was all due to the data on those hundreds, nay, thousandillions of tracks being managed in a freaking SQLite file-based database. Since I was already running MySQL on my box for other reasons, it took three minutes to fix the problem. Now, it purrs like a dream (as long as I don't do something retarded like add 4800 tracks to one giant playlist by drag and drop. Like I just did. D'oh).

      It may just be that Amarok is too heavy on its own, after all. But then, your platform is designed as a lightweight one; I'm not sure it's fair to expect full-featured music-manager type software to run smoothly on a tiny netbook.

      To throw my oar in, though... I do with certain things (namely, adding files to a damn playlist) weren't entirely UI blocking. It's fine with a sane number of tracks, but it seems to me you could fork off a process or something to deal with large changes in state, and just lock the parts of the UI involved.

    67. Re:Language Independent? by Count+Fenring · · Score: 1

      Last paragraph, s/with/wish/.

      Sigh.

    68. Re:Language Independent? by geekoid · · Score: 1

      Oh please, languages are easy.
      Learning the business rules is complicated and a huge piece of development.

      I thought all Perl scripts were supposed to be online long? Won't you think of the slashes~

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    69. Re:Language Independent? by geekoid · · Score: 1

      Programming and engineering skills are completly separate from the language.
      If you don't understand that, then you are using your language of choice as a sledgehammer.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    70. Re:Language Independent? by pimpimpim · · Score: 1

      I have no clue, it was the default install! I can check. I think it's the UI, though, because it happens independent of the amount of songs in the playlist. Then again, sometimes the database contains all songs that were present in the playlist at some point.

      --
      molmod.com - computing tips from a molecular modeling
    71. Re:Language Independent? by Count+Fenring · · Score: 1

      Then again, sometimes the database contains all songs that were present in the playlist at some point.

      And in Amarok's case, it most definitely does. It's got a big focus on collection management (which, honestly, makes it a pretty bad fit for a netbook, where I'd be much more inclined to go for something like Beep or even moc (Music On Command-line)). You're probably not going to want to waste the RAM or the cycles to run MySQL just for an MP3 player on your eee, but it's worth it in desktop land. With MySQL as the backup, on a 1.4 gigahertz system with 1 gig of RAM, Amarok is not only snappy, but not adding significantly to processor/RAM load. And that's even when I do something moronic to lag IT the hell down (Like put 4300 songs into the playlist at once).

      But if it's default install, then it's definitely using SQLite, which produced bad, bad results for me that looked exactly like the UI being monstrously slow. Because the blocking happens any time you're doing anything with the collection of songs, which is like 90% of the time.

      I'm well aware of the code overhead involved here, but the Amarok guys should have just embedded a database into the software. Granted, my collection is large... but it's not off the edge of reason, and Amarok slowed down around the 1000-2000 songs imported point.

    72. Re:Language Independent? by pimpimpim · · Score: 1

      Ok, I can see that using an SQL backend might make sense for a PC-based Music Player. But either Asus or Xandros made a big mistake here by using it on a netbook. Thanks for suggesting moc! I will try it out, my current solution: "mplayer *.mp3" has its limits :p

      --
      molmod.com - computing tips from a molecular modeling
    73. Re:Language Independent? by Count+Fenring · · Score: 1

      Yeah. I was doing the same with Xine for a while.

      If the command line thing doesn't do it for you, Beep media player is pretty solid Winamp-esque win.

  2. This is slashdot, no? There's only one language... by Anonymous Coward · · Score: 0

    Klingon.

  3. Vulgar language. by Trespass · · Score: 4, Funny

    Oh, you meant programming. Well, fuck it. =P

  4. Language Independent! by krischik · · Score: 4, Insightful

    Right on! A good programmer will learn any programming language in a fortnight. But sadly average programers don't.

    1. Re:Language Independent! by Anonymous Coward · · Score: 2, Funny

      How quickly will a good programmer learn Malbolge?

    2. Re:Language Independent! by dgatwood · · Score: 3, Insightful

      About as quickly they learn brainf**k or Whitespace, I'd imagine, and it is about as useful....

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    3. Re:Language Independent! by $RANDOMLUSER · · Score: 2, Funny

      "Malbolge - named for the eighth circle of hell". Interesting. So the Nth circle of hell is named Perl?

      --
      No folly is more costly than the folly of intolerant idealism. - Winston Churchill
    4. Re:Language Independent! by zerOnIne · · Score: 2, Funny

      No, that would be the name of the the $_ circle of hell.

      --
      09
    5. Re:Language Independent! by arevos · · Score: 1

      Right on! A good programmer will learn any programming language in a fortnight.

      Try learning Haskell in a fortnight, if you have no experience of statically typed functional languages.

      Of course, you could be arguing that a programmer isn't very good if he doesn't already have a few functional languages under his or her belt :)

    6. Re:Language Independent! by RoceKiller · · Score: 2, Insightful

      Sure a good programmer will learn any programming language very fast. The thing that takes time to learn is the compiler, and the standard libraries available with that language and compiler. A good programmer knows his compiler inside out, that you can not necessarily pick up in a fortnight.

    7. Re:Language Independent! by alexj33 · · Score: 1

      The way to get programmers to learn something quicker is to add something catchy like "on rails" or "on struts" or, "on blocks" after it.

    8. Re:Language Independent! by sgbett · · Score: 1

      My language uses an interpreter you insensitive clod!

      --
      Invaders must die
    9. Re:Language Independent! by pthisis · · Score: 5, Interesting

      I'd consider the minimum for a really good programmer to include at least a project or two's worth of exposure to:

      At least one assembly language or pseudo-asm.
      At least one mid-level pointer-driven language (C/C++/etc)
      At least one statically typed functional language (ML/Haskell/etc)
      At least one dynamically typed functional language (Lisp/Scheme/etc)
      At least one dynamically typed OO language (Smalltalk/Python/ruby/etc)
      At least one higher-level statically typed OO language (Java/Ada/C#/etc)

      That still leaves some holes that could be tricky to pick up, and ideally you'd know:
      At least one stack-based language (Forth/Postscript/etc)
      At least one imperative programming language (Prolog/etc)
      At least one DBC-centered language (Eiffel/Sather/etc)
      At least one concurrency-oriented language (erlang, etc)

      But you can have a long and successful career as a top-shelf programmer without really needing that latter group.

      And yes, those monikers are a bit arbitrary; you can do full OO in Lisp, functional programming in Python, etc. So you can get away with a lot fewer languages than there are on the list, as long as you learn the different programming models. It tends to be a little easier to learn a model with a language that's been used that way traditionally.

      I'm sure I'm missing some areas, too.

      --
      rage, rage against the dying of the light
    10. Re:Language Independent! by arevos · · Score: 4, Insightful

      I'd consider the minimum for a really good programmer to include at least a project or two's worth of exposure to...

      I'm familiar with languages in all those categories, but I wouldn't consider them all essential. It's important to have a wide range of experience outside the norm, if only because it demonstrates an enjoyment of learning new things. But I don't necessarily think that a programmer's experience needs to be comprehensive for them to be good at their craft.

    11. Re:Language Independent! by hpoul · · Score: 2, Funny

      and to get your boss to acknowledge it you might add some other postfix like '.net', or some weird character '#' or just '2.0' ... sometimes even 'enterprise' does the job ..

      --
      Find me at http://herbert.poul.at
    12. Re:Language Independent! by arevos · · Score: 1

      Sure a good programmer will learn any programming language very fast. The thing that takes time to learn is the compiler, and the standard libraries available with that language and compiler.

      Uh, the compiler? Seriously? Could you explain what you mean by that?

    13. Re:Language Independent! by EricTheGreen · · Score: 1

      Obviously you've never worked with APL before.

      Super powerful, to be sure, but that notation...

      { shudders }

    14. Re:Language Independent! by Anonymous Coward · · Score: 0

      A language?. Yes.

      The associated libraries of functions, third party frameworks, testing methods, application servers, support communities, revision histories, deployment strategies, etc, etc?. Not so much.

    15. Re:Language Independent! by Atreju · · Score: 0

      Brainfuck was designed to be simply obfuscated. Malbolge instead was designed to be hard as hell. Just look at the only arithmetic operation available.

    16. Re:Language Independent! by Hurricane78 · · Score: 1

      No. Malbolge is far worse! Have you seen this horrible masterpiece: http://99-bottles-of-beer.net/language-malbolge-995.html

      Brainfuck... more like Getthefuckoff with your children's toys. ;)

      --
      Any sufficiently advanced intelligence is indistinguishable from stupidity.
    17. Re:Language Independent! by Zarf · · Score: 1

      Right on! A good programmer will learn any programming language in a fortnight. But sadly average programers don't.

      Below average programmers build forts around their favorite languages at night when the boss isn't looking.

      --
      [signature]
    18. Re:Language Independent! by autocracy · · Score: 1

      Fair enough, but I can still code a lot of text manipulation / db work faster in Perl than I can in C or Java. Need to modify a field in my database to remove the first row of an archived text blob and recalculate the stores hash of it? Perl.

      --
      SIG: HUP
    19. Re:Language Independent! by Anonymous Coward · · Score: 0

      Spoken like a java programmer.

      Being adequate with a language is trivial. Being nuance in a language takes 15 years of experience in it.

    20. Re:Language Independent! by ucblockhead · · Score: 1, Insightful

      Anyone who says they learned C++ in a fortnight is lying.

      --
      The cake is a pie
    21. Re:Language Independent! by Eskarel · · Score: 4, Interesting
      This is true, but totally beside the point.

      Learning a new language involves lost productivity, and if you choose a language that isn't in mainstream use it will involve lost productivity for everyone you hire to use it.

      Generally speaking new languages don't offer enough benefit over the old languages to justify that expenditure.

      It's the thing everyone always forgets, even if learning something new is easy, the new thing has to be sufficiently better than the old thing to justify the learning.

      Boutique languages are almost never a good investment because even if you hire a programmer who loves to learn the liklihood that they've learned any particular language is fairly low. Languages become popular not because they are superior in any technical sense, but because they provide a benefit for a project which outweighs the investment cost.

      Just because a programmer can learn a language doesn't mean it makes financial sense for them to do so on company time.

    22. Re:Language Independent! by johanatan · · Score: 1

      Just how do you manage to put C and C++ in the same category? C++ is definitely not 'mid-level pointer driven'. It's multi-paradigm (including the o-o, generic & functional paradigms). The only thing Java and C# have on the current C++ (TR1) are some beefy libraries. Language-feature wise, C++ holds its own (now it has closures, lambdas, etc and has had some of the most powerful template machinery known to man for quite a while now).

      And, where do you get that Prolog is an 'imperative' language? It's technically a 'logic programming language' which is closer to functional than imperative (more declaratory in nature).

    23. Re:Language Independent! by QuestionsNotAnswers · · Score: 1
      Personally I have found your list neither necessary nor sufficient.

      !necessary: The three best developers I have known just concentrate on delivering software to the clients needs. They all used their favorite language, and squeezed the most out of that language.

      !sufficient: I have also worked with useless developers that know plenty, but deliver squat.

      At least one imperative programming language (Prolog/etc)

      I think you meant logic or declarative programming.

      --
      Happy moony
    24. Re:Language Independent! by Alpha830RulZ · · Score: 1

      Bingo. Mod parent up.

      --
      I was taught to respect my elders. The trouble is, it's getting harder and harder to find some.
    25. Re:Language Independent! by bozojoe · · Score: 1

      dont forget about BrainFuck http://en.wikipedia.org/wiki/Brainfuck

      --
      lick the cancle button (at least thats what our Chinese QA says)
    26. Re:Language Independent! by belmolis · · Score: 1

      Prolog is not an imperative language; it's the opposite: declarative.

    27. Re:Language Independent! by Smallpond · · Score: 4, Funny

      It must be true that this takes time. I've been programming in Perl for years and have yet to learn anything about the compiler.

    28. Re:Language Independent! by SL+Baur · · Score: 1

      Of course, you could be arguing that a programmer isn't very good if he doesn't already have a few functional languages under his or her belt :)

      I'd agree with that statement. Maybe even a better statement would be ...

      Back when I was a programming n00b, I kept count of the number of computer programming languages I could deal with (write new code, read, debug and fix, etc.). Once I lost count, I gained enlightenment.

    29. Re:Language Independent! by SL+Baur · · Score: 1

      I'm sure I'm missing some areas, too.

      You sound like a micromanager.

      See http://developers.slashdot.org/comments.pl?sid=996855&cid=25394157

    30. Re:Language Independent! by SL+Baur · · Score: 1

      I don't necessarily think that a programmer's experience needs to be comprehensive for them to be good at their craft.

      In a very limited, specialized sort of way ... maybe.

      But I would consider "good at their craft" to be along the lines of handling someone coming by your desk unexpected, dropping a listing (or the equivalent) on it and saying "fix this" and being able to do so.

      Fortunately, such skills are rare in this profession and people like me who are language agnostic and can do things like that will forever have true job security.

    31. Re:Language Independent! by Anonymous Coward · · Score: 0

      Awesome! I know how to program in etc!

    32. Re:Language Independent! by ari_j · · Score: 3, Funny

      Enterprise Objective Malbolge# 2.0 needs to exist. Who wants to help create it?

    33. Re:Language Independent! by dgatwood · · Score: 1

      Kind of resembles the world's worst regular expression.... :-)

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    34. Re:Language Independent! by abigor · · Score: 1

      Parent is not a troll, as anyone who has done a major project with C++ can tell you.

    35. Re:Language Independent! by Anonymous Coward · · Score: 0

      At least one (only one?) keyboard driven language (APL)

    36. Re:Language Independent! by chris_mahan · · Score: 1

      Hear hear! The parent speaks the truth.

      For example, while his third sentence is understandable, it would flow better thus:

      It takes 15 years of experience in a language to know its nuances.

      This applies to natural languages as well.

      --

      "Piter, too, is dead."

    37. Re:Language Independent! by McSnarf · · Score: 1

      So what would you end up with?

      A person pretty much skilled in learning programming languages.
      Been there, done that, with a different set of languages in the 70s, 80s and 90s.
      From assemblers, to medium level macro languages like PL/M and NPL, to classical bread-and-butter languages at that time like COBOL, FORTRAN and PL/I to bizarre toys like SMALLTALK.

      Some of them, like APL, might still be around somehwere, most others are lost in the mists of time.
      (Unless you have a running POCAL implementation somewhere, let me know...)

      Sooner or later, if you want to be stuck in programming for all your life, you'll notice that - in projects people are willing to pay money for - you more or less use two or three languages, max.

      And as a programmer, you are not usually allowed a choice.

      You are paid to solve real-world problems, for real-world users, with real-world mainstream languages.
      Or you end up serving people coffee who do.

    38. Re:Language Independent! by Eivind · · Score: 1

      True. Learning a new LANGUAGE is simple. Learning a new methodology is not.

      It takes more than a forthnight to learn structured programming. Or OO-programming. Or functional programming. Or any other of the fundamental methodologies.

      Once you *do* know for example OO-programming, you should be able to translate that skill easily from C++ to Java or Python, for example. (allthough python also has functional stuff that might be harder for you)

      And yes. I do think it's important for a good programmer to be familiar with more than one development-methodology.

    39. Re:Language Independent! by shutdown+-p+now · · Score: 1

      Exposure is fine, but "at least a project or two"? How many production projects in Eiffel, or Sather, or Ada, or Erlang, have you, or at least some people you know personally, taken part in?

    40. Re:Language Independent! by messju · · Score: 1

      Hmm, I think I should feel a little insecure about his fetishes if my boss forced me to do imperative programming in prolog...

    41. Re:Language Independent! by allcar · · Score: 1

      Right on! A good programmer will learn any programming language in a fortnight. But sadly average programers don't.

      That's a very glib statement. I agree that any programmer should be able to pick up the syntax of a new language very quickly, but syntax is just the tip of the iceberg. Mastering all of the capabilities of an environment or run time and establishing how best to architect a solution is an entirely different scale of undertaking. If you could gain a thorough understanding of J2EE, it's runtime and numerous associated frameworks, that would be impressive.

    42. Re:Language Independent! by cnettel · · Score: 1

      !, (Irrelevant text here to pass by the /. filters.)

    43. Re:Language Independent! by Anonymous Coward · · Score: 0

      I wrote a compiler for malbolge. and an hello word program.

    44. Re:Language Independent! by arevos · · Score: 1

      In a very limited, specialized sort of way ... maybe.

      But I would consider "good at their craft" to be along the lines of handling someone coming by your desk unexpected, dropping a listing (or the equivalent) on it and saying "fix this" and being able to do so.

      It seems unlikely that you'd be asked to fix a bug in some 68008 assembly if you worked in a company that writes web applications. The programming field is wide enough that certain fields have little bearing on one another. I've written a few things in assembly, but I can't think of a single time that's been useful when working in Ruby on Rails.

      And whilst I know it's just a hypothetical example, people shouldn't be coming to a programmer's desk and telling him or her to fix X or Y; that's just too distracting. Put the problem in an issue tracker instead :)

    45. Re:Language Independent! by flajann · · Score: 1

      Right on! A good programmer will learn any programming language in a fortnight. But sadly average programers don't.

      A fortnight? Up until recently, it would take me a few days to a week tops. My latest acquisition, though, Ruby, only took one day.

    46. Re:Language Independent! by LittleBigLui · · Score: 1

      It already does. Except that it's called `SELECT name FROM languages LIMIT 1 ORDER BY number_of_fanbois_dangerously_close ASC`.

      --
      Free as in mason.
    47. Re:Language Independent! by pthisis · · Score: 1

      !necessary: The three best developers I have known just concentrate on delivering software to the clients needs. They all used their favorite language, and squeezed the most out of that language.

      IME, the best developers may use only a few languages but they have exposure to many. The point of learning a wide range is more to learn different programming paradigms than anything else.

      I think you meant logic or declarative programming.

      Yes, you're the first of several to point that error out.

      --
      rage, rage against the dying of the light
    48. Re:Language Independent! by UfoZ · · Score: 1

      The cool thing about that program is, it's a proof-of-concept for that guy's research paper on how to generate Malbolge code that does something.

      http://www.sakabe.i.is.nagoya-u.ac.jp/~nishida/DB/pdf/iizawa05ss2005-22.pdf

      Just to add to the obfuscation, the paper is in Japanese.

    49. Re:Language Independent! by pthisis · · Score: 1

      Sooner or later, if you want to be stuck in programming for all your life, you'll notice that - in projects people are willing to pay money for - you more or less use two or three languages, max.

      I absolutely disagree. It's nice to think that you might just be able to stick with one or two languages and work on just the code-base you're developing, but at every job I've worked there's significant exposure to lots of other systems, and unless you can deal with them in a pretty substantial way you're liable to be stuck as a junior-level coder indefinitely.

      The 4-month consulting gig I was on between my previous job and my current one used the fewest languages of any real-world gig I've had. C, Perl, Python, Ada, awk, sh.

      At the previous job we worked with C, C++, Java, Python, Perl, awk, VB, and at the very end were starting in with C# (brand new c. 2000).

      At my current job I've used C, C++, Python, Perl, Common Lisp, awk, sh, Cold Fusion, VBscript, Actionscript, and Javascript (as well as a few domain-specific languages, SQL, and markup languages).

      Sure, 95% of the day-to-day stuff is in 2-3 languages, but the other stuff comes up when integrating with outside projects (be they company-internal or not), troubleshooting the larger system of which our primary product is only one key part, helping the web designers do something trickier than usual with their Javascript/Flash, etc.

      --
      rage, rage against the dying of the light
    50. Re:Language Independent! by pthisis · · Score: 1

      Just how do you manage to put C and C++ in the same category? C++ is definitely not 'mid-level pointer driven'. It's multi-paradigm (including the o-o, generic & functional paradigms).

      As I noted, many of those languages can be used in a lot of different ways. But if you're trying to teach pointers, C and C++ are by far the most common languages for doing so.

      --
      rage, rage against the dying of the light
    51. Re:Language Independent! by pthisis · · Score: 2, Informative

      Exposure is fine, but "at least a project or two"?

      A project or two seems about the minimum to learn a language. It's pretty much impossible to really learn a language without writing _something_ in it.

      How many production projects in Eiffel, or Sather, or Ada, or Erlang, have you, or at least some people you know personally, taken part in?

      This seems like a strawman; most learning projects are a lot smaller than anything production (e.g. compare your compiler design class in university with gcc).

      The point of learning a lot of languages is mainly for exposure to multiple programming paradigms (hence why I split things up that way). Even if you never use the language itself at work, it's a lot easier to get your head around, say, functional programming by going through ML culture shock than trying to write a functional program in Java when you don't really know what that means. Once you know it, you can do it in any language.

      But to answer the question:
      I know dozens of people who are working (or have worked) on Ada projects, and I've done so in the past.

      One of our developers left our company 3 months ago to work on a commercial Erlang product, making him the 2nd I know, and we're considering using it at my current workplace.

      I don't personally know anyone using Sather or Eiffel commercially.

      --
      rage, rage against the dying of the light
    52. Re:Language Independent! by Anonymous Coward · · Score: 0

      s/imperative/declarative/

    53. Re:Language Independent! by Hoi+Polloi · · Score: 1

      I tried programming in Lisp for a while but then my parenthesis keys broke.

      --
      It is by the juice of the coffee bean that thoughts acquire speed, the teeth acquire stains. The stains become a warning
    54. Re:Language Independent! by KowShak · · Score: 1

      Given that some programmers never manage to master C++ even after several years of using it, you're being pretty optimistic. There is a big difference between grasping the basics of a language and knowing it well enough to avoid its various pitfalls e.g. object slicing or non-virtual destructors in C++.

      To get to the level where you can write good C++ takes more than a fortnight, if you (or anybody for that matter) could get through the right books (Stroustrup, Meyers x 3, Sutter x 2, Alexandrescu) and assimilate all of the knowledge they contain in a fortnight I'd be pretty impressed.

    55. Re:Language Independent! by RAMMS+EIN · · Score: 1

      I think the most important thing is that you have solved a variety of problems in a multi-paradigm language. Languages that shoehorn you into one way of solving problems don't generally give you much chance to think about what would be the best way to solve the problem. If you can suit your language to your design, instead of the other way around, you can write much more elegant code. Good multi-paradigm languages I know are Common Lisp and Ruby.

      --
      Please correct me if I got my facts wrong.
    56. Re:Language Independent! by nuttycom · · Score: 1

      I don't think that the breadth of one's experience is the most relevant factor in being a "really good programmer" these days. Given the complexity of modern systems you need to have a lot of depth of understanding of not just the language but also the standard and commonly used libraries, and all of that takes a lot of time to acquire. Without sufficient depth, even if you have the most productive language available for your task you're likely to be reinventing the wheel if you don't have sufficient knowledge of the relevant libraries and frameworks.

      Ultimately, being a really good programmer is about being to efficiently solve problems with code; while having breadth of experience can inform you of tools that might make you more efficient at a given task it's having deep and consistent experience with your tools that really makes you productive.

    57. Re:Language Independent! by shutdown+-p+now · · Score: 1

      This seems like a strawman; most learning projects are a lot smaller than anything production (e.g. compare your compiler design class in university with gcc).

      You should have clarified you did not mean production there. But anyway, what do you consider an appropriate size for such a project, then?

      Personally, the first thing I do when I'm learning a language, I write Conway's Game of Life in it. It's a pretty simple task, but it does offer some challenges when you try to come up with a more optimal implementation, and I found that it exposes the subtleties in the language design philosophies quite well (a functional-style Life is radicaly different from an OOP one, for example, and both show strong points of their respective schools).

    58. Re:Language Independent! by pthisis · · Score: 1

      You should have clarified you did not mean production there.

      I thought from context it was pretty obvious (most people aren't going to be learning a ton of languages for the first time in a commercial production environment), but obviously I was wrong--at any rate, we've got that cleared up now.

      But anyway, what do you consider an appropriate size for such a project, then?

      Personally, the first thing I do when I'm learning a language, I write Conway's Game of Life in it.

      It's a neat problem that captures a lot, and is probably about the right size for a first program in a new language (for an experienced programmer). Depending on the language/paradigm it might be worth doing something else (that's targeted toward the problem domain, to help see a common case where choosing that paradigm makes sense) as well.

      --
      rage, rage against the dying of the light
    59. Re:Language Independent! by johanatan · · Score: 1

      Actually, I'd come a lot closer to grouping C and ASM than C and C++ by that criteria.

    60. Re:Language Independent! by jd · · Score: 1

      Broke or crawled off the keyboard, crying from the abuse?

      --
      It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    61. Re:Language Independent! by pthisis · · Score: 1

      That's somewhat reasonable, though if you're trying to teach programming paradigms I think there's a _massive_ difference between teaching MIPS (or MMIX or any other asm/pseudo-asm) versus using C or C++ to teach mid-level pointer driven programming.

      I could easily see using C++ in the Java/C# category, but at the same time C fills another "programming style" category that is distinct from any ASM, and C++ is general enough that it's the only other truly mainstream language that could really fill that role.

      Ultimately, though, I think I'd agree with you; C is unique, and possibly the only language where nothing else is really in its niche. That "mid-level pointer-driven paradigm" really means that any consummate programmer will learn C, and as you say C++ just doesn't really fill the same niche.

      As such, C is possibly the _only_ language that I think pretty much every top-tier programmer I've known has a strong grasp of. I was trying to force C++ into the conversation, but you're right that it doesn't belong. In retrospect, C++ hasn't really had anywhere near the widespread knowledge among great programmers I've known that C has; it's kind of is another statically typed OO language competing with Ada/Java/etc; even though it easily _could_ be in that mid-level tier (in a way that, say, Java couldn't be), in practice it really isn't.

      So, yeah, you've convinced me. I was trying not to be too biased toward only one language in a category, but ultimately C is a special case.

      I guess I'd drop C++ entirely from the "languages to learn" list, and leave the mid-level pointer-driven languages tier to C alone. That seems sad, but really you're right; C++ doesn't have the kind of paradigm-specific traction that many of the other languages under discussion do.

      --
      rage, rage against the dying of the light
    62. Re:Language Independent! by JasterBobaMereel · · Score: 1

      But conversely learning a new language and using it *as well* as the exiting established languages to supplement their shortcomings is very productive

      Also learning a new language even if you never use it on a project may change the way you program in your existing languages ....

      --
      Puteulanus fenestra mortis
    63. Re:Language Independent! by Eskarel · · Score: 1
      I didn't say you shouldn't learn a new language. I said that there's a reason your boss doesn't want you to use these languages, and there's a reason why for all their faults C/C++ and java are still around while dozens of other languages have disappeared or been relegated to very specific niches over the years.

      As a programmer any new learning can only help you, but this idea that the new flavour of the month language is going to change the world is and always has been ludicrous.

      Very few of them offer enough actual real term benefit to make up for the costs of implementing code in them.

    64. Re:Language Independent! by geekoid · · Score: 1

      "It must be true that this takes time. I've been programming in Perl for years and have yet to learn anything about the compiler, or programming"
      Fixed it for you~

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    65. Re:Language Independent! by johanatan · · Score: 1

      I think part of the problem in classifying C++ is that it is like the swiss-army knife of languages (though even C# is approaching that too with LINQ + lambdas). And, I guess Perl is even worse in this respect. I think it's a difficult temptation to resist throwing everything and the kitchen sink into a language.

      The other side of this coin is: C++ shouldn't be left off the list but rather all facets of it explored (covering a fair number of the bases you listed). For instance, you could leave Java/Ada/C# out of the discussion if you restricted yourself single-inheritance and to using C++ in a 'pure o-o' kind of way (i.e., no free funcs).

    66. Re:Language Independent! by Fulcrum+of+Evil · · Score: 1

      bizarre toys like SMALLTALK.

      Smalltalk is a bizarre toy like Latin is a toy language.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    67. Re:Language Independent! by McSnarf · · Score: 1

      *shrug* There might be some people squeaking around, but Smalltalk is probably less popular than COBOL. Like Latin, a language way past it's prime.

    68. Re:Language Independent! by Fulcrum+of+Evil · · Score: 1

      Calling it a toy ignores its contributions to a number of the languages you use every day.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    69. Re:Language Independent! by McSnarf · · Score: 1

      Oh, it is a toy - nice to play with, but nowadays, a bit outdated. Imagine a steam engine. People used them a lot, nowadays, it is somewhat a geek toy.

    70. Re:Language Independent! by JonSimons · · Score: 1

      I'd consider the minimum for a really good programmer to include at least a project or two's worth of exposure to:

      At least one assembly language or pseudo-asm. At least one mid-level pointer-driven language (C/C++/etc) At least one statically typed functional language (ML/Haskell/etc) At least one dynamically typed functional language (Lisp/Scheme/etc) At least one dynamically typed OO language (Smalltalk/Python/ruby/etc) At least one higher-level statically typed OO language (Java/Ada/C#/etc)

      I concur!

      I think an interesting result of spending project-amounts of time with languages spanning these categories is that learning the quirks, styles, idioms, strengths, and weaknesses of one language typically enables a person to program more effectively in languages they already knew. At least, in my experience, I've learned to approach some tasks in different and better ways in language X because of my exposure to how the task might be accomplished with language Y.

      I'm sure I'm missing some areas, too.

      I think you've hit the important categories spot on.

      While not earth-shattering for brain food, a practicing programmer will probably want to pick up some shell language (bash, whatever) to enable themselves to use a shell productively. Hand-in-hand with that could also include a dose of regular expressions and using them with tools like grep/sed/awk (regex will also come in handy with the various libraries/implementations provided by all languages).

    71. Re:Language Independent! by JonSimons · · Score: 1

      The other side of this coin is: C++ shouldn't be left off the list but rather all facets of it explored (covering a fair number of the bases you listed). For instance, you could leave Java/Ada/C# out of the discussion if you restricted yourself single-inheritance and to using C++ in a 'pure o-o' kind of way (i.e., no free funcs).

      I would still leave Java or C# on the list. I would consider familiarity with more mainstream garbage-collected languages that run on virtual platforms (JVM/.NET) an important piece of the puzzle.

    72. Re:Language Independent! by johanatan · · Score: 1

      Good point. But, there actually are garbage collection and metadata reflection implementations for C++. [The 'virtual platform' is really nothing more than the 'interpreter design pattern' and could be implemented in any Turing-complete language].

      Another tidbit: a great many of the 'dynamic' features can be simulated with the combination of dynamically-loaded libraries & std::map.

    73. Re:Language Independent! by Fulcrum+of+Evil · · Score: 1

      I dunno - a steam engine is a step in the development of IC engines (and gas turbines). I wouldn't call it a toy because of that. BF is a toy language, as is intercal. Smalltalk is a predecessor of a lot of modern languages, which is a bit different.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    74. Re:Language Independent! by Tuoqui · · Score: 1

      I'm partial to English, I dont think I could learn Indian/Arabic in a fortnight.

      --
      09F911029D74E35BD84156C5635688C0
      +2 Troll is Slashdot's way of saying groupthink is confused
  5. re:klingon by Smivs · · Score: 1

    yIDoghQo'

  6. Let me see... by R2.0 · · Score: 5, Funny

    Klingon, Swedish Chef, Elvish (can't pronounce Dwarvish), Pirate, Porn Star Dialogue, and Latin.

    --
    "As God is my witness, I thought turkeys could fly." A. Carlson
    1. Re:Let me see... by Ricochet · · Score: 1

      Klingon, Swedish Chef, Elvish (can't pronounce Dwarvish), Pirate, Porn Star Dialogue, and Latin.

      There's dialog in Pron?

    2. Re:Let me see... by PolygamousRanchKid+ · · Score: 1

      Hey, that looks like my resume!

      --
      Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
    3. Re:Let me see... by R2.0 · · Score: 2, Funny

      "There's dialog in Pron?"

      If you count the grunting and moaning - THAT would perk up a Powerpoint presentation.

      --
      "As God is my witness, I thought turkeys could fly." A. Carlson
    4. Re:Let me see... by Ethanol-fueled · · Score: 1, Offtopic

      The first pornographic movie I ever saw - Looking for Love -- featured a plot with reasonable amount of dialog. The setting was a sexual therapist's office and waiting room which featured a plant which, unbeknownst to the doctor and his patients, made horny anybody who smelled it after they sprayed it with water. It worked wonders for the impotent man and his wife, the doctor's secretary and some random woman, and a few others.

      Plus, it was also the first time I'd seen a woman penetrated with a Vidal Sassoon Hairspray can.

    5. Re:Let me see... by PinkPanther · · Score: 3, Funny

      You remember the brand of hairspray? Man, now THAT's advertising you simply couldn't buy!

      --
      It's a simple matter of complex programming.
    6. Re:Let me see... by Anonymous Coward · · Score: 0

      yes, all future advertisements for any reasonably sized product should consist mostly of their use in some porno. Although, I'd recommend advertisers stay away from 2g1c... I believe that may be the exception to the rule about bad press.

    7. Re:Let me see... by Anonymous Coward · · Score: 0

      Plus, it was also the first time I'd seen a woman penetrated with a Vidal Sassoon Hairspray can.

      You've seen that more than once?

    8. Re:Let me see... by not+already+in+use · · Score: 1

      Plus, it was also the first time I'd seen a woman penetrated with a Vidal Sassoon Hairspray can.

      Pshhh, you must not get out often.

      --
      Similes are like metaphors
    9. Re:Let me see... by Anonymous Coward · · Score: 0

      Product placement. The original concept.

    10. Re:Let me see... by michaelmuffin · · Score: 1

      Plus, it was also the first time I'd seen a woman penetrated with a Vidal Sassoon Hairspray can.

      -1 informative

    11. Re:Let me see... by the_womble · · Score: 1

      It would also be just as useful as the content of the average Powerpoint presentation, except perhaps lacking in soporific qualities.

  7. Klingon... definitely Klingon by Anonymous Coward · · Score: 0

    Hab SoSlI' Quch!

    1. Re:Klingon... definitely Klingon by Smivs · · Score: 1

      Be smooth, mother your forehead?

    2. Re:Klingon... definitely Klingon by Anonymous Coward · · Score: 0

      Your mother has a smooth forehead. It's an insult.

    3. Re:Klingon... definitely Klingon by Smivs · · Score: 1

      OK. With you now.

  8. Scripting Languages? by Anonymous Coward · · Score: 0

    In 6 Scripting Languages Your Developers Wish You'd Let Them Use, CIO looks at several (including Groovy, Scala, Lua, F#, Clojure and Boo)

    Well, it's news to me that Scala & F# are scripting languages. Don't you have to compile them? I think scripting languages are technically those that control programs. They're often (though not always) interpreted or at rarely semi-compiled.

    Furthermore, I wish my job was to sit around all day and learn only new stuff each day but at some point I have to produce something in a language that is well supported and deliver it to a customer. Unfortunate but these languages are investigated in my free time (don't even get me started on how I think companies should let employees invest their time).

    1. Re:Scripting Languages? by JCSoRocks · · Score: 1

      Yeah, and apparently you have to stop using .NET to use F#... even though, you know, it's a .net language. Summary and article are both jacked.

      --
      You are using English. Please learn the difference between loose and lose; they're, there, and their; your and you're.
    2. Re:Scripting Languages? by pseudorand · · Score: 2, Interesting

      Furthermore, I wish my job was to sit around all day and learn only new stuff each day../

      I used to have that job, writing for a magazine. I was really excited about it at first, but I quickly realized that to write intelligently about a technology you have to get to know it by using it in the real world, which simply takes time. I found that I simply couldn't get to know some new piece of hardware of software well enough to write anything decent about it before my article deadlines, and I felt I was getting dumber every day. So I went back into the programming and sysadmin world and now I feel like I know what I'm doing again (at least with the technologies I use regularly).

      I think Lynn Greiner may be in the same boat. She asks:

      CIO.com: What effect has the growing prevalence of Ajax had on the adoption of the various languages? Are people adapting the techniques to languages other than JavaScript?

      The question doesn't really make sense. If you know what Ajax is, you know it's specific to the web browser/web server model. It solves the problem of the web server not knowing the full state of the browser. Rather than having the server regenerate an entire page and try to preserve client-side changes to that page, Ajax is simply a standard to let the browser get data from the server without reloading the entire page. Maybe it sort of makes sense if you use a client/server model with some other language (like tcl/tk), but then you have access to TCP/IP libraries and the command line. Ajax is only necessary because browsers can't just let a client open arbitrary TCP streams and run arbitrary commands. If it could, there would be a million different ways to do the same thing easily (think wget | grep | cut | sed | ...).

      The people she interviewed seemed to agree with me:

      Boyd:... The techniques of Ajax are really only applicable inside the browser.

      Dice: Ajax is entirely a JavaScript phenomenon

      Holden: Since Ajax is simply asynchronous network calls, it is not affecting the adoption of any specific language beyond more JavaScript usage in webpages.

      Lam: Ajax is popular because browsers are popular. JavaScript's popularity is directly tied to the fact that it's deployed on virtually all browsers today.

      Pall: Ajax is a very specific technology that allows webpages to rise above mediocre user-interfaces and become true applications using JavaScript.

      I think Lam's comments are the most interesting. JavaScript isn't a horrible language, and it should get credit for helping people realize that useful things could be done in interpreted languages, but aren't we all really itching for a better language on the browser. Too bad the W3C moves at a sails pace and Microsoft and Mozilla disagree on things simply to disagree with each other half the time.

    3. Re:Scripting Languages? by reed · · Score: 1

      Well it's not so much that AJAX is a web only thing, it's just that outside the restrictions of the browser's Javascript environment, i.e. in any general purpose programming language with networking libraries, it's just nothing special... just another use of networking. It's special in the web world because anything requiring that you make a request was just impossible until the ability to do so was added to the main browsers' Javascript APIs, and because the application is narrowly defined to showing HTML pages.

  9. The Tags say it all. by Anonymous Coward · · Score: 5, Funny

    donotwant developers programming

    Sounds like the corporate policies I've gotten used to.

  10. scsh and BeanShell by Anonymous Coward · · Score: 1, Interesting

    scsh and BeanShell are both scripting languages that are pretty cool, the first uses Scheme and the second uses Java.

  11. LISP motivation by Anonymous Coward · · Score: 0

    For I am still to find the first solution to a problem, that can't easily be translated to LISP

  12. 6 languages - 2 paradigms by Anonymous Coward · · Score: 0

    C++
    Lua
    Javascript
    Python
    Ocaml
    PHP

    --------------
    Ability to create class defintions
    on the fly, add data members and functions

    Create anonymous functions, bind
    variables to them and the pass them arround

    Parsing library on top of regular expressions
    such that matched text is easily extracted
    and becomes part of the 'languages' native
    data structures

    Native JSON support.

    Lua, PHP and to a degree Java script all
    satisfy the above. Also probably Python.

    However C++ and probably Ocaml add
    the ability to deail efficiently with
    OS, Databases, and large chuncks of data
    (when those need to be manipulated in memory)

    Not including Perl or Ruby -- because
    the first one is on the wrong path,
    and the other (Ruby) is not better than
    the the ones I already listed.

  13. Wait and see. by LWATCDR · · Score: 5, Insightful

    I remember when ADA was going to be the next big thing. Then it was SmallTalk. I actually used Modual-2 back in the day. C? was never going to take off. It was too big and slow for micro computers and not high level enough for minicomputers. The only people that would ever really find use for it where those few people that used Unix.
    Before that it was PL-1 and Simula. I left out the fourth generation languages that where going to let everybody write their own programs. Oh and programing by making flow charts... Or was it Hypercard that was the future...
    Well you get the idea. Most where really good programing languages but there seems to be a limited number of languages that reach critical mass. I remember Comal which was a great little language on the old 8 bit machines but it only became popular in Europe.
    Oh well we will see what happens this time.

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    1. Re:Wait and see. by Falstius · · Score: 1

      Oh and programing by making flow charts

      Burn LabView, burn!

  14. My $0.02 ECD by pembo13 · · Score: 0
    Not that any one asked, but:
    • PHP -- gets quick, small jobs done quickly
    • Perl -- ok I guess, never had a need for it
    • Python -- my muse
    • Ruby -- ok, but I dislike the attitudes of many of their loud users
    • Tcl -- haven't needed
    • JavaScript -- Jquery makes it nicer, but it makes me which browsers support Python
    • Java -- nice, only used a bit
    • .NET. -- well that isn't a language, I'll assume they meant C#, which I like, but I haven't seen how it is extraordinarily better than have aside from the System. namespace it gets from .NET

    Of the others I mentioned, I have no opinion on.

    --
    "Thanks for all the money you paid to us. We've used it to buy off ISO among other things" -Microsoft
    1. Re:My $0.02 ECD by nizo · · Score: 1

      Tcl -- haven't needed

      Be thankful; having had to support a financial application written entirely in Tcl (yeah, don't ask) I am grateful I will never have to touch a line of Tcl code again. It was awesome getting paged when code that had been in production for two years would error out with a syntax error (not preprocessed, and obviously someone didn't test it thoroughly). I still have bald patches on my arms from that job.

    2. Re:My $0.02 ECD by belmolis · · Score: 1

      The problem you describe is hardly inherent in Tcl. It's a result of inadequate testing and failure to use the available tools. There are very good IDEs, syntax checkers, and other tools for Tcl. There are even byte-compilers (used mainly for obfuscation - Tcl parsing is fast enough that there isn't much of a speed advantage to compilation.)

  15. XQuery by Anonymous Coward · · Score: 0

    Rather than map everything in and out of relational tables, in and out of (x)HTML docs, in and out of DTOs, I'm using XQuery most of the time to just move directly from XML feeds to XHTML web pages or JSON formats.

    It's pretty standard, but the boss still tends to think in terms of the Relational DB back end, three tiers, etc. that (s)he used in the 90s.

    Look up XRX here http://en.wikibooks.org/wiki/XRX, or see Mark Logic, eXist (FOSS), or XQuery featres of IBM's DB2 and Oracle databases.

  16. English :) by TheLink · · Score: 1

    Say you like creating programs and not maintaining them (e.g. doing boring minor "enhancements"), so you want to create a program, and then outsource the support to India (for example), so that you can go on with creating other programs.

    How do you do that in LISP?

    I don't like Java, but seems all these "outsource" programmers love it. So it makes some sense to write the program in English, and get the programmers to "compile it" to Java, C# or some other buzzword compliant language of the day.

    --
    1. Re:English :) by Anonymous Coward · · Score: 0

      Too late. The ENGLISH programming language has already been invented. It was a data query language that was a part of the Pick operating system: http://en.wikipedia.org/wiki/Pick_operating_system There was also a related OS called REALITY. So I guess we all living in the REALITY MATRIX.

  17. "scripting languages" by burris · · Score: 1

    I think the term "scripting language" has drifted so far from it's original meaning (whatever that was) that it is now an entirely new term. Best I can gather, for some time now the term has been used to indicate a new language that the writer believes, either consciously or subconsciously, is inferior to their own language of choice.

    Lots of reason it could be inferior; it's just some hackers toy project, nobody uses it, it has weird syntax, whitespace is significant, or the reference implementation doesn't have a separate "compilation" step.

    Basically, the people using these scripting languages (most of whom think of them as real languages) are off getting work done and having fun, which makes the people who don't use them jealous.

    That's my theory, anyway.

    p.s. scala positively rocks and is ready for prime-time while clojure looks promising if you're into that sort of thing!

    1. Re:"scripting languages" by tchuladdiass · · Score: 1

      My definition of scripting languages:
      A script is a sequence of instructions (forming a program) that is used to control a parent program. Examples include communications program dialing scripts, or spreadsheet scripts. Unix shell scripts also fall into this category because they control the shell (they cause it to launch other programs under the scripts control).

      Therefore, a scripting language is a language that was specifically designed as a control language that gets attached to another program. Since it is designed to allow typical users of that program to write code in it easily, these languages typically include more user friendly features such as dynamic variables and interpreted execution. Also they provide for "immediate coding" -- that is, you can start writing the meat of the script without having to write a bunch of header or setup code.

      Now other languages, such as Perl and Python, were never designed to attach to a parent program; instead they were designed to be used stand-alone. However since they share a number of characteristics that scripting languages employ (such as dynamic variables, immediate coding, interpreted execution), they can safely be categorized as "scripting-like" languages (which gets shortened to "scripting language"). Note, that TCL is a genuine scripting language since it was designed specifically to be a control language to embed into other programs. What makes a language embeddable is it must provide a mechanism to pass data back and forth to the parent program, and also have a way to call procedures provided by the parent program.

    2. Re:"scripting languages" by burris · · Score: 1

      I'm not disagreeing with you but Python has had an API for embedding it in larger programs for as long as I can remember (13 years.) The game Civilization IV uses it as a scripting language to great effect and I am sure there are others.

      It's just a very powerful and flexible language that's good in a great many situations. Just like most of the "scripting languages."

    3. Re:"scripting languages" by geminidomino · · Score: 1

      I've always referred to interpreted languages as scripting languages, personally. If it makes a standalone executable, it's not a scripting language.

  18. The groovy thing about Groovy by Anonymous Coward · · Score: 0

    Is that it's not like other languages, you still write Java with dynamic typing. Or of need to use static typing it's 100% compatible with Java.

    With Groovy you can extend existing Java classes, or you can extend existing Groovy classes with Java.

    Choosing the right tool for the job is in fact bloody difficult, with Groovy choosing the right tool has become way easier!

    1. Re:The groovy thing about Groovy by burris · · Score: 1

      With Groovy you can extend existing Java classes, or you can extend existing Groovy classes with Java.

      Yeah but with Scala you get all of that plus you get one big thing that Groovy lacks, performance.

      I used to be the enemy of strong typing and did all of my development in obj-c and python. Then I discovered that there are languages with much more powerful and easy to use type systems than C++/Java. Now I have seen the light!

    2. Re:The groovy thing about Groovy by Anonymous Coward · · Score: 1, Informative

      Scala is a statically typed language with support for functional programming with anonymous functions and closures as well as type inference. It is not, however a dynamic language like Groovy. Nor did the designers ever intend it to be.

    3. Re:The groovy thing about Groovy by arevos · · Score: 1

      Is that it's not like other languages, you still write Java with dynamic typing.

      Clojure is also dynamically typed, and it's a lot faster than Groovy.

    4. Re:The groovy thing about Groovy by rk · · Score: 1

      Python is strongly-typed. Do you mean dynamic typing?

  19. TODAY IS A GOOD DAY by Anonymous Coward · · Score: 0

    ...to die in a fire

    DIAF!!!

  20. Recognizing what languages to avoid ... by PolygamousRanchKid+ · · Score: 1

    Your programming skills should not be tied to the language you use.

    A more important skill is recognizing what languages, platforms, etc. to avoid, and convincing your manager that whatever he has read about the "Silver Bullet" stuff is incorrect.

    So, it is not a questions of what your programming skill are, I assume that any good programmer will get the job done in a reasonable amount of time, regardless of the language. Provided, that the language is suited to the task!

    So it is not just a question of: PHP, Perl, Python ... and anything else that starts with "P".

    How about SNOBOL, JCL, FORTRAN, COBOL, Pascal (oh, erase that, it starts with "P")?

    A "no Perl" strategy is asinine. As is also "no COBOL."

    It all depends one what you need to produce. And what rat-tail the code has.

    --
    Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
    1. Re:Recognizing what languages to avoid ... by SL+Baur · · Score: 1

      How about SNOBOL

      SNOBOL is obsolete, use Icon. RIP Dr. Ralph Griswold, one of my heroes.

  21. The lost art by Alzheimers · · Score: 4, Insightful

    If you can't write it in a .BAT file, it can't be done.

    1. Re:The lost art by Anonymous Coward · · Score: 0

      for %f in (I forgot to laugh) do @echo That's so funny!

    2. Re:The lost art by LordOfTheNoobs · · Score: 1

      I can do some pretty evil stuff in .BAT files...

      --
      They're there affecting their effect.
    3. Re:The lost art by Anonymous Coward · · Score: 0

      I have done some pretty evil stuff in .BAT files, but I have since had that part of my mind surgically shut away from the rest of my psyche. These days I hardly ever get the urge to murder people, and the twitching is hardly noticeable at all.

  22. l337 by Coraon · · Score: 1

    damn programing languages, I was hoping for l337

    --
    -Ours is the wisdom of Solomon, the magic of Merlyn, the fall of Icaris.
  23. LOLCODE by Shikaku · · Score: 5, Funny

    HAI
    CAN HAS STDIO?
    I HAS A VAR
    IM IN YR LOOP
          UP VAR!!1
          IZ VAR BIGGER THAN 10? KTHX
          VISIBLE VAR
    IM OUTTA YR LOOP
    KTHXBYE //outputs 1-10

    1. Re:LOLCODE by paulthomas · · Score: 4, Funny

      OMG WAU!!! U CAN HAS javascript implementashun!!

      JAVASCRIPT VERZHUN moer liek:

      HAI
      CAN HAS STDIO?
      I HAS A VAR IZ 0
      IM IN YR LOOP
                  UPZ VAR!!1
                  IZ VAR BIGR THAN 10?
                                  GTFO.
                    KTHX
                  VISIBLE VAR
      KTHX
      KTHXBYE

      Javascript Lolcode Inturpretur.

      KTHXBYE, WTFBBQ!

      *ducks*

    2. Re:LOLCODE by Anonymous Coward · · Score: 2, Informative

      The sad part is, that's a real language. Someone wrote a BF compiler in LOLCODE(http://forum.lolcode.com/viewtopic.php?id=51).

  24. ...on the other hand... by Anonymous Coward · · Score: 0

    I wish mine would let me use C++ and Haskell instead of "scripting languages" sometimes. In our environment, the headaches of "all Perl and Ruby all the time" are huge.

    1. Re:...on the other hand... by Esther+Schindler · · Score: 1

      I think the problem is "you can only use..." and not what the tool is.

  25. I'd like to use... by owlnation · · Score: 2, Funny

    English, instead of Buzzwordish.

  26. How about... by Minwee · · Score: 2, Informative

    "Six Languages You Wish The Yo-Yo Who Got Fired Before You Had Never Used"?

    We could start with "Incomprehensible" and "I'm Just Learning This" and go on from there.

  27. Haskell, F# by johanatan · · Score: 1

    Subject speaks for itself.

  28. Obligatory car analogy by arevos · · Score: 1

    Your programming skills should not be tied to the language you use.

    Sure, and good driving skills should not be tied to the car you drive, but I suspect you'd probably prefer driving a Porsche over a Reliant Robin.

  29. Using a different language is expensive. Summary by Jack9 · · Score: 0

    Our current tools are [A] and [B] for aspects (C), (D), (E), (F)...and anything else we need.
    Everyone in the company knows [A] and [B] to different degrees. Primarily in relation to 3rd party libraries, methodologies (optimization, maintenance) and architectures (planning and abstractions).

    [A] is slow in some respects for (D) and REALLY good at (F).
    [B] is ok in (D) and good at (E), (F) and a number of others.

    There are plenty of people in the workforce who know A,B or both to varying degrees.

    Introduce Language [1]

    [1] is really good at (F), (G), but there isn't a lot of data at what it's NOT good at.

    Now why would we use that? In certain cases it's better than what we have but there's no support/market/libraries/practices for [1] so we skip it.

    Boo is 0.8.2 - If you wish your boss would let you use this, you're fired.
    F# - Not related to [A] or [B] unless [A] or [B] is ASP or C#, I could understand a more generic Functional Lang like Hask,OCaml,Erlang but F#? (educate me here)
    Groovy - JVM Java scripting for when Java is too hard for you? Wow. You're fired.
    Scala - yes. Finally, Advanced Java.*
    Clojure - Functional syntax on the JVM. Why would I use this and for what when there's no support?
    Lua - A very succint and efficient scripting language. Looking for performance in a scripting language is usually counter-intuitive and there's very few places it is advisably used, but it is handy when you're looking for performance for aspect (@). Chances your developer wants to use it inappropriately = 99%

    Notice 3 of these are JVM languages, as if (rightfully?) dissatisfied with Java. Personally I can only see a reason for 2 of these languages to exist at all. For all of time there will be people interested in creating their own languages for various reasons (including simple compulsions) and few of them will really be justified beyond the joy of just working on something "new".

    * No, I don't know Scala. I know some Lua from WoW. I may be biased based on my 20 odd years of experience.

    --

    Often wrong but never in doubt.
    I am Jack9.
    Everyone knows me.
  30. two by Anonymous Coward · · Score: 0

    1. *all* of C++, not just the basics. also third party libraries like boost
    2. Objective C

  31. Atari Basic/Turbo Basic by logicassasin · · Score: 1

    'cause then I could be a developer again...

    --
    Fifty watts per channel, baby cakes.
  32. Re:Using a different language is expensive. Summar by arevos · · Score: 3, Insightful

    Boo is 0.8.2 - If you wish your boss would let you use this, you're fired.

    I once created an in-house fork of Boo for file processing. It worked reasonably well as a stopgap solution, and I wasn't fired at the end of it.

    I could understand a more generic Functional Lang like Hask,OCaml,Erlang but F#?

    Haskell, OCaml and Erlang don't have access to the .NET libraries. F# does, so you get the benefits of a statically typed functional language with the extensive .NET APIs.

    Groovy - JVM Java scripting for when Java is too hard for you? Wow. You're fired.

    Groovy is a superset of Java functionality, not a subset. You can do everything in Groovy that you can in Java, but there are a lot of things in Groovy that Java lacks, most notably closures.

    So if anything, I'd contend that Groovy is harder to learn than Java.

    Clojure - Functional syntax on the JVM. Why would I use this and for what when there's no support?

    The mailing list is quite active, so I assume you're talking about a paid support contract or something? Can you even get that kind of support with, say, Scala or Ruby? Would you even want to?

    Lua... Chances your developer wants to use it inappropriately = 99%

    Uh, hire better developers?

    I mean, really, if you're working with morons, then sure, you might not want them to use a language they can screw things up too badly in. But it's probably better to just hire competent programmers in the first place.

  33. Oblig by nog_lorp · · Score: 1

    Intercal!

    1. Re:Oblig by Max+Littlemore · · Score: 1

      Befunge. I have nearly finished work on Enterprise Micro Funge 7.5 (the first official release), a concurrent funge with a network stack which has as one of its myriad of features the ability to pull an svg document out of a SOAP container which defines the funge space. This allows your messages to be the actual code you run, while maintaining excellent code visualization you'd expect from a world class funge. I'm this far off getting it self hosting.

      I know this isn't a popular approach aroud here, but I'm reluctant to open source this one. I think I'm onto a winner, even though I'm currently having a little trouble getting it past management, and I do want to strike it rich in computers. If I can just make the business case for the switch attractive enough, what would have been a 2 hour job in any other modern language will stretch out to 2 years! You can't get more Enterprisey than that!

      --
      I don't therefore I'm not.
    2. Re:Oblig by aldousd666 · · Score: 1

      sure you can. It's called SharePoint, and unfortunately I happen to be a sort of expert in dev for it. It can turn any routine web page into a framework driven nightmare replete with arcane GUIDs, ridiculous XML markup, and well lets face it, more arcane GUIDs in ridiculous XML markup. Enterprisey? You Betcha! (any similarity between my last exclamation and that of Sarah Palin is purely the redneck in me showing through.)

      --
      Speak for yourself.
  34. Groovy by lgbr · · Score: 4, Interesting

    I wasn't sure what I was getting into when I had asked a programmer to replace our crummy Jython interface with Groovy. Ten minutes after I had asked him to do it he says he's done. He shows me a clean interface complete with the functionality for saving files, copying and pasting, search and replace, and a handy output section. I had even asked him to integrate it with the rest of our program, but a simple 'import com.ourcompany.ourproduct.package' in the groovy console already had that solved. Now development has sped up slightly as we even do some development in the groovy console so that small tweaks and changes don't mean we have to wait for a re-compile.

    I am one boss who welcomes groovy.

  35. URBI? by brunonery · · Score: 1

    How could they forget URBI? It's LUA for robots, people!

  36. Honestly, no I don't wish by Sarusa · · Score: 2, Insightful

    These seem to be the languages you wish your boss let you use if you're a corporate guy who's already in a shotgun wedding with JVM or .NET (and it is CIO Magazine, so this makes sense). And then for some reason Lua, which is a neat language, but if it's good for your problem domain you're already using it - and it seems out of place with the others listed.

    My boss lets us use Python for most things (hell, he loves it, even though he's not a programmer, since he likes how fast and easy it makes dev and maintenance), and I don't see any reason at all to even contemplate switching to one of these. Not that they look bad, but since we're not already shackled to the JVM or .NET I just don't see a compelling draw.

  37. Re:Using a different language is expensive. Summar by kaffiene · · Score: 1

    Scala *does* look cool.

    We use Lua at work. Your comment about being misused certainly resonates with me. That's one 'feature' that will be up against the wall when the revolution comes (or the rewrite, which will probably occur first)

  38. Re:Using a different language is expensive. Summar by John+Courtland · · Score: 1

    Wow that's probably the most ignorant comment I've read this year on this site. Congrats to you.

    --
    Slashdot is proof that Sturgeon's Law applies to mankind.
  39. "6 scripting languages" by DancesWithBlowTorch · · Score: 1, Troll

    In 6 Scripting Languages Your Developers Wish You'd Let Them Use, CIO looks at several (including Groovy, Scala, Lua, F#, Clojure and Boo)

    Sorry, but what is their definition of a scripting language? F#, for one, is a full-fledged functional language, with full access to the .NET framework. You can write stand-alone applications in it just as easily as in C#. And yes, people actually do that.

    1. Re:"6 scripting languages" by SecondaryOak · · Score: 1

      Sorry, but what is their definition of a scripting language? F#, for one, is a full-fledged functional language, with full access to the .NET framework. You can write stand-alone applications in it just as easily as in C#. And yes, people actually do that.

      Same with Scala and the JVM. Although the definition of "scripting language" is usually subjective, I think most people won't call Scala one.

    2. Re:"6 scripting languages" by Esther+Schindler · · Score: 1

      I confess that I didn't give a lot of attention to the definition of "scripting language" when I put together my short list. That's because > I started with the suggestions from the earlier slashdot comments. (You'll note that I quoted the Groovy person from that discussion.) At least a couple of people said Scala really ought to have been included so I figured, "okay, sure."

  40. Spanish by Anonymous Coward · · Score: 0

    Hablo un poco espanol!

  41. I wanna use French by cbraescu1 · · Score: 1

    How'bout that?

    --
    Catalin Braescu
    Ofaly.com
  42. Re:Using a different language is expensive. Summar by Samah · · Score: 2, Interesting

    I love Lua. I'm glad it was mentioned because I think it's one of the most underused languages I've had the chance to work with.

    I had a GPS daemon I needed to write for an MDT (Mobile Data Terminal) Windows CE environment, and the CE API is just a complete shocker. In the end I managed to compile a branch of Lua called LuaX (has wince libraries) which comes with a bunch of awesome modules. A few of the modules did exactly what I needed (serial port and network sockets). One simple script handled everything I needed. I'm not saying it was the only solution, but I found it to work quite well, and the libraries were all there for me.

    There's even a project called Kepler to use Lua for server-side scripting (similar to PHP).

    --
    Homonyms are fun!
    You're driving your car, but they're riding their bikes there.
  43. The real world called, and it's unimpressed. by Anonymous Coward · · Score: 1, Insightful

    As a CTO and the guy who's money is at stake, this is complete crap.

    Yes, a good programmer can pick up the syntax of any language. But syntax hasn't been the key to a language since K&R's White Book. The main issues is the API that goes with it. When I hire Java coders I want them to use Collections, not 1.1-era Vectors. I want them to use a FilterInputStream, not bring the whole thing into a byte array and then munge it.

    Every language has paradigms, coding styles, best practice and APIs that must be learned through use, not osmosis. If you don't have this knowledge you'll reinvent the wheel, and you'll inevitably do a poor job. Look back at when you switched from C to Java, or whatever - you'll find this self evident.

    Following on from that, I need to hire people with these skills and know I can replace them if they leave. 150,000 lines of beautifully written X is no good if I can't find anyone that speaks X, not matter how perfect it's structure.

    In short, the Boss is right.

    1. Re:The real world called, and it's unimpressed. by arevos · · Score: 1

      Yes, a good programmer can pick up the syntax of any language. But syntax hasn't been the key to a language since K&R's White Book. The main issues is the API that goes with it.

      And if you had bothered to read the article, you'd have learned that out of the 6 languages, 3 use the Java API, 2 use the .NET API, and the remaining one is designed to integrate very well with C.

  44. LISP by Anonymous Coward · · Score: 0

    Search for Common Lisp stories and weep.

    http://wiki.alu.org/Success_Stories

  45. Here's my 6 by russotto · · Score: 1

    Intercal
    Brainfuck
    Whitespace
    Robotwar
    Loglan
    Proto-Indo-European

  46. Don't ask for permission, ask for forgiveness. by Anonymous Coward · · Score: 0

    You people actually ask the boss which languages to use? Well there's your problem right there.

  47. F# has terrible reviews by QuestionsNotAnswers · · Score: 2, Funny

    Google F# bad

    Although it used to be worse:
    Google F#

    --
    Happy moony
  48. Language Independent? You better believe it. by SL+Baur · · Score: 1

    I fully agree. The most profound education I ever got was from Donald Knuth's Art of Programming where he wrote that.

    I know I've lost in this argument over nomenclature, the same as Stallman lost over the once honorable word "hacker", but "scripting language" denigrates what should be considered as interpreted computer languages.

    My own picks:
    Lisp (any flavor)[1]
    Icon (RIP Dr. Ralph Griswold)
    Unix Shell (ksh and beyond, but particularly zsh)[2]

    [1] I've been paid on several occasions to write Lisp code and oh man, what a rush! All hail Dr. John McCarthy, inventor of the only language over half a century old that people still love and use.

    [2] We're supposed to do everything in Perl in the project I'm now on, but I sometimes slightly bend the rules and sneak straight Unix shell stuffs in and zsh when I need to do something a little more complex.

  49. Prolog.... by weston · · Score: 1

    At least one imperative programming language (Prolog/etc)

    Pretty sure you meant to say "declarative" or "logic" rather than imperative. :)

  50. Obscene by Doc+Ruby · · Score: 1

    "Obscene" language is the universal language of all programmers, especially while debugging.

    --

    --
    make install -not war

  51. Re:Using a different language is expensive. Summar by PPH · · Score: 1

    What it boils down to is: your company has invested heavily in tools [A] and [B]. The cost to change to anything else in midstream is high. Meanwhile, your competitor has selected [C] and [D] because 1) they entered the market later, when these tools were more mature, 2) their management had more insight into the problem domain and selected [C] and [D], or 3) they were simply lucky.

    Time goes by. [C] and [D] provide a measurable competitive advantage over [A] and [B]. Your company goes out of business. Your competitor takes over the market.

    The smarter move would have been to keep the cost of change down and, when conditions dictate,make the move to the better option. Often, management doesn't like IT departments worrying themselves over such details. Its better to stay focused on the plan than continually be fiddling with it. Management will take care of strategy issues and, when it comes time to make the switch its easier for them to get a new software shop up and running with [C] and [D] in a green field location, like Bangalore, than it is to have the current shop go through the throws of a revolution in culture. Just close the current [A], [B] shop down.

    --
    Have gnu, will travel.
  52. C++ functional? by krischik · · Score: 1

    I can't see C++ being functional. There might be a library to add functional programming - but the language itself: no.

    And yes, C++ is pointer driven - especially with the very low level implementation of arrays. And no, vector is feature of the STL library not the C++ language.

    1. Re:C++ functional? by cnettel · · Score: 1

      The STL library is part of the C++ standard. It is a crucial part of the language, forming many of the idioms in it. Just like malloc in C. In C and C++, you can at least imagine the language without its libraries (although RTTI, constructor calls for global variables and the matter of the entry point at all require some hefty bit of imagination to get it without libraries).

      For a language like Python, the distinction makes no sense. The syntax is filled with sugar resulting in function calls (on the interpreter side) that can be overloaded to some degree. C and C++ are no less versatile by the fact that much of the functionality expected is found in the standard libraries and can be excluded. They are less versatile due to the limited total functionality of those standard libraries.

    2. Re:C++ functional? by johanatan · · Score: 1

      Actually, the language itself does support functional programming via function pointers. All the libraries do is make the syntax a little more bearable.

      Functional is as much a style as a 'paradigm'. It can be practised in a great many languages (even C and ASM if you so desire).

    3. Re:C++ functional? by JonSimons · · Score: 1

      Actually, the language itself does support functional programming via function pointers. All the libraries do is make the syntax a little more bearable. Functional is as much a style as a 'paradigm'. It can be practised in a great many languages (even C and ASM if you so desire).

      Yes, C++ provides the ability to program with higher order functions, as you mention. This certainly allows adoption of some functional programming style when writing C++ programs.

      C++ does not provide first class functions, which real functional programming languages do.

    4. Re:C++ functional? by johanatan · · Score: 1

      What about functors?

      And TR1::functions, TR1::lambdas?

      If you complain that TR1 is a 'library' and not part the language, I would remind you that these things are possible without the library if you're willing to pay extra syntax (and besides that: which language was the library written in to begin with??).

  53. Re:Using a different language is expensive. Summar by Jack9 · · Score: 1

    I'm not sure why you would think that. Do you have any relevant experience or knowledge?

    --

    Often wrong but never in doubt.
    I am Jack9.
    Everyone knows me.
  54. Re:Using a different language is expensive. Summar by Jack9 · · Score: 1

    What it boils down to is: your company has invested heavily in tools [A] and [B].
    I see it as a language is more than it's features. Business is heavily invested in process. The processes that aggregate into a positive cashflow tend to flourish regardless of the fear of competition and usually in spite of it! New languages are expensive in almost every area and you can expect developers to know something about the business. Those that don't probably wish they could use the "new" languages because they dont understand the problems with adoption. Those that endanger their business (because of a lack of understanding), are deserving of termination. Maybe I just think the "I use cuting edge technologies and work around the problems because I'm good" mentality is more often irresponsible than rewarding (I'd love to see some indication that Groovy is decent). This does not lead to always using the same technology, but few of the languages mentioned are really worth using.

    --

    Often wrong but never in doubt.
    I am Jack9.
    Everyone knows me.
  55. some of those did kind of take off, fwiw by Trepidity · · Score: 1

    Ada is still a de facto standard in a lot of aerospace applications and various other stuff that has a strong institutional desire for design-by-contract. SmallTalk was kind of shoved into C to make Objective-C, which is the standard language for much of OS X app programming (and iPhone app programming).

    1. Re:some of those did kind of take off, fwiw by LWATCDR · · Score: 2, Insightful

      Yes but Ada was supposed to be the next big thing as was SmallTalk. Frankly I really like SmallTalk. Squeak is really nice.
      More people should play with Squeak including me but time is the issue as always.
      There seems to be a burst of new languages and then they fad to a select few.
      In scripting Perl and PHP are to old standards. Python and Ruby are the new hotness. My guess is that Python has staying power. LUA and some of the others mentioned are the new new hotness.
      What most people don't get is there is a good reason your boss will not let you use those. What happens when they fade and you have this cool app that nobody knows how to extend anymore?
      Programs tend to be living things You add new features over time. So a hot programmer decides to use snobol4. Five years later nobody knows how to write snobol4 the language hasn't had an update in two years and you are in a world of hurt.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
  56. Re:Using a different language is expensive. Summar by shutdown+-p+now · · Score: 1

    I'll second that. Lua is very much JavaScript done right - quite similar semantics in many places, but without the weird dynamic scoping for select identifiers (e.g. "this"), and without the curly braces Java-lookalike rebranding. The result is very simple, concise and clear syntax. And very well thought-out extensibility for when you want to embed it.

  57. Lua by AndyboyH · · Score: 1

    Lua's gained quite a following in the games dev community - a lot of high-profile projects have used it for being the glue that holds everything together (e.g. interfaces with engine, audio system, UI/HUD etc)

    http://en.wikipedia.org/wiki/Lua_programming_language#Games

    Also interesting, (and something I didn't know prior to reading the wiki page) is the number of new non-games apps, like Adobe's Lightroom (for example) that use it.

    --
    Baka Drew
  58. I did. by krischik · · Score: 1

    Learning the language was easy enough. Ok, the STL was not in existence at the time - but that would be learning the library.

    Of course learning all the little titbits to the point of hating K&R took far longer. Note that the stuff I hate about C++ come mostly from the C heritage.

    After that I switched to Ada. And that too took only a fortnight for the language - that's including funky stuff like representation clauses.

    Martin

    1. Re:I did. by ucblockhead · · Score: 1

      Templates themselves take a long time to master. Most professional programmers with years of experience don't know most of the ins and outs of templates.

      C++ is a minefield of confusing syntax and strange side-features. Lots of languages can be learned in two weeks, but C++ is not one of them. There's all sorts of "fun" issues (virtual destructors. Exceptions in constructors. etc.) that have to be learned that just have no analogs in languages like Java or Python, which can be learned in a couple weeks.

      Whether or not this reflects poorly on the language is left as a problem for the reader.

      --
      The cake is a pie
  59. Language vs Library by krischik · · Score: 1

    On the other hand: with the aid of a library you can teach any language any trick. You can make for example C object orientated (Gtk and CORBA spring to my mind). Does that make C an object orientated language? Or would C become an object orientated language if Gtk was added to the upcoming C 200x [1] standard?

    By your rationale the answer would be: Yes! Scary thought...

    Martin

    [1] I boldly assume that ISO finished before 2010.

    1. Re:Language vs Library by johanatan · · Score: 1

      C++ has treated its library as a core part of the language since STLs inception. But, we're talking about functional in specific here and that style is entirely supportable via just plain old function pointers.

      Of course, if you were to exclude the STL and start writing your own templates and so on for this stuff because the func ptr syntax were unbearable, then you'd probably come up with something very much like the STL (or boost).

      Another way of looking at it: anyone who is writing C++ without the STL is not really doing C++. It would be like writing C# without the .NET framework.

  60. Prolog imperative? by Enter+the+Shoggoth · · Score: 2, Informative

    I've worked with well over 30 languages in the last 20 or so years, covering the entire gamut you describe and not once have I ever seen Prolog referred to as imperative.

    Prolog is a declarative language (making it a cousin of functional languages) based on the resolution of horn clauses.

    Imperative languages are based upon the idea of destructive update of state, echoing the Von Neumann architecture of the machine upon which they likely run.

    In other words, on a diagram of programming language paradigms they are most likely polar opposites.

    I'd consider the minimum for a really good programmer to include at least a project or two's worth of exposure to:

    At least one assembly language or pseudo-asm. At least one mid-level pointer-driven language (C/C++/etc) At least one statically typed functional language (ML/Haskell/etc) At least one dynamically typed functional language (Lisp/Scheme/etc) At least one dynamically typed OO language (Smalltalk/Python/ruby/etc) At least one higher-level statically typed OO language (Java/Ada/C#/etc)

    That still leaves some holes that could be tricky to pick up, and ideally you'd know: At least one stack-based language (Forth/Postscript/etc) At least one imperative programming language (Prolog/etc) At least one DBC-centered language (Eiffel/Sather/etc) At least one concurrency-oriented language (erlang, etc)

    But you can have a long and successful career as a top-shelf programmer without really needing that latter group.

    And yes, those monikers are a bit arbitrary; you can do full OO in Lisp, functional programming in Python, etc. So you can get away with a lot fewer languages than there are on the list, as long as you learn the different programming models. It tends to be a little easier to learn a model with a language that's been used that way traditionally.

    I'm sure I'm missing some areas, too.

    --
    Andy Warhol got it right / Everybody gets the limelight
    Andy Warhol got it wrong / Fifteen minutes is too long.
  61. Re:Using a different language is expensive. Summar by aldousd666 · · Score: 1

    you have a good point there. Sure one language is as good as another, but transferability, ramp up of new hires, etc. All of those are cost driven factors you don't want to dick around with just for a few extra features that save you 10 lines of code for one, in one out of every 10 projects. If a college graduate with a year of on the job experience can come in and pick up by reading your code comments then you're already saving time and money that way.

    --
    Speak for yourself.
  62. Government User by Anonymous Coward · · Score: 0

    Obscure languages are not easy to maintain and update when the only programmer who knew it was 'let go'. Much easier to stick to mainstream.

  63. Eiffel by charnov · · Score: 1

    Okay, I'll admit I am a lousy programmer and never liked any of my programming courses (except maybe forth and assembly), but then again, I became an enterprise admin/manager so it's all good.

    The one high level language that makes sense to me is Eiffel. I never understood why it hasn't taken off. I mean, I suck at programming and I picked it up in days.

    --
    [RIAA] says its concern is artists. That's true, in just the sense that a cattle rancher is concerned about its cattle.
  64. I'd add one more language by Hoi+Polloi · · Score: 1

    I really wish my boss let me use Pig Latin. Itway ouldway akemay orkway oremay unfay.

    --
    It is by the juice of the coffee bean that thoughts acquire speed, the teeth acquire stains. The stains become a warning
  65. C++ by krischik · · Score: 1

    First: I spoke about good programmers not average.

    Second: C++ is in indeed the exception which break the rule. C++ is indeed incredibly difficult to learn in full.

    The real danger is that anyone can pick up the basics in no time.

  66. Go for the eyes, Boo! Go for the eyes! by Anonymous Coward · · Score: 0

    See subject.

    The summary mentions Boo, and 227 comments in this was still missing?

      -AC

  67. REBOL was mentioned in the article but not counted by Samurai+Crow · · Score: 1

    Why did they only have 6 when they listed REBOL at the very end as a seventh? Did they just forget a header and then miscount?

  68. C++ FQA Lite by JonSimons · · Score: 1

    Anyone who says they learned C++ in a fortnight is lying.

    A fun read: http://yosefk.com/c++fqa/index.html. Mentioned are points (some subtle, some not) which illustrate dark corners of the language and some of its complexities.