Author: R.W.Flurando
Tags: dev, thoughts
In tech world, people often care about the fact whether a design is modular (have distributed components that can be chosen to load at run time) or monolithic (an all-in-one huge solution).
For those who are curious but not knowing what is happening, modularity is like Lego bricks, with which you can follow the manual or extend it as you like, and monolithic design is like Microsoft Word, you just use it and enjoy the convience at once, but the only thing you can do when lacking a specific functionality is praying to the MS developers.
I guess you have understand the difference right?
Modular is good is you are a DIY enthusiast, but it takes time and effort to customize. At the same time, monolithic offers smooth start and predefined behaviours, however, leaving not so much space for modifying.
Personally, I love modularity much more.
Because I am really into creating and building stuff from 0 myself is unrealistic -- so I build upon others' work, of course when granted only.
It is not that monolithic thing can't be modified to one's need, just modifying a monolithic one often requires you to change a huge amount of parts, therefore asking you for the absolute acquantencies about the inner machenic of the monolithic machine -- much harder than writing a mini plugin for a modular core!
Seemingly, you are in right?
The conclusion is pick your flavour.
For example, in web developing, let's say you use Python, which has a large community.
There are two hot and bullet-tested framework, Dijango and Flask, monolithic and modular respectively.
In what manner? Dijango enforces MVC usage and has a fixed layout with fixed templating method while Flask only defines some class and function calling!
Generally speaking, when you are DIYing your own project, I really recommend modular stuff when possible.
But under the situation of coorporating, I am afraid we have to fall back to predefined monolithic style. Well, if a bunch of people are willing to negotiate a fixed "coding style" for a modular product in their foreseeable cooporative future, it would be nice, but that takes time and effort again (and most of the time, people fail to unify their butter and cheese).
This is why I only search "How to do something in Guile Scheme" myself but still keep an open eye on the progress of the Python or Rust community.
Anyway, liberity in modularity is tempering, but not realistic enough to replace fixed monolithic style, where the latter is better suited for the whole foss community to get together, fighting against technology gaints.