Developing on a Chromebook with Codenvy

[ELECTRONIC MUSIC PLAYING] [SWISHING] LOUIS GRAY: Welcome back to Google Developers Live I’m Louis Gray, here from the GDL studio, in Mountain View, for what I think is going to be an exceptional event We are talking with the team from Codenvy, who has created a cloud-based IDE which runs exceptionally well on Chrome OS For many of you who know me online, we’ve talked a lot about Chrome and the development of a web platform for a long time Often, when I talk about Chrome OS, people are really excited about its promise, but there’s still a few questions What can’t it do? And one of those questions that often comes up is development Hey, I’m an engineer I’ve got to use my IDE I have my standard tools that I always use, but what about running these IDEs on Chrome? And so today, we’re going to talk about precisely that with the Codenvy team I’m joined in studio with two guests– Tyler and Steven Welcome, and thank you for joining us at GDL TYLER JEWELL: Thank you for having us, Louis LOUIS GRAY: I appreciate all the work that you’ve done so far And we’re going to deep dive into that product We also have an avid user of Codenvy Joining us from London, from our Hangout room in Studio Campus is Addy Osmani Good day, Addy ADDY OSMANI: Hey LOUIS GRAY: Thanks for joining us And I remember we came across the idea of bringing Codenvy in studio from the enthusiasm that you showed around using it yourself Is that right? ADDY OSMANI: Yeah, that’s right I absolutely love using [? Codenvy. ?] It’s one of those really great tools, a fit Something that’s been missing in my workflow on Chrome OS for quite some time And I’ve been using it for a few months, and it’s been really great LOUIS GRAY: That’s cool So thanks for joining us, Addy So obviously we have the people behind the product, we have an exceptional user of the product, then you’ve got me So you got three out of four– really solid [LAUGHTER] LOUIS GRAY: So I want to just talk, real quick, about Codenvy As someone who’s not an engineer, I read about these things like IDE I read about Eclipse, and I read about Xcode, and I read about other platforms And I really want to understand when it came to developing your product, first, how did you have the idea? And what is it that sets you apart? How have you looked at the opportunity that is there today with Chrome and the web to start what you’ve done? I’m sure you have a presentation as well TYLER JEWELL: Well, first of all, thank you for having us here today We’re just absolutely excited about sharing what we’re doing with the entire Google community The actual first bits for Codenvy started about four years ago And it was part of a French company called eXo Platform And they make a collaboration solution that competes with Yammer, Podio, and some other companies And they needed to build some IP that was multi-tenant IP inside of a Java virtual machine And they had invented this IP, and they were looking for a way to test it at scale And they had never had 50, let alone 100 developers, come to use this system all at once And so they were kicking around some ideas And they said, well, hey, what if we were to build a widget factory for our platform, and we did it as a cloud-based IDE? And they did it, and they got about 50 to 100 users And these users were really excited, and they proved out the IP that was there And the users were so excited about what they experienced that the engineering team just kept moving forward with it They said, well, what if we could do this for Java, and

what if we could do this for Python? What if we could do it for Ruby? And they kept improving it, and the traffic kept growing And in 2011, they said, well jeez, what if we could take the code and deploy it directly onto a platform as a service? And they added support for originally OpenShift But quickly after that, it was Google App Engine, on that And the product took off So this is one of those situations where when we first started with it, it was meant to be a technology garage project But it turned into something that was incredibly popular and useful along the away And the traffic took off so much so that we decided to take it away from the French company, create our own company with it, and that happened in January And we raised some capital– $9 million And we’re now a legitimate business LOUIS GRAY: Excellent And we often have people come on Google Developers Live and talk about how they started their startup How they came out of one idea, and it morphed into something else, based on customer demand And it sounds like you ran into that The more features you poured into this product, it really became an extensible platform Maybe you can take me back to this idea four years ago about working on the cloud platform, as it was As we know, just in the last several years– you mentioned App Engine App Engine has gotten exceptionally stronger and more powerful than it was just a few years ago And now we have new tools all the time, new pieces of the web, that enable you to become more like a standard application Can you help us understand that– how the web has grown underneath your feet and let you grow? TYLER JEWELL: Yeah, well, I think what the web offers to us is that it’s an environment for instant provisioning that’s there And we didn’t realize this when we started building the product, but we figured it out at scale, that the problem we were solving was not that we were giving developers tools But the problem we were solving is that we were saving them the desktop administration pains So when developers work with a traditional IDE like Eclipse, you’re looking at minimum of time of hours to get to, “Hello World.” And it’s not just because they have to set up the IDE It’s also the build system, the runtime, all the plug-ins that they’ve got to manage on that And with web technologies, web allows us to set up the entire same environment instantaneously and automatically So what used to take hours for “Hello World,” we can take down to seconds with a cloud-based IDE And so when developers start seeing that instant access benefit, and it’s still inside of an industrial strength tool, that affinity actually wants them to use more of that And that’s where the stickiness comes in LOUIS GRAY: Absolutely And as somebody who uses Chrome OS as just a boring old consumer, one of the things I really like about it is I feel like every computer is my computer It really doesn’t matter I love my Pixel to death, but if it broke tomorrow, I can just jump on any machine that has access to Chrome and get all of my content back with Sync TYLER JEWELL: Sure LOUIS GRAY: Is there something to that, in terms of that instant on and portability, that your users have liked? TYLER JEWELL: I think that the users like the fact that you can use almost any browser to gain access to it, whether it’s a mobile browser or a web browser that’s out there It certainly gives them device portability It also gives them team portability in that they can bring other members into the system right away without having to go through a configuration exercise of that And what we’re starting to discover is that there’s a new class, or a new category, of developers that are emerging because of cloud IDEs Previously, you had those people who were primary adopters of a workbench And then you had people who were kicking the tires, looking for new tools Now there’s a new middle category We call them auxiliary developers These are people who are commuting to work, and maybe they have a Chromebook And they just need something that’s instant access It’s the hackathon I’ve got two, three, four of my buddies, and we’re going to spend two or three hours, and we just want to start coding and not deal with the set up of the environment There are some large organizations who separate work between the back end and the front end And this is a way for the back end developers to say, here’s an environment for you to start working on the front end that’s there Vacationers, as well And so there’s all these auxiliary groups who need an occasional workbench for certain types of projects But then they also have their primary workbench for their permanent projects, as well LOUIS GRAY: Sure, and I understand you brought an overview of the product And maybe you can go through that now and give us a little bit more detail on Codenvy TYLER JEWELL: OK, we’re going to give a demo here on it Why don’t I just run through just a couple of slides to set context on it LOUIS GRAY: Sure TYLER JEWELL: And then we’ll do the demo So thank you, everyone Obviously, we are a cloud IDE We think of ourselves as an industrial strength tool for developers And the problem we’re solving is that there was a LinkedIn survey done of 1,200 engineers, and they asked how do you spend your time during the week? And those engineers reported back that they invest 13 hours

