DEV Community

Cover image for We created the Crystal language, ask us anything!
Matías García Isaía for Crystal Language

Posted on with Brian J. Cardiff and Martin Verzilli • Edited on

We created the Crystal language, ask us anything!

Hi there!

I'm Matias Garcia Isaia, and together with Brian Cardiff and Martin Verzilli, we're part of the Crystal Team working at Manas.Tech.

Manas.Tech is a software company from Buenos Aires, Argentina, that develops unconventional tech projects for people around the world. And, after being involved in Crystal's development for a while, I can assure you there are not that many conventional things in developing a programming language!

Crystal is a programming language that aims to be friendly for both humans and computers alike - make developers enjoy writing code, and make code run as efficiently as it can. Statically typed, compiled language with a really heavy type inference to make it feel as scripting - the best of both worlds. And did I say it's open source?

Its first commit has just turned 5, and it has changed from an individual's hobby back then into an amazing language supported by Manas.Tech and an amazing community. To celebrate that, we are doing this AMA. Starting today, at 2PM EST, we'll do our best to share with you everything we know about the project, life, the universe, and everything!

So - don't be shy, ask us anything!

Latest comments (106)

Collapse
 
intermundos profile image
intermundos

Hello guys,

Great work you do. Crystal looks nice and performant.

How close are you to v1 today?

Collapse
 
coalboy profile image
Yaymaha

How do you make a language with itself?, I see the code and its 98.2% crystal, how does this works(I'm asking this cuz I'm trying to make my own language)

Collapse
 
matiasgarciaisaia profile image
Matías García Isaía Crystal Language

Hi Yaymaha!

You can read a bit about that in this blog post.

Long story short: "a language" is just an specification of how to write stuff. You can create a language right now, stating what constructs are legal in your language - and that's it.

But... A PROGRAMMING language isn't really useful unless you have something that allows people's code in that language to actually do something. So you probably would want to also provide a compiler or interpreter able to read source code in that language and make things happen.

The story of Crystal's compiler is there, in the blog post :)

You start by writing a program in other, previously existing language that can read source code from your language and turn that into instructions. Then you make your language (both specification and compiler/interpreter) more feature rich, up to the point in which you can write in your language a program that reads source code in your language and generates runnable programs - and that's the compiler/interpreter of your language, written in your language itself!

Collapse
 
mr_sportsgeek profile image
Mr. Sports Geek

Crystal Conf would be totally exciting if it were true. I would do anything to make it happen.

TurboBuyer

Collapse
 
wontruefree profile image
Jack
Collapse
 
mortezakcode profile image
morteza jahangard

I will die of waiting. Please release the version of Windows.
i work for iran goverment and i develop weather Station apps
no body here like me understand data loggers and i want to force our team to use CRYSTAL in production but because of havnt windows version they don't accept
the day i be happy is the day you release windows version . cause of many reasons we cant use windows 10 bash and i should wait for you :((

Collapse
 
matiasgarciaisaia profile image
Matías García Isaía Crystal Language

I hope you don't literally die because of this - that's not any of the language goals, for sure.

Windows support is definitely on the list of Things We Want To Do™, but it's not there yet. As we always repeat - instead of dying, you can try getting yourself involved in the efforts (there's been a couple of trials at this, you can ask on the forum for guidance if needed), and/or help the fundraising so the team can devote more time to develop Crystal itself and, at some point in time, Windows support specifically.

Good luck with the project!

Collapse
 
alexanderandrade profile image
Alexander

Hello, could you approximately say, when would 1.0 be released ?

Collapse
 
matiasgarciaisaia profile image
Matías García Isaía Crystal Language

Hi Alexander!

"Whenever it's ready" is the best answer, although probably not the one you're looking for :)

We don't have an estimated date yet. We tried to set one once, and then we did lot's of great things - except releasing 1.0.

So we're focusing on working on the language & the community & everything else, and we'll call it 1.0 whenever we feel it is 1.0.

As a user, I had once to update a codebase from Crystal 0.23.0 to 0.24.1 and it was really easy to do. I personally think that not-being-1.0 is not enough of a reason not to use Crystal in a project - but your mileage may vary, as always :)

One more thing - whenever we hit 1.0, I promise you'll notice :)

Cheers!

Collapse
 
satb profile image
satb

Is the goal still to get to 1.0 by the end of the year?

Collapse
 
matiasgarciaisaia profile image
Matías García Isaía Crystal Language

Hi there!

Nico talked a bit about 1.0.

We'll probably not hit 1.0 this year - it was a really optimistic goal to pursue, a bit more of a motivation than an actual expectation if you asked me - but it probably won't get those 14 months either, hopefully :)

Collapse
 
tonyvince profile image
Tony Vincent T.Y • Edited

What are some typical use cases of crystal lang?

Collapse
 
nimmyjvipin profile image
NIMMY J VIPIN

Any of the crystal framework usable in windows?

Collapse
 
matiasgarciaisaia profile image
Matías García Isaía Crystal Language

There's not much left to add to Faustino's answer - ¡gracias! 😉

The closest kind-of-stable approach to Crystal on Windows is using the Linux Subsystem that comes with Windows 10. At least the Crystal Playground is really usable from there, even if it hardly counts as "native".

Other than that, what Faustino said - there are efforts on that path, but we don't officially support Windows yet :/

Collapse
 
vikkio88 profile image
Vincenzo

I know and I saw that too, I am really interested into your project and I hope you succeed. I was just trolling :D

I really find Crystal syntax 1000 times better than go or rust. I would start to work with it if it was widely adopted as go is.

Collapse
 
vikkio88 profile image
Vincenzo • Edited

why did you do that?

edit:
Relevant xkcd

Collapse
 
matiasgarciaisaia profile image
Matías García Isaía Crystal Language

Cause we can! 😀

Or, actually, to see if we could!

Really - Crystal was Ary's hobby project at the time. He might (or might not) explain better his motivations at the time, but it was just something fun to do.

At some point, we saw the project had potential - after having used that many programming languages, we could finally create our own one, with the things we liked about others, and without the things we didn't. Or up to a certain level, at least.

Fast-forward some time & efforts, we Manas.Tech as a company saw this could really work - and that it would really improve our day-to-day job if we could develop products to our clients using a language that makes us as happy as we want Crystal to do.

So here we are :)