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."
Language Independent? (Score:5, Insightful)
Your programming skills should not be tied to the language you use.
Language Independent! (Score:5, Insightful)
Right on! A good programmer will learn any programming language in a fortnight. But sadly average programers don't.
Re: (Score:2, Funny)
How quickly will a good programmer learn Malbolge? [wikipedia.org]
Re:Language Independent! (Score:4, Insightful)
About as quickly they learn brainf**k [wikipedia.org] or Whitespace [wikipedia.org], I'd imagine, and it is about as useful....
Re: (Score:2)
No. Malbolge is far worse! Have you seen this horrible masterpiece: http://99-bottles-of-beer.net/language-malbolge-995.html [99-bottles-of-beer.net]
Brainfuck... more like Getthefuckoff with your children's toys. ;)
Re: (Score:3, Funny)
Re: (Score:3, Funny)
No, that would be the name of the the $_ circle of hell.
Re: (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 ..
Re:Language Independent! (Score:4, Funny)
Re: (Score:2)
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! (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.
Re:Language Independent! (Score:5, 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.
Re: (Score:2)
Prolog is not an imperative language; it's the opposite: declarative.
Re: (Score:2)
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 [slashdot.org]
Re: (Score:3, 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
Re: (Score:2)
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.
Re: (Score:2, Insightful)
Re: (Score:2)
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! (Score:5, 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.
"6 scripting languages" (Score:2, Troll)
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.
Re: (Score:2)
Obviously you've never worked with APL [wikipedia.org] before.
Super powerful, to be sure, but that notation...
{ shudders }
Re: (Score:2)
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.
Re: (Score:2)
Re: (Score:2, Insightful)
Anyone who says they learned C++ in a fortnight is lying.
Re:Language Independent! (Score:5, Interesting)
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.
Re: (Score:2)
Bingo. Mod parent up.
Re:Language Independent? (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.
Re: (Score:3, Insightful)
The libraries and runtimes of any particular language on the ot
Re: (Score:2)
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 appli
Re:Language Independent? (Score:5, 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.
Re:Language Independent? (Score:5, 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
Re: (Score:2)
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 por
Re:Language Independent? (Score:5, 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.
Re: (Score:3, Insightful)
Re: (Score:2)
Re: (Score:2)
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: (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 operati
Re:Language Independent? (Score:4, Informative)
scala and f# are both statically typed
Re: (Score:3, 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.
Re: (Score:3, Interesting)
Have scripting languages gotten faster, or have the computers we run them on gotten faster?
Re: (Score:2)
Re: (Score:2)
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.
Re: (Score:3, 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
Re: (Score:2)
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
Re:Language Independent? (Score:5, Insightful)
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: (Score:2)
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 ... (Score:2)
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
Re:Language Independent? (Score:5, 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.
Re:Language Independent? (Score:5, Insightful)
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? (Score:4, 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.
Re: (Score:2)
"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: (Score:2)
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? (Score:5, 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.
Re: (Score:2)
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 (Score:2)
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: (Score:2)
Language Independent? You better believe it. (Score:2)
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
Vulgar language. (Score:5, Funny)
Oh, you meant programming. Well, fuck it. =P
Let me see... (Score:5, Funny)
Klingon, Swedish Chef, Elvish (can't pronounce Dwarvish), Pirate, Porn Star Dialogue, and Latin.
Re: (Score:2)
Hey, that looks like my resume!
Re: (Score:2, Funny)
"There's dialog in Pron?"
If you count the grunting and moaning - THAT would perk up a Powerpoint presentation.
Re: (Score:2, Offtopic)
Plus, it was also the first time I'd seen a woman penetrated with a Vidal Sasso
Re:Let me see... (Score:4, Funny)
Re: (Score:2)
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.
The Tags say it all. (Score:5, Funny)
donotwant developers programming
Sounds like the corporate policies I've gotten used to.
Wait and see. (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.
Re: (Score:2)
Oh and programing by making flow charts
Burn LabView, burn!
Re: (Score:3, 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 g
"scripting languages" (Score:2)
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'
Re: (Score:2)
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
Re: (Score:2)
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 lost art (Score:5, Insightful)
If you can't write it in a .BAT file, it can't be done.
LOLCODE (Score:5, Funny)
HAI //outputs 1-10
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
Re:LOLCODE (Score:5, 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 [ajaxhacking.com].
KTHXBYE, WTFBBQ!
*ducks*
Re: (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).
I'd like to use... (Score:3, Funny)
How about... (Score:3, 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.
Atari Basic/Turbo Basic (Score:2)
'cause then I could be a developer again...
Oblig (Score:2)
Intercal!
Re: (Score:2)
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
Groovy (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.
Honestly, no I don't wish (Score:3, 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.
Here's my 6 (Score:2)
Intercal
Brainfuck
Whitespace
Robotwar
Loglan
Proto-Indo-European
F# has terrible reviews (Score:2, Funny)
Although it used to be worse:
Google F# [google.com]
re:klingon (Score:2)
yIDoghQo'
Re: (Score:2)
Be smooth, mother your forehead?
Re: (Score:2)
English :) (Score:2)
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: (Score:2)
Re: (Score:3, 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
Re: (Score:2)
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
Re: (Score:2)
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: (Score:2)
Re: (Score:2)
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.
Re: (Score:2)
Re: (Score:2)
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.
Re:Using a different language is expensive. Summar (Score:4, 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.
Re:Using a different language is expensive. Summar (Score:2)
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)
Re: (Score:3, 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 everyth
Re: (Score:2)