Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

6 Languages You Wish the Boss Let You Use

timothy posted more than 5 years ago | from the esperanto-and-atlantean-are-compact-and-efficient dept.

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

cancel ×

264 comments

Sorry! There are no comments related to the filter you selected.

Language Independent? (4, Insightful)

Beardo the Bearded (321478) | more than 5 years ago | (#25387391)

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

Language Independent! (4, Insightful)

krischik (781389) | more than 5 years ago | (#25387441)

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

Re:Language Independent! (2, Funny)

Anonymous Coward | more than 5 years ago | (#25387619)

How quickly will a good programmer learn Malbolge? [wikipedia.org]

Re:Language Independent! (3, Insightful)

dgatwood (11270) | more than 5 years ago | (#25387805)

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

Re:Language Independent! (2, Funny)

$RANDOMLUSER (804576) | more than 5 years ago | (#25388125)

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

Re:Language Independent! (2, Funny)

zerOnIne (128186) | more than 5 years ago | (#25388341)

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

Re:Language Independent! (1)

alexj33 (968322) | more than 5 years ago | (#25389853)

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.

Re:Language Independent! (2, Funny)

hpoul (219387) | more than 5 years ago | (#25390583)

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

Re:Language Independent! (1)

arevos (659374) | more than 5 years ago | (#25388547)

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 :)

Re:Language Independent! (5, Interesting)

pthisis (27352) | more than 5 years ago | (#25390357)

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.

Re:Language Independent! (4, Insightful)

arevos (659374) | more than 5 years ago | (#25390533)

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.

Re:Language Independent! (2, Insightful)

RoceKiller (699407) | more than 5 years ago | (#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.

Re:Language Independent! (1)

sgbett (739519) | more than 5 years ago | (#25390323)

My language uses an interpreter you insensitive clod!

Re:Language Independent! (1)

arevos (659374) | more than 5 years ago | (#25390587)

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?

Re:Language Independent! (1)

EricTheGreen (223110) | more than 5 years ago | (#25390605)

Obviously you've never worked with APL [wikipedia.org] before.

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

{ shudders }

Re:Language Independent? (5, Insightful)

dedazo (737510) | more than 5 years ago | (#25387529)

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.

Re:Language Independent? (3, Insightful)

orclevegam (940336) | more than 5 years ago | (#25388791)

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?

Re:Language Independent? (2)

dedazo (737510) | more than 5 years ago | (#25389623)

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.

Re:Language Independent? (4, Insightful)

quanticle (843097) | more than 5 years ago | (#25387561)

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.

Re:Language Independent? (4, Insightful)

steveha (103154) | more than 5 years ago | (#25387761)

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

Re:Language Independent? (1)

MBGMorden (803437) | more than 5 years ago | (#25388199)

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.

Re:Language Independent? (4, Interesting)

0xABADC0DA (867955) | more than 5 years ago | (#25389065)

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.

Re:Language Independent? (1)

dword (735428) | more than 5 years ago | (#25387891)

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.

Re:Language Independent? (1)

quanticle (843097) | more than 5 years ago | (#25389335)

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.

Re:Language Independent? (2, Interesting)

orclevegam (940336) | more than 5 years ago | (#25389363)

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.

Re:Language Independent? (3, Informative)

burris (122191) | more than 5 years ago | (#25388195)

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

Re:Language Independent? (2, Informative)

LarsWestergren (9033) | more than 5 years ago | (#25388339)

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.

Re:Language Independent? (2, Interesting)

Hatta (162192) | more than 5 years ago | (#25389565)

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

Re:Language Independent? (2, Interesting)

Xest (935314) | more than 5 years ago | (#25387695)

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.

Re:Language Independent? (4, Insightful)

zullnero (833754) | more than 5 years ago | (#25387937)

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.

Re:Language Independent? (1)

Tyger (126248) | more than 5 years ago | (#25388083)

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.

Recognizing what languages to avoid ... (1)

PolygamousRanchKid (1290638) | more than 5 years ago | (#25387961)

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.

Re:Language Independent? (4, Funny)

Fred_A (10934) | more than 5 years ago | (#25388213)

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.

Re:Language Independent? (5, Insightful)

Frater 219 (1455) | more than 5 years ago | (#25388255)

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.

Re:Language Independent? (3, Insightful)

immcintosh (1089551) | more than 5 years ago | (#25389179)

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.

Re:Language Independent? (1)

lennier (44736) | more than 5 years ago | (#25389321)

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

Re:Language Independent? (1)

rk (6314) | more than 5 years ago | (#25390055)

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?

Re:Language Independent? (0, Redundant)

w32jon (1317789) | more than 5 years ago | (#25389751)

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.

Re:Language Independent? (1)

convolvatron (176505) | more than 5 years ago | (#25388383)

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?

Obligatory car analogy (1)

arevos (659374) | more than 5 years ago | (#25388727)

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.

Re:Language Independent? (0)

Anonymous Coward | more than 5 years ago | (#25388969)

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.

Re:Language Independent? (0)

Anonymous Coward | more than 5 years ago | (#25390487)

That's why we all program in APL.

This is slashdot, no? There's only one language... (0)

Anonymous Coward | more than 5 years ago | (#25387397)

Klingon.

re:klingon (1)

Smivs (1197859) | more than 5 years ago | (#25387445)

yIDoghQo'

TODAY IS A GOOD DAY (0)

Anonymous Coward | more than 5 years ago | (#25387957)

...to die in a fire

DIAF!!!

Vulgar language. (4, Funny)

Trespass (225077) | more than 5 years ago | (#25387411)

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

Let me see... (5, Funny)

R2.0 (532027) | more than 5 years ago | (#25387457)

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

Re:Let me see... (1)

Ricochet (16874) | more than 5 years ago | (#25387579)

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

There's dialog in Pron?

Re:Let me see... (2, Funny)

R2.0 (532027) | more than 5 years ago | (#25387649)

"There's dialog in Pron?"

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

Re:Let me see... (1, Offtopic)

Ethanol-fueled (1125189) | more than 5 years ago | (#25387849)

The first pornographic movie I ever saw - Looking for Love [iafd.com] -- 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.

Re:Let me see... (3, Funny)

PinkPanther (42194) | more than 5 years ago | (#25388197)

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

Re:Let me see... (0)

Anonymous Coward | more than 5 years ago | (#25388325)

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.

Re:Let me see... (0)

Anonymous Coward | more than 5 years ago | (#25388441)

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?

Re:Let me see... (1)

not already in use (972294) | more than 5 years ago | (#25388621)

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.

Re:Let me see... (1)

PolygamousRanchKid (1290638) | more than 5 years ago | (#25387605)

Hey, that looks like my resume!

Klingon... definitely Klingon (0)

Anonymous Coward | more than 5 years ago | (#25387523)

Hab SoSlI' Quch!

Re:Klingon... definitely Klingon (1)

Smivs (1197859) | more than 5 years ago | (#25387709)

Be smooth, mother your forehead?

Re:Klingon... definitely Klingon (0)

Anonymous Coward | more than 5 years ago | (#25387893)

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

Re:Klingon... definitely Klingon (1)

Smivs (1197859) | more than 5 years ago | (#25387927)

OK. With you now.

Scripting Languages? (0)

Anonymous Coward | more than 5 years ago | (#25387565)

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 [wikipedia.org] 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).

Re:Scripting Languages? (1)

JCSoRocks (1142053) | more than 5 years ago | (#25388361)

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.

Re:Scripting Languages? (2, Interesting)

pseudorand (603231) | more than 5 years ago | (#25388655)

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.

Re:Scripting Languages? (1)

reed (19777) | more than 5 years ago | (#25389325)

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.

The Tags say it all. (5, Funny)

Anonymous Coward | more than 5 years ago | (#25387607)

donotwant developers programming

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

scsh and BeanShell (1, Interesting)

Anonymous Coward | more than 5 years ago | (#25387629)

scsh [scsh.net] and BeanShell [beanshell.org] are both scripting languages that are pretty cool, the first uses Scheme and the second uses Java.

LISP motivation (0)

Anonymous Coward | more than 5 years ago | (#25387677)

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

English :) (1)

TheLink (130905) | more than 5 years ago | (#25387815)

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.

Re:English :) (0)

Anonymous Coward | more than 5 years ago | (#25389413)

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 [wikipedia.org] There was also a related OS called REALITY. So I guess we all living in the REALITY MATRIX.

6 languages - 2 paradigms (0)

Anonymous Coward | more than 5 years ago | (#25387689)

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.

Wait and see. (5, Insightful)

LWATCDR (28044) | more than 5 years ago | (#25387727)

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.

Re:Wait and see. (1)

Falstius (963333) | more than 5 years ago | (#25389581)

Oh and programing by making flow charts

Burn LabView, burn!

My $0.02 ECD (0)

pembo13 (770295) | more than 5 years ago | (#25387733)

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.

Re:My $0.02 ECD (1)

nizo (81281) | more than 5 years ago | (#25389433)

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.

XQuery (0)

Anonymous Coward | more than 5 years ago | (#25387771)

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.

"scripting languages" (1)

burris (122191) | more than 5 years ago | (#25387847)

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!

Re:"scripting languages" (1)

tchuladdiass (174342) | more than 5 years ago | (#25388433)

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.

Re:"scripting languages" (1)

burris (122191) | more than 5 years ago | (#25388903)

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

The groovy thing about Groovy (0)

Anonymous Coward | more than 5 years ago | (#25387865)

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!

Re:The groovy thing about Groovy (1)

burris (122191) | more than 5 years ago | (#25388461)

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!

Re:The groovy thing about Groovy (1, Informative)

Anonymous Coward | more than 5 years ago | (#25389145)

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.

Re:The groovy thing about Groovy (1)

rk (6314) | more than 5 years ago | (#25390309)

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

Re:The groovy thing about Groovy (1)

arevos (659374) | more than 5 years ago | (#25389627)

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.

The lost art (4, Insightful)

Alzheimers (467217) | more than 5 years ago | (#25387985)

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

Re:The lost art (0)

Anonymous Coward | more than 5 years ago | (#25390027)

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

l337 (1)

Coraon (1080675) | more than 5 years ago | (#25388005)

damn programing languages, I was hoping for l337

LOLCODE (5, Funny)

Shikaku (1129753) | more than 5 years ago | (#25388163)

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

Re:LOLCODE (4, Funny)

paulthomas (685756) | more than 5 years ago | (#25388861)

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 [ajaxhacking.com] .

KTHXBYE, WTFBBQ!

*ducks*

Re:LOLCODE (2, Informative)

Anonymous Coward | more than 5 years ago | (#25389253)

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

...on the other hand... (0)

Anonymous Coward | more than 5 years ago | (#25388409)

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.

Re:...on the other hand... (1)

Esther Schindler (16185) | more than 5 years ago | (#25388881)

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

I'd like to use... (2, Funny)

owlnation (858981) | more than 5 years ago | (#25388417)

English, instead of Buzzwordish.

How about... (2, Informative)

Minwee (522556) | more than 5 years ago | (#25388571)

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

Haskell, F# (1)

johanatan (1159309) | more than 5 years ago | (#25388583)

Subject speaks for itself.

Using a different language is expensive. Summary (0)

Jack9 (11421) | more than 5 years ago | (#25388731)

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.

Re:Using a different language is expensive. Summar (3, Insightful)

arevos (659374) | more than 5 years ago | (#25390107)

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.

two (0)

Anonymous Coward | more than 5 years ago | (#25389151)

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

Atari Basic/Turbo Basic (1)

logicassasin (318009) | more than 5 years ago | (#25389775)

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

YOU FA,IL IbT!! (-1, Offtopic)

Anonymous Coward | more than 5 years ago | (#25390149)

Oblig (1)

nog_lorp (896553) | more than 5 years ago | (#25390585)

Intercal!

Groovy (4, Interesting)

lgbr (700550) | more than 5 years ago | (#25390599)

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.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?