NOTE: This thread was written on the phone by a non-native English user, with love for Crystal.
I consider this is a discuss we have to faceing, but i found no one discuss on this.
All following content is just a guess, no evdience, but, i hope this can be the start point.
All begin from i am watching a video from Manas Technology Solution in Youtube, name: Crystal Language Hangout, recorded about six years ago.
three core-member answer question about community.
The first discussed question is: supported on windows.
AS said in video, this is a big challenge:
- none of core member use windows daily
- UTF-16 support instead of UTF-8
- IO issue
…
And, for now, six years past, i even couldn’t know some of core-member what it looks like because years past, changes in their appearances.
we are still blocked on windows support, instead of, many many (probably very useful) feature still not implemented.
following is some i consider is useful
- Incremental compilation, as said in this video, we hope compile code quickly, don’t want waiting for 5 seconds to compile and run even on a very small kemal project.
- barely LSP support, i use several static type language, Dart, Rust, Go, Haskell,
both of them have good support on LSP. e.g. code completion, jump to definition, auto-format, auto import, show document,
rename refactor, code action, and more…
but, for crystal, i use crystllize, bascially onlyformat before save
feature is useful, even, this feature is
not work on macro. see this - multi-thread support in fiber.
- REPL support, like irb/pry in ruby.
- compile to static in libc based linux with musl, we have to use alpine.
- WASM
- A normalized center package manager. as gem for ruby, cargo for Rust.
- After a quick search and experience, except
lucky
, none of web-framework is both mature and live maintain. most of them just like toy, kemal is maintain by crystal core maintainer, but, it exists bugs like this was fixed recent days, that prove one thing, only a few people use it.
…
Okay, back to this thread topic, why people leaving crystal?
my answer is WINDOW SUPPORT, as said early, this is just a guess, because i am a newcomer, don’t know history.
core members probably spent too many times for support window, delayed others more import features, it delay the
release of crystal 1.0 for several years, which missed the golden period, no better LSP support, make more and more people
choice to use rust, even golang, a language designed for 15 years ago’s programmer, except, awesome concurrent CSP support.
If this is true, we have to consider if worth it. in fact, i search window after:2019-01-01 in:title
in our forum,
for the threads which title include “windows”, i only get 15 results, do we do some serious investigation or survey
before we spend times on windows ? those people hope add windows support, if still leave on community?