Imagine that you’re building a house. You go down to the carpenter and tell him you need to furnish it. A simple but professional man, he asks you to describe exactly what it is you want him to build. You tell him you want a chair. He doesn’t know what a chair is. You tell him it has four legs, a back, and holds up a platform big enough for someone to sit on it. He asks you how tall the legs should be, how tall the back should be, and how big the platform should be. After lots of conversation, he finally builds you a chair, and yeah, it took some work, but it’s exactly what you wanted. You ask him to build you a table now, and then you do the whole song and dance again. While the carpenter is great at what he does and does exactly what you want, maybe you don’t want to spend several months getting the furniture for your dining room. Maybe you could just go down to a furniture store, where people know what a chair and table are so you can get on with your life. It’s a lengthy metaphor, but that’s essentially why someone would want to use a UI framework.
We know what menus are. We know what buttons are. If we were graphic designers or hipsters maybe we could spend several days working on the perfectly shaped elements of a web page to get it exactly how we wanted. Most of the time, you don’t need to spend that much time to make something look professional. A UI framework is like a department store. You walk in, you say what you want, and they’ve got a few selections for you to try on. Maybe it isn’t unique or hand-crafted, but it’ll be something modern and pleasant and you’ll be out the door in a reasonable amount of time.
When you’re a software engineer, a web page designer, or any kind of professional really, your work has to come in a timely manner. If you hired a maid to clean your house and you come back to find that they spent all day polishing the toaster, it doesn’t matter if that toaster looks better than new. UI frameworks make us more efficient, and when we’re more efficient, then our services are more valuable.
When I was working on software problems, I at times found myself overwhelmed. I was trying to get very specific things done and I kept running into issues that I would bend over backwards trying to fix. When I eventually found the solution my problem was almost always that I was overthinking things. I didn’t need 20 lines of code, I just needed the right Semantics UI class keyword. Once you learn how to use the tools at your disposal, everything becomes simpler.
Overall, time is definitely the most significant benefit to UI frameworks, but only slightly less significant is style. I’m a programmer. I’m not a graphic designer. If you give me a block of wood, a chisel, and a month to turn it into a chair, in a month’s time you’re going to find me two fingers fewer with a very tiny, misshapen block of wood that looks more like a duck than a chair. In the same way, I can’t make an attractive menu. The best I can do is make it centered and maybe hope that minimalism is a style that appeals to my client. With Semantics UI, I just tell them that I want a menu, and browse through my many options.
When you work as a professional, you need to know what’s expected of you. If you’re hired to make a webpage, you use the tools at your disposal to make a webpage quickly and professionally according to the client’s specifications. If someone wants you to make everything from scratch using just HTML and CSS then by all means, do that. But if they don’t specifically ask you for that and you spend a week making a menu that looks like you drew it on an Etch-a-Sketch then you’re essentially stealing from them. Use the tools that make work easier and more professional. In the same way, if someone asks you to furnish their living room, don’t walk into the forest and start cutting down trees. It’s common sense.