Crystal is a Ruby inspired compiled language, allowing it to run blazingly fast with a very low memory footprint. It uses LLVM for emitting native code, thus making use of all the optimisations built into the toolchain.<p>I've been using Crystal for more than 2 years have some projects in production. Can't wait for 1.0 :)
I have dedicated this very weekend to digging into Crystal. Uncanny coincidence seeing it popping up here, today of all days.<p>It is a tremendously nice looking language - and I say this as a pythonesque guy who never wrote one line of Ruby. The feeling I get from community and projects is that it's a very up-and-coming thing, about to take off in a major way. There is just too much enthusiasm and too many things done right for Crystal not to earn some solid share within a very foreseeable future.
Crystal reminded me of Mirah [1], a Ruby-like programming language which is statically typed but relies heavily on type inference in order to compile efficiently to JVM bytecode, while retaining the appearance of being a dynamically typed language.<p>(I've got no real point here other than to say I had a strong feeling of deja vu while reading about Crystal.)<p>[1] <a href="https://en.wikipedia.org/wiki/Mirah_(programming_language)" rel="nofollow">https://en.wikipedia.org/wiki/Mirah_(programming_language)</a>
Crystal is one of the most exciting new languages out there. I have been using it for my one off tasks at Ola and it works pretty well. It is huge plus point that you have safety harness of statically typed languages and speed comparable to java and scala(unscientific benchmark here <a href="https://github.com/kostya/benchmarks" rel="nofollow">https://github.com/kostya/benchmarks</a>)
> Features that we take for granted in Ruby or other languages, are not available in Go. Examples include operator overloading or keyword extensibility, as well as true OOP.<p>These are literally the top reasons why I love Go. To each their own?
Crystal is a super cool project and doing websockets with Kemal (Crystals Sinatra equivalent) was one of the easiest ways of hosting websockets I've encountered so far.<p>That said, I'm eagerly waiting for true paralellism support since the use case we have in mind would greatly benefit from that. Some of the testing tools are also not quite as polished as Rspec (yet).
I've been using Crystal for only a few months, but impressed with its speed and low memory footprint. Starting to build some small services with it now, but using Kemal or the Amber framework, I can see some medium sized projects coming out of it soon.<p>Was a cinch to swap over to it from Ruby. It is a little fussier with type definitions, but I guess that is to be understandable with a compiled system.<p>The third party ecosystem is still a little thin on the ground, or immature, and I hope it will grow. The Crystal community has also been really friendly and responsive. The couple of questions I have asked on Reddit or SO have been answered quickly and with lots of useful info.
Here is another (sort of) real world app I wrote using Crystal and Kemal - a real time race telemetry display app for an F1 racing game [Blog post link] - <a href="http://devan.blaze.com.au/blog/2017/10/28/racing-along-building-a-telemetry-system-using-crystal-rethinkdb" rel="nofollow">http://devan.blaze.com.au/blog/2017/10/28/racing-along-build...</a>
> With Crystal, data scientists could have the ease-of-use of Python/Ruby combined with the performance of C.<p>Big if true.<p>Are there any benchmarks to back up this claim? There is some mention of experiments, but I'm not seeing any numbers or code.
Still waiting for v1; Ruby being my fav in terms of syntax, Crystal is really going to lift my experience in terms of syntax. This interview describes low traffic usage, what I am looking for is high traffic usage scenario and how crystal’s GC behaves running for longer periods of time.
"...OOP. Moving from Ruby to Go sometimes feels like ignoring 20 years of progress made in language design."<p>If OOP is so important to them, why did they bother including Elixir in their list of possibilities?<p>Also, given their problem domain, I'm doubtful of the fit of OOP (vs functional). But regarding Crystal, it is nice to see a potential performant Ruby replacement.
As mentioned in the article, library support in Crystal is growing but still far from complete. This GitHub repo might be a good place to start searching for useful shards: <a href="https://github.com/veelenga/awesome-crystal/blob/master/README.md" rel="nofollow">https://github.com/veelenga/awesome-crystal/blob/master/READ...</a>
Is there an easy way to get interop working between crystal and ruby? It would be nice to be able to simply require a crystal module that calls out to a compiled binary in the middle of my Ruby code.
Crystal looks interesting based on the comments in this thread by those using it. Anyone know why it seems to not be available for Windows (without WSL)? Does it have some POSIX dependencies?
That's a nice looking language. The inferred type system on an procedual / OO language with protection against nulls is something I had wished existed. I didn't know it had been done.
I'd be curious to know what the compile times are like? Does ever compile run recompile the entire code base or is there some kind of incremental compilation?
Crystal is currently no faster than Ruby when parsing a 19Mb Apache log file on OS X Sierra:<p><pre><code> fh = File.open("logs1.txt")
fh.each_line {|x| puts x if (/\b\w{15}\b/.match x) }
fh.close</code></pre>