A New Way To Get Started With Akka, Lagom, Play and Scala

 

In a recent blog post, we announced the EOL for Activator, and described a new direction for getting started with Lightbend Tech Hub. Including a Rapid Project Starter and a growing list of technical guides, this new, online experience makes it simpler for developers to understand what is possible with our Reactive Platform technologies Akka, Lagom, Play, Scala and Lightbend Enterprise Suite.

In this podcast, we sit down with Eugene Yokota, team lead for Lightbend’s Tooling Team, to discuss the new Tech Hub, the decision to say goodbye to Activator, and the new roadmap for the long-awaited sbt 1.0. 


See The Full Transcript

OW: Good day, all. This is Oliver White, chief podcaster at Lightbend, welcoming you to today's show. I'm with Eugene Yokota, team lead for Lightbend's new tooling team, and the guy who's been doing most of the heavy lifting with sbt for several years now. Today's podcast discusses a few topics. Namely, our new Lightbend Tech Hub that features a growing set of guides as well as our fresh getting started experience, which we recently unveiled as the replacement for Lightbend Activator scheduled to be EOL-ed on May 24, 2017.

Eugene will also tell us what he and his tooling team are focused on and what to expect in the coming months. So Eugene, I'm so happy to welcome you to our podcast program. How are things going with you these days?

EY: Thanks for the introduction, Oliver. I'm doing fine, I guess. Working hard towards the sbt 1.0's next beta, actually.

OW: Wow. That's excellent. Now, sbt 1.0 has been a long time coming I understand.

EY: It has been a pretty long time coming. Yeah.

OW: Well, we'll get into that in a minute. So first, I think the question that's on a lot of people’s minds is what happened to Activator? It was very popular. It got quite big. Would you say that Activator was possibly a victim of its own success in a way?

EY: To some degree. I think the Activator was sort of our main way of getting started with reactive technology. And if you kind of scroll back over time to 2012/2013 when Activator came out, I think it was our way of trying to improve the ecosystem by having a tool that you can just download on your machine and get started with running Play or something like that out of the box. And at the time, I think doing so using just open source tools was kind of tricky, because you had to write your own script to install your sbt and things like that.

So I think that was one of the key motivators behind creation of the Activator. But at the same time, I think there were a lot of complications. Because it was a download tool, it need to work on a lot of different machines and different network environments. So I think its heart was at the right place, but the implementation became too complicated for the goal it was trying to solve. Gradually, I think people started just using the open source tools.

sbt -- in the same years -- became more and more friendlier in terms of the DSLs and the install experience that we have been trying to improve.

OW: So what did you and your team do to make the new getting started experience different and, hopefully, better?

EY: I think the spirit of the getting started is still the same. We want to make it so that even if you haven't really been following up with all our build tools and things like that, get to sort of like a “hello world” state pretty quickly. So one of the lessons we learned is instead of doing a download tool, we tried to keep everything in the browser as long as we can. So things like Tutorials: tutorials were a cool part of Activator, right? There's template system in Tutorial.

And you can get to learn about what Play is and Akka actors and all these different things. So we're now moving these tutorials to a website. But these websites are also GitHub repositories that are managed by different teams. So when you send a pull request, it gets automatically reflected into a Tutorial that also has the accompanying code examples that you can download and follow along. Similar to the Activator experience, I think.

OW: So it's a lot more integrated and not living in the Activator silo.

EY: Right. Exactly. And it would actually use the real build tools like sbt or Maven. So you start off with the tools that everyone else is also using.

OW: I believe the name for it right now is Rapid Project Starter that you're referring to. (Editor's note: see image below)

EY: Yeah. I don't think there's a real name for it. It's been called a project starter and kickstarter and different names. But essentially, it's the Tech Hub, which is a new portal that we're building for developers. And one of the main features is to have this UI that you can quickly start new projects. And with that, there's also the guide pages. So the idea is sort of start with a problem statement. Like you want to build a RESTful API. How would you solve that using the Lightbend way?

And these guide documents would go through your problem, and kind of walk you through it implementing using Play or something like that.

OW: That sounds great. I notice that Giter8 is one of the main features that we're kind of working with on the project starter. How does that work?

