¿Qué hizo Ruby bien (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 la sangría era 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 fue construido como un contenedor OO alrededor de C sin conocer 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 partes buenas de Javascript y agregar azúcar sintáctico OOP y ocultar los matices (globales, etc.) de JS 'detrás de escena', etc.

Cada lenguaje de programación trató de explotar y aprovechar un nicho particular en mi humilde opinión. Lo anterior son mis perspectivas sobre cuáles fueron los principios fundacionales de los lenguajes de programación y que gobernaron su evolución y capacidad de adopción generalizada. Por supuesto, hay muchos más, pero la lista solo pretende ser un ejemplo.

Sin embargo, me costó entender los principios fundacionales 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 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 débilmente tipado'. ¡No lo veo como una razón para crear un nuevo lenguaje de programación por completo! La programación es pura diversión en mi humilde opinión independientemente del idioma (cada idioma tiene algunas partes malas, pero uno lo evita o vive con él).

Entonces, ¿qué nicho explotó (o lo hace) Ruby 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 había hecho antes (o fue extremadamente difícil)?

No soy un programador de Ruby, sino solo un novato de Ruby y de ahí la confusión.

Descargo de responsabilidad : Esta NO es una guerra de llamas y no estoy buscando respuestas de tipo Ruby vs Lenguaje de programación. Estoy buscando las decisiones de diseño en las que se basa Ruby que han llevado a una adopción generalizada. ¿Qué nicho satisface Ruby para haberse vuelto popular o se lo atribuye exclusivamente a Rails?

Doctor
fuente

Respuestas:

11

Supongo que Ruby despegó por muchas razones:

  • El marco de Rails. Rails reunió muchos patrones útiles para facilitar el desarrollo de aplicaciones web y aumentar la productividad del desarrollador. Compare esto con el desarrollo web detallado y tedioso de Java y la plataforma .NET "one man show". Crear aplicaciones web de weblog en minutos fue una maravilla.
    ¡Puedes ver los "efectos Rails" en muchos nuevos marcos 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.
    Mire la belleza de Cucumber y Sinatra, la belleza de las DSL bien hechas.
  • Comunidad entusiasta y valiente que no tiene miedo de experimentar e innovar.
  • (Opinión personal y puede no ser una razón vital) Se crea en Japón. Nada supera la imagen de "Hecho en Japón".
    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 :)
Quirón
fuente
55
¿Curioso por lo que quieres decir con "la plataforma .NET de un solo hombre ", no es una frase que he escuchado antes?
Carson63000
2
+1 para Lisp / Mars. ¿Dónde queda ese lugar Haskell?
Adam
2
Haskell proviene de las profundidades de la tierra, donde un ejército de pequeños enanos como desarrolladores lo crearon con la intención de confundir a los programadores de OO
Daniel Gratzer
1
@Adam "La civilización de Atlantis"
Quirón
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 script que fuera más poderoso que Perl y más orientado a objetos que Python"
  • "Espero ver a Ruby ayudar a todos los programadores del mundo a ser productivos, disfrutar de la programación y ser felices. Ese es el propósito principal del lenguaje Ruby".

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

SuperMaximo93
fuente
1
Está extremadamente orientado a objetos. Me refiero a la +de 1+1un método.
bpromas
5

Ruby (junto con rieles) hizo popular la convención sobre la configuración .

La forma antigua (no rubí sobre rieles) era

  • Defina una tabla de base de datos "personas" con un campo llamado "cumpleaños"
  • Definir una "persona" de clase empresarial con una propiedad "cumpleaños"
  • escribir una clase auxiliar para transferir datos entre la base de datos y la clase empresarial
  • crear una interfaz gráfica de usuario que las personas en una lista
  • crear una interfaz gráfica de usuario para editar las propiedades de una persona

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

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

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 cada uno se ve obligado a seguir las mismas convenciones.

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

k3b
fuente
4

Primero, Ruby es un "lenguaje actual". Quizás te refieres a "Idiomas que eran populares cuando Ruby se creó en 1995".

Me gusta Ruby por las mismas razones que me gusta 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 se pueda factorizar con un mínimo de alboroto.

  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. Existe un excelente libro sobre el lenguaje ( Programming Ruby ) que es legible y completo.

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

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

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

Kevin Cline
fuente
Recuerdo haber leído que se esperaba que (lo que se convertiría en Ruby) sería lo suficientemente bueno como para reemplazar a Perl en el prólogo de Programming Ruby.
Rig
@kevin: Estas son algunas de las características del lenguaje y estoy al tanto de ellas. Sin embargo, me gustaría saber la 'razón para crear Ruby' además de "Quiero un lenguaje divertido / débilmente escrito" (¿o esa razón es lo suficientemente grande?
PhD
1
@Nupul: Estas cosas no las hace el comité. Matz tomó una noción y escribió Ruby. Se lo mostró a otras personas después de un tiempo, y a algunos les gustó. Así se crearon LISP, Smalltalk, C, C ++, Pascal, Perl, Ruby y Python. Creo que es lo mismo para la mayoría de los lenguajes de programación. Solo unos pocos fueron creados por comité o iniciativa corporativa.
Kevin Cline