I am interested in the following question: which programming language and database (in general, technology) can you recommend for developing your own high-load web projects.

Closed due to the fact that it is necessary to reformulate the question so that it was possible to give an objectively correct answer by the participants Athari , Dmitriy Simushev , LEQADA , aleksandr barakin , insolor 25 December '15 at 22:47 .

The question gives rise to endless debates and discussions based not on knowledge, but on opinions. To get an answer, rephrase your question so that it can be given an unambiguously correct answer, or delete the question altogether. If the question can be reformulated according to the rules set out in the certificate , edit it .

  • Highly loaded, in your understanding - which one? Give the numbers, without them your answer is rather abstract. What is the focus of the project? Etc. etc., this is if you want to get an answer not of a general nature. - Zowie
  • Honestly, minus would be stuck for a question, but I don’t like it! This is equivalent to picking in the nose or in} | {ope, in the nose it seems to be cool, but in} | {the op is not very useful ... That’s what some people say in Java, and the second that PHP. For some Java} | {opa and someone PHP! And I will say this, if there is a brain, the idea will be implemented in any language acceptable for the WEB, and best of all on the one with which the head has become friends! - Palmervan
  • 2
    @Palmervan, actually your beloved PHP has an objective flaw - the speed of execution. - karmadro4
  • one
    not an expert in PHP, but in my opinion there are a good dozen of remedies for this defect by caching and other things, although if the hands are not from that place, then it is useless - Specter
  • one
    @ karmadro4 I wrote somewhere that I recommend using PHP? - Palmervan

5 answers 5

For high-load projects I would advise you to use such components:

Веб-сервер - NGINX (однозначно не апач!); Серверный язык - Python (+ Django); memcached сервер однозначно пригодится, а можно даже и несколько таких;) СУБД - это уже вам выбирать, но лучше выбрать NOSQL-СУБД, например, MongoDB. 

Although NOSQL DBMSs are becoming more and more popular, but nevertheless they are extremely insecure (minus SQL-Injection, but plus a bunch of other holes), and also use specific access languages, which will also have to dare. NOSQL-DBMS can withstand much stronger loads, but there are plenty of vulnerabilities (if you need more specific vulnerabilities, then I can talk about them).

  • one
    use python - one of the slowest yp? Justify please. - Specter

Again ... Though sit down FAQ-write ...

HIGHLY loaded systems are assembled on clusters.

On the face is nginx, which spreads jobs on a bunch of servers.

If you have a banner network, it writes in C ++ (5 times faster than PHP, 2 times java - although it depends on the task I saw options when java caught up with C ++, but in PHP mathematics it was almost 40 times behind)

Another vKontakte should be written on what you know, and under what you will find people. It is better to rewrite especially narrow places on Syah; but until then, a caching proxy will save you.

Proper database construction is much more important than the DBMS that you use.

In some tasks, a text file is faster than a database))

DB - the one that you or your DBA / programmer know (is there such a thing, right?)

If we are talking about Linux servers, I would choose postgresql.

    I recommend the Go platform.

    In the limit, only the executable code Go + cache memory + database. If the project requires the execution of SQL, then any reliable SQL database (MySQL, Postgres). Sometimes it is convenient to partially abandon the purely relational model and store it in a SQL JSON or XML database.

    If it does not require SQL, then Redis (memory is becoming increasingly cheaper).

      A programming language is not critical. It is important that your application can scale. Examples:

      • PHP - Facebook, Badoo, VKontakte
      • Java - Odnoglaziki
      • ASP (or something from this MS series, I'm not good at their technology) - microsoft.com and all their resources.
      • I’m too lazy to give examples here, it’s important that the language used is suitable for solving a problem, for example, writing a chat on php is not the best idea, you can write, but it will eat more resources than the chat written on node.js.

      Again, it is important to understand that the languages ​​listed are the main ones, other languages ​​are also used, for example: VKontakte uses node.js to return user statuses.

      The database also does not really matter, the available tools for its scaling are important, from the currently popular ones: MySQL, Postgres, MSSQL Server, Oracle. Examples:

      • MySQL - Facebook, Badoo, VKontakte
      • Postgress - zone. Com

      Again, here we are talking about the main database, there are also specialized databases for other tasks.

      The general essence of this whole post, scaling is important in the highload.

        Muzzle unconditionally on Java (JSP / Servlet). Servlet containers a lot: yes all the same Tomcat - why not. Only it is necessary to fasten it normally to a decent web server. Neither CGI, nor PHP will give normal performance (forgive me, PHP fans).

        ASP is not bad, but its problem is in the server. In the world, alas, there are few servers with ASP support - do not compare with Java.

        As a database, you can choose either Oracle or SQL Server (MySQL, with all due respect, does not pull decent loads).

        Just never get fooled by trendy server virtualization. Tested on their own bitter experience. There is nothing better than physical servers yet. Yes, expensive, but reliable.

        • The server written in Java is also far from a fact that will show adequate performance, of course, the reason for this will be the code. That, actually, is relevant in the case of PHP. If you do everything “right”, I don’t see absolutely any problems when using PHP (for example, Facebook is a bright proof). So, personally, I am not sure, to put it mildly, of the expediency of using the word "unconditionally". It is better to write like this - one of the best solutions (but definitely not the only one, and, trivially, it does not always have at least some sense) PS: I am not a fan of PHP, rather the opposite - Zowie
        • Of course, there are tasks when Java is 100% preferable, but since The question is of a general nature - a “normal” Internet project is being considered. - Zowie
        • Perl, as a powerful tool, has proven itself to me, even though I have not studied it deeply. Yandex, as far as I know, is written on Perl. - Yoharny Babay
        • Why "definitely" in Java? - AseN
        • Facebook, by the way, already hell knows how much pure PHP does not use. There is a PHP-> C ++ translator, which gives a fast non-dynamic code. The database is thought to me - also not from standard sources. - SilverIce