I wrote a tutorial on Vibe.d
Tags: web, dlang
Published: 2021-03-10 09:39:14

I know that most of you haven't even heard of Vibe.d, so please just humor me and go through my post.

A few years back I was wondering, with the ubiquity of Node.js and Javascript frameworks, if there were viable alternatives out there that's not Javascript. Since I did Java decades ago, I delved into Spring/Hibernate, and immediately got an indigestion. Spring is a monstrosity. And to think that all that time, I thought it was an improvement over Struts! I used Ruby on Rails before Struts. With Struts, you will find that people put business logic all over the place: in XML files, in JSP's, in servlets. No rules. No MVC. After having used Rails, I could hardly stomach Struts. This was over a decade ago.

At this stage in my life, I'd rather write fiction, not programs. It's only from time to time that I am curious about the state of web development. So I dabbled in Ruby on Rails. Then I dabbled in Struts. Then I dabbled in Meteor. Then I dabbled in Vibe.d.

I discovered Vibe.d while looking for a web framework that is simple and not as opinionated as Ruby on Rails. I found Rails' insistence on convention over configuration confining. 

I found Kai Nacke's book on Vibe.d while looking for a good tutorial. The book was just one year old then, yet there were already some features of Vibe.d that have changed, so I have to skip some parts of the book and look for guidance somewhere else. I was able to finish my project somehow. I thought Kai Nacke's book need to be updated, and if I have time, I will try to update it and post it as an open source document. That was in 2017.

Then just a few months ago, I was wondering if I can still develop in Vibe.d. I found out I forgot so much. But Vibe.d did not change much. I still find it so elegant in its simplicity. But the dearth of tutorials also did not change. So I wrote my own tutorial while I was trying to learn it again.

Vibe.d was written in D. I am no expert on D, but developing in Vibe.d does not require expert-level knowledge of D. I found there aren’t any drastic changes since then, and I’m glad. Vibe.d is almost as simple and open as PHP and is not opinionated like Rails. You can follow your own conventions or build your own interpretation of MVC. But the most important quality I find with it is that it does not change drastically over the years. And the sheer simplicity!

Why did Rails fail to gain traction? Because by the time it was attracting droves of potential converts, they changed drastically by adopting the then hot-off-the-oven REST, ignoring the users who were already happy with the previous ways and frustrating new converts desperately looking for updated tutorials and documentation.  

Why did Meteor fail too? Because by the time it was catching people’s curiosity, they decided to adopt the very popular React. For existing users, the quandary was to go the old Blaze way or the React way. Which way will win eventually? Since there was no way of divining the future, new and old users alike took the third way: abandon ship.

You do not make drastic changes to your already revolutionary product when you haven’t achieved a critical mass of users yet. You will not expand user base by constantly adopting each and every sizzling new buzzword, you only end up shrinking your user base.

Java was different. They coined their own buzzwords. But for each and every new change, it was always accompanied by updated documentation. That's how it should be done. Java slew the lumbering dinosaurs then. Sadly, Java is now the dinosaur.

Vibe.d doesn’t rely on hype, which goes against it. I feel there is a dearth of tutorials on Vibe.d. After opting to learn Vibe.d again, so I decided to write the book while I am re-learning it.

Here is the tutorial: https://github.com/reyvaleza/vibed