HACKER Q&A
📣 fath0m

What is your favorite programming language and why?


What is your favorite programming language and why?


  👤 eyelidlessness Accepted Answer ✓
No favorite but here’s some things I like about a few:

- TypeScript: the type system is incredibly powerful and expressive. You can guarantee wild things at compile time without a single runtime test.

- Clojure: very simple and elegant way to learn/introduce FP.

- Rust: I’m learning it now, and while I definitely understand why it’s considered difficult to learn… it’s certainly much less intimidating (in my experience) than other systems programming languages, in particular because of the borrow checker.


👤 drakonka
I like quite a few languages and don't actively hate any, but my favorite has to be Go. It is just such a pleasure to write, and the excellent test tooling makes it almost feel like a crime to not write tests during development. I've also never felt "stuck" with Go: it makes problem solving and implementing what's in my head flow very smoothly (which I suspect is mostly an individual thing - I bet different languages do that for others).

👤 62951413
Scala

* a mainstream language with an upscale type system

* can look as lightweight as Python if you prefer that style

* .. while still retaining the power of the JVM with little Java-esque ceremony

* as multi-paradigm as C++

* Akka, Spark/Flink/Kafka, plentiful jobs in Data Engineering/Big Data Analytics/ML

Just * don't touch SBT (especially just starting with the language)

* ignore anything that rhymes with scalaz/cats for work purposes

* consider Kotlin if Scala is out of the question in your company/team


👤 the__alchemist
Rust - Embedded or executables. Outstanding official tooling and docs, package management etc. Elegant language. Not much competition in this field, so doesn't need to be a standout to win.

Python - Experimenting with numbers - eg a fancy calculator, plotter, DSP prototyper etc. Robust set of mathematical, scientific, and statistical libraries. Frictionless syntax. Nice REPL (ipython) Doesn't have the licensing issue of Matlab. Julia has better mathematical syntax, but has too much overhead to compete. (ie it's slow for this use, despite being advertised as a fast language)

HTML, CSS, and Typescript - Web; keep it simple, universal, and fast.


👤 pyjarrett
I like languages for different things:

- C++ : Mostly what I work in, for raw speed and control.

- Ada : Most of the C++ feature set (RAII, custom alloc) with straightforward syntax. It's very underrated (aspects and built-in concurrency are amazing) easy to call C from, and has its own package manager.

- Python : cross-platform automation


👤 linkdd
Erlang/Elixir: The language, the ecosystem, the packaging/distribution, everything is so well thought and carefully designed.

Typescript: The type system is very expressive, and easy to read unlike more powerful ones like Haskell.

Shell (bash): Yes, no other language comes close to compose programs together and manipulate/redirect text to/from files/other programs. I wish for another language to give me the opportunity to write something like:

  export BAR="foo-$(wget https://some-api.example.com | jq -r .some-field)"
  cat <
Makefile: The simplest/most portable way of abstracting/automating complex commands. I'd choose make above any other tooling that has been reinventing the wheel (looking at you gulp, grunt, etc...). Whenever I'm working with teammates/coworkers, telling them "just run 'make' to setup your dev env" is just priceless.

One could argue that my last 2 entries are not programming languages, yet they are powerful tool that IMHO every dev should know.


👤 thomasdziedzic
Ruby because I feel productive using it and it allows you to write pretty elegant code. I also think bundler is the single greatest dependency management tool that's bundled with a language.

👤 mikewarot
Lazarus / Free Pascal - It's easy to understand, fast to compile, handles strings nicely, and matches the way I think pretty well. The component library is modeled on Delphi, which makes very solid use of the object oriented model of programming. It is also multi-platform, you can compile to quite a few targets, including WASM.

👤 jbperry
I enjoy learning new programming languages. My favorite that I've played around with is Elixir. But I don't see that ever being used at my current job.

The language I reach for the most is C#. LINQ is great and the base libraries are solid. Plus, the industry I'm in (building controls) is largely Windows based, so that obviously influences that choice.

I really enjoy the concepts and syntax of OCaml, but I've repeatedly lost of the battle of making it work on Windows.

The JVM has become much more popular in the building controls industry in the last decade. So I've been thinking of picking up a JVM language this year. Trying to decide between Clojure and Kotlin.


👤 PaulHoule
Recent versions of Java, say JDK17.

