«Back

quick thoughts on some programming languages

I use programming languages, what a suprise. Here are some of my thoughts on them.

bash/sh

Minimal language for prototyping high level (mostly terminal-based) applications. Portable, comes in most Linux and Unix-based systems, even Windows if you use WSL or Cygwin. Most of its power comes from utilizing core utilities like cat, grep or sed.

C

Fast, portable, minimalistic. Runs on more devices than Java does. Mostly a functional language with structures. Powerful (enough) standard library, without any of the bloat. Sadly, there's no standardized data structure implementations. Memory management is a pain as there's no scoped pointers (come on, C commitee!). C++ is better.

C++

A C superset, with powerful syntax and a sizeable standard library. Contains much needed language features like classes, exceptions, templates, etc... Boasts a well developed ecosystem with an extensive set of libraries for GUI programming, image processing, game development, you name it. Though it might be too slow (to compile), and maybe too bloated (for a systems language), it's subjectively my best language.

Crystal

A friend of mine recommended me to learn this language. For a small in-development language, it's pretty packed with features Has Ruby-like syntax and a good standard library, on par with what I mostly use in Python. The documentation is really accessible. I've been using the language for backend development recently, specifically to make a matrix bot.

D

Also a C superset, supposedly a better version of C++. Like C++, there are support for modern metaprogramming features, classes and templates and support for data structures. Support for modules sounds nice, as is opt-out support for garbage collection. It can also be run as a scripting language using dmd's -run option. I don't really have much experience as I only tried writing fizzbuzz in it, though I really hope to be using it more.

But then, maybe not, C++ already fulfills much of my needs. Learning D would - in my opinion - be a waste of time.

Python

Good scripting language for general purposes, though I mostly use it for image processing and data science stuffs. Has a wide variety of libraries and native language bindings. Good out of the box language features.

Of course, for things that bash can't do, I usually use Python's REPL for fast scripting.

Javascript

Go to language for front/backend development. Really good when used on node.js (backend), or when used minimally (on the frontend). I don't really like automatic type conversions or the regular equality operator (==), or automatic semicolon insertions, or the fact that the only standard way to write desktop applications in it is through a web rendering engine wrapper, a very slow, bloated one at that.