1. easy interfacing with existing library ecosystem (like e.g. C interfaces)
2. nice testing framework
3. good IDE with good context help and refactor plugins
4. syntactic sugars and improvements over other languages
1. easy interfacing with existing library ecosystem (like e.g. C interfaces)
2. nice testing framework
3. good IDE with good context help and refactor plugins
4. syntactic sugars and improvements over other languages
I think Crystal shines with these focus points, except 3. which needs some love (but it's on our radar).
1. C bindings are nice and easy
2. The integrated spec framework builds on the syntax of rspec and is quite capable. Of course it's opinionated, and there are alternatives in the ecosystem.
3. There are some IDE plugins with basic features. Context awareness in source code is an intricate problem because it requires a lot of semantic analysis. So it needs a bit more effort to iron out.
4. Crystal feels like a dynamic language, yet it's fully statically typed. Features like type inference and union types make this possible.
LSP is pretty well supported in editors; it has emacs and vim and vscode support (a lot of other support as well). It makes it possible for any editor that supports LSP to be language aware (supporting the use of code completion, syntax highlighting, warning and error messages, and refactoring tools, per the Wikipedia article). All that is needed is for someone to implement a language server for the language. I used to use Perl a few years ago and even that had some (slightly buggy) LS implementations, which I found very helpful.
I haven’t used Crystal but I did use Ruby extensively for some time, and having read this and some other articles about Crystal, I’m guessing (2) is well taken care of because of the aim of matching rspec functionality, and (4) by means of being Ruby-influenced. Not sure about (1).
will probably never gain traction because of a missing ecosystem of libraries.