Feasible Software Development

The other day one honourable “Rustacean” (translated: proficient in Rust)   commented:  “…Rust is designed under the assumption that after a period of cognitive training, you should reach the point …” .

Let us be clear: He actually meant well.

That half a sentence is taken out of very high tech context, but it made me stop and think.

  1. Let us imagine there is a set of useful programming languages.
    1. That is the first set.
  2. From that set, Rust is not the language that most people will understand.
    1. And the same applies to standard C++, Haskell, Lisp, etc … that is a subset of the set one: second set.
  3. The third set is the first set minus the second set.

And what is the point?

Feasible software development uses the languages from the third set. Whatever you might think of them. Hint: C, zig, Swift, GO. And yes there are “things” in the third set, like C#, Java, PHP, JavaScript, et all. All very much in use. Why is that? Let me use again, that gentleman’s other half-a-sentence:

(the Context is Rust “cognitive training”)  “… but I can totally imagine that there are also other people for whom it won’t ever work out….”

Meaning: many people will hardly be able to become productive with languages from set two. You need humans to develop the software. The central fact is: open source is fine but someone has to pay for software product development. And if ever there was a risky business then the crown prince of high-risk business is Software Product Development.

In order not to fail, you have to release before the competition does. And even more important: release before you lose the innocents that actually paid your product first release. These days called “MVP” aka “Minimum Viable Product”. In some circles also known as “Fake it until you make it”.

The real journey is: From “Minimum Viable Product” to “Most Valuable Product”.

Increase the distance until you see the full picture.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.