Hacker News new | ask | show | jobs
by lmm 3457 days ago
If I'm already using, say, OCaml, why would I want to switch to Crystal? (assuming that multicore takes the same amount of time to arrive in each). Whenever I've read about Crystal it sounds like a broadly sensible language, but it doesn't sound like it brings anything new to the table - in which case I'll favour the more mature language with the bigger library/tool ecosystem.
5 comments

Ruby itself never brought anything new to the table, just a really well polished collection of ideas taken from other languages. Crystal is mostly the same, marrying Ruby stdlib with go channels and compilation to native code.
Thanks for the summary; helpful as I've not checked out Crystal at all yet. Maybe they can steal it as their everywhere blurb.
Most of the popular languages over the last 20 years haven't brought anything new to the table, they've just had the right mix of pre-existing features (I use features in a very broad sense to mean any reason why a developer would use it) at the right time.
> it doesn't sound like it brings anything new to the table

A fast and typed Ruby, isn't it enough? ;)

It's not a Ruby. It doesn't even pretend to be a Ruby. I mean, to be a Ruby, this needs to work:

    a = Object.new
    list_of_modules.each { |mod| a.extend(mod) }
Ruby cannot be separated from its dynamism and to claim it can is misleading.
OCaml (well, actually Scala in my case, but I can understand why people wouldn't want to have to use the JVM) is already that, as far as I can see. What is it that Crystal offers that OCaml doesn't?
Doesn't share the fugly OCaml syntax.
Not a great way to convince OCaml fans to use something else.
All 3 of them? Jokes aside, they're probably aiming for Ruby fans (or fans of other dynamic languages).
I doubt Crystal's marketing goals are to convince OCaml fans...
A gentle learning curve for developers with a Ruby background.
Is this the same with Crystal, as shown in Ruby:

  irb(main):001:0> "".methods.size
  => 170

  irb(main):002:0> 0.methods.size
  => 133
If it is, I mean, I don't see it being so fast.
What on earth has the size of the list of methods to do with performance?
The number of methods in the standard library really doesn't impact performance in a compiled language since you can tree shake the stuff that isn't used. And even if you don't tree shake having lots of methods isn't really a noticable performance loss in compile to binary languages since you don't need to spin up a VM
I think tho might be easy. OCaml might have OO,but it is meant to be used as FP. The ecosystem isn't honestly that impressive and isn't winning over people from Ruby or Python and isn't going to catch on more than it already has. If Crystal catches even 1/4 of Ruby's base it will be huge. OCaml is hard to get into btw (big language). Crystal looks easy.
If you write a FOSS project, more people will help you if it's Scala or Crystal over Ocaml. My guess at a little over 1,000 stars for Ocaml but 7,000 for Crystal. There's that. ;)

For psychological reasons, things that build on what's familiar get increased adoption. Trend started with C syntax that I can tell.