Why to learn Crystal?

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 :frowning:

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. :slight_smile: