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)
Hello guys,
Great work you do. Crystal looks nice and performant.
How close are you to v1 today?
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)
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!
Crystal Conf would be totally exciting if it were true. I would do anything to make it happen.
TurboBuyer
Its happening!!
eventbrite.com.ar/e/crystal-confer...
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 :((
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!
Hello, could you approximately say, when would 1.0 be released ?
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!
Is the goal still to get to 1.0 by the end of the year?
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 :)
What are some typical use cases of crystal lang?
Any of the crystal framework usable in windows?
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 :/
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.
why did you do that?
edit:
Relevant xkcd
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 :)