a week just in administering their desktop It’s a third of their time And we were really surprised by that But these studies actually hold true There’s a lot of cost to managing that And depending upon the tool that you’ve got, it can actually be more costly And so we thought, hey, there’s actually a better way to do things If you could have the ability to create any type of application, anywhere in the world, off of any device, and then have your work shared in a global community, where you could increase collaboration on that, then what would happen is that developers would spend their time coding, administrators would spend their time configuring, and managers could spend their time monitoring, there And that is why we built Codenvy So Codenvy is a centralized environment And what we did is we took the logical workspace that was on the desktop, and then we decoupled it from its hardware dependencies and moved it entirely into the cloud Inside of that workspace is a bunch of things It’s not just an IDE, but there’s an entire build system for compiling, testing, packaging your code And there’s actually a runtime inside of your workspace as well so that you can execute the code, debug it, and prepare it for the [? actual ?] deployment into a PaaS as well Obviously, the workspace is entirely accessible by browser And then your project type is automatically configured, based upon either the language that you select or the production environment that it’s going to be deployed into So the more we can learn about the type of application that is being built, the more we can restrict the system to prevent failures and error rates from configuration down the way We’re toolchain compatible So from within the IDE, you can deploy directly to a PaaS, kick off a continuous integration build, or commit your code to a code repository like GitHub or Bitbucket And then once the workspace is there, you then have three modes of collaboration You can do it like WebEx, which is popular with instructors and classrooms There’s a collaborative mode like Google Docs, that we’re about to demonstrate here, where you have multiple cursors in the IDE, itself And then there is a factory concept that allows you to clone entire work spaces as well And then you can create replicas that reflect the same exact configuration and runtime environment that you had before And that’s very popular for support scenarios A developer who is coding, they have some sort of syntactical error, they want some help They can take a snapshot of the entire workspace, post it on Stack Overflow, and then the readers of that thread can click on that and see exactly what the previous developer was having at that point in time So with that, we’ve got a lot of users We’re about 75,000 users We represent a lot of Fortune 500 companies on a global basis Our users come from all over the world We see people frequently from China, India, Brazil, Venezuela, Russia, all the Nordic countries as well, all through Europe, and obviously, the United States, too It’s possible to build APIs, web apps, mobile apps, and SDKs Even at Google I/O, we betaed an Android framework as well, where you could actually create an Android app, compile it, create the Android packaging, and then actually run it in a hosted emulator as well LOUIS GRAY: I have started to see people talk about taking a complete mobile only approach to development Can I make a mobile app just on an Android tablet or an Android phone? It really seems today almost like a science experiment But it’s probable that not too long from now that that will be just as standard as a desktop, with mobile penetration being as strong as it is TYLER JEWELL: Yeah, that’s right I think that when you see this, the technology that allows for emulation or any sort of broadcasting to the browser is strong enough where you have as good performance through that as you would on your desktop that’s there So now that that performance threshold has been crossed, it’s really just a function of taking all those technologies that were on a desktop and providing them in this shared, instant access environment here LOUIS GRAY: Absolutely TYLER JEWELL: So I think we’re passed that one threshold And we’re just moving to the delivery side of it now So I’m going to pause there Let’s go into the demo After we do a demo, later on, I’m sure we’re going to get questions about our architecture and stuff like that We come back to that as well LOUIS GRAY: Absolutely We do have a lot of questions on Moderator So we have a number of those that we will get to, as well as talking through Addy’s own experience with your product that really got us excited about Codenvy in the first place TYLER JEWELL: Cool LOUIS GRAY: One thing that you mentioned, you talked about the capability of these machines and the enhancement to it Being on Chrome OS, and I see Steven, you have a Chromebook

