RR 392: Crystal and Lucky with Paul Smith & Andrew Mason

Episode 399 · December 11th, 2018 · 1 hr 2 mins

About this Episode


  • Eric Berry
  • Charles Max Wood
  • Nate Hopkins

Special Guest: Paul Smith and Andrew Mason

In this episode of Ruby Rogues, the panelists talk with Paul Smith and Andrew Mason! They discuss the platforms Lucky and Crystal. Other topics include: Ruby, Phoenix, Laravel Mix, Thoughtbot, Webpack, compilers, and much more! Check it out!

Show Topics:

0:00 – Advertisement: Sentry.io

1:02 – Chuck: Welcome!! Eric Berry, Nate Hopkins, and myself are the panel - and our special guests are Paul Smith and Andrew Mason. Introduce yourself!

1:41 – Andrew / Guest: I have messed with every type of language, so there’s that!

1:55 – Paul / Guest: I have been here at my current company for 5 years and it’s a consultancy firm. I have been working on Crystal.

2:14 – Chuck: We are lucky to have you! Give people the elevator pitch for Lucky and Crystal?

2:33 – Guest: Let’s talk about Crystal and looks very similar to Ruby! It’s faster and it’s a compound language. It catches a fair amount of things at compile time. The other special features are...

4:17 – Guest mentions compilers.

4:23 – Chuck: Yeah we see this in the typescript. Is it language service – is that what it’s called? Pile and compile and all of this checking are a nice stage for it to run-through. Although the flipside is coding and to not worry about that – that’s nice!

4:56 – Guest: It has changed my approach for sure.

5:43 – Panel: How much slower are you?

5:54 – Guest: I am a lot faster in Crystal than I am in Ruby.

6:51 – Panel: Yeah you have to figure out where you want to save the time.

7:00 – Guest: Someone wrote a blog post and it said...the Rails service is like bolting a shelf on a wall and hoping to hit a stud and it’s not solid. But using Lucky it’s sold although it took a little longer. I think it can be true. You can do bad things with compilers, though. It depends on how you use it.

7:43 – Panelist asks a question.

7:53 – Guest: Every Friday is an investment day. Lucky is my “whatever I want thing.” I am technically getting paid to work on it.

8:33 – Panel: have you had to battle with the framework?

8:51 – Guest: Yes, even though Crystal looks like Ruby (at a high level) if you want to do it well you have to approach it in the Crystal-way. When I came to Crystal I came to it like Rails. The problem with that is I wanted to have type-saved parameters – you can’t do that in Crystal b/c...it doesn’t know when to have a parameter with...

10:48 – Panel: I have heard you talk about Crystal before on another podcast. You talked about templating and I am curious to hear about that. I have used Slim and others and now stick to ERB.

11:25 – Guest: Yes definitely. Let’s back up and talk about WHAT Lucky does!

The guest talks about Rails, escaping, and more!

14:37 – Panel: So I imagine Rails partials are slow and expensive to render. I would imagine that this approach with Lucky...

15:00 – Guest: Yes exactly. It’s extremely fast!

15:20 – Panel: How is this for designers?

15:30 – Guest: Yes that was a concern of mine. With Lucky I tried to make it close to a regular HTML structure would look like!

16:32 – Panel: I spun up a Lucky app the other day. It looks like you are using...

16:50 – Guest: I have played around with a bunch of stuff. I landed on Laravel Mix.

18:27 – Panel: Yes webpack is a pain to set up and it’s hard to get it to working the way you want it to work.

18:47 – Guest: Yeah if you want React or whatever it will generate the configuration you need. I don’t like it b/c if you want to...

19:28 – Panel.

19:45 – Guest: I don’t want to maintain it.

19:54 – Panel: There is a Crystal community in Utah. I want to know – are you competing with Amber? Explain the difference between Lucky and Amber?

20:20 – Guest: Yes I did look at Amber but they are approaching it differently than us.

The guest talks about the differences between Amber and Lucky.

21:54 – Guest (continues): With Lucky you will have to learn a little bit more but you get more of a pack!

23:23 – Panel: It sounds like Lucky is inspired by Elm – right?

23:32 – Guest: Yeah, I think so.

The guest dives into this topic of Elm and Lucky!

24:35 – Panel: How much does the types feel like it’s getting in your way? How explicit is it? When I came to Ruby it was a breath of fresh air. I am a bit reluctant to go back to those days.

25:25 – Guest: I think Lucky does a happy medium. It doesn’t infer instant variables. I like the...

26:28 – Panel: I learned Java very early on in my computer science career.

27:00 – Guest.

27:10 – Panel: “Crystal...it’s not Java!” That should be your slogan!

27:20 – Fresh Books!

28:25 – Panel: A lot of people are moving to Elixir community. Do you see people moving from Ruby to Lucky and Crystal? How does Lucky compare to Phoenix?

