The little time I have had with a UI framework I have appreciated. It has opened my eyes up to the possibilities of HTML and CSS and inspired a new interest in web development to the point of consideration as a potential future career. Yet I am already ready to say my goodbyes to the world of UI frameworks.
Semantic UI is the first and only UI framework I have been exposed to so far, and my experience has been ultimately positive. It confused me at first as to why I was thinking about the framework with any negative connotation at all, until a later question I posed to myself revealed the answer. When I reflected on what I had learning using Semantic UI, the only real answer I could come up with was “how to use Semantic UI.” Creating my first mockup of a popular webpage with Semantic UI, I found myself not trying to understand the problems I had to solve in any deeper context than “is this possible to solve with Semantic UI”? If it was, it was usually a quick copy-and-paste, and brief edit, for a solution. If not, oh well, I guess the website did not really need that part after all.
While great for what it was built to do, Semantic UI can fail miserably when it comes to trying to implement a functionality it was not designed in mind for.
If my experience with Semantic UI is generalizable to other frameworks, then frameworks suffer from a strange dichotomy of being both empowering and limiting simultaneously.
As a web developer beginner, using a framework did allow me to produce more “advanced” work earlier than I expected. Those results, however, came at the cost of my understanding of software development and coding, of which there was little to no progression. Although my experience prior had been that learning any coding language can teach me something about the others, and often the field as a whole, whether it is conceptual or syntactic, it appears that learning a framework will only teach me about that framework.
Frameworks make it too easy to be a lazy developer, at least personally. I need to be pushed into an environment where there are not such easy answers to facilitate a deeper insight into the process of web development that will eventually lead to such competence that I will be able to create websites surpassing those that I so quickly developed with a framework like Semantic UI.
That being said, there are instances in which it is worth it to sacrifice knowledge for outcomes. If I ever need to produce a website or webpage that is rather beyond my current scope as a web developer, I know that I will have Semantic UI and other frameworks that I will inevitably be tempted into using when times get desperate. Frameworks can also make consistency, which is sometimes key if building a brand or a similar situation, easier to achieve for web developers, as they provide quick and easy pathways to certain designs.
In the future, I will do my best to learn more about raw HTML and CSS and stay away from frameworks. Although I know that I can expect a dip in the quality of websites I am able to produce if I leave frameworks, in the long run I know that I will become a better, more capable web developer because of that decision.