Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Programming

6 Languages You Wish the Boss Let You Use 264

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."
This discussion has been archived. No new comments can be posted.

6 Languages You Wish the Boss Let You Use

Comments Filter:
  • by Beardo the Bearded ( 321478 ) on Wednesday October 15, 2008 @03:04PM (#25387391)

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

  • by krischik ( 781389 ) <krischik&users,sourceforge,net> on Wednesday October 15, 2008 @03:08PM (#25387441) Homepage Journal

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

  • by dedazo ( 737510 ) on Wednesday October 15, 2008 @03:13PM (#25387529) Journal

    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.

  • by quanticle ( 843097 ) on Wednesday October 15, 2008 @03:15PM (#25387561) Homepage

    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.

  • Wait and see. (Score:5, Insightful)

    by LWATCDR ( 28044 ) on Wednesday October 15, 2008 @03:25PM (#25387727) Homepage Journal

    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.

  • by steveha ( 103154 ) on Wednesday October 15, 2008 @03:27PM (#25387761) Homepage

    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

  • by dgatwood ( 11270 ) on Wednesday October 15, 2008 @03:29PM (#25387805) Homepage Journal

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

  • by zullnero ( 833754 ) on Wednesday October 15, 2008 @03:36PM (#25387937) Homepage
    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.
  • The lost art (Score:5, Insightful)

    by Alzheimers ( 467217 ) on Wednesday October 15, 2008 @03:38PM (#25387985)

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

  • by Frater 219 ( 1455 ) on Wednesday October 15, 2008 @03:52PM (#25388255) Journal

    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.

  • by RoceKiller ( 699407 ) <slashdot@roc[ ]ller.dk ['eki' in gap]> on Wednesday October 15, 2008 @04:11PM (#25388593)
    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.
  • by orclevegam ( 940336 ) on Wednesday October 15, 2008 @04:19PM (#25388791) Journal
    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?
  • by immcintosh ( 1089551 ) <slashdot&ianmcintosh,org> on Wednesday October 15, 2008 @04:38PM (#25389179) Homepage

    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.

  • by arevos ( 659374 ) on Wednesday October 15, 2008 @05:25PM (#25390107) Homepage

    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.

  • by arevos ( 659374 ) on Wednesday October 15, 2008 @05:47PM (#25390533) Homepage

    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.

  • by Sarusa ( 104047 ) on Wednesday October 15, 2008 @06:40PM (#25391479)

    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.

  • by Anonymous Coward on Wednesday October 15, 2008 @08:06PM (#25392591)

    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.

  • by pimpimpim ( 811140 ) on Wednesday October 15, 2008 @08:29PM (#25392797)
    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.
  • by ucblockhead ( 63650 ) on Wednesday October 15, 2008 @09:39PM (#25393355) Homepage Journal

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

  • by LWATCDR ( 28044 ) on Thursday October 16, 2008 @09:43AM (#25398899) Homepage Journal

    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.

Top Ten Things Overheard At The ANSI C Draft Committee Meetings: (5) All right, who's the wiseguy who stuck this trigraph stuff in here?

Working...