Indeed. I don't know much about this language, but the x86-64 OS written from scratch in crystal was one of the most impressive things I've seen during my time on HN [1]. In the thread about it [2], it was mentioned that the author was in high school.
That is unlikely to happen. Crystal has no corporate backing, it has no distinguishing features (in comparison to other, more popular languages), and most of all, it has no Rails.
Crystal has Lucky and Amber — both are reasonable for small fun projects. They're still missing what makes Rails Rails, though. Rails is much more than MVC. It's the Ruby ecosystem and the tooling that really allow Rails to become what it is, and that is hyper-productive. You don't spend time reinventing the wheel, you spend time working on domain-specific problems.
Sure, chicken vs egg, but while everyone is hopping from language to language, framework to framework, packaging system to packaging system because they saw it on Reddit or HN, I'll be over here shipping Ruby and contributing to the Crystal ecosystem in my spare time.
Do you mean rails as in the framework people with choose crystal for? (It doesn't) Or a rails-like web framework in general? (it has https://amberframework.org/ )
The release notes of Crystal 0.34 say "Having as much as possible portable code is part of the goal of the std-lib. One of the areas that were in need of polishing was how Errno and WinError were handled. The Errno and WinError exceptions are now gone, and were replaced by a new hierarchy of exceptions."
So I have modified
rescue ex: Errno
raise ErrorException.new(ex.message, NONE) if ex.errno == Errno::EPIPE
to
rescue ex: IO::Error
raise ErrorException.new(ex.message, NONE) if ex.os_error == Errno::EPIPE
Links don't imply that something shouldn't have been posted! They are just for curious readers to explore further. It's a way of sharing the riches of HN's archives.
(Separately, it's true that HN normally shouldn't have a new front page thread for each incremental release of a project, because there are many more of those than there are slots on the front page. Users tend to upvote them reflexively as a sort of referendum on projects they like, and the threads is almost always a discussion of the project in general rather than of the specifics of a release. Those do get repetitive. But I wasn't implying anything about that with links.)
You could use the first paragraph of this comment in every post with links. For me that's explicit enough, even if a bit long to type. But you could save it somewhere and paste in the comment.
Today I found out Crystal was a language that I didn't know existed until now, however one thing I couldn't work out about Crystal was a simple outline of its intended reason for existence/purpose?
i.e. You should consider Crystal instead of Ruby/lang-other for xxx because yyyy... or is this someone attempting to write a new language simply because they want to have what they think is 'the right thing' (which is perfectly acceptable, but not clear if this is the only reason).
I guessed it was inspired by Ruby from the syntax, but aside from not having too many variations of do..while, I couldn't easily discern what its intended reason for being is.
(I kind of got the comment about the best thing about it is there is no Rails for Crystal).
I did poke around quite a bit and it's not in the FAQ, so it probably should be.
I worked on a simple cli-tool using crystal over the last few weeks, and it has been pretty great. The standard-library is nifty, and there are shards for common problems (not everything though).
Waiting eagerly for a way to cross-compile to Windows so I can build/release binaries the way golang projects do.
Like in Go, you don't need a framework. the http module has all that you need.
I personally am working on a barebones api server without using any libraries or frameworks.
Comments
If only all the attention and love for Golang goes for Crystal. I will keep dreaming... :)
Indeed. I don't know much about this language, but the x86-64 OS written from scratch in crystal was one of the most impressive things I've seen during my time on HN [1]. In the thread about it [2], it was mentioned that the author was in high school.
[1] https://github.com/ffwff/lilith
[2] https://news.ycombinator.com/item?id=21860713
All Crystal needs, is 1 major company to support it. :(
I hope someday Crystal will supplant Java.
That is unlikely to happen. Crystal has no corporate backing, it has no distinguishing features (in comparison to other, more popular languages), and most of all, it has no Rails.
Crystal has Lucky and Amber — both are reasonable for small fun projects. They're still missing what makes Rails Rails, though. Rails is much more than MVC. It's the Ruby ecosystem and the tooling that really allow Rails to become what it is, and that is hyper-productive. You don't spend time reinventing the wheel, you spend time working on domain-specific problems.
Sure, chicken vs egg, but while everyone is hopping from language to language, framework to framework, packaging system to packaging system because they saw it on Reddit or HN, I'll be over here shipping Ruby and contributing to the Crystal ecosystem in my spare time.
Do you mean rails as in the framework people with choose crystal for? (It doesn't) Or a rails-like web framework in general? (it has https://amberframework.org/ )
It would be nice if we could use the C FFI to allow seamless interaction between MRI ruby and Crystal.
Allowing us to profile and easily port parts of an existing rails or ruby app would be really useful.
Does Java have a Rails?
It has Play.
https://www.playframework.com/
Why Play instead of spring?
Is that closer to a "Rails for Java" than Play is?
Crystal is comparable to Java in performance. I am impressed with it. See https://github.com/nukata/little-scheme#performance and https://github.com/nukata/little-scheme#performance-on-the-t...
I have just updated my Scheme interpreter in Crystal (https://github.com/nukata/little-scheme-in-crystal), which I used on the above benchmark test, along to Crystal 0.34.
The release notes of Crystal 0.34 say "Having as much as possible portable code is part of the goal of the std-lib. One of the areas that were in need of polishing was how Errno and WinError were handled. The Errno and WinError exceptions are now gone, and were replaced by a new hierarchy of exceptions." So I have modified
to though it is still dependent on POSIX. >_<Where is there use-case overlap with the JVM ecosystem and crystal?
I suppose the obvious answer is web back-ends, though that is true of practically every language.
I guess AOT compiled jRubby/TruffleRuby.
First they need to support Windows as well as Java 1.0 did back in 1996, then they have 25 years to catch up.
Plus the JVMs already have jRubby and TruffleRuby, including AOT support.
Recent and related: https://news.ycombinator.com/item?id=22725829
https://news.ycombinator.com/item?id=22331005
Other threads in the past year:
https://news.ycombinator.com/item?id=21883882
https://news.ycombinator.com/item?id=21860713
https://news.ycombinator.com/item?id=21053366
https://news.ycombinator.com/item?id=20897029
https://news.ycombinator.com/item?id=20110253 (small)
https://news.ycombinator.com/item?id=19694006
Other large threads can be found among various crystals:
https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
I'm sorry but this is a new post (posted yesterday) which appears to be specifically about 0.34, which should be worth discussing about the changelog?
Links don't imply that something shouldn't have been posted! They are just for curious readers to explore further. It's a way of sharing the riches of HN's archives.
Sometimes I spell this out explicitly: https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que.... But it gets tedious to keep repeating. I'm still looking for a brief, unambiguous wording that doesn't lead to misunderstanding.
(Separately, it's true that HN normally shouldn't have a new front page thread for each incremental release of a project, because there are many more of those than there are slots on the front page. Users tend to upvote them reflexively as a sort of referendum on projects they like, and the threads is almost always a discussion of the project in general rather than of the specifics of a release. Those do get repetitive. But I wasn't implying anything about that with links.)
You could use the first paragraph of this comment in every post with links. For me that's explicit enough, even if a bit long to type. But you could save it somewhere and paste in the comment.
Alas, that would be too pasty. The hivemind breaks out in hives with that much repetition.
Today I found out Crystal was a language that I didn't know existed until now, however one thing I couldn't work out about Crystal was a simple outline of its intended reason for existence/purpose?
i.e. You should consider Crystal instead of Ruby/lang-other for xxx because yyyy... or is this someone attempting to write a new language simply because they want to have what they think is 'the right thing' (which is perfectly acceptable, but not clear if this is the only reason).
I guessed it was inspired by Ruby from the syntax, but aside from not having too many variations of do..while, I couldn't easily discern what its intended reason for being is.
(I kind of got the comment about the best thing about it is there is no Rails for Crystal).
I did poke around quite a bit and it's not in the FAQ, so it probably should be.
Types and speed. Also native.
How is this an innovation? Kotlin and C# are probably faster on average. Also Kotlin can be native
I worked on a simple cli-tool using crystal over the last few weeks, and it has been pretty great. The standard-library is nifty, and there are shards for common problems (not everything though).
Waiting eagerly for a way to cross-compile to Windows so I can build/release binaries the way golang projects do.
Apart from Lucky [1], what other Web Framework are there for Crystal?
[1] https://luckyframework.org
There's https://amberframework.org/
https://kemalcr.com/
Like in Go, you don't need a framework. the http module has all that you need. I personally am working on a barebones api server without using any libraries or frameworks.