PHP is almost useless at the language level, and the quality of the specific implementation is mediocre, but it wins in the most critical deployment: no other language is as suitable for large-scale as PHP How to deploy. Basically after installing Apache/mod_php, deploying PHP applications is as simple as copying files.
Even if alternatives such as nginx/FastCGI are used for performance reasons, the extra work is only in the initial configuration. Once the configuration is complete, subsequent deployments are all about file copying. After the server is restarted, apache/nginx will usually be automatically started. The fastcgi manager is responsible for starting the php-cgi process, etc. The file-based calling method of PHP applications does not require more maintenance.
This is critical for web hosting platforms such as Dreamhost: they typically have a single server to handle thousands of low-traffic users, and these users do not have root privileges to run other processes.
Related recommendations: "Python Video Tutorial"
The life cycle of PHP scripts is very short, there is no resident process, and it is terminated after each call. For application authors The requirements are lower and there is no need to consider too much resource management issues.
This is very different from the deployment of Python and the like: most Python network applications such as Django, Tornado, etc. require a separate resident process (Apache/mod_python seems to be a failure and has long been discontinued. updated).
These processes require additional maintenance work to manage their start and stop, and additional monitoring processes are required to handle restarts after unexpected exits. This requires users to have a deeper understanding of the system.
The resident process needs to occupy system memory, and it is usually impossible to run hundreds or thousands of applications on one server. For service providers like Dreamhost, it is not suitable for handling tasks such as WordPress blogs. Simple application. Resident processes also require the author to have a deeper understanding of system resource management, garbage collection mechanisms, etc. to avoid problems such as memory leaks and excessive resource usage.
Now the simplest Python network application deployment should be App Engine, which adopts a life cycle similar to PHP (request processing is limited to 30 seconds, the timeout is terminated, and the resident process cannot run), which greatly simplifies the difficulty of management. , but it is not accessible in China...
So in terms of popularity, Python will not surpass PHP because a large number of service providers cannot use Python to support the existing user scale. But this popularity means little to startups and professionals. Many core network applications are not suitable for implementation using PHP's short-lived request processing mechanism (such as quasi-real-time push reminders, web page instant chat, etc.), but are more suitable for processing by resident processes. These are where language implementations such as Python and Ruby exert their power.
The power of Python lies in the simplicity and elegance of the language, as well as its powerful expression ability. Hackers like to use Python as a way to express their thinking.
In web development, Python deployment is a problem, but for commercial websites, it is not a problem to handle a VPS by yourself. The versatility of Python ensures the completion of various unconventional applications.
Simply put, if you just need a Web1.0 content display website, consider PHP. For Web2.0, you can consider Python and RoR.
The above is the detailed content of Why is python web not popular?. For more information, please follow other related articles on the PHP Chinese website!