What an excellent presentation! His use of c# through the layers is eloquent, not to mention building your own pipes and inter-process channel with proxies is a challenge in itself.
Those locks weren't related to the piping(interprocess). They were locks within the particular instance of the application for things like tracking message number. So the pipe still goes unblocked but the application jumps back and forth between messages as needed.
It's functional but not very elegant. It honestly looks very dirty and hackish but he did achieve what he was after which is inter-process localization/communication. It's more of a hey look what C# can do rather than a bulletproof solution. I would never use this in production.
Expression Trees achieve a lot with a little bit of code? I dunno about that. It is powerful but even the smallest thing requires many lines to express. I've written assembly that has more brevity.
what weird syntax conventions. Multiple nested scopes with no wrapping braces, spaces between invokers and argument parens... Clearly the mark of insanity.
C# is great but the problem is .NET You dont have control. Yes you can do a lot but why. Learn a real language, a language that Microsoft actually uses them self.
@Felipe Gomesdepending of what you call "the real stuff". I'm one of "them" for some years, and C# is certainly vastly prevalent in some major areas, e.g. cloud services (that is: almost all the backend we have is C#-first).
What an excellent presentation! His use of c# through the layers is eloquent, not to mention building your own pipes and inter-process channel with proxies is a challenge in itself.
True, but let's not forget that's not just any random Joe, that's Joe Albahari, the guy wrote the book on multithreading, among other things.
Excellent presentation, one of best seen recently
Excellent presentation. A lot to take in.
To be totally honest, i lost him after minute 20:00
lol (:)
Joe is a rockstar.
8:00 "this is what people did before we had wcf"
Where can we download the source code stipulated in the presentation?
*Starts playing a song in C#*
guy knows stuff
I am probably dumb, but how is this lock free when I counted at least 5 distinct locks?
He explains this at 23:23, he uses a few C# locks (which are fast), but no interprocess mutex locks (which are very slow)
Those locks weren't related to the piping(interprocess). They were locks within the particular instance of the application for things like tracking message number. So the pipe still goes unblocked but the application jumps back and forth between messages as needed.
He could probably drop those instance locks by using a ConcurrentDictionary.
@@mdo That in turn use locks =)
It's functional but not very elegant. It honestly looks very dirty and hackish but he did achieve what he was after which is inter-process localization/communication. It's more of a hey look what C# can do rather than a bulletproof solution. I would never use this in production.
you're my idol, joe.
Expression Trees achieve a lot with a little bit of code?
I dunno about that. It is powerful but even the smallest thing requires many lines to express. I've written assembly that has more brevity.
Thanks
what weird syntax conventions.
Multiple nested scopes with no wrapping braces, spaces between invokers and argument parens...
Clearly the mark of insanity.
C# is great but the problem is .NET You dont have control. Yes you can do a lot but why. Learn a real language, a language that Microsoft actually uses them self.
"Learn a real language", gatekeeping is strong with this one...
This is what "real language" programmers were saying while Google was building desktop equivalent web applications using JAVASCRIPT
Hold on... A language that Microsoft uses themselves... That would be... hmmm
Okay I give up, it is C# :D
That's true for literally every high level langauge kek
@Felipe Gomesdepending of what you call "the real stuff". I'm one of "them" for some years, and C# is certainly vastly prevalent in some major areas, e.g. cloud services (that is: almost all the backend we have is C#-first).
C# is dying language.