Pros:
- Good syntax
- Powerful:
- monkey patching,
- split a big class into several files,
- spawn,
- big std
- typed + type inference
- easy type conversion
- Powerful macro (but not really documented)
- more…
- Fast
- Fully Object Oriented
- Auto generated API doc in HTML
Cons:
-
Small community and the constraints that go with it.
-
Lack of documentation and examples.
-
On VScode the auto-completion doesn’t really work on projects (medium/large). Sometimes it appears, then nothing, sometimes you have to wait a few seconds, most of the time nothing. Ditto for the go to def, etc
-
The compilation time is a time killer. I have a project that compiles (in dev mode) in about 20 seconds Reduce compilation time during development?
How to be productive with such a long compilation time, it’s dead
For the feedback, these defects make me give up.
I was very excited, it’s a language I love. I published lots of packages on Github. However the cons won. I’m migrating all my projects and those of the company where I work, the developers who work with me got tired of it before me (I was the last one hooked to Crystal in the team).
I will continue to use Crystal for small micro-services but no longer on projects that need to evolve regularly.
Crystal has a huge potential. All this can change, I’m sure that in a few years the DX will have been improved.