The choice of technologies for web project – continuation

I will try to give a brief description of each of the popular languages:

  • PHP – it is used mainly for simple and medium projects. Lots of box solutions. Relatively cheap programmers. The anti-trend of recent years, although with the release of the latest version of the language at number 7, it received really powerful features.
  • Python is a modern language, development on it is fast and high-quality. Use it for medium and large projects. Programmers are hard to find, and they are not cheap.
  • Ruby is a modern language and development is also fast. It is used mainly for the development of simple and medium projects, often developed by startups.
  • Programmers are also few and expensive.
  • Java – development on it is very long and expensive. It is mainly used for large projects with specific requirements.
  • C# is an analogue of Java, also used for large projects, partly in the field of FinTech.
  • JS is developing very quickly, a trend of recent years. A huge amount of developments, and you can write anything you want, even games. It is used for medium and large projects, but this language has received really powerful features recently, because there are still few examples of large projects, specialists are the most expensive, and it is most difficult to find them.

I have described the most popular languages ​​that are used for the web today. There are many new languages ​​that are growing very fast, in particular Scala and some others. But while they are quite young and raw. I wouldn’t recommend running after fashion and writing on them until they develop into something more.

Examples of large sites:

  • PHP: Facebook, Vkontakte, KinoPoisk
  • Python: Instagram, Pinterest, Reddit
  • Ruby: 500px, Groupon, Airbnb
  • Java: Ebay, Amazon, Alibaba
  • C#: Guru, Stack Overflow, Bank of America
  • JS: LinkedIn, Walmart, PayPal

These examples perfectly show that large sites can be in different languages, and this is normal. Again, we come to the conclusion that you need to choose a technology according to the requirements, guided by objective reasons.

Frameworks and Platforms

This is a kind of development environment for programmers, where there is a ready-made infrastructure and a number of ready-made functions with standard solutions for typical tasks. Such a semi-finished product from which you can make candy. There are many different frameworks in every language. There are both general ones, which were created to develop any solutions, and specialized ones, for narrow tasks. For example, Sylius is a specialized E-commerce framework based on Symfony. There are also those on which large and complex decisions are made, while others are not designed for this. Below I will describe popular frameworks for each of the languages ​​in which you can write large and complex solutions.

Frameworks are used to develop rather large and complex sites with unique functionality. This is much faster and cheaper than in a pure language, but at the same time, this solution allows you to develop really complex things and optimize all this for workloads. Plus, it’s almost always more secure than any boxed CMS.

Popular frameworks and platforms:

  • PHP: Symfony, Laravel
  • Python: Django
  • Ruby: Ruby on Rails
  • Java: Spring
  • C#: .NET
  • JS: Node.js, AngularJS

Most of the frameworks are in PHP, and in this language there are plenty to choose from, but there are not so many really functional ones. Less in other languages, and in some really high-quality frameworks there is generally only one, like the Ruby language. Java has a lot of different frameworks for different purposes, and not just for websites. All these frameworks develop annually, more and more new versions are released, some frameworks overtake others. For example, Laravel only in the last few years has come out on top in popularity, although the most complex sites are still being made on Symfony.

.NET and Node.js are entire independent platforms that are based on certain languages, but have very broad capabilities.

Recently, we have been doing research on the frameworks we specialize in. Looked in what big projects they are used. In particular huge Python/Django sites and huge PHP/Symfony sites. We also wrote how we developed a social network on Symfony along with an API (the article is more about API, the widest description on this topic in runet). The same huge sites are on each of the listed frameworks.

CMS and CMF

This is ready-made software that only needs to be configured, less often – to add / rewrite some of the parts. There are a lot of such solutions in any language, but historically it so happened that basically all popular CMS are made in PHP. It’s about the development of languages, earlier simple sites, for which CMS were created, were written in PHP. I also found those times when there was almost no CMS, there were scripts – separate ready-made parts of different sites. Later, these scripts were assembled into a boxed product, which was designed to solve the needs of 90% of simple sites. And so it happened that the main CMS are made in PHP. Today, CMS in other languages ​​are developing poorly, because there are already strong competitors in PHP, and for a simple site, the language does not play big role, so everyone is looking at the possibilities of these finished products.

CMF, in simple terms, is something between a CMS and a framework in terms of features. Usually CMF is used for the most complex sites in this category. This approach allows you to get rid of unnecessary parts of the CMS that are not needed for a particular project.

CMS are different in purpose: general, for online stores, for blogs, etc. Different by terms of use: paid and free. For every popular CMS, there are many different paid and free modules that are easy to connect and use.

Small sites, which are mainly needed for small businesses, almost always use a CMS. This saves a lot of development time. In addition, expensive programmers are not needed to configure such solutions, usually beginners in programming can do this, at least the configuration itself, if you already need to write code, is more difficult here.

It is in working with CMS that the most misunderstanding arises among the end customers of such solutions. Any CMS is tons of ready-made program code, for all occasions. Dozens and hundreds of modules are included in the box delivery. All this greatly limits specialists. Such solutions are very slow, they are absolutely inflexible, they are very easy to hack, especially free CMS. CMS is also often hacked through third-party modules that have critical vulnerabilities, because we never know what level the programmer wrote this or that module. That is, any CMS is NOT designed for a large and complex site. She cannot withstand heavy loads. This solution is insecure, no matter what the developers of a particular CMS say.

I have seen solutions on almost every popular CMS, with many over 10 years of work, I had to work personally. Some of them are popular in Runet, and some are known mainly in the West. It makes no sense to split the CMS languages ​​\u200b\u200bin used in them, for the reasons described above. It is better to say a few words about each popular CMS:

  • WordPress is once a blogging engine, now almost any sites are made on it, including stores. One of the most popular CMS in the world, there are examples of quite visited sites. Information sites are often made on it, including various media. The system is free.
  • Joomla! – General purpose CMS. The quality is not particularly different, very small sites are made on it, and usually cheaper than all other options, since it is with this CMS that many novice programmers begin to learn. The system is free.
    Drupal is already a general-purpose CMF, and has recently come with built-in Symfony framework. Quite powerful, it has well-known sites, for example, the official website of the White House. The system is free.
  • Magento is the most popular management system for online stores in the world. Pretty powerful and complex. It is rarely used in RuNet, mainly in the west.
    PrestaShop is one of the most popular shopping CMS in the world. Also quite powerful, used mainly in the west. The system is free.
  • OpenCart is another popular system for online stores, but, on the contrary, it is used more in RuNet than in the West. Mainly for small and simple shops. The system is free.
  • 1C-Bitrix is ​​a very popular general-purpose CMS, number 1 in Runet. The possibilities are very wide. They often try to make large and complex sites on it, and after a certain threshold in attendance, they rewrite them on other technologies. Many people think that only this CMS can integrate with 1C, which is not true, since all the listed CMS from this list can integrate with 1C, for this all CMS have special modules. The system is paid.

With all listed CMS I worked. Mostly from the developer side. I definitely DO NOT recommend – Joomla, you can work with the rest. For stores, it is better to choose specialized rather than general CMS. In addition to 1C-Bitrix, there are also similar commercial CMS in Runet, they are similar in many respects. Each of the systems has its own characteristics, but all of them are not designed for large and complex projects, the main thing is not to forget.

Previously, we conducted research on which CMS the most visited Runet sites were made on: part 1 and part 2, the largest online stores and the largest bank sites. These studies confirm the findings described in the article.