top | item 26546379

(no title)

rienko | 5 years ago

This comes from my experience building a prototype cli application, the language itself fells very productive, and the stdlib is robust fast and useful.

Compiling isn't fast. By the language design it won't ever be possible to be in the same ballpark as golang. It's common for us that our 5k lines app, take >1m to build in release mode as we added more and more dependencies for integrations with different nosql databases (elastic, rocksdb etc).

Using LLVM as backend is great for getting top notch performance, but to generate multiple IR methods for each type signature consumes a lot of time, especially when doing optimisation in release mode builds. I guess it's a similar problem that cranelift is trying to fix in Rust.

Open classes makes it hard to cache compilation results from dependencies / libraries.

discuss

order

devmunchies|5 years ago

> It's common for us that our 5k lines app, take >1m to build in release mode

Yes, for this reason I think crystal could be one of the best languages for microservices or faas.