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 |
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 is a good language. |
Crystal |
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. |
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
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 ( |