14 ms·
The Soft Side of Software
- zengid 9y agoI know it's easy (and fun) to hate on Microsoft, but damn do they employ some great engineers/researchers: Erik Meijer, Anders Hejlsberg, Simon Peyton Jones, etc..
- redtuesday 9y agoYeah, when Leslie Lamport was mentioned a few days ago I thought to myself that MS has many, many more employees that I know from reading/watching in videos compared to apple, google, ibm etc.
- nickpsecurity 9y agoIt's Microsoft Research, specifically, that pulls in most of this great talent. Let's not forget the VMS's people run by Cutler that made the kernel, the Xbox hypervisor, and some other stuff. Add Butler Lampson if we're talking CompSci people. The teams behind Dafny, VerveOS, Ironclad, VCC, etc are way ahead of most language-based safety or formal verification in terms of cost/benefit analysis: https://en.wikipedia.org/wiki/Butler_Lampson https://en.wikipedia.org/wiki/Butler_Lampson http://rise4fun.com/ http://rise4fun.com/
- cwyers 9y agoOf the three parent listed, I think two (Meijer and Hejlsberg) were both DevDiv. Cutler was OS before moving to Xbox of all things, and I think he's at Azure now? It's certainly not only MSR hiring these guys.
- nickpsecurity 9y agoI should've broken up the comment a bit as it looks like I meant all MS Research as you said. I meant to say something along the lines of (1) MS Research is doing a lot of great stuff with some examples and (2) Butler Lampson should've been on the parent's list of top talent at Microsoft. Appreciate you telling me about the mistake, though. :)
- cwyers 9y agoI don't disagree with this, but Meijer left Microsoft a few years ago, I think he's at Facebook now.
- interfixus 9y agoHejlsberg did amazing work on Turbo Pascal/Delphi, which were basically his personal inventions. He then crossed over, and got himself lost in the C#/.net universe - technology some of us wouldn't touch with the proverbial ten foot pole, or one of any length, for that matter. Considering that his (and my) compatriots Stroustrup and Lerdorf did C++ and PHP repsectively, a national apology might sort of be in order.
- ktRolster 9y agoHe also did solid work in the C#/.net world.
- interfixus 9y agoYes, I know. I just hugely preferred his earlier work.
- UK-AL 9y agoHe wasn't just involved in c#, he was the lead on c#.
- lindbergh 9y agoErik Meijer a very engaging person! If I recall correctly, he spearheaded the Linq project for C# back in mid-2000s. In particular, I suggest his Haskell lectures to anyone interesting by theoretical aspects of functional programming. https://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1 https://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Fun...
- chubot 9y agoI just read over "Confessions of a used programming language salesman" [1] again. I didn't quite get it the first time around, but now I get it. Good read. It is about the road from research to production, culminating in LINQ. [1] https://scholar.google.com/scholar?cluster=17368623574878046313&hl=en&as_sdt=0,5&sciodt=0,5 https://scholar.google.com/scholar?cluster=17368623574878046...
- zengid 9y agoCan anyone help me interpret the type signature Meijer used in his programming question? "Given a generic type: Cont r a = (a -> r) -> r Prove that this type forms a monad." I'm reading it as 'Container' passed 'r' and 'a' performs 'a' to 'r' which returns 'r'. (I'm guessing on verbs here).. I've never come across a good way to read these type signatures.
- bjl 9y agoI read this as 'A cont of type r a is a function that, given a function of type a to r, returns an r'.
- hdhzy 9y agoCont refers to the continuation monad. For details see http://www.haskellforall.com/2012/12/the-continuation-monad.html http://www.haskellforall.com/2012/12/the-continuation-monad....
- wz1000 9y agoCont stands for Continuation. A continuation basically represents a 'suspended' computation with an intermediate result of type 'a' and final result of type 'r' type Cont r a = (a -> r) -> r Cont is a type constructor that takes two type arguments, r and a. This means that Cont r a can always be substituted by (a -> r) -> r. For example, Cont String Int is equivalent to (Int -> String) -> String (a -> r) is the type of a function from a to r. For example, Int -> Bool is the type of a function from Int to Bool. (a -> r) -> r is the type of a function that takes a function from (a -> r) as its argument and returns an r. So Cont String Int takes a function from Int to String as its argument and finally returns a String. http://www.haskellforall.com/2012/12/the-continuation-monad.html http://www.haskellforall.com/2012/12/the-continuation-monad.... https://begriffs.com/posts/2015-06-03-haskell-continuations.html https://begriffs.com/posts/2015-06-03-haskell-continuations....
- PopsiclePete 9y agoMy eyes glazed over as they usually do when trying to grok Haskell, but is that somehow related to partial computation and partial functions?
- riwsky 9y agoIn case people were wondering, the haskell stdlib answer to his interview question is at https://hackage.haskell.org/package/transformers-0.5.2.0/docs/src/Control.Monad.Trans.Cont.html#ContT https://hackage.haskell.org/package/transformers-0.5.2.0/doc... (ContT is a generalized form which lets people run, for example, computations that involve IO). Though explaining it is still the fun part.
- tempodox 9y ago> ... prove that this type forms a monad. How do I “prove” a type forms a monad? I only have to implement `lift` and `bind` with the correct behavior, and I have a monadic interface. Did I prove then that the type forms a monad?
- MarisaKirisame 9y agoAssuming "correct behavior" mean no bottom, and follow monad law, yes.
- gumby 9y agoWhile I agree with this point: > Good developers understand that they can't do everything, and they know how to leverage tools as prosthetics for their brains. it can also become a distracting fetish.