Which programming language for work? For the weekend?

These twelve responses surprise and delight.
202 readers like this.
Work and play text


Our writer community grows each month as new, interesting folks write for us and join in on the fun of sharing their expertise and experiences in open source technology. So, it's no surprise that they are brimming with fascinating information. It's just asking the right question to release it.

Recently, I asked: What programming languages do you use at work, and which ones do you use on the weekend?

For some, they differ wildly because their work is much different than what they choose to build with at home. For others, they are similar, and their weekend projects just have more personal goals. Let's hear what they had to say.

Share yours in the comments.

Which is your work programming language? Which is your weekend?

I'm a Java guy at Microsoft who uses C# for the occasional pet project. —Yev Bronshteyn

PHP and JavaScript, both places. —Tony McCormick

On the weekend, my 11-year-old coding son and I use Python 3 on the Raspberry Pi. We've made everything from funky breadboards to an Alexa-type device. —James Lovegrove

I use Perl and Bash/Shell at work, and Perl at home and for most of my side projects. —Joe Kline

At work, I use mostly C++, Java, and C#. For fun (and sometimes at work), I use C, Go, Perl, and Lisp —Martin Kalin

Being that my start in the industry came through AIX and Linux administration, most of my work in the early days were Bash scripts. Now as an older Linux administrator, all I’ve done is add Python to the mix in my professional work.

For fun, I’ve dabbled all over the place; experimented with Pascal, wrote a number of applications in C#, tried and failed to do anything meaningful in C or C++, and finally have written a small amount of PHP to either augment existing applications like WordPress and Drupal or a enough for a rudimentary blogging system.

At the end of the day, if I need to get something done, it’s Python. —Steve Morris

I learned how to program in high school with Java. Before that, I had used PHP for web-based projects.

My first professional job was as a C++ developer, but I had also to do plenty of Python and JavaScript coding. In my current job, I'm programming in Ruby and Go.

At home, to start a new fun web project, my default choice is still PHP to get something running quickly, but when it gets more serious I tend to migrate functionality to other languages, like Go, which I find better for testing. Also, I'm doing a bit of D in exercism.io, just for fun, and to get back a bit of the C++ feeling I miss in the other languages. —Manuel Dewald

In 1997, on the first day of college, my computer science professor said to over one hundred wide-eyed freshmen, "I think functional programming is going to be the way of the future." My friends and I looked at each other in disbelief because we were hoping to be taught Java or at least C++ to order to join the dot-com train upon graduation. Instead, we braced ourselves to learn a fairly strange functional language called Haskell. Twenty years later, I find myself using Python, Go, and Javascript for both work and personal projects. All of those three languages have rich support for functional programming. —Viet Nguyen

I use a lot of programming and scripting languages, but the language I code in when I'm writing projects is C. The C language provides flexibility and speed, at the expense of having to pay attention to details and keep track of things. You can't rely on automatic array declaration, garbage collection or other methods from higher level programming languages to help you; the programmer needs to malloc() the memory to use, and free() the memory when they're done using it. You need to have good programming habits to code in C. But for all that, C gives me a powerful programming platform for my projects.

(Disclaimer: Much of my C programming is for the FreeDOS Project, an open source implementation of the DOS operating system. DOS doesn't leave a lot of overhead, so programs need to be efficient. It makes a lot of sense for me to write DOS utilities and libraries in C.)

When I'm writing other things, like example code or maybe a quick script, I use whatever programming language and scripting language is best for the job. I write a lot of Bash code for automation. I also write a lot of PHP code, including a sample PHP program to fill out my March Madness brackets for me, [linuxjournal] since I don't really follow basketball. —Jim Hall

My main, all-purpose programming language is Perl, both for work and play. I use JavaScript when I need to do any web front-end tricks, of course, but the nature of my work doesn’t call for that nearly as often as server-side programming.

I’m proud to say that I’ve contributed to at least one open source Node project, entirely by just letting it hum a few bars so that I could join in. I otherwise have no idea at all how Node works.

I would be remiss to overlook Inform 7, the language I have published at least one interactive fiction game in, and which I find myself revisiting for purely utilitarian reasons in my ongoing role as the Annual Interactive Fiction Competition's technical lead. —Jason McIntosh

Most of my work involves some kind of data wrangling, analysis, reporting, and visualization. Most often I use the Groovy programming language for this purpose. Groovy has all but replaced Java for much of my work, for a bunch of reasons:

  • it's much more compact without being completely different
  • it lets me leverage the Java runtime environment
  • it provides high-level constructs and enhanced mechanisms for handling lists, maps, sets
  • it has nice support for closures
  • it generally supports my preference for object orientation without forcing on me for small scripting chores
  • it encourages writing in a functional style.

However, depending on the need to incorporate certain specific toolchains, I also use Python, and like it almost as much as Groovy.

When I do web stuff, I generally use Grails / Groovy / JavaScript. I am experimenting with Julia, and I kind of like what I see, but haven't done any production work with it yet.

From time to time, I have dabbled in R, but I have never really jumped in there with both feet. And, I really wanted to like Go, but there are a few things about it that really bug me—I don't like capitalizing names to make them public (I'd rather have an "export" keyword); I like to come up with variable names before I write the code that uses them so that I can get a reasonable naming convention going; the initializers in "for" and "if" don't go far enough; and I think I would really miss the object orientation if I were to do something big with Go. As to which language do I use for fun, I occasionally dust off Algol68. (Really!!!) —Chris Hermansen

