¿Qué hizo bien Ruby (o fue Rails)? [cerrado]

13

La mayoría de los lenguajes de programación tienen algunas decisiones de diseño que influyen en su uso y aplicabilidad.

Por ejemplo:

  • Python se centró en la capacidad de mantenimiento / legibilidad del código y tenía la sangría como parte del lenguaje en sí.
  • La intención de Java era ser OOP multiplataforma 'más fácil' y 'más amigable' que C ++
  • Objective-C se creó como una envoltura OO alrededor de C, sin saber el futuro de C ++ en ese momento
  • Erlang está diseñado para sistemas altamente tolerantes a fallas y concurrentes
  • PHP diseñado para manejar la creación dinámica de páginas web
  • CoffeeScript diseñado para exponer las buenas partes de Javascript y agregar azúcar sintáctica OOP y ocultar los matices (globales, etc.) de JS "detrás de escena", etc.

Cada lenguaje de programación intentó explotar y capitalizar un nicho en particular, en mi humilde opinión. Las anteriores son mis perspectivas sobre cuáles fueron los principios fundadores de los lenguajes de programación y que regían su evolución y capacidad de adopción generalizada. Por supuesto, hay muchos más, pero la lista es solo un ejemplo

Sin embargo, me ha costado entender los principios fundamentales en los que se basa Ruby y su creciente popularidad. ¿Cuáles fueron los principios fundadores de Ruby que lo hacen popular hoy en día? ¿O es el genio de un hombre que diseñó el marco de Rails? Si esto último fue lo que Ruby hizo el diseño de Rails mejor / más fácil / más rápido? ¿En qué sentido?

La razón más comúnmente citada según su creador es "... quería un lenguaje de programación divertido y mal escrito". ¡No lo veo como una razón para crear un nuevo lenguaje de programación! La programación es mera diversión IMHO independientemente del idioma (cada idioma tiene algunas partes malas, pero uno puede evitarlo o vivir con él).

Entonces, ¿qué nicho hizo (o hace) Ruby un exploit que no es explotado por los idiomas actuales? ¿Cuál es el "punto fuerte" (USP) de Ruby que ha llevado a su capacidad de adopción generalizada? ¿Qué hizo Ruby que no se hizo antes (o fue extremadamente difícil)?

No soy un programador de Ruby, sino solo un Noob de Ruby y, por tanto, la confusión.

Descargo de responsabilidad : Esto NO es una guerra de fuego y no estoy buscando el tipo de respuestas de Ruby vs Programming language. Estoy buscando las decisiones de diseño en las que se basa Ruby que han llevado a una adopción generalizada. ¿Qué nicho satisface que Ruby se haya hecho popular o que se atribuya exclusivamente a Rails?

    
pregunta PhD 13.03.2012 - 21:29

4 respuestas

11

Supongo que Ruby se fue por muchas razones:

  • El marco Rails. Rails reunió muchos patrones útiles para facilitar el desarrollo de aplicaciones web y aumenta la productividad del desarrollador. Compare esto con el desarrollo web detallado y tedioso de Java y la plataforma .NET "one man show". La creación de aplicaciones web de weblog en minutos fue una caída de mandíbula.
    Puede ver los "efectos de Rails" en muchos nuevos frameworks web JVM como Grails, Play! y Spring Roo.
  • Historias de éxito como Twitter y Github. Las startups deben llegar al mercado lo antes posible y con Rails, esto es posible. Las historias de éxito fueron una evidencia.
  • El lenguaje de programación Ruby en sí mismo es hermoso, poderoso y expresivo. En mi humilde opinión, Ruby es la salsa secreta del éxito de Rails.
    Mira la belleza de Cucumber y Sinatra, la belleza de los DSL se hace bien.
  • Comunidad ansiosa y valiente que no teme experimentar e innovar.
  • (Opinión personal y puede no ser una razón vital) Se crea en Japón. Nada supera la imagen de "Made in Japan".
    Para mí, aprender lenguajes de programación creados en diferentes países es lo mismo que conocer gente nueva. Es divertido y educativo.
    Ruby / Japón, OCaml / Francia, Lua / Brasil, Lisp / Mars :)
respondido por el Chiron 13.03.2012 - 22:57
13

Esto no responde directamente a la pregunta del título, pero aborda algunos puntos planteados (es decir, por qué se creó Ruby)

Citas de Yukihiro 'Matz' Matsumoto, creador de Ruby, que pueden ayudar a explicar qué inspiró su creación:

  • "Quería un lenguaje de scripting que fuera más poderoso que Perl y más orientado a objetos que Python"
  • "Espero que Ruby ayude a todos los programadores del mundo a ser productivos, a disfrutar de la programación y a ser felices. Ese es el propósito principal del lenguaje Ruby".

Básicamente, Matz quería un lenguaje extremadamente orientado a objetos que fue diseñado para la felicidad del programador.

    
respondido por el SuperMaximo93 13.03.2012 - 23:16
5

Ruby (togehter with rails) hizo que la convención sobre la configuración sea popular.

La forma antigua (no rubí sobre rieles) era

  • Defina una tabla de base de datos "personas" con un campo llamado "cumpleaños"
  • Defina una "persona" de clase de negocios con un "cumpleaños" de la propiedad
  • escriba una clase de ayuda para transferir datos entre la base de datos y businessclass
  • cree una interfaz gráfica de usuario que indique cómo se encuentran las personas en una lista
  • crear una interfaz gráfica de usuario para editar las propiedades de una persona

Con convención sobre configuración el trabajo de base para esto se realiza automáticamente:

  • usted define una persona en el código
  • la tabla de la base de datos, el mapeo, los elementos de gui, son creados automáticamente por un intérprete o codegenerador poderoso

contras: tienes que aprender todas las convenciones para que aprender Ruby on Rails en la primera carrera sea más difícil.

pros: una vez que conoce las convenciones, es bastante fácil entender el código de otros desarrolladores de ruby on rails porque todos están obligados a seguir las mismas convenciones.

mientras tanto convención sobre configuración ha entrado en muchos ecosistemas de codificación

    
respondido por el k3b 14.03.2012 - 09:41
4

Primero, Ruby es un "lenguaje actual". Tal vez te refieres a "los idiomas que eran populares cuando Ruby fue creado en 1995".

Me gusta Ruby por las mismas razones que me gustó Perl:

  1. Es poderoso y expresivo. Puedo escribir sobre una línea de código Ruby en lugar de cinco líneas de Java o C ++. No hay repetición que no pueda ser eliminada con un mínimo esfuerzo.

  2. Es dinámico. Los métodos y las propiedades se pueden crear en tiempo de ejecución, por lo que puedo envolver objetos alrededor de cosas definidas externamente, como tablas de bases de datos, sin duplicar la definición de esas cosas y sin reconstruir la aplicación.

  3. Hay un excelente libro sobre el lenguaje ( Programming Ruby ) que es legible y completo.

  4. Hay un repositorio único para paquetes de dominio público y una interfaz de línea de comandos conveniente para el repositorio.

Pero me gusta Ruby mejor que Perl porque es más legible.

Hay numerosas páginas que comparan Ruby con Python. Me gustan los dos. Prefiero a Ruby, pero tengo experiencia limitada con Python.

    
respondido por el kevin cline 13.03.2012 - 21:58

Lea otras preguntas en las etiquetas