Description

Happy new year! It's hard to believe that it's 2010. To start off the new year, how about some Beckman and Meijer?

You recently learned about Dr. Beckman's perspective on
covariance and contravariance in physics. Dr. Meijer found this topic to be incredibly interesting and the two geniuses decided to take a stab at identifying the relationship between co/contra in one domain, physics, and another, programming. What will
they discover at the whiteboards?

Tune in to find out in this three part series (this is part 2) with two of Channel 9's and Microsoft's most famous and respected software practitioners. See the first part
here. The third part has not been filmed yet You should watch part one first. Here, the two scientists dig really deep, so put on your thinking caps, Niners.

Not that Brian should ever need to prove his worth, but I did smile at his Michelangelo-esc perfect circle at the beginning. Kudos Brian. I'd like to add my humble vote to those calling for a follow up part - although I appreciate these guys are super busy
( I mean we're still waiting to hear news of Brian's [not] Timewarp .NET secret project <wink> )

Simply Amazing once again. Give you two weeks like this and you'd have a theory of everything Anyways looking forward to part 3 of 2 to this series. Thanks again Erik, Brian and Charles; I don't even watch regular TV anymore because of you guys.

This is wonderful stuff. I agree with the other commenter who said that they no longer watch TV since discovering this type of material on channel 9; me too!

This really shows the similarity between applied mathematics and programming. What I hadn't realised until relatively recently (since I started looking at functional programming) was that with FP there is a strong relationship between programming and Pure
maths. Reasoning about programs in algebraic form (Equational Reasoning) is something I find amazing. I also find it amazing that I didn't realise you could do this until so recently .... when doing Electrical Engineering before moving into IT (going back
10 years now), I always wrote programs imperatively, so when writing simulations there was a great impedance mismatch between what I was trying to model and the code I had to write to do it; much more than you would expect for scenarios where I was just trying
to move from the continuous mathematical model to a discrete model.

As an aside Brian, are you familiar with the idea's in Wolfram's A New Kind of Science. Where he talks about the fundamental building blocks of the universe being better modelled with executing computations (programs) rather than with high level mathematics.
And that the high level mathematics of "physical laws" was basically a short cut to describe behaviour that emerged from the complex interactions of the simple computations as they executed over time. So something like the speed of light is just a emergent property
of very simple computations (in the mathematical sense) interacting wildly over time. I'm probably butchering his hypothesis here, but hopefully he isn't reading this

Anyway that would suggest that executing computations is more fundamental than the current laws of physics. Do you have any views on that? To me this sounds beautiful, and beguilingly simple - though some of the computations when they execute are irriducibile,
so it only gets us so far with trying to infer things from them, you end up having to run the simulation to see what happens... which is what the universe does, but it means we can't predict the outcome directly from knowing the simple laws.

Something about that theory smells right to me, but I'm not a physicist.

Yes, Parmenio, there are plenty of people looking to model fundamental processes in physics as computations. Here's just one paper that I found in a few seconds of Binging :
http://arxiv.org/abs/quant-ph/0312067

In general, arxiv.org is a fantastic place to watch for new stuff coming down the pike.

it really strikes a chord with be because i love when im able to relate stuff i [kinda] know (co/contravarience in programming) with stuff i dont know (physics)

if wonder if you can do this with other stuff, various monads and such. loved the state monad stuff, would love to see more

@bigbag, dude show some fucking respect, maybe you'll learn something. this stuff is not nonsense just its because to hard for you to understand. its hard stuff, but nonsense it aint. microsoft is very very lucky to have both brian and eric, not the other
way around.

I agree, I would love to see more monad content and how it relates to F# or C# which I understand better than haskell right now because I use them in my day to day job. Although, I am making great efforts to understand haskell better because it is
such a beautiful language.

@bigbad I really hate that you did not like the content in this video but you must agree it's wonderful that Erik and Brain would share their knowledge with us for free. I loved the content and I think this is the knowledge that will change the world.
(Well at least the software development world) I just can't believe that most of these concepts have been around for decades if not centuries and we are just now starting to harness the power of things such as function synthesis in widely used languages.

Channel 9 has that effect [channeling away from other media] Ocasionally Infoq also has some interesting content although I find every other video from there is about project management methods, the other half about the latest fad and then the last impossible
tenth is about good stuff like Scala, Haskell, Erlang, C#, etc.

I like functional programming because of its foundational elegance: application/abstraction; combination/simplification. It is also nice to see how nature can be modelled and simulated via Lindenmayer systems and cellular-automata, essentially also rewrite
systems. Wolfram is always talking about these rewrite systems as a means to create complex state (or behavior, over time) from simple (initial) state and simple rules. That means simple rules and simple state can compose to create surprisingly complex state
considering the initial state and rewrite rules. It would be fun to treat the rewrite rules as state itself subjected to secondary rewrite rules (two layers of recursion:
recursive rewrites of the initial stateand recursive rewrites of the state of the rewrite rules (the rewrite rules, as state).

I also remember Erik mentioning denotational semantics or maybe operational semantics as a means to model and reason about imperative programs. I tend to think of imperative programming as world where every state change generates a new world
that becomes the current world and the old world is lost. In an informal way it looks like time: the now is here and the future and the past elsewhere. It seems to me that one might take on the view as imperative programming as extreme functional programming
in the sense that it rewrites the whole world and throws away the original but maybe I'm way off course here.

Not appropos: That user (which shall be unnamed) signed up just to make that post: stamped and filed as party pooper.

Right on, to all. We will do more, much more, of this type of content in '10. Wow... '10!!!!

Erik/Brian, thank you. Thank you! What a year '09 was and what '10 promises to be. The fact that Brian and Erik even work for a corporation is awesome. The fact that said corp is MS, well, I'm very happy and I'll continue to believe this even if I am laid
off and no, Vic can't hire me. I'll just move to Hana.

I certainly enjoy every show with Brain and most with Erik (I really like all FP - but some E2E are a bit boring - sorry). This is one of the best videos I watch around here - keep going - we want more math