Erlang是否适合Web开发

Your web app does not require Erlang!

I have some experience with Erlang. I used it to write a poker server and then a high-performance test harness for another one. Everything these days is about web development, though, and this is where Erlang is being pushed. Here’s what I think…

Your web app does not require Erlang. Use Rails and you will be pleased, or, if you are Yariv Sadan, don’t set your hopes too high. Disappointment is the result of expectations not matching reality and the last thing that Erlang needs is disappointed programmers.

If you do chose to use Erlang for web development then be prepared to re-implement the wealth of libraries and infrastructure that’s already built on top of Rails. Ericsson and the OTP team are not going to come to your rescue.

Ericsson is a for-profit organization and Erlang/OTP is driven by paying customers, most of whom I’m assuming are in telecom and none likely to be doing web development! The High-Performance Erlang compiler (HiPE) team is enjoying less funding these days and I’m sure HiPE is more important to Ericsson than new libraries for web development.

There’s something to be said about the wisdom of crowds. On the one hand, I know of a single web-based business that’s running on Erlang. That’s Kreditor and the software was built by a small team led by Claes Wikstrom, the creator Yaws, the Erlang web server. On the other hand, I read about new Rails app launching daily. Please don’t take me to task by showing me another web app or two, it does not matter. Show me scores or hundreds of commercial web apps powered by Erlang!

All of the above only applies if you are trying to build a business, make money, get to market quickly. By all means, feel free to experiment and soak in a bit of Erlang. Maybe you are yearning for a new paradigm, or maybe you have been spending too much time on Reddit. Be my guest, give it a shot but when you are done please do not blame Erlang for not meeting your expectations.

Use Erlang if you are building a telco app, network server, binary protocol converter. You will be amazed and delighted. Keep in mind, though, that there are lots of different ways to handle concurrency and plenty of high-performance network servers have been written using fork().

Trading apps have been running without Erlang’s help for years and years and they have been doing very well. Wall St. is home to some of the highest-performing servers and network apps, the apps that handle real-time algorithmic trading or data feeds. All of these apps are architected as standalone servers running on a message bus made by Tibco, 29West and others. It does not matter what you do with the message inside your server, how you pass it around or how many threads you use to handle it. What matters is how fast you process that message and put the results back on the message bus.

This just goes to say that Erlang is not the only alternative for highly concurrent fault-tolerant applications.

What does all this have to do with me?

I lost my passion for programming and regained my passion for problem-solving and that includes sales and marketing. Sales and marketing is what I would like to get to FAST rather than implement a RDBMS interface for the umpteenth time.

From my perspective it does not matter if my Rails app is creaking under a heavy load. If it does then I must have enough users to afford a few more servers and a load-balancer or two. It’s more important for me to get to market fast, throw my app out there and maybe even throw it out if there’s not enough uptake.

Make your app, make it run then make it run better. Don’t worry about Erlang. Use Rails. Worse IS better!

http://cn.udclub.com/forum/viewthread.php?tid=8&extra=page%3D1

你可能感兴趣的:(Web,PHP,erlang,Rails,performance)