G# – A modern .NET language with Go, Kotlin, and Swift ergonomics
Meet G#: expressive data types, explicit nullability, and structured concurrency on .NET. Explore real examples and run your first project.
Topics /
The most popular blog posts about software engineering on Hacker News. 14,544 posts.
Meet G#: expressive data types, explicit nullability, and structured concurrency on .NET. Explore real examples and run your first project.
In this post, we will discuss the challenges of programming with locks and how the C++ language offers some useful tools to make it easier. We will start with an example in C and then use C++ to improve upon it in steps. The example APIs are based on real-life APIs from the SerenityOS kernel.
Curried functions are probably one of the first new things you come across if you go from an imperative language to a functional language. In purely functional languages, the convention is to define an n-parameter function inductively by staggering the parameters: applying the function to argument #1 returns a…
The Stack Overflow blog recently published Modern IDEs are magic. Why are so many coders still using Vim and Emacs? Posts about Vim vs Emacs vs IDEs are...
One year ago, I started programming a puzzle game from scratch in Zig. While it’s too early to announce the game (more on this later in the year), I want to share some of the insights I’ve gained about gamedev in Zig so far.
All the “C++ killers”, even these which I wholeheartedly love and respect like Rust, Julia, and D, help you write more features with fewer bugs, but they don't much help when you need to squeeze the very last FLOPS from the hardware you rent. As such, they don’t have a competitive advantage over C++. Or, for that…
Functional programming is an increasing popular programming paradigm with many languages building or already supporting it. Go already supports some of these features such as first-class and higher order functions and enabling functional programming.
Dmitrii Kovanikov writes posts about enterprise software development and functional programming, both entertaining and serious. I never used a functional programming language (such as Haskell or OCaml) at work, but several ideas from functional programming have become popular in mainstream general-purpose programming…
I feel like there's a lot of misinformation around this topic and I've been hoping I could address that in a way that could be convincing even for those who can't stand hearing the word
I've just finished teaching a four-day course introducing software engineering for the first time. My plan is to refine the course (I'm teaching it again in October), and it will eventually become the basis for doctoral training programmes in research software engineering at Oxford, and part of a taught Masters. My…
Some of the things I've learned over a decade of Git usage, and working on writing good commit messages.
I’d originally planned to write on this particular topic in response to increasing outreach to me personally, through my blog and other places, unsolicited, and independently from multiple communit…
Three years ago, I wrote a post about shipping ESM & CJS in a single package , advocating for dual CJS/ESM formats to ease user migration and trying to make the best of both worlds. Back then, I didn’t fully agree with aggressively shipping ESM-only , as I considered the ecosystem wasn’t ready, especially since the…
Things I enjoy in Rust:
Disclaimer: This software is not ready. I am using it and it is stable but I still have to make it feel great , if you have suggestions I would be glad to take them. I wrote a list of work that I will attempt in the future.
Technology, startups, programming, technical management and software architecture
The Scala language is large and complex, and it provides a variety of tools that a developer can use to do the same thing in a variety of ways. Given the range of possible solutions to every problem, how can a developer choose which one should be used? This is the first in a series of blog posts aiming to provide…
A loop invariant is a simple yet powerful tool for designing, testing, modifying, documenting and proving code correct.
I have written this post for developers in the Common Lisp community who asked why I am switching to Julia. It may only be relevant for the small set of people who use Common Lisp for scientific computing.
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
Why TypeSpec is the best way to write OpenAPI
In 1999, Lutz Prechelt published a seminal article on the COMMUNICATIONS OF THE ACM (October 1999/Vol. 42, No. 10) called Comparing Java vs. C/C++ Efficiency Differences to Interpersonal Differences , henceforth Java VS C , which seems to have later (March 2000) been expanded into a full paper, An empirical comparison…
If you read my previous article on DOS memory models, you may have dismissed everything I wrote as “legacy cruft from the 1990s that nobody cares about any longer”. It's time to see how any of that carried over through the 16-bit to 64-bit evolution.
Json parsing in C using function pointers attached to a struct