I "cut my teeth" as they say on the old-school procedural languages, with a wee bit of exposure to functional languages. So the early days were BASIC, PL/1, FORTRAN, COBOL, Lisp, various assembly languages, a few other languages that were unique to the architecture/manufacturer of a particular beastie. Then, a brief foray into APL with its uniquely wacky keyboard. I quickly settled into a habit of using FORTRAN to do everything, and when it couldn't, I'd write a new function in my ever-growing assembly language library to extend FORTRAN above and beyond. (I even had a function/subroutine that effectively let me write inline assembly in my FORTRAN code.)

And, of course, there was TECO... the predecessor to emacs. There were competitions to write full-blown weird code using only TECO editing commands.

When I should have been learning C, I stuck to my augmented FORTRAN and/or Assembly approach. (Actually, I wrote one big, for me, C program to dump, verify, and reload the memory of the Korg M1 synthesizer using an Atari 1040-ST.)

When the world was moving into OOP, I saw people going gaga over Java. I tried and went gag (me with a spoon) rather than gaga. And circa 1999, a friend who'd recently discovered Python suggested that.

Python became and continues to be my mainstay. It allowed me to ease into OOP at my very s-l-o-w pace. A bit of JavaScript and PHP here and there plus other scripty stuff like Bash, SQL, and some simple Perl, but mostly Python.

However, of late, I'm finally getting bored again. Or something. And work is increasingly leading me in the direction of 3D environments for rehabilitation. So, I've been looking at the Ecere SDK which adds 3D capabilities to something called extended C or "eC", which requires me to review C. That and game engines that use either C# or C++. So a small smattering of those. And I'm intrigued by Rust, as I always liked systems programming, and the idea of a "C for the modern architectures" is attractive. I keep hearing about WebAssembly, and the "assembly" part of the name makes me nostalgic and curious.

Finally, I have some friends who are nuts about Haskell and others who like Lua. I've barely looked at either but they're in some bucket list... Maybe Go too.

The bottom line, in spite of all of the above, is that my go-to language (without goto's) is Python for both weekdays and weekends. —Kevin Cole

User profile image.
Jen leads a team of community managers for the Digital Communities team at Red Hat. She lives in Raleigh with her husband and daughters, June and Jewel.


Work is primarily on our ASP.NET Intranets site and MS SQL Server back-end.

My career started with VBA in Excel to parse values from a text-based output thousands of pages long, without having to print it. Considering my degree was in Business Management and Accounting, I largely self-taught myself this as is.

In the past few years, however, I have been put to work on our external LAMP servers running Drupal and custom PHP websites using either Postgres or MySQL databases. Since I started it went from 2 websites to 5 I manage.

The move to LAMP and Drupal/PHP come my way because I have used Linux at home and developed in PHP for years. Just like my ASP and VBA knowledge self-taught at my last job, my Linux and PHP experience also came from self-teaching. Of course being something I do at home, there is less pressure to "complete" or to get departmental "sign-off".

Except once when a church asked for a copy of my auction registration and winning bid PHP site I used, after attending our fundraiser and seeing it in action. I had decided to developed it in PHP because the fundraiser uses individuals' computers and this way I didn't need to install anything, just set up a web server for everybody to connect to.

I've used and tweaked that site each year but alas, we don't run that auction anymore. So I am trying to see about moving the code into some sharing system (Github, or Gitlab, or whatever).

So the funny thing is, what I teach myself is what has driven most of my positive career moves and job changes.

At work, I write bash, LabVIEW, and Lua, mostly for data acquisition, analysis, and device monitor & control. LabVIEW makes creating complex event-driven GUI interfaces very easy. And it has native OOP (data-flow OOP!) and actor modeling.

For play, I use bash & Lua, and I'm learning Julia and Pharo (Smalltalk). Pharo is the current best implementation of Smalltalk and is amazing, both as a language and a development environment.

Either Nim, Crystal, or Julia (or all 3) will be my main goto languages in the future since they are so disruptive, FAST and innovative.
Whichever of the above 3 produces the BEST fastest, readable JavaScript output will definitely pique my interest more.

But for now, I'm going with Julia...just learning the basics while I'm also busy with other IT projects (WordPress, QuickBooks POS, KoboForm/Survey2Go on Android for mobile surveys) that don't involve coding.

During the dotCom boom, I was making good coin with the ASP/VB6/VBScript/IIS stack with SQL Server and Sybase on the backend.

Now, with PHP7's vast improvements, I'm looking to do stuff in Laravel or ProcessWire (CMS framwework). Anything that requires fast portable apps (desktop, HTML5), I'm hoping to jump on the Nim, Crystal or Julia train -- whichever has the best GUI support.

I use GnuCOBOL at work on Linux and at home on both windows and linux.

I use Ada full time at work and also a bit at home, mostly on Linux. I have used assembly, C, Fortran etc. in the past but Ada is the only language I like.

At work I use Perl, Python, C, bash, ksh, and tcl on AIX, Debian, and Ubuntu.

At home I use mostly guile and lisp. I'm learning OCaml.

I also seem to e-lisp at work and home.

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.