A brief discussion on back-end technology trends in 2018
In this article, we will mainly talk to you about the trends of back-end technology in 2018, hoping to help you have a clearer idea about back-end technology.
Asynchronous Mode
Go language is becoming more and more popular, and many large Internet companies are turning to GO for their backends. Dubbo, a well-known service-oriented framework in the Java circle, also announced its transformation to asynchronous mode. This is a major trend, and the asynchronous model has been verified and recognized by the market.
When it comes to choosing a web server, most people began to choose asynchronous non-blocking Nginx instead of synchronous blocking Apache a few years ago. It is because of asynchronous programs like Nginx that it has better adaptability and stronger concurrency capabilities. Now in terms of back-end business development programming, teams with strong technical capabilities have begun to switch the technology stack from synchronous mode to asynchronous mode.
The synchronous blocking mode has many defects, such as weak concurrency, poor adaptability, and slow requests, resulting in service unavailability. For example: in the scenario of calling third-party API in the background interface, the synchronization mode has extremely poor effect. In the past, fewer and fewer people used the synchronous blocking mode frameworks developed using Java, PHP, C++, Python, and Ruby languages.
Node.js
Although Node.js is also very popular and popular, it is still rare to see companies using Node.js as the main programming language for the company's backend. C++, Java, PHP, and Python languages also have some similar solutions, including Swoole-1.0, which is also based on an asynchronous callback mode similar to Node.js.
The essential reason is that the technical solution of asynchronous callback and some optimization solutions made on it, including Promise, Future, Yield/Generator, Async/Await, etc., have changed the style and habits of program development. If you want to use these technologies, engineers need to additionally learn how to use these keywords and functions.
Using these technical solutions is not compatible with existing programs. It can be said that R&D costs are huge and it is difficult to make a smooth transition. Influenced the popularity of asynchronous callback technology stack. This programming model is difficult for everyone to accept.
Coroutine
The coroutine mode takes into account the maintainability of synchronous blocking and the high concurrency capability of asynchronous non-blocking. It will become the mainstream technical solution in the field of back-end development in the future.
The most important thing is that the coroutine mode only requires a few adjustments to the existing project code to run, and is even fully compatible with old projects. Only the framework layer is required for compatibility. This allows for a smooth transition for the team.
Using the coroutine mode, developers do not need to learn additional keywords and function usage at all. The coding style is exactly the same as in synchronous mode.
Among various coroutine technologies, GO
is the most dazzling one. Coroutines, channels, static languages, performance, rich compilation, rich standard libraries, complete ecosystem, Google, etc. There are too many advantages. GO language, I personally think is the most worth learning among all current programming languages.
Swoole 2.x
Let PHP, a veteran backend programming language with a history of more than 20 years, also have coroutine capabilities. Compared with technologies like Go
, the technology stack of PHP + Swoole
is more suitable for rapid development, rapid iteration, and business-driven scenarios. After all, dynamic languages are more flexible and more efficient in development than static languages. And Go
is more suitable for writing system-level software and core business.
In 2018, I refactored the swoole framework, a very old project. The bottom layer supports the Swoole 2.x
coroutine mode. The main reason is that there are many projects within the wheel company based on this framework, especially the service layer, which all uses the swoole framework. We hope that the business code will not change a single line and can be switched to coroutine mode with one click. Theoretically, other synchronous blocking PHP frameworks, such as Laravel and Yii, can only modify the underlying compatible Swoole 2.x
coroutine to achieve seamless switching of coroutine mode in the project code.
After using coroutines, the performance, concurrency, and stability of the entire system have been greatly improved. In the past, the problem that a slow request often caused the entire server to get stuck online no longer exists.
PHP & Swoole
Although Swoole 2.0 is only less than two years old, compared to the 10 years of hard work of the Go language, there is still a long way to go. But compared to static languages like GO, PHP + Swoole still has many advantages. PHP is simpler and easier to use. PHP is a dynamic language and is more flexible to use.
Of course, if it is a new project, it is recommended to use Swoft, a framework specially designed for Swoole 2.x
. It has less historical baggage and therefore has better stability.
Now with Swoole 2.0 coroutines, we are still confident in the future of PHP.
Related recommendations:
Seven things that growing programmers need to do
The growth route of PHP programmers
A brief discussion on the future of PHP programmers

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

StableDiffusion3’s paper is finally here! This model was released two weeks ago and uses the same DiT (DiffusionTransformer) architecture as Sora. It caused quite a stir once it was released. Compared with the previous version, the quality of the images generated by StableDiffusion3 has been significantly improved. It now supports multi-theme prompts, and the text writing effect has also been improved, and garbled characters no longer appear. StabilityAI pointed out that StableDiffusion3 is a series of models with parameter sizes ranging from 800M to 8B. This parameter range means that the model can be run directly on many portable devices, significantly reducing the use of AI