With sealed types, pattern matching, var, records, it is fun to write compilers. Java is on track, as it has been for a long time, to become ‘ML the good parts.’


👤 MajorSauce
Nim.

My current job is more focused on business processes and advising on cybersec, this means that coding for me is only for fun and side projects.

I love the syntax and the sufficient standard library. I would pick python every time, but Nim's performance and compilation to a single binary file makes everything so much simpler so I can focus on the features instead of having to optimize and manage dependencies.

I have completed Advent of Code in Nim this year and it has been a joy.


👤 anononaut
Coming from a Java background, I've found Kotlin to be everything I've ever wanted. Taking cues from Effective Java and functional programming language paradigms, it strikes a balance between succinct and expressive. I wouldn't be upset with doing primarily Kotlin for the rest of my career.

👤 alhirzel
Tie between Julia and Haskell, for different reasons.

Julia has an intuitive and expressive syntax, while having good flexibility and the ability to work in multiple paradigms. Also, being a scientific programming language, it lends itself well to much of my work.

Haskell is rigid enough to force good design; this "higher barrier" generally results in better mental models by front-loading the understanding of a problem.

Honorable mention to a non-language, the Makefile. Especially with things like help targets[1], it's a very good accelerator for picking projects back up after they have sat on the shelf a while.

[1] https://marmelab.com/blog/2016/02/29/auto-documented-makefil...


👤 nonstickcoating
I am fairly new to programming (beside dabbling in it when I was a teenager). So far I enjoy C the most. I find it way easier to reason about than a more complex language like say Java (both in regards to language-features as well as the respective libraries). Also it seems to me every time C lacks something I'd rather like to have/use, having to figure out how to do it brings me closer to understanding advanced features in more complex languages. All this obviously assuming I correctly understand the problem I try to solve. Edit: This does not mean that I dislike other languages as a whole. I am getting into Lua for scripting and am obviously using Java at university.

👤 lordkrandel
Python, readability counts more than anything else.

👤 jventura
Python - been using it for more than 10 years and every time I get the change, I teach it to my students (Python, flask, Django..). I started recently a website to share some articles, micro-courses and ebooks on Python programming [0]. That's how much it is my favorite programming language! :)

[0] https://pylearners.com/

Edit: There's a why in the question! Basically, I like the explicitness of the language core, the fact that is very high level (and easy to teach), and it's easy (and fast to get feeback) while testing things in the REPL..


👤 furgooswft13
Bash. There is no actually used language that can do as much with as few keystrokes, not even perl. Who needs quotes for strings anyways.

👤 ilyash
"Why I have no favorite programming language"

https://ilya-sher.org/2017/10/10/why-i-have-no-favorite-prog...


👤 slifin
Clojure it's runtime is fast and lively enough that I can iterate my feedback loop for great developer ergonomics

Then all I need to do is focus on how to pace my thinking and taking regular breaks

My treadmill desk is helping with that and hyperfiddle/rcf is great for TDD practice to ensure I'm moving forwards with small stable increments


👤 yurishimo
PHP, unironically. I started in WordPress and have since moved to Laravel.

Although, I've started toying with Elixir and I'm considering moving to an Elixir shop when I get back from a big trip next year. If anyone is interested in hiring a senior software dev that actively wants to learn Elixir, hit me up!


👤 bjourne
Factor because it is the most regular language with the most clean syntax you can think of and because symbol names can contain almost any character. (abd->d)+]? is a completely valid function name. My next favorite language is Python because it is so damn practical.

👤 akagr
I don't really dislike any language i've worked with, but I find myself looking forward to writing some Elixir at work and Common lisp in non-work situations.

Ruby is pretty great too.


👤 nomorecommas
I haven't found one yet that doesn't suck in some way.

👤 usrbinbash
Go

Simple in a good way, fast, excellent toolchain, great libraries, great Documentation and easy to learn, read and explain. A pragmatic language that I can simply get sh* done with.


👤 alexmingoia
Haskell is my favorite language, because my apps never crash, and there’s a single unifying semantics (everything is a function).

👤 idontwantthis
Typescript: Modify objects with JavaScript ease, but never get an undefined property error.

👤 sonabinu
Python. Readability, extensive libraries and developer community

👤 rurban
C

I can do everything in it. It's fast and small.


👤 aristofun
Ruby and Typescript

👤 PaulHoule
AVR8 assembly.