You have an idea for a web-project. You (or your team) have already thought over the concept and the strategy for to becoming successful in the field. Now it’s time to ask the main question – how should this awesome idea be brought to life? The great variety of solutions complicates the decision-making process: classic Java? Modern MEAN? Easy PHP & CMS?
Before we start answering, it’s necessary to realize that this is a huge question, which should be split into parts (in general, this approach works in all IT spheres). So, let’s start to answer step-by-step and come up with a firm background of information, which will make it easier to decide rightly.
Grouping by complexity
Sometimes, the project’s type of definition momentarily solves the problem of choosing if it’s adequate to use an out-of-the-box solution. Otherwise, you should be able to choose the right direction after a detailed analysis.
There are three main types of project complexity:
- Easy – based on CMS or popular solutions. These are simple projects like small online shops, landing pages, blogs, online journals, etc. When it’s necessary to create a simple site without any complicated solutions – CMS is the right choice.
- Medium – based on frameworks. Project examples might be complicated online shops or even one’s own CMS. Frameworks are used when web-projects are to be changed during the whole life cycle because new and unusual features are better integrated with a framework than with CMS.
- Hard – based on “clean” language. Social networks, highload projects, frameworks, totally new solutions in the web should be created without CMS and frameworks. The only-language approach gives you the freedom to create anything where the above-mentioned technologies can’t be used.
This standard produces the general understanding of the question: what kind of projects exist. However, feel free to diverge from it: for example, if you are good in Laravel and you want to create a simple blog based on this PHP framework – go for it!
Let’s go deeper in our understanding of the three main technologies (CMS, framework, only-language) and consider each one in more detail.
CMS
Today, Content Management System is the most popular choice. Many blogs, landing pages, news sites and forums that one can face while surfing the internet are made with its help. The most popular CMS’s are:
- WordPress – Top 1 CMS is intended for online journals, info sites and blogs.
- Joomla! – General CMS which is suitable for every ordinary project. It’s used for small websites.
- Drupal – Powerful CMF (Content Management Framework) with large variety of successfully created projects.
- Magento – The most suitable system for e-commerce.
- OpenCart – System also for e-commerce, as well used by many developers.
Everyone can study CMS for several days and then start making one’s own project – that’s the good choice for those who don’t want to hire developers or or have a typical site to be created. However, CMS-developers are cheap and they can be found easily on freelance sites.
Framework
Thinking about a big and complex project, one often chooses framework as an optimal choice. Framework is a system which is fully-equipped with conventional solutions. Development processes based on frameworks are faster and cheaper than those based on a “pure” language approach. The reason for this is the absence of hardships and nuances that you always face in developing with language only.
The most popular frameworks are:
- PHP: Symfony, Laravel,Yii
- Python: Django
- Ruby: Ruby On Rails
- Java: Spring, Play, JSF
- C#: .NET
- JS: Node.js, AngularJS
In particular, .NET and Node.js are huge platforms with their own concepts.
The cost of a developer with framework background has a wide cost range. For example, a junior Laravel developer can be hired with the salary of $7/hour, but a junior Spring developer may cost from $12/hour up. If you are thinking of creating a project with the help of a big IT company or web studio, a junior developer will cost from $50/hour or more, because the huge office that provides him with a well-planned lifecycle stands behind him, and, of course, reputation plays a big part in a budget forming.
Creating a web-project with high-responsibility aspects
Project developing using a single language is a challenging task. Teams of developers must be responsible to develop:
- project architecture
- code itself
- product security system
Error risk rate rises when using a pure language project compared to projects based on frameworks or CMS.
The main languages in the web development are:
- PHP – it is used for simple projects. Today, over 70% of the internet is filled by PHP projects. Unfortunately, (or fortunately) this number in decreasing because of active new technologies integration. The best example of a project based on PHP is Facebook.
- Python – the most beautiful language. Its laconic solutions help make a site fast and qualitative, but hiring reliable developers is a problematic task, at least currently. Python is widely used for medium and hard projects. For example, Instagram, Pinterest and Reddit were made with Python
- Ruby – the language which is going down in all ratings. However, it is used for easy and medium projects even today. Developers are expensive and it’s hard to find them. Such projects as 500px, Groupon, Airbnb are made with Ruby
- Java – has been TIOBE leader for many years. It is used for big projects with a specific functionality. Ebay, Amazon, LinkedIn – it’s all about Java
- C# – upgraded Java analog, also used for big projects. Such companies as Guru, Stack Overflow, Bank of America want to use C# for the back-end.
- Javascript –a popular language, which is growing in popularity from day to day. It can be used for everything from browser games to big projects. Its growing popularity is proportional to its growing language capabilities, so in the near future we will see examples of some awesome JS-projects. The greatest part of Twitter, Walmart, PayPal was made with JS
To create something really huge and awesome, one needs to think about the stack of technologies: databases, front- and back-end, devOps tools, etc. For example, here is a technology stack of above-mentioned Instagram.
Here you can see other technology stacks of different complex projects.
Trends in web technologies
So, what’s going on with the popularity of different languages? Let’s visit TIOBE and see it.
As you can see, the most popular is Java, but that doesn’t mean that it will be popular next year. The leader in dynamic growth is JavaScript. PHP is still an anti-trend, but its new version #7 has a chance to make it great again 🙂 !
Also, big projects of the last 10 years were made mostly with Python and JS. Such projects as Uber, Pinterest, Instagram, Foursquare and Twitter were made with them – so these are real trend markers.
And now we look at the concept- how to create a unique web app or site.
- Single-page websites. Two main advantages of these types of sites are simplicity and speed. To create such sites, MongoDB, EJS, AngularJS, Node.js, in collaboration with each other, allow us to create something cool, and get aesthetic enjoyment from the process.
- Progressive Web Apps
- Static websites. It’s not a joke, static websites have made a real comeback! Some popular resources as Jekyll, Hugo, GitBook, and Pelican are static. So, if you are thinking about making a static website – that’s a good idea!
Putting the story in the nutshell
A unique web app or website demand right choices and wise solutions. Unfortunately, errors are a part of the way to success, but if the base is strong and agile enough to make editions, there will be nothing to worry about. Be brave and wise, good luck!
One reply on “Choosing a technology for a web-project”
great article, but i would also add that it’s very important to not forget to add such services as proxies when it comes to various web projects, like web scraping, testing your bots, working on seo, ad verification and many other things. proxies also help to with lots of online privacy matter that are very important when running web projects. you can read more about it here – https://smartproxy.com/what-is-a-proxy