Pixel with you as well, what is it about Chrome OS that makes it a compelling machine and platform for Codenvy? Is this the realization of cloud plus cloud, or what’s the story? [CLEARS THROAT] STEVEN LE MEUR: I think you can use the ability to be able to work from everywhere with your Chromebook is something very interesting with Codenvy So we should jump to the demo, probably LOUIS GRAY: Cool Let’s go ahead and pull up the demo TYLER JEWELL: OK, great STEVEN LE MEUR:We will demonstrate the power of being able to work with your teams from everywhere you are TYLER JEWELL: Cool All right Steven has just joined Codenvy He’s been a lot of the brains behind the future product designs And we saw that there were questions already about where’s the future direction of that? And he’s the man behind all that stuff LOUIS GRAY: Excellent So if I want him to talk about the next generation that you don’t want to talk about yet, I’ll just keep asking until he tells us TYLER JEWELL: That’s right, that’s exactly it And he will tell you, by the way LOUIS GRAY: All right, so we’ll look for that in about 20 minutes, then TYLER JEWELL: You ply him with another Pixel, and he’s going to just splurge everything you’ve got LOUIS GRAY: You came to the right place [LAUGHTER] TYLER JEWELL: So great Here’s our home page It’s pretty straightforward I’m just going to log in You don’t have to create an account through forms You can obviously create an account through OAuth And we support the Google OAuth technology there But I want to log into a particular account here And when you log in behind the scenes, we’re actually loading an IDE Your IDE is going into a cluster We actually run up to about 250 IDEs per process there So we actually have a really high density But it’s going into a system, and now I’m part of the community At any given point in time, there is approximately 1,000 developers who are coding, building, and testing in here Your environment is isolated apart from all the others, even though we’ve got a multi-tenant architecture behind the scenes And the IDE pops up here, and its design is very Eclipse-like It is meant to be an industrial strength tool There is the concept of projects in here We can either create a new project or import a project from GitHub from this You can create projects of many different types, and we’ll just go ahead and Create New Create Project And what we do is we ask you a couple of details about the project that you’re going to create What language is it? What environment are you going to deploy to? And depending upon the language that you select, like if I wanted to do a Rails App, it certainly selects the different PaaS providers that are available for Rails And so there’s certainly some matching that’s going on there Just to demonstrate a couple of the capabilities, I’m going to do a Java Spring app And I’m not going to deploy it to a PaaS I’m going to say None And that means it’s only going to run in our runtime here as well And just give it a name, Google Demo, here I’m going to just do a very simple Spring application with a template And now it’s loading the project The IDE, itself, has multiple panes, as you would expect an IDE to have We can give you different views of your project We can certainly give you different views of the windows that are available And what I’m doing here is I’ve got a Project Explorer This is a Java application And I’m just going to open that Java app And in the lower right corner, you can see we’re working hard And what’s going on over here is that we’re parsing the source code trees We’re figuring out all the dependencies across the different libraries that are there And eventually, the editor is going to clean itself up Right now, when it opened up, it’s giving me all sorts of red squigglies, all sorts of error conditions here, because it hasn’t parsed all the files in the project that’s there But after it gets initialized, this stuff will get cleaned up, and it’s all ready to go And this is a completely workable application We can compile it We can run it And so we’ll just go ahead and do that And I’m going to say Build And we’ve got a whole variety of windows that will show up on the bottom here And so you’ve got output windows It’s going to have a debugger window that we can show up If there’s any error codes, it’ll come up here as well So you can see that the build is successful Now for the build, we have an integrated, Maven-based build system in here

Maven uses pom.xml as its, basically, recipe for how the build should work, with what dependencies, and where those dependencies are going to come from We have both a private Maven repository inside of Codenvy for all of your local libraries, but it also can an access any library that’s available in Maven Central, as well So you can create an application, reference jars, SDKs, or other types of libraries And we’ll automatically synchronize with that and bring them into your workspace based upon the codes that you’ve gotten in here Things are fine So it’s no big deal So I’m just going to go ahead and run, and I’m going to run the application And when it’s running, what actually happens is that the files are getting synchronized on the different clusters So when we say build, what happens is all your project files were synchronized onto a completely different cluster And we’ve got a series of nodes that are processing those builds, even though it appeared that it was all happening on one interface here And then the same thing has happened on the run So we’ve taken the artifacts that were built, and we’ve put them onto a run cluster, and we’ve started up a server I think in this case, it’s Tomcat running Spring And there’s a URL here And I can click that URL I can click that URL, and the app is now running, and it’s going to load here And you’ll see that it’s a completely functioning Spring app LOUIS GRAY: And so for some of that, you literally took the abstraction, and you virtualized some of the complexity So what you’re showing is the tip of the iceberg in terms of all the technology that’s running behind it And for the engineer and the coder who’s making the content, it looks like any other interface But on the back end, you’re doing all of this synchronization, making sure all of cluster management is there, as well TYLER JEWELL: That’s right Yeah, we’re trying to give a desktop-like experience But it’s actually highly distributed behind the scenes LOUIS GRAY: Well actually, what it is is many desktops It’s many different desktops with only one single monitor And that monitor happens to be a web browser TYLER JEWELL: That’s right, yeah And if you think about it, when you’re running on your desktop, you’re running many processes all at once So even though it’s all on one node, there’s the build process, the run process, the IDE process, and we distribute those processes onto, actually, separate clusters And it actually ends up having, in many cases, some users talk about it being faster than their desktop Because if you think about development, it’s highly sporadic, but very intense bursts of activity And so when you’re building on your desktop, you almost never use all of the resources that are available to you So when you’re working in the IDE portion, that’s a ton of file manipulation And so that’s I/O intensive But when you’re doing that, the CPU is idle But when you say, hey, let’s build my application, it’s very CPU intensive, and now the I/O is idle, and the memory is idle And obviously, the runs are memory intensive So by separating those onto separate clusters, you can actually still use the IDE while the build is going at full throttle And even though the run is there, you can use the other functions as well So you can get overall better performance, and we can throw a lot more horsepower at each one of those functions LOUIS GRAY: Absolutely And I think there’s always been this trade off, especially the last 10 years, with the capability of networks increasing so much further than CPU You have this interesting trade off of it being CPU-bound versus network latency TYLER JEWELL: Yeah LOUIS GRAY: And now that you were able to abstract all that on the back end with the massive clustering, and hopefully, on the internet side that the pipe is big enough for the user, everything works well in the cloud And what are the kind of questions you get around connectivity? We often get that for Chrome OS What apps are online? What’s not online? How do you handle either intermittent connection, slow connection, or no connection? TYLER JEWELL: So yeah, we get a lot of questions about the connectivity element The most common question we get is, is there some sort of offline support? And we don’t have offline support today But we’re working at what would an offline model be? Because for a lot of people, just being able to edit the files offline is not sufficient They want to be able to compile them, and they want to be able to run them So offline support for us means many shades of gray So we don’t provide that today But in terms of intermittent connectivity or slow pipes, it actually is quite good at the end of the day Because if you actually put a sniffer on it, the amount of traffic that goes between the browser and the server is very limited The only time that that sort of conversation even needs to take place is when there’s actually a server side activity, which is essentially file manipulation, which is like a refactoring command, or a build, or a run And that’s actually very few and far between So we actually do quite well on slow or intermittent connections that are there And that’s how we’ve managed it so far And we hope that we’re about to year away from having an

offline capability And we’ll actually use this Google Packaged Apps technology to do that LOUIS GRAY: Sure, so I don’t want to hijack it and get interrupting of your demo So I want to go through this, and then I want to transfer over to Addy to have him talk more about his experience as well as possibly JavaScript, HTML, CSS– a lot of what the Chrome fans are looking for TYLER JEWELL: No problem So here, we ran the app Inside the Editor, itself, after the app run, you can see that you’ve got all the things that you would expect You can do code completion in here We can set break points We can actually run a full debugger I’m not going to go through that right now You can see that there are Help on the right We’ve also got Help on the left We can do a lot of interesting things, like we can refactor the code if we wanted to I could go up here to Edit We could refactor that variable or the method name, and it’ll propagate across all the factors You can generate getters and setters You can send code pointers There’s a lot of things you can do If I wanted to commit this code to a GitHub repository, we’ve got a full set of capabilities in here The code is running inside of Codenvy It’s a local repository that we’ve created So you could either clone a remote repository in, or we could initialize this repository and then push it off to GitHub And we support all your GitHub credentials in both public and private projects in here as well On the PaaS front, we obviously have a huge number of PaaS providers that we support Our most popular one, by over 50%, is Google App Engine And so when you’re done working with the bits in here, I could log in I could then create a Google App Engine account– I have to create a unique identifier off that And then I take all these bits and push it on there, and we’ll ensure that it actually is going to run accurately, because we’ve restricted our own environment on that We’re actually running the Google Cloud SDK in our local environment So you can make use of all the APIs that you would have access to in the Google Cloud environment here as well The last demo we’ll get, and then we can get into Addy, is Steven, I think, he’s going to log in at some point in time And he’s going to be able to join the account And so what I would typically do is I could come in here, and I could share and invite developers And previous to this call, I invited him on his email address into my workspace here And so this is now a shared work space on that So he can join, and I think he’s going to come into the Google demo here And at some point in time, on the right, he’s going to show up And there he is He’s shown up He’s got a little red signal there, meaning that he’s not in the file up, but now he’s in the file And somewhere, he’s going to come into the code, and he’s going to start typing And oh, he’s going to say hi Hello, Steven Very friendly of you Would you like to code together? And he’s going to just type some code here or right after that line Put some code in the [INAUDIBLE] There we go And you can see his cursor right in the middle I could put my [? cursor ?] over it He’s going to start typing And so we’re actually working on the same file at the same time LOUIS GRAY: Mm-hmm TYLER JEWELL: If I were to go and issue the build, it would be a simultaneous build at the same time If I were to issue the run, it would be a simultaneous run LOUIS GRAY: And this type of collaboration is very familiar to those people who have used Google Docs as a suite You see who’s logged in You see exactly where their cursors are It’s cloud computing in a new approach TYLER JEWELL: That’s right That’s exactly right And this is a highly flexible sort of collaboration system here What we’re actually doing behind the scenes is we’re caching all the files that are in the project into a cache server And so he’s actually running on a separate cluster than I am And so we’re on two separate IDEs And so the cache server is synchronizing all of our changes And then when we do certain actions, it then synchronizes the saves back to the synchronization server across the different environments that’s there So there’s actually a lot of technology that goes into just making this work at this pace And this is what we provide today So we have a large range of languages that we support We have a large range of platforms that we support You’re going to see us get a lot more aggressive in our expansion– we’ve been slowly trickling things out– from here on out But going forward, we’re just on the verge of shipping an SDK And that SDK is actually going to allow the community to add their own languages, add their own frameworks, add their own platform as a service providers, add their own continuous integration servers

And so you can change the entire system through the SDK So we’ve found that we can only add one framework or language a month ourself And we can hope to bring others into it And we can make this a system that’s usable by all LOUIS GRAY: Excellent I really like the expansion when you talk about using the SDK as a platform and all these platforms as a service that you’re supporting It almost becomes that your platform is a new platform [LAUGHTER] TYLER JEWELL: Yeah LOUIS GRAY: We must go deeper So Addy, I definitely thank you for being so patient with us ADDY OSMANI: Not at all LOUIS GRAY: You got us excited about Codenvy in the first place, at least you did for me These guys have been excited about it for years I wanted to have your input, not just from a user perspective, which would be awesome, but really thinking from the world of Chrome where you live every day, when you take a look at the web platform and HTML development, CSS, JavaScript, really talk about how Codenvy has enabled that for you and for others like you ADDY OSMANI: Sure thing So I think there’s something really magical about being able to build web apps, mobile web apps, all sorts of applications and sites on the web using tools built on web technologies It’s sort of Inception-y in a way And I thought that was really neat But I spend a lot of time in using Git and GitHub every day in my workflow And that’s been something that’s been missing for me when working on Chrome OS I’ve been missing the ability to be able to open up a Repo, call on something someone else has worked on, just being able to file patches and easily preview them and maybe push them off to a different PaaS, or Heroku or somewhere else with App Engine and so on And Codenvy has really enabled me to do that And it hasn’t taken me that long to actually learn how to use this and integrate it into my workflow If I happen to be using a Pixel and if I perhaps don’t have my [INAUDIBLE], or I don’t need it, I can just easily hop on this and continue working on whatever project it was that I was working on other machines very, very easily The workspace is already there Any commits that I’ve made are just instantly accessible And the same collaborative workflow that the guys were showing a little bit earlier actually works with GitHub projects as well as Repos as well So if I happen to import in a GitHub project where a few of my friends have been contributing, and I want to be able to collaborate with those friends, it can instantly let me invite those people, all the techs who’s been contributing I can just send them out a Codenvy invite and get them into the project as well So we’re all collaborating inside the same workspace And I think there’s something really, really powerful about that So I actually wanted to show two really, really quick demos Is that cool? LOUIS GRAY: Yeah, absolutely We can definitely shift over to your screen And we’ll ask Peter in Studio to make sure that happens ADDY OSMANI: Awesome Let me know as soon as you can see my screen LOUIS GRAY: We’ve got it right now ADDY OSMANI: You’ve got it, awesome So as a modern web app developer, you probably spent a lot of time working with JavaScript, maybe GitHub, maybe things like App Engine, or Heroku So I’m going to talk a little bit about Heroku really quickly, and then I’ll talk a little bit more about my GitHub workflow with Codenvy So one of the nice things about the templates that they were talking about earlier is that I can just go and create a new project And if I wanted to, say, start work on a Ruby on Rails project, I can go and I can select the template here And in the PaaS section down below, I can just select Heroku Give this project a name Let’s call it Unicorn App or something And you can go and click Next I can select a template I’m hoping that they’re going to expand the templates or something in the future, but this works right now It’s actually pretty neat So I can just click on next It’ll optionally ask me about my application name and remote name I’m just going to skip those And then I can click Finish And what this normally scaffolds you out is actually a complete small Rails app that you can go start hacking on All of these are files you can actually go in and start editing So I’ve got my Index file here And if I wanted to go into [INAUDIBLE] Heroku So because Heroku was selected as the PaaS service, it’s actually gone and created me a new Heroku app So if I went over to my Heroku account, I would actually already see the app in there And I’d be able to preview what that looks like So this is just a very empty Heroku app If I wanted to push this current code base and scaffold it out over to Heroku, it’s really, really simple I just go to Get, Remote, Push And when that’s loaded up, I just click on Push And what normally happens is it opens up this little Progress box at the very bottom It just tells me that it’s successfully pushed to my Heroku app, and I then have the updated version of what was scaffolded out ready and previewed for me Now if I went in and I was to actually make any changes to this, I can easily go back into the Git menu I can commit any of my changes I can reset I can add, and do most of the things that I’m going to be using on a daily basis in here

Now moving on to talking a little bit more about Git and GitHub, if you happen to love working within your shell and you need access to that, Codenvy actually has its own shell So you can click on Shell inside the IDE So I’m just waiting for it to load up Can you guys see the shell? It’s this black screen LOUIS GRAY: It’s a five second delay on the screen ADDY OSMANI: OK LOUIS GRAY: There we go We see it now ADDY OSMANI: Anyway, while I’m waiting for the shell to load up, basically, what it lets you do is get access to a ton of commands that you can use on your local workspace So I’m just going to type in Help on this Can you guys see it yet? LOUIS GRAY: Yeah, we do see the shell terminal, absolutely ADDY OSMANI: Awesome, great So if you type in the Help command, you can actually see what’s supported inside this shell And you’ll see that there are a number of Git commands There are some other commands that can help you work with specific back ends and your general workflow inside a Codenvy app And I just felt that was really neat I hope that someday you’ll be able to do things like maybe use NPM and all sorts of other stuff in here But I’ll ask them about that a little bit later Another thing that I found really awesome was the ability to work with GitHub projects very, very simply So if I go back inside my IDE window, and I go to Projects, New, and then Import from GitHub– now what this is going to do is it’s going to go and basically fetch all the different organizations that I’m a part of on GitHub and all the different Repos that I might be a part of Just a list And I’m then able to actually select a specific organization or account So what I’m going to do is I’m going to select my own GitHub account And there’s a little application that I wanted to play around with in Codenvy called Angular Shopping Demo So I’m going to select Angular Shopping Demo and just Finish I think it’s going to ask me to close the current project One second It’s going, and it’s cloning this It’s going to ask me what type of project this is So it’s a JavaScript project I’m just going to click OK, here It’s then going to go And it’s going to ask me if I want to close the existing project and open up the new one that I just cloned And I can now go and actually start working on this app So one nice thing I noticed when I first used this was when you open up a mark up file, you can actually go to the Run menu and Show Preview to get a preview of your application without even having to go deploy it anywhere And I thought this was really neat So I can actually make changes and see them live on my screen without having to go really do anything So this is a preview of my application Just to show you that it’s working, I’m going to make a few, very minor [INAUDIBLE] [? reactions ?] in here But one problem I’ve got is this is actually just hosted on my master branch of my GitHub repository And I’d love to actually be able to share the URL for this with other people And so I want to be able to push this project up to GitHub pages Now if we go to another tab that I have open, this is a tab that’s got 404 in it, if you go over to it This is where I hope my GH pages version of this app would be But it’s not, because I haven’t actually pushed it there So what we’re going to do is we’re going to fix this We’re actually going to push the application into there And just for kicks, we’re also going to make some minor changes We’re going to change the H1 on this page to say Unicorn Shopping, instead And I’m going to then save that change It’ll show me a little dialogue that says, “Updating Content.” And then I go to the Git menu I’m just going to commit this change, just so I’ve got a record of it So made it more awesome I’m going to commit this change And I get a little status update about it And then what I’m going to do is I’m actually going to go to Git I’m going to click on Branches just take to take a look at what branches I’ve got available And I see that I do have a GitHub Pages branch available on my repository’s origin So what I’m going to do is I’m just going to go to Git, Remote, Push And I’m actually going to push from Master to my GItHub Pages Now what this is basically going to do is it’s going to take all the files that I’m working on at the moment in Master, and it’s just going to push them up to GitHub Pages There may be a little bit of latency when it comes to how soon that’s active, but I’m hopeful it’s not going to take too long So I’m just going to press Push on that

And it says that it successfully pushed it there Let’s see if the GitHub gods are with us today And what you should hopefully see, if there’s not too much latency on this call, is that my app has actually been pushed to GitHub Pages, and it’s working fine I’m going to buy myself some pants and some shirts and other things I can start interacting with this application a little bit more And everything works Now you might be wondering, what if I want to start using things like NPM modules in here, and I want to be able to interact with that? I haven’t really been able to figure out how to do that in the Codenvy workflow just yet I’m hoping that it’s something that may come sometime in the future, if it’s something, I guess, that’s popular enough or is a priority for the team But other than that, I’ve actually been able to work on a lot of different GitHub projects directly inside of Codenvy without having to go back to the command line or worry that I’m not in a complete environment where I’ve got access to the command line and all of that other stuff So I’m really happy with Codenvy, so far I know that they’ve put a lot of work into it over the past few years, and it’s only just going to get better over time So yeah, please check it out That’s my recommendation I think it’s amazing LOUIS GRAY: Well, thanks very much, Addy, for going through that Hopefully, you got a lot of feedback in terms of Codenvy– what he likes and some future enhancements it sounded like he was asking for TYLER JEWELL: We need to hire him [LAUGHTER] LOUIS GRAY: Well, he’s not available [LAUGHTER] LOUIS GRAY: We have a non-poaching clause here on GDL TYLER JEWELL: Ugh LOUIS GRAY: You can’t get any of the GDL employees But we might have you guys fill out a form on the way out That’s how it works As long as you want to work together, why not work at Google? TYLER JEWELL: Wow LOUIS GRAY: So we’ll talk about that after the show TYLER JEWELL: That’s awesome That was a great demo Thank you, Addy ADDY OSMANI: Thank you LOUIS GRAY: Yeah, Addy’s one of the real big experts in terms of the web platform and Chrome We always go to him for any of the tough questions So I’m glad he’s really found your program and platform valuable So we have a number of questions in Moderator And I know both you and Steven are going to go through those and really talk about not only what Codenvy can already do, but possible directions that it can go And I know many different people have their own favorite coding environment, their own languages that they need for their platforms And so, not surprisingly, that’s where a lot of these questions come from So we’ll start at the top with one of the more exciting languages to come out of late, which is the Dart platform And the first question comes from a guy named Chill Fox, in Australia, if that is his real name, and he asks, will Codenvy get support for Dart? [LAUGHTER] TYLER JEWELL: Well first, inside of Codenvy, we’ve got a lot of people there And I’ve made the proclamation that I believe in five years that Dart will actually supplant JavaScript I think it’s the modularity of it I think the fact that you can have a compile phase that runs inside of a VM– there’s just a lot of enterprise benefits that come from that So we believe that We will get Dart support Now, the way that we’re going to add Dart, and this is also the same that goes true for Go support as well, is we’re going to publish the SDK We’re also going to publish with that all of our examples We will have ported PHP, Python, Ruby, and all of the Java components to that And we’re going to then rally the community around making use of that SDK And we’ll then come up with some sort of governance model where we can then bring those languages and frameworks in And I actually think Dart is one of the earlier ones that needs to happen Because it would be exploitable with this type of architecture, partly because it’s not just Dart, the language, but there’s also Dart to JS So there’s a compilation phase, which makes it really suitable for a build-based system that’s there, whether it’s Maven or we go with a different sort of system Who knows on that? But then on the runtime, we can take a Chromium environment, actually run that local, execute your Dart app, so that you don’t have to leave the browser all together, even though it’s a full, enterprise-oriented mulit-dependency Dart application, if you will So that’s going to be our path to that In terms of time frames on this, the SDK is going into beta next month We’re going to have that be a controlled beta We’ve got about a dozenish partners who are working with us on that And then it will definitely be published before the end of this year So I think we need a couple more months, and then we can get optics on exactly when some of these important languages are going to show up LOUIS GRAY: Cool So you say next month Next month is actually pretty quick TYLER JEWELL: What’s today’s date? [LAUGHTER] LOUIS GRAY: We’re still in June TYLER JEWELL: Oh, OK LOUIS GRAY: So sometime in July is what I’m hearing TYLER JEWELL: Yeah LOUIS GRAY: Even with the July 4 holiday?

TYLER JEWELL: Well, we do our engineering in Europe LOUIS GRAY: So they don’t celebrate our independence much? TYLER JEWELL: They don’t understand LOUIS GRAY: OK Because I know often here at Google, things start to slow down next week And we’ll keep track of that Very cool So you talked about Dart You talked about Go Obviously, those are two languages we talk a lot about on GDL The Dartisans community is exceptionally passionate And I like your projection of Dart taking over where JavaScript is in not too long I know a lot of people here will be happy about that And we really hear the advantages of that every day So it’s good to hear you’re talking about it There’s another question around your actual design Some people like the IDE Some think it needs a little bit of a bump up What can you talk about in terms of the look and feel of the IDE for Codenvy today? STEVEN LE MEUR: Maybe the first point is that it’s a tool for developers So it must feel something like robust, solid And I think it’s delivered this message And maybe the point is that we should make it a little more modern So that’s definitely something that we will work on But we should take the time to deliver something great to our users And for sure, we will work with all our communities to get their feedback on what they like, what they don’t like, and what we can improve So I think it will be a collaborative way to do the work on the next version of the design for Codenvy LOUIS GRAY: So you mentioned where the development takes place But there’s another type of ware that I’m curious about with Codenvy Do you make Codenvy with Codenvy? TYLER JEWELL: We do LOUIS GRAY: You do? TYLER JEWELL: Yes LOUIS GRAY: So how do you compile to itself– TYLER JEWELL: It’s painful LOUIS GRAY: –withouth going into an infinite loop? TYLER JEWELL: OK, now you’re just geeking out, all right? So it’s painful, because Codenvy is actually built with GWT LOUIS GRAY: Mm-hmm TYLER JEWELL: And for those of you who’s used GWT, there is dev mode and there’s non-dev mode with GWT And if you’re in non-dev mode with GWT, it’s about 11 minutes to compile your application And that’s certainly not a workable fashion that was there So if you’re in dev mode, you get incremental compilation, which is a workable answer And so we had to do a lot of work to basically take the dev mode, which only works in Eclipse, and make that workable in our environment there And so it’s Maven-based We actually support Maven multi-module, so that you can decompose all the work to different team members So we’ve got that work decomposed in that We use a Maven multi-module project The builds run on a local Codenvy instance that the public doesn’t have access to It’s in our environment that’s there And then the output– and we have the ability to route output to different acceptance servers, staging servers, and whatnot, there But we recognized, when we decided that we were going to make this into a commercial entity and that it was going to stop being a garage project, that we were never going to get real global adoption unless we could go out and tell the world that we were using it– eating our own dog food, as well, or drinking our own champagne, as the French like to say it LOUIS GRAY: Uh-huh, much better TYLER JEWELL: Yeah, and so last fall, we told the engineers, well, come summer, you’ve got to use it So they put the things in there that they needed to make it work LOUIS GRAY: Godd, I hoped that was the answer So there are some questions around the mobile presence I think we talked about coding on mobile, and we addressed that somewhat earlier Is there anything else you want to say, in terms of mobile presence, for Codenvy? TYLER JEWELL: When they say mobile presence, are they talking about accessibility through a mobile device or development of mobile apps? LOUIS GRAY: You’ll have to ask Daniel from Tacoma All he says is, what mobile presence will Codenvy have? TYLER JEWELL: OK, well I’ll talk about the accessibility over mobile And then I’m going to let Steven talk about using Codenvy to build mobile applications LOUIS GRAY: Excellent TYLER JEWELL: So in terms of accessibility, because the product there’s two things– we do a lot of right clicking inside the product, and the product is structured a certain way It’s not really touch ready So we need to have a special browser So we use Puffin web browser on that We’re certified on that And that gives you a simulated right click that you can use on that And so we have a lot of apps who are built that way on that Also, you can actually access and create apps on an iPhone It’s not the best experience in the world But there is that accessibility It’s not shaped for the iPhone screen resolution, but it is navigatable in that regard So that’s on the accessibility front, and I think we’ll just incrementally improve that for different screen shapes and different input devices over time In terms of using Codenvy to build mobile apps, we’ve got

two things that we’re working on– Trigger and the Google project STEVEN LE MEUR: Yeah So we have some few things in our roadmaps on making it possible to build an application on a [? formal ?] [INAUDIBLE] directly from Codenvy So we will do that We will add some cool stuff to demo later We already demoed during Google I/O But in fact, the idea is for an Android application, for example, you will be able to develop, to get access to the Android SDK directly from Codenvy And you will be able to deploy on the emulator directly on the web, and also directly on the device And we will put something, a QR code that you will scan, and it will install the APK on your device So there’s a few things that are coming and that are already in our roadmaps LOUIS GRAY: Great, fantastic Now, we actually talked about a couple of the questions, already here One of the questions is around running as an offline IDE I believe we addressed that There’s another question around the limitations and stipulations applying to Open Source Premium Account, and what languages and libraries will be available at launch? Additionally, what language and library support will we see in the future? TYLER JEWELL: So the way our pricing works on the public cloud is that it’s free for unlimited number of developers, as long as your projects are public and you’re OK using shared build and run queues If you need to have private projects or a dedicated queue, which gives you guaranteed access, then you have to be on a premium plan Our premium plans all have the same functionality, but they are different prices based upon whether you’re a commercial entity, an individual, or an open source project We give it away for free to open source projects And the conditions there are that you’ve got at least three committers and that the project has been accessible for at least six months there So we’re looking for that it’s an established project on that In terms of what sort of libraries are available, any library through Maven Central is currently available You can also upload your own libraries There’s a technique that you can use where you can basically upload files into your project space, and then those files are locally accessible as a library And that actually works for Java type projects and other projects as well on that And then did I capture all that? What’s coming in the future? LOUIS GRAY: Yes TYLER JEWELL: There’s a lot coming in the future There’s some stuff that we’re going to ship very, very shortly here, which is going to allow onboarding of projects and libraries of many thousands of types And it’s going to be really interesting We should have that before the end of summer LOUIS GRAY: Very cool And I think that would possibly make the UI more complex So I’m looking forward to seeing how you handle that TYLER JEWELL: It’s going to be less complex LOUIS GRAY: Less complex? More virtualization TYLER JEWELL: No, not more virtualization Actually, if you think about it, the UI we have today actually makes it more complex than it needs to be LOUIS GRAY: Yeah, I think that was some of the feedback TYLER JEWELL: Well, we have to make it more modern But today, to get to this point, you’ve got to log in You’ve got to have credentials You’ve got to then create a project You’ve got to know what kind of project you want to create And if you think about it, most people start off and say, I want to do an AngularJS app on Ruby on Rails So that should be their starting point, and we’ll make that their starting point, as opposed to the other stuff LOUIS GRAY: There was a question here from London– one of your counterparts, Addy– asking about deploying to a local virtual machine Are they able to do that? TYLER JEWELL: Deploying to a local, virtual– LOUIS GRAY: A local VM Am I able to deploy to my local VM? TYLER JEWELL: Oh, OK So I think the feature that would allow for that is either an FTP based deployment mechanism or an SSH That’s like a secure shell and some sort of remote VM We don’t have either those capabilities today It’s a very, very frequently and commonly requested feature that’s there So I think that we’ve been pretty good about adding things that are commonly requested, and I think we’ll get to that By the way, for those who are interested, there is a user voice site right off of our Home page Click Feedback We religiously watch all the features and the votes that are there So click Add Your Own Request, vote, vote, vote We love it We listen to it We obsess about it LOUIS GRAY: Well, it sounds like listening to customers is a good idea And it sounds like you’re doing that There’s another comment over on the YouTube side from G Hussain Chinoy Asking about Gradle support Is there Gradle support or only Maven? TYLER JEWELL: There’s only Maven, but before the end of the summer, we’ll have both Ant and Gradle as well Those will be both native build support LOUIS GRAY: And Jorge, also on YouTube, is asking, what is the bandwidth recommended to use the application?

TYLER JEWELL: Recommended? I don’t think we have actual specs, but it’s going to run just fine on like a sub megabit connection LOUIS GRAY: Submegabit? TYLER JEWELL: Submegabit LOUIS GRAY: Excellent TYLER JEWELL: Yeah LOUIS GRAY: OK I don’t want to try that out, because I don’t want to have submegabit But I believe you TYLER JEWELL: I think the only time you get into a couple of issues is that we use WebSocket technology to handle communications back and forth And so if you have a very intermittent connection, it’s possible that the editor loses its connection to the server, and the code is not automatically saved So what we’ll do to resolve that is we’ll allow people to go back into a non-performant mode, like a default mode, where every time you have to manually save And if it doesn’t save, then you know you’ve got a problem sort of thing LOUIS GRAY: Now you brought up your presentation at Google I/O. Marlon Jones, over on the YouTube side is asking about another introduction that we did a Google I/O, which was the Google Play Games API He wants to know if it’s possible to use the new Google Play Games API with Codenvy? TYLER JEWELL: Do you know? I don’t even know anything about the API STEVEN LE MEUR: Yeah, this is an API for all games on the [INAUDIBLE] and iOS and [INAUDIBLE] TYLER JEWELL: Oh STEVEN LE MEUR: So probably, we will, after the features that we will deliver next month, we will be able to leverage the power of these APIs through our factory So you want to make your project with these APIs, it will be very easy for the onboarding So it will be super easy to make your mobile applications based on these APIs TYLER JEWELL: Do you know what the format of the API? LOUIS GRAY: We have other GDL events that talk about Google Play Games API So definitely you’ll want to check those out TYLER JEWELL: OK LOUIS GRAY: It’s very, very new We’re really excited about it There’s a question on YouTube about game development and other development, so I think a more broad question What type of applications do you see users today building on Codenvy? What’s the most typical type of application people make? TYLER JEWELL: Yeah, so I think the most common things that people are developing are web apps that will ultimately operate in an online PaaS That’s the most common And then the second thing, a lot of API development So people use it to create the API, publish the API, and make that API accessible that’s there Those are the two most commonly requested mobile app A lot of people want to use the browser to create mobile apps LOUIS GRAY: Excellent Now Addy, I know we still have you there, and we’re coming close to the end of our allotted hour There’s a little bit of background noise, so I know we had to turn down your volume a little bit So we’ll be sensitive to that Is there anything you wanted to ask the team while they’re here, before we close? ADDY OSMANI: Sure, so I had a few questions that I know that some web app developers are going to be really interested in [INAUDIBLE] So I’m really excited about things like AngularJS, Polymer, Backbone, Ember and so on Can developers in those communities hope to see templates that will help them kick start off, in terms of development of those types of projects, inside Codenvy in the future? TYLER JEWELL: Yeah, I think we just hired, essentially, a program manager, much the way that Google has their own program managers for working with the developer community And the biggest part of the job of the program manager is basically creating these little miniature, let’s call them template communities that are out there so that you can quickly get started with pretty much any type of project that you want to get started with on that I think we’ve done a very poor job of delivering on the popular technologies that are out there, even though Codenvy today is capable of working with them We just make you go through the laborious process of getting it set up And we want to just remove all that out of the way So in many ways, we think that codenvy.com, the site, will become a listing of all the technologies that developers are using Which one do you want to get coding with? Let’s get coding with that now LOUIS GRAY: Excellent ADDY OSMANI: That’s awesome, and I know that there are probably developers out there that’ll be interested, or very willing, at least, to create some of these templates for you, if you’re open to community submissions Another question that I had was around cloud-based device or browser testing So if I create a web app inside Codenvy, and I want to then be able to go and see how it looks inside other browsers, maybe using something like BrowserStack or [? SophosLabs ?] and so on, is that something that you’ve considered, just making it easy to launch your current app inside something else? Or is it something you’d consider? TYLER JEWELL: How interesting that you brought that up I think halfway through, we talked about how we’ve got a dozen partners who are signed up to working in our beta SDK

[? SophosLabs ?] is one So the vision there is that very same sort of plug-in Plug-in, cross browser testing, maybe possibly even automatically generate the Selenium script for that automatic submission that’s there So today, it’s code, build, test for the individual But then there’s some of these broader workflows that you can incorporate in ADDY OSMANI: That’s fantastic TYLER JEWELL: We’ve got some other great ones that are coming, too LOUIS GRAY: It almost sounds like we need to bring you back in here not too long from now for part two So what I want to do is thank you guys for coming in It’s been an excellent session Really taught us a lot Hopefully, Addy, it wasn’t too late for you So I appreciate your jumping in ADDY OSMANI: Not at all LOUIS GRAY:And joining us, remotely, from the UK This really is the power of being global in live interaction with our users Thank you for all of you who left comments on YouTube and Moderator I would encourage everybody who hasn’t known enough about Codenvy so far to go to codenvy.com to find out more Sign up, give it a kick, and I’d love to see more people using Chrome OS and other strong platforms to be coding directly on the web So thanks again, both Tyler and Steven, for joining me You can join us every single day at developers.google.com/live for more GDL content And follow us on YouTube at Google Developers See you soon [SWISHING] [MUSIC PLAYING]