28:55 – Guest: Good question!

29:10 – The guest talks about bamboo – see links below!!

29: 29 – Guest: Sure Ruby is fast but sometimes you spend more time on it then you would want to.

31:08 – Guest: Blessing and curse that Crystal looks so much like Ruby. That’s what I thought at first: why would I want to learn this if it’s so similar to Ruby. BUT there are so many benefits to Crystal vs. Ruby.

31:48 – Guest talks about Lucky catching the bugs.

32:00 – Panel: I wonder if that happened with Groovy and Rails?

32:21 – They go back-and-forth.

32:28 – Panel: Thoughtbot has always been on the forefront of Ruby. Can you talk about Thoughbot please? (See links below for Thoughtbot!)

33:15 – Guest: Great question. It’s hard to tell b/c there are different offices. I would say Ruby is our main thing. Ruby is the most mature thing that we use in-terms of web development.

Guest: Actually – Rails is pretty nice!

34:54 – Panel: We went through the same thing with CodeFund! I wrote it initially in Python and then I wrote it in Elixir and it became so complex. Now we are moving everything back to Ruby and it’s been a fantastic decision. 

36:30 – Chuck: You are talking about the sustainability of open source but there are benefits throughout the company right? There are tons of tangible benefits of doing it, especially when it’s your Friday schedule. You can level-up on things that could help you. I know a lot of companies cannot afford it if they are trying to hustle.

37:42 – Guest: It’s totally not charity through Thoughtbot. It’s a huge help for hiring new people. I know they are okay with letting me work on Lucky b/c it’s bringing on new developers and a good marketing tool, and finally recruiting!

39:07 – Chuck: Yeah, I have been talking about developer freedom and that’s what I am addressing through the DevRev show! It’s my new podcast show. We talk with Chris on Elixir Mix. It lends that credibility if they need to save our bacon.

40:02 – Panel: What’s your goal with Lucky?

40:11 – Guest: I would love to get it to the point where Thoughtbot could start a project and default to Lucky! Start a project and not resting every gem and be confident with launching it.

41:36 – Panelist asks a question.

41:45 – Guest: It’s not 1.0 and that means that the API will break with every release. I think that’s good to tweak stuff but that turns companies off, though.

42:40 – Chuck: Another thing that helps with adoption is Twitter used Rails to build their initial version. This blah, blah company uses important stuff and they are using Crystal and whatnot then that’s good! It sounds like you are waiting for social proof.

43:23 – Guest: Is the next Twitter going to even know about Crystal?

43:40 – Chuck: It literally only takes one enthusiast!

43:52 – Guest.

44:11 – Demo of Flickr Search is mentioned here!

45:13 – Panel: Is there something out there that you could POINT someone to?

45:27 – Guest: Not, yet. I built a small site with it! It is opensource and you can look at it. I want to show people a good example of what Lucky can do!

45:57 – Panel: You have very good docs and I am a visual learner. When I learned Rails I learned on my own and not through school.

46:20 – Panelist asks a question.

46:48 – Guest: What a huge advantage Lucky has through the Thoughtbot platform! Now that platform is kind of dried up. In terms of getting people excited it needs that killer app and they can see that it’s fast and killer! I think it takes a lot of time and finding time to do it so that’s tricky. It’s changing a lot when there is so much change. Getting Lucky to a 1.0 state so people can do videos and make apps. The hard part thing is that Lucky has to be 1.0 when Crystal is 1.0. The Lucky community is great b/c it’s encouraging and to respond in a very kind way. When you are starting something that’s new can be scary. We try to help out as much as we can and we are open and kind about it.

49:13 – Panel: “Paul is nice so Lucky is nice!”

49:19 – Guest: Everyone is super kind. It had to be short and simple. We in the dev community are very lucky – usually great pay/benefits and more w/o a college degree. What another field can you do that?!

51:00 – Panel: Great message and you need to push that!

51:10 – Panel: You were on a past podcast and you talked about how you are donating each month!

Panel: Opensource maintainers are getting burned out and you want to support that.

51:40 – Guest: I think opensource sustainability what others need to do to make it sustainable. If you have the means to give we can be apart of that, too. It would be nice if companies did that. If it helps Crystal I am happy.

52:17 – Panel: I have a question about Crystal.

52:52 – Guest: Ruby right now you can do C sections right now.

53:01 – Panel.

53:10 – Guest: I don’t think so – it may but I would guess that you could do it but I don’t know how easy it would be.

Note: Rust and C are mentioned.

53:37 – Panel comments.

53:46 – Guest: One thing I would say is to check-out the Lucky docs. We are happy to help!

54:10 – Panel: This is a favorite episode of mine! Both of today’s guests have been my favorite!

54:23 – Advertisement: Get A Coder Job!

End – Cache Fly!