Cross posted from channel9.msdn.c.... Erik Meijer discusses functional programming languages, academic versus real-world application of functional programming languages and himself.
Пікірлер: 85
@utubekade5 жыл бұрын
this guy really knows how to explain a concept
@Веник-ы1ь9 жыл бұрын
A very good introduction on what functional programming is!
@kelleydv11 жыл бұрын
15:50 for functional programming
@aoeu2563 жыл бұрын
I know this is old, but Koka language made it easier to bridge the gap between imperative and purely functional languages without using Monads that are hard to combine together (it had native support for fused effects).
@MariuszZaleski138 жыл бұрын
So, honesty in programming leads to great opportunities and possibility to progress and evolve. It does exactly this same when honesty is applied in life. What a show and what a Life. I love it :-)
@jasonofthel33t11 жыл бұрын
24:25 for monads
@pewpewpew86134 жыл бұрын
how honest is the head function in the haskell? it has a type head :: [a] -> a but it will throw an exception if you pass empty list.
@JavnaGolina12 жыл бұрын
I don't like using brain power, but I still program quite a bit more functionally than your average programmer because I find it much easier. a map is much easier than a for loop. a recursive function is much easier than a while loop. It's just more declarative - often mutating variables has nothing to do with the problem I am solving. Also part of the issue is if you're looking for an algorithm you're almost always going to find it in an imperative form.
@Canonall4 жыл бұрын
I feel you can really see how his perspective on programming in general and specifically functional programming, but lead him to develop reactive extensions. Very enjoyable talk!
@epiphoney4 жыл бұрын
Powershell uses lambdas or anonymous functions all the time, but they're called "script blocks". They can be passed around like functions in Haskell.
@JeffSmith0310 жыл бұрын
So many times I wanted to see what he just circled or added to answer a question, but the camera was left only on him and eventually he erased it without ever showing us. Other than that, I think this was quite helpful to get a better idea what functional is about.
@signify2189 жыл бұрын
Excellent video. Thank you so much for uploading.
@WateryIce543218 жыл бұрын
After watching a few of these videos it is really confusing to just hear an unplanned, abstract "discussion". I would love to hear a presentation where Mr Meijer actually plans everything out in advance.
@FlashManinSpace9 жыл бұрын
Mathematics was never meant to modify the real world at run time!
@mateja1766 жыл бұрын
mathematics is the foundation for the real world
@Mephistel5 жыл бұрын
@@mateja176 The real world is the foundation for mathematics
@smwnl90722 жыл бұрын
Mathematics is a derivative of the real world.
@chrissherlock17483 күн бұрын
@@smwnl9072the real world is a derivative of the mathematics
@jpphoton8 жыл бұрын
Lay it down boys! Really excellent insight into FP. Thanks indeed.
@lichen4205 жыл бұрын
That tye-dye is off the hiznook. Very well done.
@lucasa87102 жыл бұрын
you can encapsulate your business rules in a pure world and then implement it (UI, DB, Log, Exceptions, etc.) in a unpure side-effectfull world
@charvakpatel9628 жыл бұрын
You should have explained this in your C9 lectures.
@jcfbell300111 жыл бұрын
can you elaborate? perhaps an example?
@TerellB939 жыл бұрын
Can anyone tell me what is meant by the following notation? (x,x)
@paligamy939 жыл бұрын
Terell Brown Let's say f(3) returns true. If it's a pure function, it will always return true no matter what if you use the argument 3. So you can now assign it to a constant (he uses x) so if you're trying to find a point in a graph and the x is at f(3) and y is at f(3) (f(3), f(3)) then you can logically replace the f(3) with the constant (x, x) hope that makes things clearer
@FlashManinSpace9 жыл бұрын
Terell Brown if x,x are of the same value it is pure. Else it is a impure. With side effects states can never be pure.
@MasthaX4 жыл бұрын
First time I see monads actually explained practically without too much mathy fuzz.
@1videoshow9 жыл бұрын
Why pure? It must work. And you must be able to rely on it. Ada is an example of a secure programming language used in critical environments where side-effects can cause the loss of life, if it happens. (It can happened also in Ada.) BUT, it is more un-likely, this begins with the syntax and layout of the program, then with the compiler, then with the runtime, etc.
@eloycaballo8 жыл бұрын
This guy knows what functional programming is and how to take advantage of its concepts to apply them to imperative PL, and why impurity is in fact practical. He propouses and inversion of concepts in new PL, instead of difining purity by default which is seldom used in practical programming should be define the inpurity by default and purity explicitly. This guy has all clear!!!
@DannyMeister10 жыл бұрын
+moofymoo How'd that go?
@ashleygillman31049 жыл бұрын
At 20:50 it looks like he wrote the c word
@moofymoo11 жыл бұрын
56:37 - challenge accepted
@mateja1766 жыл бұрын
Let's say we have a program composed out of a 100 functions. 99 of those functions are pure whereas only 1 is impure. The whole program now becomes impure. However that 1 impure function doesn't undermine the value of the 99 pure functions. 99 parts of a 100 part puzzle, put together, still mean something.
@DisfigurmentOfUs9 жыл бұрын
Thank You very much
@kevingrieger12 жыл бұрын
Here is the *real* problem with functional programming. Most programmers suck at their jobs. They either can't or won't use their brains to their full potential. Functional programming requires quite a bit more brain power than imperative programming, and that conflicts with alot of programmers mentality. Functional programming requires you to think about the big picture and scale down from there. Imperative programming allows for the opposite, and it just so happens the opposite is easier.
@aoeu2565 жыл бұрын
Imperative programming requires more brain power because everything is contextual in stateful programs, while pure functions are context-free.
@yepyeniceri7 жыл бұрын
11:24 :D
@klokanRsk11 жыл бұрын
GWT in action :-) Nice video BTW
@johnvoid52946 жыл бұрын
as Erik said that there is no midpoint, i should avoid Scala and go all the way to Haskell!
@r0by12 жыл бұрын
"vegetarian butcher"; LOL.
@MasthaX4 жыл бұрын
Dutch jokes :)
@ASmallTurnip678 жыл бұрын
Great talk by Erik, but seriously man, you need to improve your camera work...
@mxo32123 жыл бұрын
come on some one make that NIRVANA after 8 years GO, RUST, JULIA which...
@baka_geddy3 жыл бұрын
LISP variant will be the closest one imho.
@richtourist6 жыл бұрын
POINT THE CAMERA AT THE EXAMPLE (please)
@mxo32123 жыл бұрын
LOL
@leodf111 жыл бұрын
Well everyone had high hopes, but now we know the Japanese 5th gen programme went nowhere. And Prolog was a non starter too. What I hated about Prolog was that you basically had/have to trick it into doing what you want.
@VirtualPlasticity11 жыл бұрын
I agree that Java and C# are impure languages, but to say that nobody is making money out of them is ridiculous!
@adorinadorin11 ай бұрын
There was only statement ab9ut amount of m9ney - more or less.
@Kanishvarab12 жыл бұрын
"denmark" -.-
@kahnfatman2 жыл бұрын
A Kind Error is by no means a nice error :D
@TheLawrence0511 жыл бұрын
I feel so stupid !
@TheLawrence0511 жыл бұрын
By watching a video in which i'm not understanding any single word
@DisfigurmentOfUs9 жыл бұрын
So the only benefit from purity is easy concurrency?
@lucassaldyt32279 жыл бұрын
+Pavel V. Also a lack of run-time errors, less complex code, faster production times etc.
@michaelwayneterry8 жыл бұрын
+Marethyu Sky This is all true, unless your system is required to have side-effects.
@deadmarshal Жыл бұрын
Clean > Haskell
@1videoshow9 жыл бұрын
The target is "catch the errors" and "handle them correctly". But often nobody knows whats going on really within a program in the real environment, right? You can't prove a program right, mathematically.
@1videoshow9 жыл бұрын
Apple Swift Language has fixed this problem with so called Optionals. You can have "optional int's", which means it can be an int or nothing.
@osmarpixuri9 жыл бұрын
1videoshow java 8 has it too.
@bingloveskoki8 жыл бұрын
These Optionals are just syntactic sugar for Haskells Maybe Type: enum Maybe { case Just(T) case Nothing }
@SMOKE31045 жыл бұрын
Nirvana.equal("Rust")
@SudeepMakwana11 жыл бұрын
agreed 100 % haha
@ochgottnochma10 жыл бұрын
Fight Extremism, Boycot Functional Programmers!
@insertoyouroemail9 жыл бұрын
ochgottnochma Functional Programming Master Race!
@crimsun71869 жыл бұрын
+ochgottnochma I'd rather boycott JVM based languages.
9 жыл бұрын
Why he just uses this kind of t shirt?
@1videoshow9 жыл бұрын
Joao Vitor Its a hippy shirt ;)
@binshuo9 жыл бұрын
+João Vitor R Neto I've never seen Eric Meijer wear a shirt with less than 4 colors in any of his videos.
@xybersurfer10 жыл бұрын
this explanation is flawed
@eudisd4 жыл бұрын
Please don't wear that shirt again
@humble_integrity4 жыл бұрын
the interviewer is annoying. i wonder how erik was so calm in his explanations
@tinkeringengr10 жыл бұрын
What a terrible explanation! An unbelievable amount of hand waving with poorly defined terms while the interviewer nods his head in ignorance. Given the context I suppose its unfair to be so harsh, but this was almost a complete waste of my time.
@tinkeringengr10 жыл бұрын
LOL, 40 minutes into the video they finally define the concepts that they have been discussing.....and the one guy was a professor? Its amazing to me how they can have almost an hour conversation in ambiguity before they decide to consolidate the mental model. And they call themselves computer scientists?
@XemSmex10 жыл бұрын
Jonathan Valiente I have the feeling this 'computer scientists' are self claimed experts which are only able to talk about this things in this high abstract manner but have absolutely no competence when it comes to practical use. While I understand what Erik is explaining this all feels like it's nice to look at but do some real work please.
@jebberjeb10 жыл бұрын
XemsDoom Uh, are you implying en.wikipedia.org/wiki/Erik_Meijer_(computer_scientist) isn't an authority in the field of programming languages?
@brenthagany200810 жыл бұрын
It's almost as if the entire internet isn't continually recreated to specifically meet your specific momentary needs! Unconscionable!
@tinkeringengr9 жыл бұрын
Brent Hagany Of course its not tailored to my needs, but I would still expect someone who is communicating information (especially an expert in the field of computation) to define the appropriate terms in a manner relevant to the presentation. ***** A student doesn't need a plethera of credentials to evaluate when information is poorly presented. Critisim allows for progression to those who are capable of recieving it.