Tim Lord for Slashdot: Adrian, with the hybrid group, you are using the GO language through a couple of different means, couple of different paths to control robots, can you talk about that?
Adrian Zankich from The Hybrid Group: Yes so, GO is actually a very awesome language for writing connected applications. So, most people think of GO as a language for writing web applications and a lot of the things that make GO awesome for writing web applications make it really great for writing connected applications for talking to devices. Concurrency, statically linked binaries, it’s a very strongly tight compiled language so you find a huge class of bugs right at compile time and you can easily deploy to hardware devices and really take advantage of reading multiple sensor data concurrently. It's incredibly fast and also more importantly its garbage collected.
Now, a lot of people think that since you're running the software on devices, you need hard real time, all that sort of stuff, and actually most of the times you don't because what you're doing is reading sensor information, multiple sensors at the same time and then just sending that off somewhere, to Bluetooth, some M2m protocol like MQTT or CoAP and it's being recorded in your database somewhere. So for that having a couple of millisecond GC pause really has no bearing at all in your application. And if your application is so time sensitive that you need that I really want to know what you're working on and because that's a really good problem to have. So GO is a really great language for running on these small devices for a lot of different reasons.
Adrian: Oh yes.
Slashdot: Cylon.js, talk about that a little bit.
Slashdot: Speaking of platforms, people suddenly developing let’s say, they are developing things that are going run remote from their desktops. You’re using over here Sphero, in Sphero what I can really think of is toys, but you're using this as somewhat more of a platform?
Adrian: Yeah, so a Sphero robotic ball is fantastic. So you know, a way to get started with hardware programming. There's no wires, there's no soldering, you open it up from the box, charge it up, shake it a few times to turn it on, connect the Bluetooth to your computer and you can start hacking right away. So it’s a very easy way to get started writing physical applications. And a lot of people think, okay, so what's the practical use of learning how to program a Sphero? Well the practical use is, it's really fun and it gets you engaged in learning how to program with hardware. So it's got a motor in it, an accelerometer, RGB LED, can roll around, detect collision, change colors, you can do a lot of fun things. Then we start getting more advanced, you can hook up cameras with open TV, track the balls, make them do formations, do a lot of things ,and it's a very great starting point to getting to hardware programming because you know... How much more non-threatening can you get than a Sphero robot? These things are so much fun. I've been programming these for years and I love them, they are so much fun, they are great.
Slashdot: Between the two different platforms that you just described as far as open source-centric ways to program robots, if you were to advise someone to start learning to control robots with one of these, which one would you pick and why?
Slashdot: And either one, you could start moving your Spheros around?
Adrian: Oh yeah, and so we have full support for things like Spheros, Raspberry Pi, Beaglebone Black, Intel Edison, different types of drones, Arduinos, lead motions et cetera. So, between toys, drones, more hacker boards, you’ve got the whole spectrum covered and they all have integrated APIs so you can actually write part of your application in GOBOT, part of your application in Cylon.js and communicate through each other. So you don't have to choose just one language, it's a polyglot world, just do it all and program your whole world together.
Slashdot: One thing I'm always curious about is when you’re programming a hardware like this, people are going to come with their own moves, their own recipes. Is there sort of a community of things that are using these languages, so we could download and upload for that matter, would they come up, is there a good sharing mechanism?
Adrian: Yes, so a great one is GitHub obviously, that's where sort of the world's open source exists now, but also a great platform is called Hackster.io where a lot of hardware platforms have sort of front pages that you can write your hacker projects and upload it to this website and tag different types of hardware platforms and really tap into that whole community. And people post step by step instructions on how they build their projects or whatever, where it is schematics, code, everything that you need. So that's a really great place to be a part of, see what other people are doing and just get really involved. So you know between places like GitHub to host your source code, to places like Hackster.io, to actually post your complete project, there are some really great communities out there, people who just want to learn and have fun and connect with other people.