I’ve been following Crystal progress for a while now and I’ve noticed that recently lots of bugs were fixed and I can’t stress enough how important I think it is for Crystal right now.
When I evaluate risks of some new tech I usually look at how viable and stable a project is. A big part of that is an amount of bugs and an amount of time each bug remains open.
And look what @asterite alone did just recently! https://github.com/crystal-lang/crystal/issues?q=is%3Aclosed+milestone%3A0.29.0+label%3Akind%3Abug+author%3Aasterite
At the time of writing in 0.29.0 milestone he fixed 17 bugs (!!!) or almost 10% of currently open bugs.
And 18 in 0.28.0 https://github.com/crystal-lang/crystal/issues?utf8=✓&q=is%3Aclosed+milestone%3A0.28.0+label%3Akind%3Abug+author%3Aasterite+
There are more that 60 bugs closed in 0.28 and 0.29 combined by all contributors.
This is amazing! Thank you Ary and all others who are using their free time and fixing these bugs. You are awesome!
What you are doing is very important. It may be not as exciting as introducing some cool new feature or throwing away an old one to make Crystal even more clear, but it is something we need for moving towards a 1.0 release and attracting more people to Crystal.
Yes, the next release is mostly focused on bugs, and won’t add many new features. Features obviously sell better as “making progress” but bug fixing is also important and increases stability.
It’s great to see that this is appreciated =)
And you’re absolutely right. The contributions are awesome. Ary’s bug-fixing spree is really amazing! But also others have done a great job. Especially new people contributing to the compiler, is a very good thing!
Up until recently I thought Crystal was a lost case: sure, it works well and it makes people happy. But I had this thought that if there’s no way to modularize compilation and improve compile-time performance then it was pointless to continue.
However, every day I was surprised with people talking about Crystal, using it for new projects or replacing some services with it to take advantage of the language’s flexibility and great performance, and people simply enjoying using it and experimenting with it, despite the relatively slow compile times.
There’s also the thing that Ruby projects don’t cache pre-compilation results (like Python does) so the bigger your project the larger it will take to boot (for example this is more noticeable in Rails app), and people still use those technologies and find way around those issues.
So now I have the idea that, despite all existing problems, Crystal has a place in the world, and if it makes people happy and it serves a good purpose (happiness + reliability + efficiency) then we should definitely continue to improve it. That’s why I started fixing more and more bugs, to make it a rock solid tool that we can all enjoy.
While fixing bugs I also noticed that with this new optimistic perspective bugs seem easier to fix, specially if I take my time to really understand why some things are not working as expected.
Just wanted to mention that it is very possible that complaints about the compile time is over-represented.
I’m sure you know that humans are much more likely to complain than praise. Especially about a topic that really is a drawback of compiled languages ( and thus not something one usually praises).
But if you got every single person who uses Crystal opinion, I bet the number complaining about compile times are less than 1/3.
Sure, its not perfect. Neither is life. You always trade some things for others.
And in Crystals case I gladly trade compile time for everything else it has to offer.
I very much appreciate Crystal and your and others work on it.
I’m not saying it saved my life, but I found Crystal at a point in my professional life where I was seriously considering quitting my job and learning woodworking or something.
Instead I said fuck it and decided to throw away all old code of a project that needed fixing, rewrite it completely in Crystal.
This was kind of eye opening because suddenly my job was fun again.
I liked getting up in the morning, I enjoyed doing good work.
Basically the sun was shining again.
So, don’t undervalue your work and what it means to others.
I am fine with the compile time as well. Who cares if it takes longer sometimes, especially when you gain such a huge advantage in terms of speed.
However, I’m a bit worried. I’m afraid that a subset of this bugs can only effectively be fixed by @asterite (same for @waj).
@asterite big thank you! (as well as the other core members)
Definitely loving the work going into the language and think it will bigger than ruby soon enough.
I am so much more productive than I ever was using ruby (the type system is gold) and compile times seem fine to me
happiness + reliability + efficiency for the win!
As a Ruby/Crystal user (not developer) Crystal has become much more usable and fun to program with and is getting better. I also appreciate all the work going into it.
But I don’t see Crystal necessarily competing directly with Ruby, or any other dynamic language. There are inherently many benefits of dynamic languages that no compiled language can meet, and vice versa.
Ruby is getting faster (Ruby’s 3x3 project for Ruby 3) while Crystal is getting more features (libraries) and stable.
The key current missing feature (for me) for both is true parallel processing capability. Once that’s included you’ll really be able to give C/C++, Rust, Nim, etc a run for their money. Can’t wait!