Original article reproduced please specify the source: @ http://zeeman.cnblogs.com,
First of all, the purpose of this article is not to provoke a language dispute, but a personal record of thoughts.
For work reasons, a few projects with node. JS are mostly related to rest. There is a service involving message forwarding, deployed to 6 servers respectively, has successfully processed hundreds of millions of of messages, no loss of messages, overall stability, indicating that node used in the production line environment is able to withstand the test.
This year, the node community has a big event, that is, express author TJ Big God to go to the embrace, the reason is that the great God to do cloud program development. As a sad, biased back-end code farmers, began to suspect node in the backend performance, with the following prejudices:
1. Node is running on the V8, although some modules have been improved, but the gene has not changed, and V8 is designed for desktop browser, the service is demanding.
2. Node is the JavaScript runtime environment, and the development of JavaScript is limited by the ECMA specification, and the ECMA specification may be a double-edged sword.
3. The overall sense of the event loop is relatively fragile, can make full use of Io, but unable to perform CPU-intensive work, multi-core operation needs require cluster, has always felt this kind of practice a bit of a cottage.
4. Callback level problems can be improved with async and other libraries, but still feel the cottage. Business logic is fragmented under the callback mechanism and is hard for mortals to understand.
5. Ecological problems, JavaScript due to the low threshold, github various node library is quite rampant, the quality is uneven, fortunately, the source code, stepping on the pit and then back to pits.
6. Some third-party library or in order to pursue performance, or in order to break the limit, need to combine node source code to compile, always feel not enough environmental protection. In particular, the production line server can not access the external network situation, it will be crazy.
7. My own JavaScript level is not very good, also think weak type language maintainability is inferior to strongly typed language, unit test can guarantee correctness, but difficult to reconstruct.
Based on the above-mentioned reasons, I don't know how the road after Node 1.0 will go? How far can we go? At present 1.0 has been some dystocia ...
Recommendation: Do not use node for the core business for the time being, although PayPal claims to have done so. Make full use of node's strengths, do and interact with the front end of the work, and in a small time. If the back-end system is imagined as an egg, the egg yolk should not be done with node, opinion.
A little worried about the future of node. js