

Ask HN: Do you use more than one programming language? - gaiusparx

Would like to find out if it is common nowadays to use more than one programming language. I mean using the language professionally for work or projects, not just knowing how to use.
======
anamax
Not only do I use multiple languages professionally, I don't know some of
them.

------
kmort
My day job is Java and Bash with assorted UNIX utils.

One major side-project is C++ and Lua. The other is Python(GAE), Django,
JavaScript and Awk.

The only problem is constantly switching Python and JavaScript code over
several hours. I can't count how may times I get something as simple as an if
statement syntax wrong.

------
pesco
I've always had a favourite general-purpose language for personal projects.
This has been Haskell for several years now. Yet, I regularly find myself
writing things in other languages. I use Ruby at work. I did C++ on a previous
job, LISP even before that. I've written side projects in C.

And I'm constantly looking forward to the next opportunity for broadening my
horizon, basically looking for a good excuse to learn and apply a new
language. But I'm also a person with a distinct thing for languages and their
design.

Then again, like somebody else has already stated, learning a new language
gets easier every time. I think everybody should learn a few.

------
jon_dahl
If you include Javascript, it's very common.

Beyond that, I've pretty well stuck with one language in production work for
about five years. But that's only because I've mostly done modest-scale web
app development, which really only requires one backend language. If you stick
to web apps, you can go a long way with a single backend language.

But my current startup is about 50% web app and 50% Linux app. So we're
finding more and more need for C.

------
mindcrime
Well, I use one language primarily at work, that being Java. For my startup
project, I use Groovy almost exclusively. But, particularly on the startup
project, I can easily see the situation where different parts may be written
in different languages. I could see trying Scala for some backend services, as
it has a reputation for dealing with concurrency well. Erlang could be a
possibility in the future as well, for similar reasons. I also won't rule out
dropping into C or C++ for performance reasons if the situation arises. And
since there's a heavy element of statistical analysis / machine learning /
data mining in some of this, I may be incorporating R and or Clojure (for
Incanter) at some point as well.

Also, if you count SQL as a language, then I routinely use SQL (and/or HQL)
for data access.

And as somebody pointed out in another reply... if you include Javascript,
then yes, definitely.

------
larsberg
I work on an ML compiler for my day job, which means a lot of ML but also
quite a bit of C for runtime and basis library stuff. That of course doesn't
include M4 (blech!), bash scripts, LaTeX, etc.

~~~
olliesaunders
Serious question that probably says more about my lack of knowledge than
anything else: What does ML give you that you can't get from Haskell?

------
moby_duck
Am I the only hardware engineer here? SystemVerilog gets no respect :).

~~~
CyberFonic
Hey! We need good hardware otherwise where is all that software going to run?
Keep up the good work!

~~~
moby_duck
Thanks. Incidentally, I just wanted to say that I almost always use Python for
scripting and design automation stuff. I wrote about it here:

[http://svffap.blogspot.com/2008/09/why-python-for-
hardware.h...](http://svffap.blogspot.com/2008/09/why-python-for-
hardware.html)

------
nexton
I use multiple languages in my day job. For the majority of tasks, I use Ada
(with some low-level C and Assembly thrown in). For recent support tasks, I
have used Python for scripting purposes and Visual Basic for creating macro-
based spreadsheets.

Depending on your definition of programming language, I also regularly use
LabVIEW to interface with test equipment and MATLAB for simulation and
analysis.

------
coderdude
I use Python for work, for my startup, and for my personal projects. In the
same capacity I use JavaScript when doing web development. I even use VB6 for
legacy code upkeep at the day job. I like to use C++ for certain projects and
I've had to pick up Java for Hadoop's MapReduce (which I use for my startup).

It's always good to use the right tool for the job.

------
fogus
On a daily basis I frequently get my hands into any of the following: emacs
lisp, java, ant, drools, python, jython, sql, jsp, make, clojure, javascript,
xslt, velocity, hibernate hbm, hql, bash, antlr, freemarker, scala, html, css,
confluence markup, xpath, regular expressions, and countless APIs all of which
are themselves little languages.

------
varikin
At work, projects we get at work are very varied. Mostly web stuff (PHP,
Javascript), but I try to squeeze in Python when I can. Some mobile stuff
which usually means iPhone (Objective-C). I have a Java background so I end up
on Java projects that come in which is a fair amount because the corporate
world like Java.

------
alias301
At the moment I use only C and the various language of the GNU build system.
But in the past I used C++ or a personal project and before that I did some
smaller projects in Ruby, PHP, Python, Javascript and HTML (with CSS).

------
jpd
I'd imagine it's pretty common, especially if you consider CSS, HTML and
Javascript different languages. Personally, I use PL/X, and z/Assembly daily,
with REXX thrown in every now and then.

------
doctorosdeck
For my day job I primarily program in ada95. My startups are generally using
Python (Django), some javascript, C and occasionally writing wrappers in
various languages for API access.

------
CyberFonic
It's pretty hard not to. I prefer Python. But need lots of JavaScript (both
browser and server (NodeJS)). Lisp for some stuff and still a fair bit of
plain ol' C.

------
ndimopoulos
I use PHP on a daily basis for my work but I also program in Python and I am
starting Java.

I believe that if you know how to program then you can effectively use any
language. You will only need to know the little quirks that each language has.

I will repeat what coderdude wrote: It's always good to use the right tool for
the job.

