6 Languages You Wish the Boss Let You Use
Esther Schindler writes "Several weeks ago, Lynn Greiner's article on the state of the scripting universe was slashdotted. Several people raised their eyebrows at the (to them) obvious omissions, since the article only covered PHP, Perl, Python, Ruby, Tcl and JavaScript. As I wrote at the time, Lynn chose those languages because hers was a follow-up to an article from three years back. However, it was a fair point. While CIO has covered several in depth, those five dynamic languages are not the only ones developers use. In 6 Scripting Languages Your Developers Wish You'd Let Them Use, CIO looks at several (including Groovy, Scala, Lua, F#, Clojure and Boo) which deserve more attention for business software development, even if your shop is dedicated to Java or .NET. Each language gets a formal definition and then a quote or two from a developer who explains why it inspires passion."
Your programming skills should not be tied to the language you use.
---
ECHELON is a government program to find words like bomb, jihad, plutonium, assassinate, and anarchy.
Oh, you meant programming. Well, fuck it. =P
Right on! A good programmer will learn any programming language in a fortnight. But sadly average programers don't.
Klingon, Swedish Chef, Elvish (can't pronounce Dwarvish), Pirate, Porn Star Dialogue, and Latin.
"As God is my witness, I thought turkeys could fly." A. Carlson
donotwant developers programming
Sounds like the corporate policies I've gotten used to.
I remember when ADA was going to be the next big thing. Then it was SmallTalk. I actually used Modual-2 back in the day. C? was never going to take off. It was too big and slow for micro computers and not high level enough for minicomputers. The only people that would ever really find use for it where those few people that used Unix.
Before that it was PL-1 and Simula. I left out the fourth generation languages that where going to let everybody write their own programs. Oh and programing by making flow charts... Or was it Hypercard that was the future...
Well you get the idea. Most where really good programing languages but there seems to be a limited number of languages that reach critical mass. I remember Comal which was a great little language on the old 8 bit machines but it only became popular in Europe.
Oh well we will see what happens this time.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
If you can't write it in a .BAT file, it can't be done.
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
English, instead of Buzzwordish.
"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.
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.
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.
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.
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.
I love Lua. I'm glad it was mentioned because I think it's one of the most underused languages I've had the chance to work with.
I had a GPS daemon I needed to write for an MDT (Mobile Data Terminal) Windows CE environment, and the CE API is just a complete shocker. In the end I managed to compile a branch of Lua called LuaX (has wince libraries) which comes with a bunch of awesome modules. A few of the modules did exactly what I needed (serial port and network sockets). One simple script handled everything I needed. I'm not saying it was the only solution, but I found it to work quite well, and the libraries were all there for me.
There's even a project called Kepler to use Lua for server-side scripting (similar to PHP).
Homonyms are fun!
You're driving your car, but they're riding their bikes there.
Google F# bad
Although it used to be worse:
Google F#
Happy moony
I've worked with well over 30 languages in the last 20 or so years, covering the entire gamut you describe and not once have I ever seen Prolog referred to as imperative.
Prolog is a declarative language (making it a cousin of functional languages) based on the resolution of horn clauses.
Imperative languages are based upon the idea of destructive update of state, echoing the Von Neumann architecture of the machine upon which they likely run.
In other words, on a diagram of programming language paradigms they are most likely polar opposites.
I'd consider the minimum for a really good programmer to include at least a project or two's worth of exposure to:
At least one assembly language or pseudo-asm. At least one mid-level pointer-driven language (C/C++/etc) At least one statically typed functional language (ML/Haskell/etc) At least one dynamically typed functional language (Lisp/Scheme/etc) At least one dynamically typed OO language (Smalltalk/Python/ruby/etc) At least one higher-level statically typed OO language (Java/Ada/C#/etc)
That still leaves some holes that could be tricky to pick up, and ideally you'd know: At least one stack-based language (Forth/Postscript/etc) At least one imperative programming language (Prolog/etc) At least one DBC-centered language (Eiffel/Sather/etc) At least one concurrency-oriented language (erlang, etc)
But you can have a long and successful career as a top-shelf programmer without really needing that latter group.
And yes, those monikers are a bit arbitrary; you can do full OO in Lisp, functional programming in Python, etc. So you can get away with a lot fewer languages than there are on the list, as long as you learn the different programming models. It tends to be a little easier to learn a model with a language that's been used that way traditionally.
I'm sure I'm missing some areas, too.
Andy Warhol got it right / Everybody gets the limelight
Andy Warhol got it wrong / Fifteen minutes is too long.
Yes but Ada was supposed to be the next big thing as was SmallTalk. Frankly I really like SmallTalk. Squeak is really nice.
More people should play with Squeak including me but time is the issue as always.
There seems to be a burst of new languages and then they fad to a select few.
In scripting Perl and PHP are to old standards. Python and Ruby are the new hotness. My guess is that Python has staying power. LUA and some of the others mentioned are the new new hotness.
What most people don't get is there is a good reason your boss will not let you use those. What happens when they fade and you have this cool app that nobody knows how to extend anymore?
Programs tend to be living things You add new features over time. So a hot programmer decides to use snobol4. Five years later nobody knows how to write snobol4 the language hasn't had an update in two years and you are in a world of hurt.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.