Reinventing the wheel and changing the world
Monday August 15th 2022 by SocraticDev
The world of software development celebrates innovators. Those who challenge preconceptions and venture into uncharted waters.
But the development world also supports conformists and sloths.
Many dogmas are also erected to comfort the developers ways to persist the status quo:
- a good programmer is a lazy programmer
- don't reinvent the wheel
But we wouldn't have the opportunity to have our lives made easier by these tools without the risks and the strokes of genius of innovators who bet on starting from scratch.
René Descartes and the Method
René Descartes (1592-1650) is considered the father of modern philosophy. After studying in a respected Jesuit college, he broke away from the tradition and old books to contribute to the progress of sciences such as optics and geometry. He refused to submit to the principle of authority and rejected blind respect for philosophical tradition.
He published the Discourse on the Method, written in french, in 1637. At that time, the language of scholars was Latin. French was the language of the uneducated people.
Why write to be read by ordinary people?
Descartes maintained that every human had enough common sense to discover the truth for themselves. As long a sound method to to direct ones mind is followed, progress in knowledge is assured.
By writing this little treatise in popular language, Descartes demonstrates his confidence in his method of directing his mind to true knowledge.
To discover the truth, he invites the reader to doubt everything. Not to take any opinion for certain unless one has examined it closely.
The method begins with a methodical doubt. Absolute skepticism. But temporary skepticism.
If nothing is certain, not even what I see or what I can touch, on what fundamental certainty can I establish on my journey towards knowledge ?
I think. The evidence that a mind is thinking and doubting is the most certain thing in the world.
Thus Descartes inaugurated modern philosophy. A way of thinking no longer centered on the things of the world, but on the mind that thinks and knows. Sure, it's interesting to know biology, for example. But no science is more important than knowing the thinking mind.
Our mind is the fundamental unit of everything our knowledge.
David Heinemeier Hansson and Ruby on rails
David Heinemeier Hansson (DHH) is a well-known figure among web developers. He is the creator of the famous framework Ruby on rails.
Ruby on Rails, also called RoR or Rails, is a free web framework written in Ruby. It follows the model-view-controller design pattern. It offers a structure that allows you to develop quickly and intuitively.
Wikipedia, "Ruby on rails"
A bit like for Descartes, the development of a credible web framework was felt as a necessity for DHH. As a web developer, his goal was building web applications faster and easier. His experience with existing technologies were still just as frustrating to him.
The guiding idea behind Ruby on rails was to foster a positive experience to the developers building their web application. He relied on his developer experience to release a polished framework that could be understood and appreciated by all developers.
sole master on board
[...] I took it into my head to consider that often there is not so much perfection in works composed of several parts, and made by hand from various masters, than in those for whom only one has worked.
Descartes, "Discourse on Method", second part
At the beginning of the adventure, DHH did not authorize any other contributor to make commits to the project. According to him, we must leave the vision of the project get established before letting other programmers contribute. The risk to ruin a codebase by too hasty collaboration is too big.
I do not believe that one can dismiss out of hand the accusation of "reinventing the wheel". It is better to use existing tools than building ours from scratch. In the majority of circumstances, other developers have experienced challenges similar to ours. Solutions often more effective and elegant than our attempts are readily available online. Most programming languages have built-in tools for perform typical operations.
Descartes and David Heinemeier first experienced the absence of a satisfactorysolution as primary drivers of their projects. They have this in common that no solution existed to fulfill their visions.
Moreover, by creating a new system of thought or a new framework of web development, vision is paramount.
We can afford to reinvent the wheel if our vision promises considerable progress compared to the status quo.
translated from french by Google translate