There are people who believe that all you need is you blood, sweat, and determination to accomplish anything. Those people probably have not tried to mass produce an automotive vehicle in for the every expanding consumer market. Henry Ford and his moving assembly line revolutionaized modern industry, where skilled craftsmen are outproduced by those with a curtailed skillset for mass-production.
When it comes to software, there are these kinds of people. These people who still use C for everything, despite higher level languages that provide a framework for coding. If you truly understand the algorithm, then you can build up the things you need to solve it. If you need a stack, then just build one? Well, no because why would I waste my time building up this standard data structure from the ground up and worry about my mistakes from there when I can instead focus on improving the algorithm? My many gripes with low level languages when it comes to algorithms. In general, one can replicate, if not improve, another persons work given the correct toolset.
A great example is the evolution of the C language family. From it’s humble beginnings as a language in the storm of the early computer computer revolution, to one of the most influential language families today. C brought many of the core functionality that I believe all languages should have, more or less. C++ added object orientation to the party. What I love about C++ is that the tools are very simple, yet can do great things. Ineritance brought forth a class based way of thinking with objects being of a type with various member variables and functions. C++ allows the programmer to define their own data type. C++ improved what C had (structures) and made it more powerful, allowing C++ programmers to do the same things, and more without all the overhead that comes with building your owndata type. Then Microsoft came along and said “let’s make Java, but not” and Microsoft flavored Java was born (C#).
Frameworks are basically more powerful tools that makes an already existing tool “better” and “easier to use.” A screwdriver is an already good tool that can do a lot of things, but an electric screwdriver can do all the things that a normal screwdriver can do, but better. Same thing with Semantic UI. HTML and CSS are already very powerful tools that can do many things. The Semantic UI framework allows people to do the same things as HTML, but wthout all the header that is required im HTML.