At my core, I'm a structural, Computer Science sort of programmer (in college I was required to do a lot of programming using C, C++ and even COBOL(!)) and I'm finding more and more conflict with the core fundamentals I developed in my CS degree as opposed to the modern web development world that I'm currently immersed in. One of those conflicts I'm having is the place of libraries/frameworks in web development.
I've been discovering and experimenting with several libraries/frameworks for some web application development I've been doing. Some that I've used and/or experimented with include jQuery, jQueryUi, TinyMCE, CodeIgniter, Struts, Spring and GWT. I have a slight fear of using these libraries/frameworks too extensively because of the rapidly changing nature of web technology. It seems about every other minute there's some new library/framework available to use in web development, whether it's a new framework or enhancement to an existing technology. This really rubs against the academic world I was in as we generally spent an entire semester learning the language/concept with the expectation we would later use that knowledge effectively in the workplace. My fear is that a lack of good understanding of a library/framework will lead to me to a dead end path where I will have more problems than the one that I set out to solve initially.
Sorry for rambling, but I'm wondering if anyone else has experienced such a fear? I'm also wondering what could be some general guidelines for implementing libraries/frameworks into a web application. i.e. Should there be a limit of how many libraries/frameworks are used when developing a web application? Should a developer spend a week (or 2 or 3...) really getting to know the library/framework before attempting to implement it into their web application?
Ultimately looking for answers in the context of libraries/frameworks which (loosely) includes anything that is implemented in a web application outside of the core technology (Java, JSP, PHP, HTML, CSS and JavaScript are core technologies that I personally use).