I'll go against the grain here. This interview was not exactly set up in a neutral way, but nonetheless Lars Bak did make a lot of excellent points about integers, dynamic checking, tree shaking, etc. He was respectful enough IMO. A heated debate is more interesting than one where everybody agrees. That Anders has done some great work does not mean that Lars is not allowed to give a counterpoint. A technical discussion should be about tech, not about status as perceived by a certain audience. Not to mention that Lars has also done amazing work!
FYI, the way they determine the calories is they literally burn the food in a special food burner chamber and they measure the heat output and subtract out the energy of the gas used to burn it.
Very interesting video. I do wonder about one thing: you do not say anything about what happens inside an actor, except that it is deterministic. Since interacting actors can be indeterministic and a single actor cannot be indeterministic, a single actor cannot be made out of other actors internally. This raises the question: with what granularity should you model your system with actors? You could do it very fine grained, where each individual number and data structure is an actor, but this leads to massive undesirable indeterminism. On the other hand, you don't want to model your entire system as one single actor, because that is not scalable. If you modeled your system with X amount of actors, but suddenly we get Y>X cores, then you need to redesign your system to take advantage of them, which is also not desirable. What we want is a way to get deterministic results but a variable amount of parallelism. It seems that the actor model does not really say anything about this, though perhaps something can be built on top of it?
Nice interview; it's a pity that it's so short. He has done some very interesting research on typed scheme and contracts. I hope we'll see some of those results appear in future versions of Javascript.
Actually, you can have a List that is both covariant and contravariant by giving it two type parameters: List<out Read, in Write>. Then you use the right type for each method. For example Add(Write elem) and list.First has type Read. Now you can pass a List<string,string> to a method that reads objects from that list, and pass a List<object,object> to a method that writes strings to that list.
Very good work! I use Python Tools a lot and it is awesome
Any plans to infer generic types too? That way you'd have the example with the function foo that just returns its argument infer the string methods for foo("bar") and the integer methods for foo(42), even if you have both in the same file. Languages like F# already infer types that way, perhaps their algorithm could be adapted.
Cool stuff. It would be awesome if you could really go into the workings of the garbage collector in one episode. I mean explaining what the GC algorithm is doing on the whiteboard with pseudo code.
Comments
GoingNative 12: C++ at Build 2012, Inside Profile Guided Optimization
Clever bit about instrumenting using a spanning tree!
Anders Hejlsberg and Lars Bak: TypeScript, JavaScript, and Dart
I'll go against the grain here. This interview was not exactly set up in a neutral way, but nonetheless Lars Bak did make a lot of excellent points about integers, dynamic checking, tree shaking, etc. He was respectful enough IMO. A heated debate is more interesting than one where everybody agrees. That Anders has done some great work does not mean that Lars is not allowed to give a counterpoint. A technical discussion should be about tech, not about status as perceived by a certain audience. Not to mention that Lars has also done amazing work!
The Lambda Calculus, General Term Rewriting and Food Nutrition
FYI, the way they determine the calories is they literally burn the food in a special food burner chamber and they measure the heat output and subtract out the energy of the gas used to burn it.
Hewitt, Meijer and Szyperski: The Actor Model (everything you wanted to know, but were afraid to ask)
Very interesting video. I do wonder about one thing: you do not say anything about what happens inside an actor, except that it is deterministic. Since interacting actors can be indeterministic and a single actor cannot be indeterministic, a single actor cannot be made out of other actors internally. This raises the question: with what granularity should you model your system with actors? You could do it very fine grained, where each individual number and data structure is an actor, but this leads to massive undesirable indeterminism. On the other hand, you don't want to model your entire system as one single actor, because that is not scalable. If you modeled your system with X amount of actors, but suddenly we get Y>X cores, then you need to redesign your system to take advantage of them, which is also not desirable. What we want is a way to get deterministic results but a variable amount of parallelism. It seems that the actor model does not really say anything about this, though perhaps something can be built on top of it?
Defrag: So You Just Got a New PC
While I'm still watching the video I just have to say: Ninite!!!
Simon Peyton-Jones and John Hughes - It's Raining Haskell
Two awesome guys. Is SPJ's keynote going to be posted online?
SPLASH 2011: Sam Tobin-Hochstadt - JavaScript Modules
Nice interview; it's a pity that it's so short. He has done some very interesting research on typed scheme and contracts. I hope we'll see some of those results appear in future versions of Javascript.
SPLASH 2011: William Cook - Objects, Orc, Hybrid Partial Evaluation, and More
If mr. Cook is reading this: how does multiple dispatch and predicate dispatch fit in the picture of OOP/ADT?
.NET 4.5: BCL Team - Improvements and Evolution
Actually, you can have a List that is both covariant and contravariant by giving it two type parameters: List<out Read, in Write>. Then you use the right type for each method. For example Add(Write elem) and list.First has type Read. Now you can pass a List<string,string> to a method that reads objects from that list, and pass a List<object,object> to a method that writes strings to that list.
SPLASH 2011: Gilad Bracha - Dart, Newspeak, and More
Great!
I wonder if there's any chance to have Erik and Gilad in an interview together about Dart and whatever else comes up...
Announcing Python Tools for Visual Studio 1.1 Alpha
Very good work! I use Python Tools a lot and it is awesome
Any plans to infer generic types too? That way you'd have the example with the function foo that just returns its argument infer the string methods for foo("bar") and the integer methods for foo(42), even if you have both in the same file. Languages like F# already infer types that way, perhaps their algorithm could be adapted.
CLR 4.5: Maoni Stephens - Server Background GC
Cool stuff. It would be awesome if you could really go into the workings of the garbage collector in one episode. I mean explaining what the GC algorithm is doing on the whiteboard with pseudo code.