Trajectory prediction plays an important role in autonomous driving. Autonomous driving trajectory prediction refers to predicting the future driving trajectory of the vehicle by analyzing various data during the vehicle's driving process. As the core module of autonomous driving, the quality of trajectory prediction is crucial to downstream planning control. The trajectory prediction task has a rich technology stack and requires familiarity with autonomous driving dynamic/static perception, high-precision maps, lane lines, neural network architecture (CNN&GNN&Transformer) skills, etc. It is very difficult to get started! Many fans hope to get started with trajectory prediction as soon as possible and avoid pitfalls. Today I will take stock of some common problems and introductory learning methods for trajectory prediction! Introductory related knowledge 1. Are the preview papers in order? A: Look at the survey first, p

This paper explores the problem of accurately detecting objects from different viewing angles (such as perspective and bird's-eye view) in autonomous driving, especially how to effectively transform features from perspective (PV) to bird's-eye view (BEV) space. Transformation is implemented via the Visual Transformation (VT) module. Existing methods are broadly divided into two strategies: 2D to 3D and 3D to 2D conversion. 2D-to-3D methods improve dense 2D features by predicting depth probabilities, but the inherent uncertainty of depth predictions, especially in distant regions, may introduce inaccuracies. While 3D to 2D methods usually use 3D queries to sample 2D features and learn the attention weights of the correspondence between 3D and 2D features through a Transformer, which increases the computational and deployment time.

In September 23, the paper "DeepModelFusion:ASurvey" was published by the National University of Defense Technology, JD.com and Beijing Institute of Technology. Deep model fusion/merging is an emerging technology that combines the parameters or predictions of multiple deep learning models into a single model. It combines the capabilities of different models to compensate for the biases and errors of individual models for better performance. Deep model fusion on large-scale deep learning models (such as LLM and basic models) faces some challenges, including high computational cost, high-dimensional parameter space, interference between different heterogeneous models, etc. This article divides existing deep model fusion methods into four categories: (1) "Pattern connection", which connects solutions in the weight space through a loss-reducing path to obtain a better initial model fusion

Please note that this square man is frowning, thinking about the identities of the "uninvited guests" in front of him. It turned out that she was in a dangerous situation, and once she realized this, she quickly began a mental search to find a strategy to solve the problem. Ultimately, she decided to flee the scene and then seek help as quickly as possible and take immediate action. At the same time, the person on the opposite side was thinking the same thing as her... There was such a scene in "Minecraft" where all the characters were controlled by artificial intelligence. Each of them has a unique identity setting. For example, the girl mentioned before is a 17-year-old but smart and brave courier. They have the ability to remember and think, and live like humans in this small town set in Minecraft. What drives them is a brand new,

Written above & The author’s personal understanding is that image-based 3D reconstruction is a challenging task that involves inferring the 3D shape of an object or scene from a set of input images. Learning-based methods have attracted attention for their ability to directly estimate 3D shapes. This review paper focuses on state-of-the-art 3D reconstruction techniques, including generating novel, unseen views. An overview of recent developments in Gaussian splash methods is provided, including input types, model structures, output representations, and training strategies. Unresolved challenges and future directions are also discussed. Given the rapid progress in this field and the numerous opportunities to enhance 3D reconstruction methods, a thorough examination of the algorithm seems crucial. Therefore, this study provides a comprehensive overview of recent advances in Gaussian scattering. (Swipe your thumb up

Redis is an open source, high-performance key-value database system. It is widely used in real-time ranking systems due to its fast read and write speed, support for multiple data types, rich data structures and other characteristics. The real-time ranking system refers to a system that sorts data according to certain conditions, such as points rankings in games, sales rankings in e-commerce, etc. This article will introduce the key technologies used by Redis in building a real-time ranking system, as well as specific code examples. The content includes the following parts: Redis data type sorting calculation

1. Introduction 1.1. The function of lane changing. Simply put, the function of lane changing is to select one of the reference lines from the reference lines to be selected for use by subsequent planning modules. It should be noted that the lane changing code open sourced by Apollo It has been heavily pared down, leaving only a simple framework. Many functions, such as active lane changing, passive lane changing (due to obstacles), relatively complete state machine, lane changing window and Gap selection, etc. are missing. This technical article only shows content on the existing framework. Regarding the content of other lane changing functions, please look forward to the follow-up article 1.2. Lane changing state machine Apollo’s current lane changing state machine is as follows: There are a few points worth noting about the state machine: IN_CHANGE_LAN here