Which Programming Framework/Stack To Use For Web Development

Well, the question not only troubles new programmers but also startups which are tech based. Wrong development stack could lead to migrating your code when you should actually focus on business growth or even new features to promote your business. Today, there are more programming languages than you even can count and based on various principles. Which should you choose and on what basis?

It all actually depends on your requirements. I can use programming languages like PHP, Python, NodeJS or even Ruby on Rails(RoR)  for the web development, the real question is what is the application about? For example, I want to start blogging and would like to start as quickly and easily as possible with very less or no technical knowledge as like most startups or as a new developer. I can go for the bloggers favorite Wordpress or drupal which are based on PHP. These Open source Content Management System(CMS) technologies are very mature for the intent purpose and are constantly updated to ensure security and are ready to use with very less effort.

Well, while these open source CMS are easy to start with but are made with a general solution in mind. These solutions may not cater to the ever changing needs of a startup/application under development. And modifying these open source technologies for tailored features is difficult and would require experienced developers, and is also not easy to scale with. Then why should we use it? The answer is really simple, they are very easy to start with, requires very less effort and most importantly are free to use. You always have the option to migrate to another framework for heavy customization and usage. Frameworks based on Model-View-Controller(MVC) frameworks like PHP Laravel, CodeIgniter(PHP), Python Flask, Python Django, etc. are made with such heavy customizations and usage in mind. 

Using a proper database is crucial for the application in question. Not all websites require a database like a website with just a few static pages. You can go for relational databases like MySQL, PostgreSQL, etc. which are used in applications highly dependent on relational attributes/entities or you can go for the newer generation of databases based on NoSQL like MongoDB where data are not in relation to each other. Can I use NoSQL in applications dependent on relational attributes like a blog? Yes, you can, but should you and why? No, it can have a drastic effect on your application working, making it complex and would probably slow down the application. But, isn't NoSQL made to perform better than a relational database. True only when using for non-relational references and can have a drastic effect on performance, if used for unintended purposes.

Here are some examples depending upon the type of applications, a blog can easily be created using WordPress and MySQL but if you want something more customizable a good recommendation is Python Django CMS with the choice of database like MySQL, PostgreSQL, etc. Online music or video aggregators like SoundCloud, Saavn, Youtube, Prime Videos, etc are best suited for javascript based web development like Angular 2 or even ReactJS coupled with NodeJS and NoSQL database giving it the performance boost required for the required data types. Simple static websites just require HTML and CSS, these websites don't require database connections making it easier to build and maintain but not suitable for changes made on a frequent basis. Lastly, you can definitely mix match the development stack to your needs as the maximum of the programming languages are cross compatible.