Hacker News new | past | comments | ask | show | jobs | submit login

I came to the same conclusion as the author, though not quite in the same way. Everything I needed to know about what Ruby was was given to me when I attempted to learn and love Crystal. Similar syntax does not make a similar language. Smalltalk is far closer to Ruby than Crystal ever could be.

What makes Ruby so lovable is, in a few words, the pure object orientation. This is the source of all it's flexibility. Any concept can be created and tersely described. It's almost as semantically flexible as Lisp and ultimately friendlier.

You'll never get these benefits in a language that looks like Ruby. It's not the syntax at all, it's the semantics, and you can't get Ruby semantics without actually being Ruby.




> [ruby] is almost as semantically flexible as Lisp and ultimately friendlier

Elixir for the most part _is_ a Lisp, and inherits almost all of Lisp's semantic flexibility also

I write Elixir full time now after writing Ruby for several years. At first I struggled getting out of the ruby meta programming mindset. After reading some advanced lisp books, the concepts of quote/unquote began to click and now I feel like my ability to meta-program in Elixir is much stronger than in Ruby.


Not to take away from the sheer amaze-balls power that lisp offers, you can get Ruby superpowers just from one book, Metaprogramming Ruby 2, which is sadly out of print.

Here's a 2005 article comparing Ruby favorably to Lisp: http://www.randomhacks.net/2005/12/03/why-ruby-is-an-accepta...

I learned Lisp, went through the whole of HtDP, tried to get into it, but Ruby's friendliness is really special and unique.


    [1,2,3].map {|n| n*n }.reject {|n| n%3==1 }

    [1,2,3] |> Enum.map(&(&1*&1)) |> Enum.reject(&(rem(&1,3)==1))
Still somewhat familiar heh




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: