What language are you coding in? What language would you like to code in?

We did this a few times before but I figured we might as well do it again. If you don’t know what the hell am I talking about, let me explain. I’m talking about a thread in which I ask you about your preferred programming languages and then we all try real hard not to argue about why one language is shittier than the other. More specifically, I have two very direct questions for you:

  1. What programming language do you use for most of your day-to-day work right now?
  2. What programming language would you like to learn/use more if you had more time

I find out that a lot of programmers sort of get into this predicament where they code in one language they know fairly well, but find themselves wishing they could switch other to some other language that is cooler, more expressive or just more fashionable. Of course inevitably, after you make that leap and change your primary language something newer and even cooler comes about and you find yourself longing to switch again. Thus is the life of a programmer.

These days I mostly do PHP and Javascript. PHP is not one of the most elegant languages to work with, but it gets the job done. Not to mention that the work I do involves a large, established code base. So we make do, and just try to keep the code clean and re-factor ugly bits as we go.

I have a few much neglected personal side projects that involve Python which has been my go-to scripting language lately. It is simple, powerful, elegant and I’m familiar and comfortable with it. So usually when I need to hack something up, Python is my tool. I also have Setup Assistant which is written entirely in C#.

What programming languages I would like to work with some more? Well, I’ve actually got a long list.

I’m actually terribly rusty with Ruby – but I find that a lot of the crap I use on a daily basis is written in that language. Stuff like Jekyll (which I use for my teaching blog) and Homebrew which I use all the time on my Mac. So I would definitely would like to get my Ruby legs back. Unfortunately, when it comes to potential projects Ruby suffers because it’s similarity to Python. When I need a scripting language, I usually turn to the one I’m more familiar with to save time. Perhaps I ought to change that and use Ruby more often.

When it comes to languages I would like to spend more time learning about, the two biggest ones at the moment are Scala and Haskell. The former because it is essentially Java but with sane syntax, a lot of syntactic sugar and no stupid boilerplate. It feels like a duck-typed scripting language, but it is strongly typed systems programming language.

“skell… Well, Haskell is just weird but in a good way. It is different than most of the stuff you might encounter out there. It forces you to think and structure your code differently. And that’s definitely a good thing. We programmers are fond of saying that once you grok one language, you grok them all – but that’s technically not true. Once you grok a procedural language, you can do most procedural stuff – but purely functional stuff like lisps will throw you in for a loop. And that’s good for the brain. Haskell does something similar. I definitely recommend checking it out. Especially considering that their online tutorial is fucking brilliant.

How about you? What is your current go-to language, and a language you want to learn next?

This entry was posted in programming. Bookmark the permalink.



