I really like Crystal, but I am too dependent on LSPs and such for productivity, and the Crystal LSP leaves a lot to be desired, even though it is fantastic work for what it is.
Can't rely on AI either, as it constantly confuses it with Ruby.
I did do a few backend/server code challenges and advent code in Crystal. It worked really well and was very powerful.
I would love to write my MMO server in it, but again, tooling is still a sore spot for me.
> I really like Crystal, but I am too dependent on LSPs and such for productivity, and the Crystal LSP leaves a lot to be desired, even though it is fantastic work for what it is. Can't rely on AI either, as it constantly confuses it with Ruby.
My initial thoughts when reading this statement were pretty negative, but thinking about it, you're onto something. If the language doesn't function well with today and tomorrow's prevalent and emerging development trends, it's probably not going to see truly significant momentum.
Nonetheless, I still find Crystal remarkable and elegant, with a great standard library.
Oh, I 100% agree with you. I love the stdlib and the language. Doing the few things I did in Crystal were so pleasant and a joy to work with. Maybe I'm too reliant on the crutches that I am uses to. It's not that I can't work without them, I just feel like why waste the time.
I will say, as a primarily Go dev, I have been really spoiled by the Go toolset and features.
>Can't rely on AI either, as it constantly confuses it with Ruby.
I'm currently using github copilot with claude 3.7, mostly for auto complete, work pretty well although sometimes it does return ruby variant of the code (it call the ruby methods that not existing in crystal)
At the bottom you will see the page rendered in 2 - 3ms or sometimes 800µs with Crystal. The page is quite literally bottlenecked by network latency.
Once Crystal Stablise, with Windows Support done and other bits and pieces. I hope the tooling and compiler speed gets more attention. It might became the perfect tools for most things.
I love this language but have never found a production use case for it, versus just using something less obscure like Go. It's the Ruby we wish we had in the 10s.
If you write some script that run for 30 minutes or so then Crystal is a great choice.
before using crystal I mostly used Ruby for scripting, but there were a lot of problems
- the program often crashes after running a while due to typo/nil handling, causing a lot of time wasting
- it was too slow for my case, which involving with dealing with large amount of data
- doing things in parallel (fetching websites, parsing multiple files) is a lot of work, you need to use external gems for the task, and it is not always the way you want it to do
there is a lot of works spent on crystal to make it enjoyable, you almost never need external libraries to do stuffs. the standard library is big and helpful.
I write a lot of Go. It’s great. CGo is also good. But Crystal is even more easily interoperable with C libs and has a slimmer runtime. It’s also even faster in my real world testing. Down sides vs Go are compiler speed and general ecosystem is much smaller. But I’ve written several things in Crystal in prod and it has been very good.
I love Crystal but I’m surprised at how nothing the WASM story is this late in the game. I’d love to run Crystal directly in the browser, especially given how web-focused they seem to be.
Also, windows support has been more or less “done” for a couple of years now, is the “preview” tag still necessary?
> gc latency
I don't know, never care much about it, haven't cause any issue the 6 years I run my web services using Crystal.
> long running programs
depends, I write several services that running 24/7. Some runs fine for months, some just refuses to response after a few day. Too busy to track for the cause so I just automatically reset the affected services at 4AM.
Can't rely on AI either, as it constantly confuses it with Ruby.
I did do a few backend/server code challenges and advent code in Crystal. It worked really well and was very powerful.
I would love to write my MMO server in it, but again, tooling is still a sore spot for me.
My initial thoughts when reading this statement were pretty negative, but thinking about it, you're onto something. If the language doesn't function well with today and tomorrow's prevalent and emerging development trends, it's probably not going to see truly significant momentum.
Nonetheless, I still find Crystal remarkable and elegant, with a great standard library.
I will say, as a primarily Go dev, I have been really spoiled by the Go toolset and features.
https://forum.crystal-lang.org/t/why-isnt-there-an-lsp-for-c...
I'm currently using github copilot with claude 3.7, mostly for auto complete, work pretty well although sometimes it does return ruby variant of the code (it call the ruby methods that not existing in crystal)
but for my use case, copilot works pretty well.
At the bottom you will see the page rendered in 2 - 3ms or sometimes 800µs with Crystal. The page is quite literally bottlenecked by network latency.
Once Crystal Stablise, with Windows Support done and other bits and pieces. I hope the tooling and compiler speed gets more attention. It might became the perfect tools for most things.
(yes I know erlang/elixir exists, but Crystal seems bent on being CPU-fast too!)
before using crystal I mostly used Ruby for scripting, but there were a lot of problems - the program often crashes after running a while due to typo/nil handling, causing a lot of time wasting - it was too slow for my case, which involving with dealing with large amount of data - doing things in parallel (fetching websites, parsing multiple files) is a lot of work, you need to use external gems for the task, and it is not always the way you want it to do
there is a lot of works spent on crystal to make it enjoyable, you almost never need external libraries to do stuffs. the standard library is big and helpful.
Also, windows support has been more or less “done” for a couple of years now, is the “preview” tag still necessary?
* How is the GC latency, considering that Crystal uses the Boehm GC?
* Have you encountered any problems in long running programs due to the conservative nature of Boehm?
> long running programs depends, I write several services that running 24/7. Some runs fine for months, some just refuses to response after a few day. Too busy to track for the cause so I just automatically reset the affected services at 4AM.
Deleted Comment