DEV Community

Éber Freitas Dias
Éber Freitas Dias

Posted on

About lazyness, automation, types and functional languages

There is that famous quote attributed to Bill Gates that says: "I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it."

I think it is a stretch, but it makes sense, I guess. The term lazy is a little too much and could be replaced by "person that optimizes its time".

I'm not saying on the workaholic sense or productivity freak. I'm talking about the person that wants to use their time most efficiently at times. Avoiding repetitive tasks and trying not to worry about things that can be taken care of in an easier way.

Automating a task, making it easier to execute, delegating worries, all this looks like a way to value and enrich time.

Elm, for instance, is a very restrict programming language. It is strongly typed, immutable, and has controlled side effects. What it demands when you develop inside these constraints, pays off by guaranteeing the correctness of your software and the tranquility of not having runtime errors.

When I use Elm it may look like it is hard to follow its rules and limitations, but I'm choosing the path of least resistance there. After all the computer can aid me to write better software without overloading my brain. If it can perform this kind of task (by using static analysis for instance) I don't have to waste my time and mental bandwidth with it.

Elm is one example but there are other languages out there like Haskell, Rust, PureScript, and many more.

When choosing a tool you can value its popularity, expressiveness, who is funding it, etc. But for me, I will always choose to value my time when I can.

Top comments (1)

Collapse
 
iquardt profile image
Iven Marquardt

Elm and other functional langs reduces choice and thus your freedom to make things up whenever you want. This is the very reason why most imperative programmers are bewildered when stumbling upon FP the first time. They don't see the long term benefits of this approach, which is hard for beginners to be fair.