EY: Yeah. That's kind of interesting. As we're EOL-ing Activator, which like I said had a lot of really interesting ideas that actually worked well, I'm essentially breaking it down and reverse porting it back into sbt. And “activator new” is a way of starting a project if you're already familiar with the command line tools. So if you just type that, it will let you pick different templates.

So Giter8 is actually an open source tool that's existed for quite a long time. It was originally started by Nathan Hamblin. So instead of central repository like Activator, it just uses the GitHub repository to post different templates. So if you have a GitHub account, anyone can create a template. And sbt is integrated with the Giter8, so if you type "sbt new" and your repository name, then it will start a project quickly like that. So from the command line, you can also start a project.

So the Tech Hub also integrates with the Giter8. So if you make a Giter8 template and you want to start with a Lightbend technology, you can go to Tech Hub. But if you are already familiar with sbt, you can start with using “sbt new”, basically.

OW: That's good to know. So what would you tell people that are currently using Activator? What should they do to prepare for the end of life and to try out our new getting started experience?

EY: Yes. So if you're already using it -- first of all, I think the command line experience of Activator was essentially a wrapper around sbt. So a lot of that will basically be exactly the same. You can just switch over to using sbt's command line. If you're using the template of the Activator, you want to make sure that those templates are moved over to Giter8.

There's a blog post that I wrote showing how to migrate your templates from Activator to Giter8. It's mostly changing repository names and putting it into either your company's Git or your public GitHub repository. So that's mostly it.

OW: And what about for those of our fans out there who have actually built their own Activator templates and have shared those with the community?

EY: Yeah. I recommend them migrating to the Giter8 templates, basically.

OW: All right. And all of that can be done on developer.lightbend.com, which is where you find our Tech Hub. That's correct?

EY: Yes.

OW: Excellent. So I'm noticing that sbt is really taking a front and center role with a lot of the stuff that we're doing with Lightbend Tech Hub and elsewhere. And I guess it's a good time to talk about our new team that you're the tech lead of. And congratulations. We're calling it the tooling team. So what is the tooling team and what do you guys do?

EY: So I think there's been a history of tooling team like things at Lightbend / Typesafe. I joined under Josh Suereth. It was originally called Q Branch. And then it became Reactive Platform Team. And then now, essentially, we're sort of going back to its roots of being the Tooling Team. There is Dale, who is the sbt committer and he's super active on the community talking about sbt. And there is Antonio (Tony), he works with dbuild and other tools.

So essentially, like three of us, we are the -- we make tools in the open source as well as some of the tools that are used internally within the company. A good example of that could be Paradox, which is a markdown engine that's used by Tech Hub, was originally created by Peter Vlugter [of Lightbend]. But we kind of took it and packaged it up so that the other teams can also use these things. So that's basically the tooling team.

OW: Right. So earlier, when we first started talking, you told me that sbt 1.0 is on the horizon.

EY: Yep.

OW: For people that aren't aware of sbt, can you just give us a really quick rundown of what sbt is? When it kind of started and where we're going with it?

EY: So sbt is the build tool that is used by many Scala projects, basically. And one of the key features of it is that it has the incremental compiler. And also, it has sort of like a terminal interactive shell that you type in "test" and that runs test inside. If you typed "compile", it runs compile inside. So it almost acts as a lightweight IDE kind of experience. You basically have editor and sbt and you can do a lot of things in there.

And people also have written a lot of plugins to do a whole bunch of different things. I've written sbt Assembly to make a fat jar for deploying and stuff like that.

OW: Is sbt what enables Play Framework and also Lagom to do instant code refresh without having to wait at for compile, and restart, and so on?

EY: Yeah, that's correct. Yeah. So sbt is essentially like a platform on which Play is written on. So using plugin, they almost made a whole different thing in there. Because you don't have to do anything once you start on Play. You just have to hit refresh and it'll automatically compile. But yeah, it is written on top of sbt. Yeah.

OW: So sbt 1.0, what's the story behind that? sbt's been around for quite a while. And we're seeing a 1.0 on the horizon. What's a little bit of the history there? And what are we looking forward to with 1.0?

EY: We kind of talked about sbt 1.0 for almost as long as I've been with Lightbend.

