tcharles.fr/content/aboutme/posts/programming.md
2025-02-07 20:32:59 +01:00

2 KiB

+++ title = 'Programming' weight = 20 +++

Main languages

  • Rust - Modern language with safety
  • D - Modern language inspired by C++ and Java, that is garbage collected and has excellent metaprogramming capabilities
  • C++ - C++23 takes a lot of pain out of this old and bloated language
  • C - Mainly for low level / embedded code, and for building of connecting interfaces between different libraries and programming languages
  • Python - When performance and safety/stability is not critical
  • NWScript - A C-like language that is not really relevant outside of Neverwinter Nights, but it's the first "serious" language that I learnt and used a lot

Other languages

  • Bash, Zsh - Obviously, for Linux admin and automation
  • HTML, CSS, JS - For website frontends
  • MySQL, PostgreSQL, SQLite - There are a lot of alternative databases out there, but I always end up using one of these three
  • Assembly - clearly not my area of expertise, but it's always useful for understanding compiler behaviour and executable reverse engineering
  • Go - The language is a bit too basic for my taste, but is very easy to read and is great for web backends
  • C#, Java, Lua, PHP - Languages that I learnt but haven't touched in a while

Dev tooling

  • Git - Learnt git in 2011. Now it's so ubiquitous it's barely worth mentioning
  • GitlabCI, Github Actions - for automated testing, code quality & coverage reports, and automated releases/deploys
  • Codecov - for a nice display of code coverage
  • Docker - it's quite essential now, for custom CI and build environments or service management

Other

  • Ansible - For restoring a complex server in case of disk failure
  • Hugo - This site is served with Hugo and a custom template
  • Qemu/KVM/Libvirt - For server and desktop VMs, with as much virtio as possible (disk, network, video buffer, ...)
  • Yocto - Built a custom linux disk image in 2015