008 JSJ V8 and Dart with Lars Bak and Kasper Lund




Javascript Jabber show

Summary: Panel Lars Bak Kasper Lund AJ O'Neal (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Rails Summer Camp) Joachim Larsen (g+ github website) Discussion Dart V8 Virtual Machines Strongtalk Java OOVM - Embedded Smalltalk Beta Google V8 is implemented in C++ Who's behind Dart JIT Adaptive compiler Node.js V8 source code Palm phones based on V8 NPM Mobile considerations such as resources and speed Strict mode the "with" statement deleting a property is "dog slow" Why Dart? Maintaining big applications in JavaScript is hard JS closure compiler More declarative Startup time Peak performance Snapshots 10x faster startup Dartium Dart to Javascript translator Is Google anti-JavaScript? (Not really) Dart vs CoffeeScript non-local return Scripting and Web development gives you instant gratification VM's targeting the native language will almost always be faster Native Client Go-lang Picks Bloggers (AJ) Class-Central.com (Joachim) Memrise (Joachim) This is Your Life Podcast (Chuck) Fitbit (Chuck) dartlang.org (Lars) Silent Sleep for Android (Kasper) Transcript CHUCK: Hey everybody and welcome to Episode 7 of the JavaScript Jabber podcast. This week on our panel, we have some guests. But before I introduce them, let’s introduce the regulars; we have AJ O'Neal. AJ: Yo, yo, yo, coming at you live from the Orem, Utah. CHUCK: [Chuckles] We also have Joachim Larsen. JOACHIM: Hey. CHUCK: And I'm Charles Max Wood from teachmetocode.com. Our guests this week are Lars Bak and Kasper Lund from Denmark. LARS: That’s correct. Thank you for inviting us. CHUCK: They’ve worked on a few small projects like the Dart programming language and the V8. What is it? A virtual machine or JavaScript implementation? LARS: Are you referring to Dart or V8? CHUCK: V8. LARS:  V8 is just a small JavaScript engine that makes JavaScript code sort of reasonably fast. CHUCK: Okay. All right. Are the two connected in anyway? I'm a little curious. LARS:  Absolutely not. Well, to be honest, we first did V8 and given our experience with JavaScript, we decided to do Dart; so that’s sort of related. CHUCK: Okay. KASPER: But they are not related on the implementation side. CHUCK: Okay. JOACHIM: So I mean you guys built the whole career basically on building great VMs is that right? How did you guys started on that? LARS: Oh, that goes all the way back to ’86 you were probably not born at that point in time, but that’s when IE started building virtual machines for program called BETA, which was sort of a  success— [Crosstalk] KASPER: It was Google’s first project missing the whole thing where Google’s programs are always in beta. Anyway, sorry go ahead. LARS: [Laughs] That was funny. It was the BETA programming language; that was a success up of the -- 67 that was my first virtual machine. And after that, I got a taste for it. It’s very interesting to just tune the black box making a programming language run fast. And then I joined afterwards a project at Sun Microsystems research lab. And then that was at that point the most interesting implementation project I could find where they came up with very interesting ideas to make dynamic languages run really fast, and I came up with adaptive compilations, polymorphic and stuff like that. That's like when you do fast implementations today. And then I went to a start up in Silicon Valley where with did a system called StrongTalk which is a variant of Smalltalk with optional steady types. And then Java came along and we decided in the startup to spend most of our time doing a Java implementation. JOACHIM: So just a quick question – sorry – so Strong talk development was basically geared towards mobile and embedded platforms. Is that right? LARS: That’s not true. That’s four projects later; that was a Smalltalk system called OOVM.