Ask HN: Do you program in multiple languages in a day?

38 points by ratpik ↗ HN
Which ones? Opinions about productivity?

80 comments

[ 2.8 ms ] story [ 139 ms ] thread
I would be surprised if anyone said they only used one language. Even in the olden times my typical day had Fortran, Python, Bash, and [La]TeX, + sometimes C. And the variations on these, including various libraries that amount to mini-languages in their own right. (This list doesn't include special purpose languages for job submission, etc.) Later, I added HTML, javascript, CSS, and SQL. Now I'm trying to add Clojure and Julia. Of course the cognitive burden has an effect on productivity, but I think we do this because we find that using languages well suited to the task gives us a net win.

EDIT: I see at least one example of someone who claims to use only javascript. I don't even see how this is possible. Not even a shell language? How do you deploy your javascript?

Got the data layer as well, generally it's hopping in and out of app/business/data layers and switching languages as the environment does. Like you said, I doubt there will be too many 1 languagers, we're all polyglots to some extent.
At the very least I'd expect most people to be using javascript plus at least one other language.
> one example of someone who claims to use only javascript. I don't even see how this is possible. How do you deploy your javascript?

Perhaps they hand it off to the next person in the work chain? Most larger IT shops divide up their development and deployment staff along technology and language lines - it makes recruitment easier for the managers who only need to rattle off a list of languages in their job ads, and managers can better control their staff by withholding access to technologies perceived as desirable to work on.

Perhaps you ask this question because you work in the new-fangled full-stack area where one person does everything. IMO the "DevOps" doctrine is a huge step backwards for business integrity. The doctrine for IT shops previously was to keep separate the people with access to the data and those with access to the code, hence "Development" and "Operations" were two separate areas. Creating "DevOps" people who can change both the data and the code in the name of full-stack processes opens the door up to large-scale fraud by workers of their employers' data and even cash.

I don't do it myself, but it's possible to solely program in JavaScript and still deploy complete apps, unless you count issuing commands at a command line to be "programming" in bash. With Node.js, you can do basically anything you could do system side with Ruby, Perl, or the rest and there are numerous JS-based tools for building, deployment, etc.
Not counting Javascript, I flip between Ruby & Golang pretty regularly, and before Golang it would have been Ruby & C.
ActionScript - (Client ) Application C# - Unity - (Client ) Application Java - (Server) google cloude JavaScript - the host.

if I stack with C# Stile it's OK but if I do same Objective C or PHP. it's .... ;-(

Go and bash. Occasional Python, C, C++, and Javascript.

Python and bash are the most productive, but quickly become troublesome as program size grows, at which point I switch to Go. C and C++ are necessary to interact with system, third-party libraries, and extreme performance on occasion. Javascript is just an unfortunate necessity for the web.

Web developers do it daily if we assume that html, css and javascript is also programming. As for me, I do html, css, javascript, php, python, objective-c. Not all days are the same but these ones overlaps very often.
HTML and CSS are markup languages. So they are a different "language", but are not considered to be programming languages.
Yeah, as I said, if we assume. Still a lot of web developers write javascript besides backend programming.
Python, Javascript and SQL pretty regularly with some BASH here and there
Ruby and Erlang, these days. Plus a bit of other things like SQL and Javascript.
Python, JavaScript (backend and frontend web dev respectively). I like to focus on one for a chunk of time (before lunch / after lunch), but sometimes that isn't possible.
Java and Python. I also have to do javascript in most of my projects but that's almost a given for this day and age.

Go/Node in my free time(hobby projects).

PHP/Ruby/JS, previously, PHP/JS/Python/C/C++
Just JavaScript, day and night, client and server... No need for other stuff except for CSS.
That's like being the Soylent of programmers. Try a banana every once in a while at least!
bash, vim, html, css, python, coffeescript, C, and bunch of lisp variants.

Planning to decrease it back to 1 some day.

Ruby, Swift, Objective-C and CoffeeScript. But usually separated between projects.
I go between python, javascript, and c++ most weeks (not on the same project). I'm doing a little rust on the side just to learn it, same with haskell. I had a project in ocaml recently, but that probably won't happen again for a while.

I find the biggest hassle working with multiple languages is trying to keep the libraries and data structure interfaces straight (i.e. push, extend, unshift, push_back, cons, :, ::, ...). Once I get into the language mindset the syntax itself doesn't seem to be much of a problem.

I think I'm probably the most productive in python, mostly due to the huge ecosystem. I'm happiest when solving problems in haskell though, and increasingly I like rust (really hoping for higher-kinded types, which would put it in the running for my favorite).

Usually Javascript (Node), but also Java. However I'm most productive in Python, for all and everything, from whipping up a small Flask REST service to doing some data crunching using Pandas. Unfortunately for me, where I work Node is the language of choice.
Web tier: PHP, JavaScript, HTML, CSS

App tier: Java

Backend: Oracle

<3 my job

C++, Qml, bash at work.

JavaScript, Python at home.

Today it was Ruby, Go and JavaScript. I feel productiv in all of them. Sometimes some C, Shell and Python. Python is becoming a pain, because i use it so rarely, that i have to look up everything.
I sometimes go between C#, C++, Java and php / Javascript. Much like being multilingual in the language you speak it just takes a little practice. It does hurt trying to remember the special features of each.
VBA,

SQL,

Golang,

Bash

(sadly in this order of frequency)

For what do you use so much VBA on a daily basis? My only experience with it was writing Excel macros back when I worked with data.
Pretty much what you say. Automating data maniplation/transformation, and also providing a simpler way for non-tech employees to enter data into Excel (Open Excel shhet -> Form pops up -> there is one Textfield in a form -> enter value -> value is placed where is should be placed in the sheet)

It's not necessatily on a daily basis, but mostly it's VBA.

I regularly switch between C#, Python/Django, some bash, and some straight up SQL. I'm fairly comfortable with them all - so the productivity is pretty much the same as switching between multiple projects in the same language.
I don't as much as I used to, but for a stretch I was going between Ruby and Objective-C daily. It was a lot to keep up with, and I ended up with a lot of ObjC lines missing semicolons and Ruby strings prefixed with "@".

If I had to do it over again (alright, when), I'd try to segment the work better. I was writing a service in Ruby (Sinatra) and consuming it from ObjC. I should have planned better upfront so I wouldn't be hopping so frequently. Like, I don't know, spec out my API instead of just writing it.

PHP, C#, VB.NET, Python, JavaScript, Microsoft SQL, MySQL, HTML, CSS. Switching between them doesn't slow me down.
PHP, Javascript(does angularjs count?), Markup(html, css)
I often go between PHP and Javascript (Node + Angular). :) I used to juggle a bit more than that too!