ProgrammingJavascriptCareerProductivityGadgetsASP.NETWeb Design
sunday coding thoughts

The Pitfalls Of Working With Others Frameworks

Written by
Published on
Filed under
The Pitfalls Of Working With Others Frameworks

I'm losing my perspicacity.

This weekend I was busy working on an Angular module for an admin I built for one of my websites. Everything was going fine, until I decided to add paging to the whole thing. I didn't need to really, but I wanted to try out something new as new development gets harder and harder for me to find time for. So a quick Googling led me to a few sources that I could just plug and play. There was a problem though. Unlike with the awesome example that was shown on screen, mine resulted in random non legible warnings and errors that I had to sit there and decipher. Hours later, I had a working sample using my own data, but there was a problem again. I had absolutely no idea how it worked. That uncomfortable feeling creeped in where I felt I was in over my head. I haven't had that since college.

Any customization that I may have wanted I would need to throw out the window and deal with it, unless I felt like spending the next few days going through thousands of lines of javascript in order to get an idea of the whole thing, and I wasn't comfortable with that. It also required about 4 or 5 external files that needed to load that I had no control over. In fact, I tried replacing the Bootstrap url that the library mentioned to instead reference the latest Bootstrap file, and it stopped working completely. Again, I was in the dark as to the whole thing. It was a frustrating few hours as I tried to make sense of why and how it worked and why new files broke it. 4am hit and I gave up and went to bed angry and pondering the meaning of existence.

Back in my day you had to write every single line of code and HTML on a page and there was no other way around that. Maybe you yourself would end up writing some reusable javascript code and adding it to your arsenal. But for the most part, if you wanted something you had to build it from scratch. But nowadays, if you want a navigation bar you create a div, give it a pre-defined class name and boom you have yourself navigation, assuming that you have the correct files downloaded and in the right directories. You're only job then becomes to know which CSS classes to modify and which list elements to add. That's as far from being a programmer as I can imagine right now.

While the convenience is certainly welcomed, it definitely takes something away from the whole "Developer" life style. You go from being a problem solver to a configuration manager. Instead of opening up an editor and getting to work right away, you jump on Google and read page after page of documentation in order to figure out how somebody else did something that you yourself could not. So this morning I woke up and I opened up notepad and I started to write my own javascript pagination module. 2 hours later I was done, and it was awesome to sit there and just watch it work. Just 2 uninterrupted hour of typing functions and variables and console.log's to test without Google in mind. It had been a long time since I've done that and it made me realize how important it is to show respect to the underlying technology every now and then. It wasn't the prettiest thing or the fastest, but it got the job done without any fuss. Just one script, a few divs and a few styles. And more importantly, I knew 100% how the entire thing worked and could change it in any way I saw fit within seconds.

I think showing the next generation of programmers and software developers that all of these "cool" libraries are the future of web development can lead down a negative path. It can lead to a field where a website will just become a giant list of 3rd party libraries and templates that your "programmer" will have to configure. I can't count how many times I've spent just way too long trying to figure why a module wasn't working, just to turn around and spend 3 minutes writing it in plain javascript. At the end of the day web development and software development should be about problem solving and not about getting to the end the fastest.

And now to sort of contradict myself. But just a tiny bit. 3rd party frameworks that take alot of the set up code away from your hands and offloads it ot a pre-defined library are highly beneficial for companies. You can't find a website anymore that doesn't make use of Angular.jS or Knockout.js or Bootstrap or some other framework mainly because it saves time on projects. And to companies, time is money. The downside is that programmers aren't challenging themselves anymore, they're just doing the same thing over and over again, and when an actual difficult task is brought to their plate they might not know where to go from there. A programmer that knows jQuery is a useful asset to have, but a programmer that can debug jQuery and modify is a rare find nowadays that more companies should have. It's great if you want to use a third party framework to save time, but it's also equally as important to know how and why it works. Just a few years ago I was writing javascript functions to fade out elements and move them around a page, and now I don't have to. But I can definitely still appreciate the effort back in the day that went into it.

In closing, I'm going to spend the week just coding stuff wherever I can and trying to avoid the easy route, just to strengthen the old skill set. The next time you find yourself with a quick fix solution, do it if you need to, but make some time to figure out how and why it works. Happy coding everyone!

Walter Guevara is a software engineer, startup founder and currently teaches programming for a coding bootcamp. He is currently building things that don't yet exist.


No messages posted yet

Developer Poll


Stay up to date

Sign up for my FREE newsletter. Get informed of the latest happenings in the programming world.

Add a comment

Keep me up to date on the latest programming news
Add Comment

Stay up to date

Get informed of the latest happenings in the programming world.

No thanks