Common Lisp for work/fun. C and Java to wrap libraries for Lisp and clean up FFIs.
I know tens of programming languages. But other than Lisp, I just can't program comfortably in any of them without having a manual beside me. Mostly because I don't want/need to.
When it comes to "fun" languages, I prefer rigor to abundance of libraries (Citeseer/LtU to github.) I will happily spend a weekend on Mozart/Oz, Scheme, ML, along with hundreds upon hundreds of research languages that I pick up to follow a given text or area of research, but quickly forget once I get a general sense of the field and I am done reading the papers.
I also dabble in J2EE and C++ stuff, from "architecture" stand points; to quickly learn new design techniques, then translate them to Lisp semantics, or usually just obviate the need for them.
Most mainstream languages bore me, and I find them lacking in quality peer-reviewed papers or ground-breaking work. So far they're just a synthesis of old ideas into a nice, accessible package, or fixes of previous short-comings. I am also idiot-intolerant; if I find a language attracts loud blowhards, corporate types, shrieking excited newbs, and generally uninformed pundits, I am more likely to avoid it just to avoid their company ..
Mathematica for heavily mathematical tasks. Sometimes Matlab to use some of its built-in library functions. I wish Mathematica supported object-oriented programming natively.
Have used others for various random tasks: ActionScript, Python, Verilog, etc.
Over the years I've used C++, C, Java, Perl, a little Mathematica (for analysing algorithms and trying to come up with better approximations to replace expensive numeric algorithms), sh, small amounts of x86 assembly, and even Modula-2 (long ago) for work. Currently I'm using mostly Perl (with POE) for high-load low-latency web serving, web scraping, and various back-end scripts. We use Javascript for front-end stuff, but I'm less involved with that.
In the past I've played around a bit with Haskell, OCaml, Scheme, Smalltalk, and even Forth (again, a long time ago!). I've looked at Erlang a little, but haven't gotten around to doing anything with it. I'm hoping to get some time to play with Rakudo (Perl 6) sometime soon, and I'm looking at whether Hackety Hack and Ruby are the right way to introduce my kids to programming.
For startup
-Smalltalk for Web app backend
-Ruby for for backend job scripting
-Some javascript
At day job
- VB for some macros in Excel
- R for analysis
- Java for some integration modules and helping on some enterprise apps.
- Scheme for other analysis and generating certain visualizations.
- Bash scripts
At work the list is; PHP, Perl, Javascript, ksh and good ole K&R C
For fun I mess around with Ruby and Scheme. I even played around with arc3 for a bit because I was curious.
Every job I've had I keep coming back to Unix scripting. It's just the one language that I need to always know and I constantly come back to it. I used to work on a wide smattering of very ancient Unix boxes so I had to get comfy with ksh. I use awk and sed daily just for wading through source code.
I used to spend every day coding in the scripting language for the Ameritech ISDN bulk call generator. I still have nightmares. It was like a cross between BASIC and assembly only it ran on an Intel 8086. This was in the late 90's still.
Every once in a while someone tells me I need to learn TCL. But so far I've avoided it.
Thanks for mentioning SuperCollider. I thought ChucK was the only one available for audio programming. Any place to start audio programming? I was really bad at physics so Sin and Cos stuff only go over my head.
My stack:
Javascript to play with Node.js
Ruby for web apps
Java for android's sake
Mirah for it's ruby-like syntax for java stuff
Used to do python a few months back
Learning Common Lisp
My next would be Haskell
P.S: There's nothing serious I'm working on right now. So most I do i try out stuff to write opensource code to show off on my resume.
I was hired as a PHP developer, but I'm gradually transitioning them over to Ruby. I still need a manual for both of these languages; PHP for the ludicrous amount of functions (http://www.php.net/manual/en/function.levenshtein.php anybody?), and Ruby for the frequently confusing code I come across. Ruby is my current hobby language.
I also use Javascript for jQuery, and for Node.js in my spare time.
I know tens of programming languages. But other than Lisp, I just can't program comfortably in any of them without having a manual beside me. Mostly because I don't want/need to.
When it comes to "fun" languages, I prefer rigor to abundance of libraries (Citeseer/LtU to github.) I will happily spend a weekend on Mozart/Oz, Scheme, ML, along with hundreds upon hundreds of research languages that I pick up to follow a given text or area of research, but quickly forget once I get a general sense of the field and I am done reading the papers.
I also dabble in J2EE and C++ stuff, from "architecture" stand points; to quickly learn new design techniques, then translate them to Lisp semantics, or usually just obviate the need for them.
Most mainstream languages bore me, and I find them lacking in quality peer-reviewed papers or ground-breaking work. So far they're just a synthesis of old ideas into a nice, accessible package, or fixes of previous short-comings. I am also idiot-intolerant; if I find a language attracts loud blowhards, corporate types, shrieking excited newbs, and generally uninformed pundits, I am more likely to avoid it just to avoid their company ..