17 Responses to What language are you coding in? What language would you like to code in?

  1. iwre0 SPAIN Google Chrome FreeBSD says:

    Well,

    All my time coding is with MUMPS (cache intersystems)
    My quickly scripts are made with Python,

    and i’d like to understand better Haskell. Sure I have tried, but i have to recognise that is very difficult for me to change my way to program. I think is too difficult to learn this language by yourself and only with internet + book. I think that is the tipical language that you nead a good teacher and enough time.

    hate Java, but Scala has a big growth in the market, but sorry, i’m used to write in MUMPS so it’s very hard to me to write much words… to do the same thing

    Reply  |  Quote
  2. Grzechooo POLAND Opera Windows says:

    Same here, I’m using PHP and I want to learn Ruby, but never get around it…

    Reply  |  Quote
  3. FX FRANCE Google Chrome Mac OS says:

    I mostly do/did Python, C/C++/Obj-C or JavaScript. I recently started learning Android, and since I’m really spoiled by all the nice functional features you can find in higher-level languages like Python, JavaScript or even Objective-C (although it’s not really FP), I didn’t want to do it in Java. So I did it in Scala. Pretty interesting language, and the mailing list is really active. Tons of really cool concepts (futures for one, I love futures for doing asynchronous whatever-you-want), but it’s not really completely supported yet so I had to do a little bit of tinkering. It’s worth it, in my opinion, but you have to be aware of the learning curve!

    If I had to learn something, I’d choose between Haskell as well, or Erlang. I had an introduction to Haskell about a year ago, but you have to brace yourself for some pretty heavy FP concepts, and it’s compiled to native (unlike Python, Java, JavaScript,…) so it’s supposed to be pretty fast. And Erlang? I dunno, sounds interesting as well! :)

    Reply  |  Quote
  4. AP² PORTUGAL Mozilla Firefox Ubuntu Linux Terminalist says:

    Nowadays it’s Python, Python, Python, with a bit of SQL now and then. I use it for application development, sysadmin stuff, writing small utilities, etc.

    I wouldn’t mind getting into Haskell, especially since I started reading Joey Hess blog about Git-Annex development, but it’s taken some time to “click”.

    I’ve learned Go in the mean time and I’ve written a couple of basic applications in it, but as awesome the concurrency stuff is, it’s still too close a family member of Python to really make an impact on my way of coding. I haven’t learned a truly different language since Prolog a few years ago, which is a shame.

    Reply  |  Quote
  5. Joshua UNITED STATES Mozilla Firefox Windows says:

    I use 4D for my job. It is a bit unusual, but we get the job done with it. My side projects are all in Python. At work I often find myself writing Python pseudocode for something and then doing the actual project in 4D. Not that I really want to, but my Javascript needs to come up a notch. And to be honest I think I’d like to learn C, maybe tinker with some embedded systems.

    Reply  |  Quote
  6. Avi Flax UNITED STATES Netscape Navigator Mac OS says:

    My current go-to language is Clojure, and that’s the language I’d like to learn more about and to just level-up on. However, my current project at work is written in Python. I’m not a huge fan of Python, but I do appreciate it and I can totally live with it. So Im making the best of the situation by trying to apply what I’ve learned from Clojure to my Python code: limiting state, preferring functions over classes and methods, and preferring declarative syntax to imperative.

    Reply  |  Quote
  7. At work it’s been C, Java, and Matlab for the last year. The first two are just fine but I’d rather not do Matlab if possible. For my own hobby projects it’s Lisp (Emacs Lisp or Common Lisp), occasionally C, and, very recently, JavaScript. In the past I’ve done a bunch of personal projects in Java, but I’ve since gotten tired of writing the same patterns over and over again. With Java, I really enjoyed having a good graphics API available, but JavaScript does an even better job at that, so I think I’ve found a full replacement.

    Since I have expert Lisp knowledge I have little desire to learn Python or Ruby. As languages, they’re subsets of Lisp; the only potential advantage being some syntax succinctness, which itself comes at a cost. In Python’s case, whitespace sensitivity is a big turn-off for me, too. As platforms and communities, they’re ahead of Lisp in a lot of ways, so that leaves me at least considering Ruby. Similarly, I would have normally avoided JavaScript, but it’s backed by a really powerful platform (web browsers and the web).

    Haskell and Scala (since you brought them up) — interesting, but I don’t really want to use them for anything. I’ve read enough to learn about some of their cool, unique features, but that’s about it. In Haskell’s case, from what I’ve seen, most things non-trivial get really messy and inelegant. As platforms they don’t have anything particularly special to offer (Scala’s platform is the JVM afterall). Ultimately, Lisp can inherit any other language’s language features as a library, so the good parts can be (and have been) extracted and added to my language of choice anyway.

    To actually answer the second question, for a language that I’d like to learn but haven’t yet, that would be Clojure. That way I’d know a popular modern Lisp dialect. But even this falls into the trap of, “What does this give me over the Lisps that I already know?” That combined with the very quickly evolving Clojure community has delayed investigation.

    FX wrote:

    [Haskell is] compiled to native (unlike Python, Java, JavaScript,…) so it’s supposed to be pretty fast. And Erlang? I dunno, sounds interesting as well!

    In current practical use, Java and JavaScript are JITed so they’re also compiled to native code. With HotSpot, Java is about as fast as C++ and is faster than Haskell’s GHC. CPython is slow, GILed, and only byte-compiled but several other Python platforms have a JIT compiler.

    Reply  |  Quote
  8. FX FRANCE Google Chrome Mac OS says:

    Chris Wellons wrote:

    In current practical use, Java and JavaScript are JITed so they’re also compiled to native code. With HotSpot, Java is about as fast as C++ and is faster than Haskell’s GHC. CPython is slow, GILed, and only byte-compiled but several other Python platforms have a JIT compiler.

    If I really have to think in terms of speed, I usually use C. Yes, CPython is slow as hell as soon as you start using low-level constructs (for loops over numerical arrays in particular) and it sure has the GIL ; the Python language is, however, great as a scripting and general high-level language. The JVM may be fast, but I’m usually avoiding it because of the time it takes (maybe that’s just me?) to even start the “java” command…

    However, I recently did a lot of heavy JavaScript rendering on Canvas2D, and I was really surprised at how fast it was. Depending on what you do, with well-written code, you can get quite close to C speeds, which is amazing for a scripting language!

    Reply  |  Quote
  9. AP² PORTUGAL Mozilla Firefox Ubuntu Linux Terminalist says:

    FX wrote:

    Chris Wellons wrote:
    The JVM may be fast, but I’m usually avoiding it because of the time it takes (maybe that’s just me?) to even start the “java” command…

    You should check out drip.

    Reply  |  Quote
  10. FX FRANCE Google Chrome Mac OS says:

    AP² wrote:

    You should check out drip.

    That sounds great! I haven’t managed to make it work with my Maven-Scala-Android setup yet, but I’ll keep on trying, because if this works this’ll save me so much time waiting for compilations to finish! Some part of me still wonders what’s going on with the Java executable for it to take so much time on startup…

    Reply  |  Quote
  11. iwee0 GERMANY Netscape Navigator Mac OS says:

    In my day to day i program in MUMPS (cache intersystem) and Python when i need to make quick scripts for general purposes.

    I have tried Haskell (two weeks ago), and i have to recognize that it is very hard to me to change the way of making things… Too much for someone who began with Fortran IV, Pascal, turbo c, assembly

    Reply  |  Quote
  12. Jo Python UNITED STATES Mozilla Firefox Mac OS says:

    Mostly Perl and a bit of Python and bash here and there. Recently I tried newLisp (http://www.newlisp.org) in a couple of reporting tools and I already in love with it.

    Reply  |  Quote
  13. Matt` UNITED KINGDOM Mozilla Firefox Windows says:

    Java would be my go-to if someone said “Hey, go code this thing”.

    I need to learn Perl before arriving at a Perl-heavy job.

    I am now interested in Scala; Java but sane and minus the boilerplate would be nice.

    Reply  |  Quote
  14. Mart SINGAPORE Mozilla Firefox Windows Terminalist says:

    I currently use ruby for work, with a side dose of perl (my go-to hack tool if I need something quick and dirty). Very new to all of the meta-programming stuff, which my tech lead is very good at, so I’m kinda hanging on for dear life there.

    I would love to learn more javascript though. I hacked a simple task tracker using the meteor framework, but required tons of help.

    Reply  |  Quote
  15. naum UNITED STATES Google Chrome Mac OS says:

    Mainly PHP, Javascript (now heavily laden with jQuery) and some Ruby in day job.

    Learning Android programming (along with diving back into Processing, a fusion of Art and Java programming, and also has “Android” and “Javascript” mode for quickly generating code that runs on those devices/platforms) in spare time…

    Have a book on Go programming that I barely dented, and would like to plunge more into Node JS, at least in terms of single-page web apps and some CLI utility ideas…

    Reply  |  Quote
  16. JuEeHa FINLAND Mozilla SeaMonkey Linux says:

    Hello from X11 land! As I do not work as a programmer most of my projects are hobby projects just for me or small scripts so I mostly use python, c, bourne shell and plan9 rc. As for the languages I’d like learn I must say haskell and 32 bit x86 assembly. I know a bit of haskell but not nearly enough to write anything really and with x86 assembly I’m stuck on the real mode. Well that is what you get when you learn programming on DOS :P

    Reply  |  Quote
  17. Currently Python. Love it. Wish only that I were better at it.

    I have been falling in love with Go (golang). I enjoy their approach to concurrency/async.

    Reply  |  Quote

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>