Alright the blog post is scheduled for the 25th. But I'd like to give some general answer to the question the thread has.
“How's Crystal coming along?”
It's pretty amazing actually. Being able to write a website quickly and host it on Heroku is quite rewarding! Most everything is lacking in documentation though so you may end up re-inventing the wheel a few times.
For example there isn't anything in the Kemal documentation on how to get the parameters from a posted form from a hash like object. When I took that data and wrote it right into my webpages view it display as an unparsed string so I thought that's what it was. So I wrote Keyer to parse it. And when I proposed adding it into Kemal I was told, why not use
env.params.query … which I then inspectect with the
typeof macro and found I had wasted my time.
It's surprising the kind of mature projects that exist in it. A fully compatible Sidekiq background job tool exists and can interact with Ruby's Sidekiq jobs without any issues. There' a DB tool that I like that I've been helping out on called Topaz which feels a lot like working with Rails' models. Validations aren't part of it yet but another person has written an excellent Rails-like validations shard called Accord.
I'm currently writing an API using Crystal and I'll be having CoffeeScript on the front end… fun fun!
Now the language isn't mature. I've run into a few keywords/macros such as
nil? when translating Arel from Ruby to Crystal. And
select is for threading in Crystal which hasn't been finished yet https://github.com/crystal-lang/crystal/pull/3130 . Seeing how Frost went into abandonware I'd say that it would be wise to avoid parts of the language that'll make big changes for now.
I've translated several of my Ruby gems over to Crystal. See:
Although on the latter I found strings immutable so I had to remove half of the methods.
So I'm very happy with where Crystal has matured to! But there are still pot-holes in the road so look-out!
Oh! I'd be remiss if I didn't mention Minitest!