Re:Crystal 0.25.1 released
by pmontra on Friday June 29, 2018 @01:12PM
(#17425881)
The syntax similarities between Elixir and Ruby stop as soon as one moves on from reading short blog post to writing real code. They are extremely different languages. Knowing Ruby helps only to remember the names of some standard library modules and functions, which were designed on purpose to match the name of the corresponding Ruby modules and methods, but not all of them. A vanilla example:
which by the way highlights the extra verbosity of Elixir compared to Ruby. It's less verbose on more complex examples, mainly because of pattern matching, but the proof would be too long for this reply.
[ Parent
| on HN ]
Re:Crystal 0.25.1 released
by andyfleming on Friday June 29, 2018 @02:35PM
(#17426569)
Kotlin syntax:
"1 2 3".split(' ').map { it.toInt() }
Your example doesn't do the same thing.
The same as grandparent, in crystal:
"1 2 3".split.map &.to_i.*(2)I believe that Ruby also has that & shortcut (or similar) but it's totally unreadable. I never used it and I don't even want to check the exact syntax. Is it the only way it works in Crystal?
It being readable is a matter of getting used to it. I find it more readable than the block version as there is less syntactic boilerplate. YMMV.
Ruby has a similar version using colon instead of dot but that version isn't chainable and doesn't take arguments so it can't do the *2.
And no, you can write out the full block just as you did in the Ruby version.
Re:Crystal 0.25.1 released
by andyfleming on Friday June 29, 2018 @04:56PM
(#17427809)
Whoops, you're right.
"1 2 3".split(' ').map { it.toInt() * 2 }
Re:Crystal 0.25.1 released
by abritinthebay on Saturday June 30, 2018 @02:34AM
(#17429765)
I hear this a lot but I keep seeing more and more Ruby devs moving to it trivially and as someone who reads-not-writes Ruby code I find it just as trivial to grok it.
So I think the differences are there but they’re being overstated from a transfer of skills standpoint.