I think 2014? And sort of a back history is that we didn't want to make a big jump to the sbt 1.0 because it's just a dilemma. Right? You want to be able -- it's almost like a 2.0 syndrome. You want to add a bunch of stuff. But if you add a bunch of stuff, it's going to break it. Right? So we decided essentially to start adding a bunch of new features into sbt 0.13. And that's basically what's been happening in the last three years.

So now that Scala 2.12 is out, I think we're kind of ready to say, "Okay. Let's just ship this with whatever we have and stabilize this and call it sbt 1.0." So that's sort of a quick story on sbt 1.0. But one of the major things that's happening is that we broke the code apart into a bunch of small pieces. And we created a repository. So I think in the beginning, I said, "One of the key features of sbt is its Scala incremental compiler that Mark [Harrah] implemented."

It's been improved over the course of different years by others as well. You know, Gigahorse has implemented name hashing and things like that. But it's sort of like almost a crown jewel of sbt that it's this difficult core feature. But I thought it should be kind of given up to other build tools as well. Because I think different build tools also need incremental compiler. So we split it up into calling it Zinc on its own.

So now Scala Center, and Twitter, and other companies can basically come in and give us ideas and improve the incremental compiler as a community. So I'm basically maintaining it more as a Lightbend person would maintain instead of just purely for the sake of sbt, essentially. And I think Zinc is too important to be just kept for one build tool. So that's what's kind of happening. And we're going to see really interesting improvements for Zinc 1.0 that will be shipped with the sbt 1. So that's one of the main features.

OW: Wow. That's really fascinating. Yeah. Without you, I have a feeling that we wouldn't be where we are today even in the slightest. You mentioned a couple other tools that your team works on. Dbuild is one of them. Can you tell us about that quickly?

EY: Sure. Dbuild started with Josh and Tony. And most famously, it's used for this thing called a community build. Where the Scala team uses it to check if the new version of the Scala would work against existing open source tools. So it has basically dozens of projects in there. And it's able to rewire the dependencies and then build a different project from the source. So that's one of the tools that we maintain.

OW: And you also mentioned, I believe, some kind of enterprise features that are part of Lightbend reactive platform that your team works on. Can you tell us about those?

EY: Sure. Yeah. So the other big responsibility within the tooling team is that we maintain infrastructure to run a lot of things. The Enterprise Suite is Lightbend's commercial platform. So because we used to be the Reactive Platform team, one of the things we do is we run the authentication service that integrates with the commercial Bintray repository. And then we'll authenticate you. We'll issue some token and make sure it all works and stuff like that.

Another project that we're currently looking into is integrating with White Source to do license checking and things like that. So these are things that happen alongside with our sbt stuff.

OW: And I guess my final question for you is when is sbt 1.0 aiming to be available? The dreaded question. I know. It's a terrible thing to ask.

EY: We now have a roadmap. So I would say go to Tech Hub and check out our roadmap. So the first beta actually shipped a month ago. And the idea is that we're going to do a couple betas and then release candidate. And then we're going to ship. So these are all going to be a month apart. So I think it will be July timing, basically, that we're aiming to ship sbt 1.0. So in the meantime, people can try sbt 1.0 by porting the plugins. So I've started porting a bunch of plugins myself. And if you find any bugs, just let us know. If you have ideas, let us know as well.

OW: Eugene, it was a pleasure speaking with you today. And thanks for taking the time. I'm definitely looking forward to seeing the impact of your new team on our users' experience and learning and getting started with our tools more rapidly than ever before, I hope, on the Lightbend Tech Hub, which you can access at https://developer.lightbend.com

As always, you can find out more about how Lightbend helps some of the world's most admired brands embrace the next generation of streaming microservices and fast data apps with our reactive platform on Lightbend.com. Which is also where you can schedule a 20-minute introductory call with one of our representatives. So thanks again to Eugene Yokota, and have a wonderful day.

EY: Thanks, Oliver.


Ready To Speak With Lightbend?

We hope you enjoyed listening to this podcast. If you'd like to learn more about our open source and commercial technologies in Reactive Platform, simply get in contact with someone from Lightbend via this quick form:

SCHEDULE A 20-MIN CHAT

 

Share


Discuss


View All Posts or Filter By Tag