Damn, if only those kettlebells were pink, the picture would be perfect for a PinkLetter.
Ahem...
Ciao!
This week I wrote "Vanilla JavaScript vs. RxJs." I wanted to highlight how important it is to solve problems by employing more than one mental model. In this case, imperative vs. declarative.
To make it fun, I tell the story of a developer tasked with building a JavaScript feature. Our protagonist ends up picking one of the two approaches, sneaking in a dependency, and pushing to production.
I'm not sure what's your take on the storytelling I throw in my articles. But, recently, I've found the following quote:
Never let the truth get in the way of a good story.
In this case, I followed it by the book and ended up building a strawman. Let me clarify.
I don't want to advocate for any one approach.
Of course, in my free time, I'd rather do something more exciting and different from what I do in the office.
At the same time, I believe we should focus on making the project successful at work, not on having fun–though it can be!
Also, each team should decide for themselves how to play their best game.
Sometimes, it means writing declarative code, sometimes it means doing it imperatively.
Vanilla JavaScript vs. RxJs — Tackling problems from different angles: imperative against declarative, or "push" vs. "pull."
Names are not type safety by Alexis King — The Haskell school of program construction advocates “capturing invariants in the type system” and “making illegal states unrepresentable,” both of which sound like compelling goals, but are rather vague on the techniques used to achieve them. (Riccardo: The examples are in Haskell, but the ideas relevant to software in general.)
Failing over without falling over by Adrian Cockcroft — You’ve gone through the motions and play-acted a disaster recovery scenario, but despite spending a lot on the production, it’s not real. What you have is a fairy tale: “Once upon a time, in theory, if everything works perfectly, we have a plan to survive the disasters we thought of in advance.” In practice, it’s more likely to be a nightmare. (Riccardo: I find the idea of game day exercises an excellent way to start with chaos engineering.)
Edsger Dijkstra—The Man Who Carried Computer Science on His Shoulders by Krzysztof R. Apt — A pioneer whose work shaped his field like few others. (Riccardo: It's a long one, but what a fascinating character!)
By the way, I've redesigned the landing page at odone.io. Do you want to know what I'm the most proud of? It's all done in Gimp.
Also, I stand by my opinion: CSS is a mess. Chapeau to all the front-end developers out there. Haskell is a walk in the park compared to that!
Thanks for spending some time reading with me. Talk to you soon.
Yours truly,
Riccardo.