4 ms·
Was wondering how many companies actually use Crystal in production. I was interested in Crystal but the lack of apps using it in production and proof of conce
by westoque 10y ago
Was wondering how many companies actually use Crystal in production.
I was interested in Crystal but the lack of apps using it in production and proof of concept on the field is making me doubt its usefulness.
- sdogruyol 10y agoI'm the author of Kemal(kemalcr.com), a simple, fast and modern web framework for Crystal. We've been using Crystal in production(at Protel) for more than 6 months for some heavy load APIs (100-200 req/s). We've replaced our Rails API with 64 unicorns to just 1 Kemal process and it's not even breaking any sweat while consuming nearly 100x less resource and 30x less CPU. You can ask me about our experience.
- coltonv 10y agoMy biggest concern if i were to try to use Crystal in production would be the lack of "googleability". I'm guessing your team is very familiar with the language, so it's not as much of a problem that you can't Google a problem when it happens. Do you feel that this is a major roadblock for people new to crystal, or are the majority of errors very intuitive? the second thing is that according to the site crystal is in alpha and making breaking changes sometimes. how often do you have to refactor after an update and how difficult has it been to spot and fix that something is broken by an upgrade? Very interested in using it myself but can't bring myself to commit an app to it.
- sdogruyol 10y agoThese are really nice questions / concerns. - Firstly, we are a Ruby shop and most of the time the errors are pretty self descriptive that we can easily solve. Also the IRC/Gitter room is full of helpful people that you can get instant feedback about any issue (even a compiler bug). Note that we're not afraid of writing code :) - I've updated our application once in the last 6 months. It's only a minor change for adding type annotations which took like 10 minutes. - Actually i think that Crystal is already in beta quality (for us). Calling it Alpha is really an understatement.
- coltonv 10y agoThanks for answering! I feel like Crystal is one of the best projects out there but it's not getting much attention. What do you think it will take to get people to start writing projects and contributing? IMO the number one thing will be to start getting as many articles like this out as possible, and go beyond that. TodoMVC/Yelp Clone tutorials would go a LONG way I think, especially since a lot of people will just fork those projects to mess around in them.
- ricardobeat 10y agoChiming in re. "googleability", go has the same problem (despite coming from Google :D). What you do is always search for 'crystal lang xxx'. It will get better as adoption increases.
- RX14 10y agoJust to add on that breaking changes are always compile errors, with a nice description of what you need to do to fix it, which makes the breaking changes a lot more manageable.
- coltonv 10y agoThat's good! It's always frustrating trying to find a breaking change in an interpreted language, so I can imagine it would be much easier in Crystal.
- glasz 10y agogoogleability: imagine kemal was called meth.
- damagednoob 10y ago1. Has the lack of multithreading been a problem in any way? 2. Do you do the standard deployment of putting nginx/haproxy in front of a load of processes? 3. Have you been able reuse any Ruby code (including gems) or do they have to be Crystal specific.
- sdogruyol 10y ago1. It hasn't been a problem for us. 2. We put Nginx in front of Kemal and it's working like a charm :) 3. Well we haven't tried but it's pretty simple with sidekiq.cr https://github.com/mperham/sidekiq.cr https://github.com/mperham/sidekiq.cr
- masukomi 10y ago1. most ruby code can't be used in crystal, but is trivial to port. 2. Crystal doesn't use gems (because of 1). it uses shards. Lack of multithreading is an issue for _ME_ because i'm working on an app that could really benefit from it. Just because Ruby is used almost exclusively for webapps doesn't mean Crystal is. Also, the "load another copy of the entire app into memory" that Rails people use is a really crappy way of doing "multithreading" .
- westoque 10y ago@sdogruyol Sure, thanks. Would love to hear that. A blog post would probably be more appropriate since it will have a wider audience and will be good for Crystal and its community.
- spriggan3 10y agoI don't think Crystal is production ready, the language is still evolving and not stable at all, from minor version to the next.