Crystal in 2020

Using for production project, I would like to see incremental compilation because build time is basically what’s slow the most my pace (note: it’s a web project).

Also I would like to see a bit of investment in PR, because the world we live in is ruled by marketing and without any we are condemned to stay in the shadows :stuck_out_tongue:

And happy new year :champagne:

6 Likes

PR

I think PR is important, one thing we could do is make some more web boilerplates (either a clonable repo or working generator commands). Maybe I’ll make one this year.

  • Better support for VS code (auto-completion don’t work the half of time, no go to def, …).
  • Improve compilation speed.
  • More docs (mainly the shards), tuto and good practices. It’s not easy without going through Ruby.
  • Courage and fun for the Core team and the Crystallers who are doing crazy and amazing jobs!

Happy new year 2020 :wink:

2 Likes
  • Better documentation, mainly about OpenSSL/LibreSSL (I hope to have a support for it someday)
  • Some tutorials, to get started with real-life examples

I don’t ask for more, at least during a 1-year period of time.

But, I can add some things I want to do for the Crystal language this year:

  • I will promote it, mostly with people I know during coding sessions
  • I will help improve some API when I encounter some problems
  • I started a company that use Crystal as a back-end for a website
    • I will open-source part of it
    • I will put a word about the language on the website of the company, again, to promote it
10 Likes

Could it be just “optional” as it is now? Maybe you can add the compiler option “–enforce-method-types” to enforce types in method signatures when someone really want it for some project.

Sorry, that was my wish for a language that’s easier to implement but is less powerful than Crystal. I drop my newyear wishes. Now I just want more stabilization, features, etc.

6 Likes

Oh, We had a discussion about this long time ago check this out: https://github.com/crystal-lang/crystal/issues/4603

There is a rabbit hole down there :sweat_smile:

I would honestly appreciate faster compile times or any other means to check the correctness of the code without recompiling. Honestly I would not even mind generating Ruby code if it’s fast.

I am not a compiler designer nor do I really understand the intricacies of this but would optional strict typing help the compiler with compile times?

I think this would be useful at least for libraries / dependencies. You dont have to be specific in your application code but writing re-usable libraries that will always have to be re-compiled would help tremendously with the development experience.

What do you all think? cc @asterite

1 Like

Welcome to the forums!

This topic has been discussed several times in the past. In short, there’s no way to make y y faster without putting considerable effort and time into, non of which we have. In long, you can search old forum, reddit and github issues about this.

Optional typing is not an option (the compiler doesn’t work like that).

1 Like

You can check code validity by doing:

crystal build --no-codegen main.cr

and if there is not error it will finish quite fast.
If there is an error you will get your error message.

2 Likes

Thanks both @ComputerMage @asterite.
One more question. What do you think in Crystal requires a massive re-design and has to be done despite the lack of resources.
Say you would have a team of another 5 of you.

Nothing. For me the language is fine as is. Yes, you need to compile everything from scratch each time, but it’s relatively fast, at least compared to other tools.

Like, when I need to compile an Elixir app, or Haskell, or even running ruby specs in a Rails app, it takes sooo much time… sometimes more than compiling a big crystal app, or the compiler. I even heard Rust, which is much more suitable for incremental compilation, takes quite a lot of time to compile.

Compile times can be improved, but they are not necessary for 1.0, maybe not even afterwards.

4 Likes

Integrate something like ameba (i.e. more warnings) into the std compiler… :)

Also fix the docs for latest version, when I google for “crystal lang slice” it sends me to this:

https://crystal-lang.org/api/0.20.5/Slice.html

2 Likes