this post was submitted on 12 Jul 2023
20 points (100.0% liked)

Programming

13383 readers
1 users here now

All things programming and coding related. Subcommunity of Technology.


This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.

founded 2 years ago
MODERATORS
 

I learned about Crystal from somebody's Lemmy comment a couple weeks ago. Amazing and under rated language.

Their announcement is pretty lackluster tho lol.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 8 points 1 year ago (3 children)

I have never heard of Crystal before. Can someone give a quick explanation of what this language is good for and why it is exists? There are already so many languages out there.

[–] [email protected] 7 points 1 year ago

Ruby but compiled for better performance. The compiler is smart and automatically detects and applies typing.

That's from when I looked into it a bit a few months back.

[–] [email protected] 5 points 1 year ago

It looks similar to Ruby but with an appropriately modern static type system and a macro system instead of runtime metaprogramming.

It also has its own concurrency story, as far as I remember.

[–] [email protected] 3 points 1 year ago* (last edited 1 year ago) (1 children)

The easiest way to think about it that is kinda right, and what got me into is "It's like compiled Ruby and nearly as fast as C".

Crystal is a language with syntax modeled after Ruby, which is considered one of the most human friendly languages (it's way easier to understand than C and most others). Ruby and Crystal are "object oriented". Like if you wanted to know what I had for lunch using Crystal you'd ask me, an "object" last_meal = kool_newt.stomach_contents, as where in C, you'd cut me open and look.

Where Ruby is a dynamically typed (it figures out whether things are Strings or Arrays, etc on the fly as needed, handy but very slow) scripting language, Crystal is statically typed, so you have to be conscious of types while you code. And where with ruby you end up with a script, Crystal code is compiled into a binary.

Where Ruby is good for small/medium websites with a modest traffic, or for prototyping ideas in an easy language, or making smaller utilities, Crystal can handle massive traffic, and make fast production level apps and tools without the difficulty of C or Java.

I'm using Crystal and Kemal (Kemal is akin to Ruby's Sinatra) for web dev, and trying to make my own DNS utils (I want dnsip, not a fan of drill, dig, and other tools).

If you know Ruby, Crystal is an easy jump.

[–] [email protected] 2 points 1 year ago

Thanks, that's a good summary.