8 puntos por GN⁺ 2023-12-19 | 1 comentarios | Compartir por WhatsApp

Persiguiendo la felicidad del programador

  • Ruby es un lenguaje que busca la felicidad del programador, y por eso a menudo se convierte en objeto de burla por parte de otras comunidades.
  • Usar Ruby da placer, y ese es un valor inherente al lenguaje, al ecosistema de gems y a la comunidad en general.
  • Al escribir código en Ruby, se siente disfrute incluso en las partes malas.

Fomentando la expresividad

  • Ruby probablemente sea el lenguaje de programación más expresivo del planeta.
  • Gracias a las funciones de metaprogramación y a los modismos culturales, permite a los programadores escribir código que expresa con claridad su intención.
  • Por ejemplo, el DSL de RSpec hace que lo que se quiere probar se lea casi como si una persona lo estuviera diciendo.

Un lenguaje hecho solo para mí

  • Muchos desarrolladores de Ruby sienten que Ruby y Rails encajan perfectamente con su forma de pensar.
  • Se pueden adivinar intuitivamente los nombres y las firmas de los métodos, y cuando uno se equivoca, puede probar cambiando el orden de los argumentos.
  • Antes de leer la documentación, se aprende rápidamente a intentar algo basándose en la intuición.

Comunidad y valores

  • La comunidad de Ruby juega un papel importante en definir qué es el lenguaje y cómo se siente usarlo.
  • Kent Beck dijo: "El diseño de software es una práctica de relaciones humanas", y eso también aplica a la comunidad y a los valores.
  • La comunidad de Ruby es un grupo increíble, acogedor, amable y que se apoya mutuamente.
  • Ruby tiene dos características principales: la alegría y la comunidad, y eso es una gran fortaleza.

Opinión de GN⁺

  • La característica más importante del lenguaje Ruby es que prioriza la felicidad del programador y permite escribir código expresivo.
  • La fuerte cohesión de la comunidad de Ruby y su cultura de apoyo mutuo brindan gran orgullo y satisfacción a los desarrolladores que usan este lenguaje.
  • Este texto transmite el encanto de Ruby desde la perspectiva de un desarrollador que ama el lenguaje, y resulta interesante y atractivo al mostrar que un lenguaje de programación puede ir más allá de ser una simple herramienta para formar una comunidad y una cultura.

