I’ve been thinking for a while that Crystal needs a better motto. The language is a joy to write and I find it quite sad that so few people give it an honest go.
Among other things, I put some of the blame on the boring motto that doesn’t really say anything and is very uninspiring.
The current one is
A language for humans and computers.
Compared to some of the other, new-ish languages:
Rust
A language empowering everyone to build reliable and efficient software.
Go
Build simple, secure, scalable systems with Go
Swift
Swift is a general-purpose programming language that’s approachable for newcomers and powerful for experts. It is fast, modern, safe, and a joy to write.
(admittedly, quite similar to what Crystal offers)
Odin
The Data-Oriented Language for Sane Software Development.
you get the idea :D
IMO crystal’s strengths are:
excellent concurrency
beautiful syntax
speed
pretty much complete type safety
rapid prototyping
It’s not like we’re trying to sell a lip balm and have to convince people who are disinterested, but it’s important for a motto to be catchy nonetheless.
Maybe something along the lines of:
Performance meets elegance.
or something
This combination of speed, readability, user-friendliness and the ability to prototype rapidly is very unique, so maybe leaning into that would be a good idea? Mentioning concurrency could be good too.
Ruby was introduced as a “Human Oriented Language” by its creator, Matz (Yukihiro Matsumoto), at one of the first Ruby conferences. Matz was a C programmer, and many early Ruby users were also C programmers.
Compared to C, Ruby is more flexible and “human-friendly,” but this makes it more complex and slower for computers to process.
With this background in mind, Crystal’s motto, “A language for humans and computers,” suggests that it is a language designed to be friendly to both humans and computers.
Ruby is still popular today, but it is not as mainstream as it used to be. Because of this, the idea of “Human Oriented Language” is less known, and the meaning behind Crystal’s “A language for humans and computers” might be harder to understand.
From a historical perspective:
Elegance meets performance.
However, since many Crystal users today are younger, their experience is more like:
I understand where both you and the current motto are coming from, but that doesn’t really change the fact that it sounds pretty bland and doesn’t actually say anything, unless you’re already familiar with Crystal.
Yep, notice the “pretty much” in my initial post as well :D It’s close enough that calling it “safe” instead of “completely safe” would be accurate, I think.
The concurrency model, lovely syntax, convenience without comprising speed is probably the “selling points” of the language. Most other languages usually drop one in favour of speed.
Safe for Modern Developers
Something along this line could be “marketing” it as a good entry point for programming in general. The readable syntax and highly intuitive keyword and syntax sugar system make it very easy to pick up.
Swift incorporates this idea into their motto exceptionally well.
approachable for newcomers and powerful for experts.
For people visiting the Crystal Language website for the first time, the current motto is vague, and even if you read the motto, you won’t know what kind of language it is. I agree with that.
I haven’t read the post yet, but I have something to say!
As I mentioned in this crystal china doc,
the most (not one of) important reason for me to use Crystal (as a long-term Ruby user with expertise in TDD), is the Null Safety, but never mention in motto.
But this is the KEY DIFFERENT with others programming language i learn.
I thought the person who give Crystal the direction may not fully understand where the significance benefit of give to programmer.
Being a long-time Ruby lover, back in 2019/2020 Crystal got me hooked the moment I came across “Fast as C, slick as Ruby” (or slightly different).
I had several projects started with C++ (with the usual arguments), but then some 10+ years ago switched to Digital Mars D for one, and four years ago to Crystal for another project.
When writing something more complex in C++ (involving templates etc.) at both points I was so frustrated that I didn’t see my own logic anymore because the code got pested with tons of boilerplate. That was the killer argument to me in both cases - and I thouroughly don’t understand why C++ is so widely used.
To me, Crystal is just like a present from a higher power
It has the spirit and elegance of Ruby, it has the speed of C (if you use it wisely) and it has the safety of any other typed language (to the degree you tell it to).
Elegance, speed and safety - ‘speed’ coming in both meanings: speed to code and speed of execution.
Yeah it’s really difficult coming up with something that sums up all the good parts about the language, mostly because it’s the culmination of a myriad of different thing.
If I had to choose one word to describe Crystal it’d probably be “intuitive”. Virtually every single time I had to look something up or had someone explain something to me, it ended with an “ahhh, that makes sense”.
This is something that’s formidably underrated and makes the language 10x more enjoyable
I had a conversation with Claude. I enjoined the AI to avoid direct comparisons to other languages and to write an 8-12 word tagline / advertisement for Crystal, and this is the my favorite result after several rounds of refinement:
Powerful type system compiling beautiful code to performant software.
It highlights what I personally like best about Crystal, which might not be the same as you. I’m not a fan of the word ‘performant’ though, so perhaps ‘high-performance’ or simply ‘fast’ might be better.
I agree that powerful types is a third great thing in Crystal. Maybe “Powerful types, beautiful code, fast binaries”? It is still a little too long for my taste though. But after compacting a litttle more info about types is lost: “Powerful, beautiful, fast”.
Rust and Go’s mottos focus on what’s possible with the language: “build reliable and efficient software” and “Build simple, secure, scalable systems”.
In practice, I like Crystal for its simple syntax which enables me to write maintainable code quickly and its performance, which gives me confidence in its ability to scale: