Programming Tools/Libraries/Frameworks – How to decide which ones to use
Vendors, such as Microsoft and others, attract programmers with tools that “help” them program faster and better. At least that is their aim. My company was an exclusively Microsoft shop. At the time of the refresh of this older post we still use .NET in it’s new Core implementation.
Over the last decade or so the industry has moved much more toward a variety of languages and tools. There still are the Microsoft tools but additionally there is Javascript, jQuery, PHP, Ruby on Rails and many frameworks primarily based on Javascript like AngularJS, NodeJS, ReactJS and many others. I now have resources available for each of these and more.
Which tool is right? As you might imagine that is a complicated question. Most of these tools will do the job so how do you decide. Here are some of my criteria.
- Is your problem the same as the primary reason for the tools existence. For instance noSQL is made to manage unstructured data. SQL is made to manage structured data, like your accounting system or many other business applications. Use of noSQL in these instances is putting a round peg into a square hole. Size it correctly and it will fit but not fill the hole.
- Is the tool likely to have many programmers who can work with it over time? I check the many sites that post statistics attempting to rank languages and frameworks as to interest level by programmers. You don’t want to be stuck with a framework or language that only a few hundred people in the world have adopted.
- Many of these tools are “open source”, meaning they are not from a traditional publisher but are presented with licensing that allows there use in a variety of ways. There are several open source licensing models so if looking at an open source tool make sure the license model they use is sufficient for your uses.
- Does the language facilitate coding that is easy to read and maintain? Unfortunately Javascript, which is ubiquitous and unavoidable in web programming, does not, in my opinion, meet this criteria but it does stand at or near the top in criteria 2 so we use it.
- Has the tool already been used extensively in your organization and is it still viable?
These are the primary criteria I have at the moment. Send me a comment if you have others I should think about adding. Or if you disagree with some of my statements let me know.