1 comentarios

 
GN⁺ 2023-12-19
Comentarios de Hacker News
  • Hay opiniones divididas sobre la expresividad del lenguaje Ruby

    Ruby es excelente cuando trabajas dentro del ecosistema o haces el tipo de trabajo que el ecosistema espera, pero se vuelve muy complicado cuando intentas hacer algo no estándar. Un método auxiliar puede estar definido en algún punto a cinco niveles de abstracción de profundidad y, a veces, incluso puede ser parte de la metaprogramación de alguna librería, por lo que el LSP ni siquiera puede señalarlo. Ruby es un ecosistema que celebra lo implícito, y eso a veces se siente enloquecedor. Aunque el código terminado se vea elegante y sea agradable de leer, eso no resuelve todos los problemas.

  • Aunque se reconoce la importancia de la experiencia de desarrollo, opinan que Ruby no es la mejor opción

    Estoy de acuerdo en que la experiencia de desarrollo está subestimada en muchos lenguajes o frameworks de programación, pero no creo que Ruby sea el mejor en ese aspecto. La sintaxis puede verse bien al principio, pero la ausencia de información de tipos y la metaprogramación hacen que Ruby sea difícil de usar. También hay otros factores que deben considerarse al elegir un lenguaje de programación, por ejemplo, el rendimiento en tiempo de ejecución. Parece que Ruby perdió popularidad por la falta de tipado estático y por estas razones. Personalmente, creo que Kotlin está en el punto ideal para un lenguaje de programación. Kotlin es conciso y fácil de leer, y ofrece soporte de herramientas de clase mundial, tipado estático, el excelente rendimiento de la JVM y todo lo del ecosistema Java.

  • Expresan cariño por Ruby, pero explican por qué prefieren Python

    Me gusta Ruby y lo prefiero a Python. En especial, las cadenas de operaciones funcionales son muy limpias y tienen una gran expresividad. Me gusta esa similitud con Java Streams. El ecosistema de librerías también es excelente y, al igual que en Python, las librerías son muy prácticas. Pero para trabajo que requiere mantenimiento elijo Python, y cuando necesito preocuparme aunque sea un poco por el rendimiento, elijo Java. Entre Ruby y Python sigo eligiendo Python por sus diferentes enfoques hacia el tipado gradual. Python 3 permite incluir los tipos como parte del programa, mientras que Ruby tiende a ponerlos en archivos separados. Eso parece estar pensado sobre todo para librerías, similar a cómo las librerías de JavaScript incluyen archivos de tipos de TypeScript. Pero personalmente quiero usar los tipos directamente. Claro, existe una herramienta llamada Sorbet, pero no me gusta que sea un gem y que funcione dentro del lenguaje en lugar de ser parte de su sintaxis. He visto que funciona bien en Stripe, pero personalmente no me convence, y siento que Python 3, con type hints integrados, permite aplicar tipos con más facilidad que Ruby. Me gusta mucho Ruby, pero ojalá mejorara en la parte de type hints.

  • Comparten experiencia con varios lenguajes y dicen que Ruby les gusta poco

    He probado varios lenguajes y en algún momento me metí profundamente en Ruby cuando usaba Rails como principal herramienta. Sin embargo, Ruby probablemente es el lenguaje que menos me gusta. La mayoría de las características que hacen único a Ruby más bien me empujan a buscar diversión funcional en F#, a usar C++ cuando quiero sentir aventura, o a usar Scheme/Racket cuando quiero un lenguaje dinámico. Me pregunto si existe una definición cuantitativa generalmente aceptada sobre la expresividad de un lenguaje de programación. Aquí el autor parece equiparar expresividad con cercanía al lenguaje natural. Según mi experiencia, el código Ruby es fácil de escribir, pero difícil de seguir si no estás familiarizado con la base de código y sus modismos. Mucha de la información necesaria para entenderlo se transmite mediante contexto implícito.

  • Expresan un fuerte rechazo hacia Ruby, aunque aclaran que hoy es su lenguaje principal

    Odio Ruby con pasión, pero actualmente es el lenguaje que más uso. El problema no es tanto Ruby en sí como lenguaje razonable, sino los patrones comunes dentro de su ecosistema. Se señalan como problemas el uso de herencia para compartir código, la abundancia de estado global mutable y el abuso de la metaprogramación. Estos problemas no son algo que el lenguaje imponga, sino convenciones que la comunidad rara vez evita.

  • Se quejan de la dificultad de mantener Ruby y tratan de cambiar a otro lenguaje

    Siento que mantener Ruby es una pesadilla y estoy intentando escapar de ese infierno. Me gusta Ruby para proyectos personales, pero cuando trabajas con otras personas todo se vuelve un desastre mucho más rápido, y con eso desaparece la ventaja de Ruby de “no estorbarte en tu camino”. Se señala como problema que destruye la capacidad de razonamiento local dentro del código.

  • Comparten su experiencia al pasar de Ruby a Rust y expresan cariño por Ruby

    Después de usar Ruby durante 10 años, hace 4 años me pasé a Rust y no pienso mirar atrás. Aun así, le tengo cariño a Ruby. Siento que ya no puedo trabajar sin un buen sistema de tipos y creo que ya me acostumbré a Rust. Pero sí extraño las potentes capacidades de reflexión de Ruby.

  • Señalan la ironía de que los lenguajes más divertidos suelen tener un mercado laboral pequeño

    Una de las ironías de la programación es que los lenguajes más divertidos suelen tener también el mercado laboral más pequeño. Si pudiera programar en Elixir todo el día, mi trabajo como programador sería mucho mejor, pero casi no hay empleos de Elixir en comparación con TypeScript, Python o Java. Ruby era una excepción a esto, pero ahora casi no hay gente construyendo sobre Rails, y en cambio hay muchas personas construyendo sobre React y NextJS. Esto habla del mercado de aplicaciones full stack en general; para quienes usan Rust en sistemas o Python en datos/IA, la situación puede ser distinta.

  • Destacan el impacto del ecosistema y la cultura de Ruby en la programación

    Se habla mucho del lenguaje en sí, pero el ecosistema de Ruby y la cultura que fomenta son la razón por la que sigo quedándome en Ruby. El artículo también señala ese punto. Todavía no he visto una comunidad de programación tan alentadora y amable como la comunidad que existe alrededor de Ruby.

  • Reaccionan positivamente a que el autor disfrute Ruby y comparten su experiencia personal

    Me alegra que el autor disfrute Ruby y, como alguien con experiencia limitada en Ruby, estas citas me llamaron la atención. Se enfatiza que un lenguaje debe ser agradable de usar, que el código Ruby bien escrito puede leerse como lenguaje natural y lo poderoso que es sentirte reconocido por el lenguaje en el que programas. También coincido con lo que dijo Kent Beck: que el diseño de software es una práctica de relaciones humanas. Todos los componentes que respaldan un lenguaje —el compilador, la documentación, la biblioteca estándar, las librerías de terceros, el gestor de paquetes, el framework, el formateador, el profiler, etc.— son especialmente importantes.