Language Pick for 2023
Many languages are converging on a common feature set
I love languages and every language has some great features, but also some very annoying ones. Python and Scala were the first languages where I felt that the good parts overshadow the bad parts. They really improved my productivity.
In 2023 most mainstream languages have adapted successful ideas from other languages. And they have all become pretty good.
Language I have used in early 2023
- Bash
- Java
- Python
- Rust
- Scala
- TypeScript
Bourne shell
I have been using Bourne shell for writing scripts and cloud work.
Python
I have been using Python for doing ML / A.I. and for writing api.
Rust
I have been using Rust for serving PyTorch models.
Scala
I have been using Scala for writing data pipelines in Flink.
TypeScript
I think that TypeScript has the most powerful type system of all mainstream languages. But last I used it, getting the tooling working was still too much work.
Now both Deno and Bun.sh have TypeScript support out of the box. I have been using TypeScript for handling json and for doing a little front end work using Deno libraries.
Language I would like to use more
C#
.NET is a great platform and C# is a great language, for GUI work this is my first choice.
Lean 4
Lean 4 is a proof assistant and a Haskell-like functional programming language. It is based on dependent types and has a very powerful type system.
Mathematicians are using Lean 4 to prove theorems.
Lean 4 has fixed some of the warts in Haskell, and I think that the combination of theorem prover and a functional programming language could prove useful for A.I. applications.
Nim
I tried Nim last year and I was impressed. It looked a lot like Python and it was fast like C. However the library support is still limited. Nim shows that you do not have to choose between fast and simple.
Zig
Zig is a new generation of systems programming language. It is a lot like C, but with a much better type system.
It is also a build system that you can compile C and C++ code with. You write your build script in Zig and not in CMake, this gives it a lot of power.
I tried the Ziglang game engine, Mach engine. Mach Engine ships with several cross platform 2D and 3D demos, which compiled and ran in seconds.
Getting 2D and 3D demos running in C++ took me many long weekends between learning and configuring CMake, vcpkg, GLFW, GLEW and OpenGL.