Earlier quoted context omitted.
Would a developer looking a Zig/C++/Rust really also consider Crystal? I figured Crystal was for Ruby developers who want a good static type system.
I'd consider it more seriously now it's 1.0. You've basically got an ecosystem of Ruby-likes: - Ruby itself - Crystal - Elixir I'm massively keen on Zig, too, but it still feels like early days for the language itself. The C-interop is utterly astounding but I don't want to write Zig as syntax-sugar around C libraries.
Crystal 1.0 – What to expect
271–280 of 351 posts
Re: Crystal 1.0 – What to expect
#272Re: Crystal 1.0 – What to expect
#273It feels like Crystal it took all the best things from the languages I love, and put them together into one, beautiful language: - Elegance of Ruby - Statically type checked + global type inference - No Nulls - Go-like concurrency - Easy C ffi - High performance I really hope the Crystal succeeds and the language goes mainstream - this release is a huge step forward towards that. Congrats to the Crystal team for reac…
Re: Crystal 1.0 – What to expect
#274Earlier quoted context omitted.
That is like a hack. You are basically dumping a JIT image to file. That means all sorts of caveats apply such as be real careful about how you use reflection. Also there is no ABI so you cannot use anything like a native DLL. Native compilation while possible is clearly second class on the JVM platform. For Crystal it is first class.
Crystal is also not great for dlls or .so files as the event loop and gc probably wouldn't work well in that scenario.
Re: Crystal 1.0 – What to expect
#275Crystal is a beautiful language, however compiling times is something that put off most people who try it. How comes and they don't allow you to optionally provide types in your function/class signatures so you can help the compiler and speed up the whole process ? I mean global type inference is nice, but giving the option to specify types and speeding up the compiling time would be even more nice.
They allow specifically that though?
https://crystal-lang.org/reference/syntax_and_semantics/type...
Re: Crystal 1.0 – What to expect
#276Earlier quoted context omitted.
I guess it's an obligate-GC language. It would help if the front page were to say.
In practice, it is. You can turn GC off with a compiler flag, but then the standard library will leak all over the place, so it's probably a bad idea unless you're doing something very specialized.
Re: Crystal 1.0 – What to expect
#277Earlier quoted context omitted.
multithreading is working with the -Dpreview_mt option, it's decent if the units of work are large enough at least 0,01ms, otherwise the channel overhead will dominate. I find the API nice and easy specially for those familiar with CSP or go. Performance should improve once it gets the necessary love for it to be released to be on by default. Windows requires a lot of boring work, especially considering most of the c…
Half of all devs work on Windows platforms, so IMHO, if the team wants the kind of traction needed to reach for Crystal to reach a self-sustaining level, this should be a high-priority task. Note that all of Crystal's competitors give first-class support to Windows: go, zig, nim, ruby, etc. I say this as a suggestion, rather than a critique. Actually, as a hopeful suggestion. :-)
There's sense in just releasing for nix platforms if you have them ready to go, especially when you expect your initial target market to be deploying on nix systems.
Re: Crystal 1.0 – What to expect
#278Congrats on the release! The biggest factor drawing me to experiment a little with Crystal is that it is one of very few languages providing what otherwise has been pretty unique to Go: Lightweight threads+Channels+M:N concurrency (automatically multiplexing the lightweight threads onto a smaller number of OS threads). Also it does it with a very readable and clean syntax. Wrote a little about it, with code compariso…
The biggest factor drawing me to experiment a little with Crystal is that it is one of very few languages providing what otherwise has been pretty unique to Go: Lightweight threads+Channels+M:N concurrency This has no value proposition versus Kotlin coroutines and if it doesn't have first class support for structured concurrency, cancelation and most importantly reactive streams then this language is sub-par.
Re: Crystal 1.0 – What to expect
#279Can the crystal compiler create shared libraries, which I can access from other languages, e.g., python, R etc.?
Unfortunately no, it need some runtime (libevent, boehm gc) which is hard (impossible?) to integrate inside a shared lib.
Re: Crystal 1.0 – What to expect
#280I couldn't find this with a casual Google search, but will they be developing a formal language spec? Is love to see a Graal, JVM, or LLVM target for Crystal eventually!