Por qué Ruby tiene más éxito que Python
Este artículo analiza las razones por las que Ruby tiene más éxito que Python desde múltiples perspectivas, como el impacto de RoR en Ruby y las ventajas de Ruby.
Con la popularidad de RoR, el lenguaje Ruby ha atraído cada vez más la atención de los desarrolladores. Aunque también es un lenguaje de secuencias de comandos, el estado de Python es un poco vergonzoso.
El autor cree que existen los siguientes aspectos:
1. La contribución de RoR a las llamas
El autor cree que gran parte del éxito de Ruby se debe a la promoción del RoR.
Hace unos años, se le perdonaría si no hubiera oído hablar de RoR, pero si RoR todavía es una palabra desconocida para usted hoy en día, entonces está en peligro. :)
¿Qué es RoR?
El nombre completo es Ruby on Rails y la abreviatura es RoR o Rails.
Es un marco de aplicación web completo que proporciona a los desarrolladores la infraestructura completa necesaria para crear una aplicación web y sigue estrictamente la arquitectura MVC (Modelo-Vista-Controlador) para el desarrollo.
RoR se compromete a mejorar la eficiencia del desarrollo de los desarrolladores y espera completar tantas funciones como sea posible con la menor cantidad de código posible. Según esta consideración, RoR tiene dos principios de diseño principales: uno es no repetirse y el otro es convención sobre configuración.
Con RoR, incluso puede completar una potente aplicación web con unas pocas líneas de comando y líneas de código simples, lo que mejora enormemente la eficiencia del desarrollo de los desarrolladores.
Tan pronto como se lanzó RoR en julio de 2004, muchos desarrolladores lo buscaron en un corto período de tiempo. Hoy en día, RoR ha atraído la atención de los desarrolladores de todo el mundo. La mejora de la eficiencia que aporta a los desarrolladores no tiene precedentes y el pensamiento que aporta a la industria sobre el desarrollo de software también es de gran alcance.
Con RoR tan popular, Ruby on Rails, un marco web que requiere Ruby para su desarrollo, ha impulsado naturalmente el desarrollo del lenguaje Ruby.
En el "Tabla de tendencias de atención del lenguaje Ruby" a continuación, se puede ver claramente que el lenguaje Ruby entró en un período de rápido desarrollo después del lanzamiento de RoR en julio de 2004.
Ruby se ha sentido muy orgulloso de sus aplicaciones "destructivas" como RoR, pero ¿qué pasa con Python?
En el artículo "Una breve charla sobre el lenguaje Python", mencionamos que Python tiene una rica biblioteca API en términos de desarrollo web, y también existen algunos marcos como Django y Turbogears. velocidad,
Python es más rápido que Ruby; en lo que respecta a la comunidad, Python también es más maduro que Ruby, pero ¿por qué Python no ha producido una aplicación "superior" como RoR?
Guido, el fundador del lenguaje Python, explicó esto en una entrevista con InfoQ:
“No me gusta Killer
Application porque eso hará que La mayoría de las personas o comunidades centran sus esfuerzos en un solo lugar. Python es un lenguaje ampliamente utilizado y se han producido muchos marcos web útiles basados en Python, como Django, etc. Pero Python no es una aplicación asesina. , al menos por ahora, y creo que a medida que la comunidad Python se desarrolle, muchas KillerApplications aparecerán de forma natural."
Aprobado. Desde este punto de vista, podemos ver que Python está buscando un equilibrio, un " "grande e integral" en su camino de desarrollo.
"Habrá muchas aplicaciones asesinas que aparecerán de forma natural", creo que tendremos que esperar y ver.
Solo en términos de "equilibrio", creo que esto es muy peligroso. Como lenguaje de programación, no es recomendable intentar hacer lo que hacen los lenguajes tradicionales como Java.
Tome Java como ejemplo. En las aplicaciones web, hay demasiados marcos para elegir. Sí, "usar diferentes marcos en diferentes escenarios" es una buena idea. Sin embargo, en aplicaciones reales, ¿cuántos desarrolladores pueden elegir el marco de manera correcta y razonable en función de las características del proyecto?
En lugar de que el usuario no sepa elegir al final, es mejor hacer una elección por el usuario desde el principio.
Como usuario de Python, preferiría ver aparecer una aplicación "killer" de Python, que conducirá a un desarrollo más rápido de Python.
Se puede decir que RoR hizo posible Ruby, pero ¿por qué Rails eligió Ruby? ! ¿Cuáles son las ventajas de Ruby?
2. Ventajas de Ruby
1. Más potente que Perl y más orientado a objetos que Python
“Más potente que Perl y más orientado a objetos que Python”, esta es la intención original del fundador de Ruby, Matz, de diseñar Ruby.
Python admite programación orientada a procesos y a objetos, mientras que Ruby está completamente orientada a objetos.
En Ruby, todo es un objeto, incluidos los tipos de datos básicos en Python; cada procedimiento o función es un método.
Por ejemplo, para tomar el valor absoluto de -3, en Python, es así: abs(-3).
En Ruby, es así: -3.abs. Este enfoque OO parece más intuitivo.
2. Potente función de sintaxis.
En términos de simplicidad de sintaxis, Ruby no es tan bueno como Python. Pero para resolver algunos problemas más complejos, las poderosas funciones de sintaxis de Ruby pueden ayudar a reducir la complejidad del problema.
Por ejemplo:
Ruby usa "bloques" para implementar condiciones y declaraciones de bucle en listas, lo cual es más flexible y versátil que Python.
Ruby tiene condiciones funcionales completas, declaraciones de bucle, etc. similares a Lisp.
La función iteradora de Ruby puede abstraer la estructura de control del proceso.
3. Potentes funciones de procesamiento de cadenas y expresiones regulares.
Matz cree: Ruby > (Smalltalk + Perl) / 2.
La biblioteca de clases Ruby es una reorganización orientada a objetos de las funciones del lenguaje Perl. Debido a que toma prestado muchas cosas de Perl, Ruby es igualmente poderoso en el procesamiento de cadenas y expresiones regulares.
4. Un "lenguaje adhesivo" que no se congelará.
También es un "lenguaje adhesivo" y Ruby es más flexible que Python.
Después de usar Python durante un período de tiempo, descubrirá que Python depende más de cosas de terceros. En comparación, Ruby depende más de sí mismo. Por ejemplo, Ruby puede usar la mayoría de las llamadas al sistema (de UNIX) y también puedes usar Ruby solo para la programación del sistema.
Si tiene ventajas, ¿Ruby definitivamente tendrá éxito? ¡Python también tiene muchas ventajas! Sí, depende del entorno del momento.
3. Los tiempos crean héroes
Este punto tiene que remontarse al auge de RoR.
Ruby se lanzó oficialmente en diciembre de 1995 y entró en los Estados Unidos en 2000; en julio de 2004, RoR se lanzó oficialmente.
Vale la pena reflexionar sobre el momento en que apareció RoR.
En el "Gráfico de tendencias de atención del lenguaje Java" que aparece a continuación, se puede ver que alrededor de julio de 2004, Java se encontraba en un "período de declive" relativo.
Cuando se trata de Java, todo el mundo debería pensar en J2EE.
La implementación generalizada de aplicaciones J2EE comenzó en 1999 y 2000. Su aparición trajo la estandarización de conceptos centrales de nivel medio, como la gestión de transacciones, pero debido a su eficiencia de desarrollo, dificultad de aprendizaje y rendimiento real. , no ha tenido un éxito total en la práctica.
Como tecnología central de J2EE, EJB (2.x) ha sido criticado por su alto costo de aprendizaje, su extremadamente baja eficiencia de desarrollo y su extremadamente alto consumo de recursos.
En este contexto, en 2003, nació el framework Spring.
La filosofía de diseño de Spring es "facilitar el desarrollo J2EE". Esta idea de diseño ha atraído una amplia atención en muchos campos del desarrollo de software, incluido el campo de Java. Los desarrolladores de software comenzaron a pensar en cómo desarrollar el desarrollo en una dirección más sencilla.
La aparición de RoR durante este período sin duda siguió esa tendencia.
Se puede decir que la historia eligió RoR, y por supuesto también eligió Ruby.
Encontrar la oportunidad adecuada no es suficiente. Como dice el refrán: "Cuando todos echan leña, las llamas se elevan".
4. Popularidad
La aparición de Ruby ha sido muy buscada por las dos plataformas principales, Java y .NET.
En septiembre de 2006, SUN contrató a Charles Nutter y Thomas Enebo, los principales desarrolladores de JRuby; menos de un año después, el 14 de junio de 2007, se lanzó oficialmente JRuby 1.0. SUN ha integrado soporte para Ruby/JRuby en su Java IDE NetBeans 6.0 M10. Por otro lado, Jython, la implementación Java de Python, no tiene tanta suerte: hasta ahora no ha sido compatible con SUN.
Microsoft también lanzó una versión preliminar de IronRuby, una implementación .NET de Ruby, en julio de 2007.
Creo que los elogios competitivos de SUN y Microsoft hacia Ruby promoverán inevitablemente un mayor desarrollo de Ruby.
Con base en los puntos anteriores, el autor cree que el éxito de Ruby no es accidental y cree que ese éxito continuará. También esperaremos y veremos sobre el futuro de Python.