Not so long ago, I wanted to make an algorithm run on a particular GPU. So I spent about a month setting up a special C++ compiler, tuning it up with its special flags, debugging, and optimizing the GPU code. I was very pleased in the end since not only I managed to make it work, but the resulting implementation, due to all the optimizations, boiled down to ~400 lines of GPU’s native machine code.

Yey!

Except, when you look at it from another angle, if I were writing in assembly from the start, 400 lines of code in one…


Not so long ago, I wanted to make an algorithm run on a particular GPU. So I spent about a month setting up a special compiler, tuning it up with its special flags, debugging and optimizing the GPU code. I was very pleased in the end since not only I managed to make it work but the resulting implementation, due to all the optimizations, boiled down to ~400 lines of GPU’s native machine code.

Yey!

Except, when you look at it from another angle, if I were writing in assembly from the start, 400 lines of code in one month…


Let’s say you want to train a neural network to advise on a healthy lifestyle. You make a randomized questionnaire and hire a bunch of people to answer the questions like “how does drinking [1 ∨ 2 ∨ 3] cups of water every [morning ∨ afternoon ∨ evening] makes you feel?”

Now let’s imagine, for the sake of this mental experiment, all your respondents have started to take cocaine. They now feel great all the time no matter how bad their health is getting.

“No sleep for two days?” “Great!” “Jogging for seven hours?” “Super!” “Bourbon for breakfast?” …


I’m Ukrainian and I can’t save my money.

I can’t save in cash. I learned this early in life when I got a summer job to buy a new second-hand monitor. Mine was in a pretty bad shape, it kind of worked but needed manual adjustments all the time. I really wanted to replace it just so I could work and play in peace. So I held my job for a couple of months, but by the end of the summer, I still lacked some cash so I decided to wait until next year.

Unfortunately, the year was 1998. Ukraine’s…


This became a Words and Buttons buffet-story: https://wordsandbuttons.online/redundant_stories_about_redundancy.html

Yovko Lambrev, CC BY 3.0, via Wikimedia Commons

Let’s say you want to keep your core temperature under control. You put a thermal sensor there, wire it out to some kind of SCADA, and here you go. Except, since it’s very important, you can’t rely on just one wire. What if for whatever reason it snaps?

So you add another scanner and another wire. It’s now more reliable. But what if one of the scanners shows 300 degrees Celsius, and the other 1234? Should you shut down the reactor or replace the broken scanner?

Well, you add another scanner and…


Until just yesterday, I thought AI will never replace me as a programmer.

Well, programming as a profession was waltzing with its own death from the very beginning. I imagine, when someone came up with the Assembler for the first time, a lot of people thought that this is the end.

What? A program that turns human-readable scribbles into real machine code? So every manager can write code now? Are we obsolete? Have we had been automated? Is it time to pack out things and go?

Then soon enough high-level languages came in. Languages such as FORTRAN and COBOL. Now…


When I was little, there was programming, and there was everything else. Geometry had rulers and compasses, programming had pixels. Physics had formulas that magically held all the time, programming had GOSUB and GOTO. Chemistry. Oddly, chemistry, where everything takes time, was rather close to programming in this particular regard, but otherwise it had absolutely nothing in common.

In college I suddenly saw how programming is essentially math. I mean, every computation is a map — a function from input space to output space. Even statefull computation is just a function of state plus input. There are maps that translate…


Words and Buttons Online is a growing collection of interactive tutorials, demos, and quizzes about maths, algorithms, and programming. I’ve been making it with a little help from my friends for 3 years now, and I’m not going to stop anytime soon.

It is not hugely popular. The daily audience is only about 300 visitors. But it does hit the Hacker News front page every once in a while, so it’s not completely marginalized either. Of course, I would like it to be more popular, but I’m also too shy to promote it fiercely. …


By any measurable criteria, Rust is better than C++. Julia is better than C++ even by some non-measurable ones. D was designed to be better than C++ to begin with, and its very existence, all the 18 years of it, shows that it is.

However, we don’t see flocks of C++ programmers migrating to the next new thing whatever this thing is. It’s simpler! Ok. It’s safer! Whatever. It’s more expressive! If you say so.

Are all these people unreasonable? Are they just stubborn? Do they hate progress?

I don’t think so. I think, staying with the slightly inferior thing…


I’ve been running away from C++ for most of my professional career. And I have to admit, in 15 years, I didn’t run away very far.

My first full-time job was about maintaining a project written by five different teams over eight years. Every team brought the fad of their own into the project so it had everything from 3-star programming to the Alexandrescu-style template magic. It wasn’t something designed from the top. Or from the bottom. It was more like a scrapheap challenge project.

By that time, I already had some experience with Delphi, C, Python, and Assembly from…

Oleksandr Kaleniuk

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store