Note: This is an article praising Ruby !!! It's not too late.
Note: This is an article about subjective consciousness. It does not aim to persuade you to use or not use Ruby, or any other technology. The Environment involved in this article is Web development, rather than general programming. I would like to use this article to explain some of the Ruby community's views over the years and remind people to face new things with an open mind. Thank you!
I recently gave a 15-minute speech entitled "my favorite Ruby language and its ecosystem ". Obviously, my remarks upset loyal PHP,. NET and Java developers. They are not curious about Ruby, but feel that I am criticizing the technologies they love.
Since this is not a religion, but about how to face new things, I think we should list the reasons why everyone else thinks that Ruby is not used for Web development.
1. Ruby is not as mature as Java or PHP
This is correct. Java and PHP are used for Web development much earlier than Ruby. But do you know? I am older than Ruby, but I don't think I can do Web applications. In the Web Age, technology is updated every several years, and old and mature technologies do not necessarily have advantages. In many aspects, the Ruby community has learned from other technologies, so it can do better than the fragmented PHP community.
If you only have time to evaluate a technology standard, you are wrong from the very beginning.
2. Ruby is inferior to. NET or Java
You are right again! In addition, Ruby is slower than Erlang, Lua, and C ++, but do you not use Erlang or C ++? Web development is only about performance. Your application cannot have millions of users on the first day of its launch. You need to code, test, publish, and loop this process, and you need to quickly iterate. Therefore, the development efficiency at the beginning is greater than the running efficiency. Performance is stupid and incorrect. Ruby applications can also be scaled horizontally like. NET or Java applications.
3. Ruby does not work well in Windows
This is certain. Windows is great in many aspects, but does not include open-source Web development. Ruby and many great technologies from * NIX cannot work well in Windows. Instead of hitting your head and complaining that you are used to Windows, try installing Linux to continue your life. The charm of technology lies in learning new things, rather than staying in a familiar environment for a lifetime.
4. Ruby is not as popular as PHP
This is indeed the case. Technology is not a popular competition, otherwise we should use JavaScript to develop the most popular language on Github ). Technology is a means to achieve the goal. Popularity is only an indicator of the utilization rate and community activity. It helps people determine the availability, stability, and support of technology.
5. Ruby community pride and power
Hmm ...... The Java Community is stubborn, the. NET community is closed, and the Perl community is odd. The C ++ community is a group of middle-aged people who smoke.
I have met developers of various backgrounds. I am not saying that Ruby has no power, but it is definitely not the mainstream. I think this is often the case: Ruby is a relatively new technology, so some simple tasks such as testing, development, and iteration with third parties are relatively easy. So when Ruby programmers praise these things for being easier to use Ruby, they are not looking at other technologies, but simply expressing a simpler development method.
6. Ruby is stubborn and not free
This is not just a mistake, but a silly idea. Let me ask you a question: how can I write an HTTP routing component or image processing class library?
The conventions are better than the configurations. The best practices and clear coding standards won't make developers feel free. Rather, it enables developers to focus on important things, such as business logic.
Ruby's inherent Convention-driven development methods help developers improve development efficiency, but they also respect Community-driven standards to minimize the number of sample files.
Interestingly, Ruby is the only language I know that allows you to change anything anywhere and anytime. People like these standards and conventions to make them more efficient.
7. Ruby is not reliable in Java and. NET.
Windows is not as secure as NetBSD !!! If the only criterion for reliability is the type check, you may be wrong.
Although strict type check and compilation attributes of static languages give them better performance, frankly speaking, during your programming career, how many bugs should be caused by incorrect variable types?
Ruby is used to solve this problem by promoting a testing culture. That is to say, the reliability of your code is linked to your test, not your method declaration.
8. Ruby lacks enterprise-level support
I'm afraid you are ignorant, right? Have you heard of Engine Yard? No? They provide excellent enterprise-level Ruby support.
Enterprise-level support is a long time ago when enterprises earned revenue by binding expensive, reliable, and up-to-date technologies to users. But do you have to do this? Are you so incompetent because you do not choose a suitable technology without the so-called "support?
Let me ask you a question: how long does it take for Microsoft to discover, fix, acknowledge, and release an IIS security patch? Think about it, do you really think that money-driven monopoly companies are concerned about the security of your Web applications?
In the technology innovation era represented by open-source code, selecting a closed, monopolized Technology for so-called support is one step behind everyone. Let's look at the companies like Basho, Redhat, Canonical, 10gen, Cloudera, and Engine Yard. They provide open-source technologies and enterprise-level paid support.
9. Ruby has no good scalability.
This is a very old topic. It should be traced back to the beginning of Twitter. As Twitter develops rapidly, they must modify the code in ActiveRecord to support multiple MySQL Databases in Rails. Unfortunately, Ruby and Rails are obfuscated. In the Twitter case, the rapid growth of Twitter is ignored because of the ease of use and rapid development of Rails.
Any successful application will end with a scalability problem. Facebook finally compiled PHP into C ++, Twitter switched to Scala, and Youtube still uses Python, Apache, and MySQL. No two Web applications are exactly the same. We should learn from successful Web applications, instead of declaring that a technology is more scalable than another technology.
10. It is difficult to find experienced Ruby programmers.
This is true, but it depends on where you are in the world. For example, Israel,. NET, and PHP are prevalent, so it is very difficult to find a good Ruby programmer. But do you know? It is harder to find experienced Javascript developers there!
To be honest, I can also say that finding a good PHP programmer is more difficult than Ruby. Due to the scattered PHP communities, the document generated by users is more difficult to learn than the inconsistent API.
Don't give up on a good thing because of difficulties. You can cultivate Ruby developers by yourself. I mean, if you think Ruby is the right technology, why not invest much?
Http://www.zohararad.com/2012/11/16/10-reasons-not-to-use-ruby/.
Http://www.oschina.net/news/34942/10-reasons-not-to-use-ruby.