The Many Choices of Modern Web-app Development

After many years, I've now been an active web-developer again for a number of months. And I'm astonished by how many choices there are to make these days when starting development on a modern web-application; even when limiting this to browser-centric HTML5 (Javascript) applications. I'm talking about frameworks and libraries, but also tools used for automation, testing, bootstrapping, editing, deployment, and so on. Many of these choices are independent, some may be incompatible, others overlap in functionality, and yet others specifically support each other.

It would be good to have an overview, which can help guide these choices.

It is not really easy to receive money through other external resources, commonly to deal with soundness care needs. Online drugstores provides discount prescription medicines and vitamins. You have to always ask health care purveyor for professional consultation about Cialis. Have a question about Cialis and Cialis? You can find out more data through Cialis. (See also What is the most great information you probably keep in mind consider about this? Our article focuses on the symptoms of erectile dysfunction and "". Of all the matters in the field of public health that pique our attention most, it's ED, specifically Cialis. (Read more ). Some men who drink excessively like cocaine find it arduous to get an erection and turn to prescription medicaments for a temporary solution. Additionally Cialis may also be used to treat other complaint as determined by your dispenser.



For example, have a look at the following (intentionally chaotic) train of thought. It asks a series of questions a (new) web-developer may ask, illustrating the general feeling of confusion I had while first exploring the world of modern web-app development:

  • I'll use AngularJS: two-way databinding, directives... good stuff! I wonder where JQuery fits in.
AngularJS specifically supports JQuery, but also offers a lightweight alternative with a compatible interface. The old JQuery-based way of development is discouraged, though.
  • I want Node.js on the server-side. Is that OK?
Yes, this choice is independent from AngularJS and there are many tutorials and examples which use both.
  • I hear I should use Express inside Node.js to build my server. Oh, look at that, the MEAN stack... that's actually a thing.
Yes, yes it is. There's also a B-MEAN stack; B for Breeze.
  • What about editors? IDEs?
Any editor will work, of course, but some have specific support for the technologies I'm using. Webstorm, for instance, specifically knows about Node.js and has a plugin for AngularJS support (though quite limited).
  • I'm using so many libraries; can I use RequireJS to organize this? It offers modules, but AngularJS already has modules too. Will this cause trouble?
No, the two kinds of 'modules' are really different concepts. Both can be used in concert.

Well, you get the idea. I'm sure I haven't even scratched the surface. Yes, choice is good. But a beginner could get hopelessly lost in all this. And I may not be a beginner myself, but I still learn about new choices frequently; choices that many other developers already consider mainstream.

I can't help but wonder what other stuff I should be using but aren't. So much so that it would almost distract me from getting any real work done. ;-)


An Overview?

I haven't found any websites that offer a good overview of these technologies. I sort of understand. Many of these choices are independent, so why have a website that lists all of them? Because not everyone knows which choices are independent, that's why.


An Idea

While pondering this issue, I've been imagining a website with a big database that everyone can contribute to. Not only would it contain information and links for each technology, but also known information about particular combinations. For instance:

It would also be able to interactively help a developer make technology choices. I might 'include' AngularJS, and this would automatically discard technologies that are now incompatible or redundant and offer suggestions for other technologies that complement my current selection.

In my head, I see all of these technologies in a big cloud of nodes and the current selection as a graph being assembled in the middle (rendered with d3.js, no doubt), with connectors to indicate their combination. For instance, AngularJS and JQuery would be connected in green, as would AngularJS and Webstorm (specific support), whereas AngularJS and JavascriptMVC would get connected in red (incompatible).

I'm not sure if I'll have the time and motivation to actually create this, nor the connections and marketing skills to get people to contribute to it. But it might be fun. I would be equally happy if someone else would take this up as a project.