Тёмный
Metosin
Metosin
Metosin
Подписаться
Software development is first and foremost a human process.

Organisers of ClojuTRE.
Creative Computation - Jack Rusher
21:01
4 года назад
Reduxed - Simon Perepelitsa
19:32
4 года назад
Комментарии
@mahkhi7154
@mahkhi7154 3 дня назад
Functional Programming, Like Minix, is Great in Theory. In Practise it Fails.
@mahkhi7154
@mahkhi7154 3 дня назад
Why Isn't Functional Programming the Norm? Functional Programming is Based on a Simple Executive. e.g. The Reduction of Lists. e.t.c. Imperative Programming, the Executive is More Complicated. its Procedural and More Complicated. An Idiot can mis-understand Imperative, Procedural Languages Executive. However, an Intelligent individual can Understand Imperative, Procedural Languages Executive. Functional Programming: Simple Executive? Whilst Great in Theory. In Practice, the Software You Build with it Mushrooms to an ENORMOUS, Un-Comprehendible Size. Imperative Programming, Procedural: Whilst the Executive is More Complicated. The Software You Build with it, DOESN'T Mushroom to an Un-Comprehendible Size. The Software You Build with it, is More Understandable. This isn't the case with Functional Programming. Ask your Gods God. Your Brain Cant Understand a Higher Species than Yourself.
@wlcrutch
@wlcrutch 6 дней назад
Why isn’t it the norm? Because it shouldn’t be.
@23bcx
@23bcx 8 дней назад
The real killer app that makes a language long term is the teaching material. The only reason functional programing is what it is with all the () is because SICP got people on Scheme and therefore lisp. The main reason python is #1 is because it is what is taught in CS101 in most universities, C++ & Java are big b/c one of those is usally CS201.
@nopens
@nopens 13 дней назад
A neat excurse intro history but come on. You answered why in the beginning: it's complicated. And at the same time there was no answer at all. "fp is not popular because oop took the spotlight", is that it?
@paradox_695
@paradox_695 16 дней назад
FP sure has its use cases but it being the norm??! NO!
@yaksher
@yaksher 18 дней назад
@6:50 Tbh, Swift seems to be a pretty great programming language these days lol.
@KaiSong-vv7wh
@KaiSong-vv7wh 19 дней назад
because it is easier to think top-down in responsibilities and actions (criss-cross) rather than in stream-lining (one-way).
@WDGKuurama
@WDGKuurama 21 день назад
"Object orientation"
@idkwhattonamethisshti
@idkwhattonamethisshti 23 дня назад
Cause its dumb
@WolfieDad67
@WolfieDad67 23 дня назад
I believe C#(Microsoft in general) is moving fully towards "Functional". I've watched many Zoran Horvat videos and can see the progressive morphing of DotNet into Functional. I'm starting to tinker with F# as well. Just my opinion, and I suggest watching Zoran videos if you're a C# person.
@andrewclarke8163
@andrewclarke8163 28 дней назад
In the first ~15 mins, he kept bringing up that "if X language (that has exclusivity or a killer app) was functional, everyone would use it". I strongly disagree. Maybe it ends up being true, but only if the fact that it's not OO doesn't push people away from adopting the language. As a junior dev in particular, I generally tended to avoid the unfamiliar. If Swift or ObjC were functional, maybe devs with a OOP background would look at it and think "No thanks, I'mma stick to Android or multi-platform options". Rails manages to draw so many people into Ruby in part because Ruby is so damn easy to learn. If JS was functional, would it have still beaten out Flash? Would yet another alternative have cropped up? You can't just make such a fundamental change and assume that the result would remain the same just because it was helped by external factors.
@75hilmar
@75hilmar Месяц назад
"C with classes" doesn't sound like a serious naming attempt, so people didn't get it as a thing. So when he came out with C++ people thought: "Finally a _real_ system" Imagine talking to your colleagues and somebody says: "I am using C with classes now."
@talk2thoran
@talk2thoran Месяц назад
If one has a function with multiple arguments, then by decomposing a function with multiple arguments into multiple functions with one argument each, it has the effect of being able to then compose those functions into a series of chainable functions, thereby increasing re-use and decreasing the complexity of each function, making each easier to reason about.
@privatesocialhandle
@privatesocialhandle Месяц назад
I really don't understand the compromison here. OOP is all about data (program state) and the functions are typically also about data (for the most part). Hence you can also call OOP as "data-oriented" programming. Classes are nothing but abstract models of real-world entities (their attributes and operations). The point is, OOP = I'm all about data. Functional programming on the other hand is all about behavior (functions). In fact, most of the time data is immutable in functional programming and the same input will always yield the same output. The use case of functional programming is exploring data for analytical or mathematical purposes (AI models, data statistics, etc.) So, functional and OOP are not in the same category. One is designed for data, and one designed for behavior. Maybe this whole time the presentation was taking about Procedural Programming rather functional programming? That would make more sense, because procedural programming is also about data (believe it or not) but with the emphasis that code is organized in procedures rather than objects (with the difference that is in procedures, it contain behavior only and the associated data lives outside of the procedure in comparison to objects where data and behaviors are "encapsulated" into a single unit called an "object".) I could be wrong but that's my take on it.
@officialraylong
@officialraylong Месяц назад
Great talk! I think emphasizing the projectional AST editor would have helped some of the questions.
@themfu
@themfu Месяц назад
Very well presented, really enjoyed the pace and content.
@berndeckenfels
@berndeckenfels Месяц назад
15:46 I disagree that the web platform is a guaranteed success. If it where not as accessible it could easily be replaced (just like Flash or Silverlight). JS did dominate because it was approachable and also OO (DOM) is a major aspect.
@seapearl3175
@seapearl3175 Месяц назад
I wonder if we could take the best of both worlds and bake it into a very strict language that could achieve anything of both worlds though.
@Nihandel
@Nihandel Месяц назад
good thing != popular thing. a lot of suff is loved by many that aren't competent enough to understand what is really good or not. javascript is popular because everyone study it as "beginner" language, it's easy and so on. it' one of the most horrible language ever concived. but a ton of people will defend it. because they know that thing.
@pookiepats
@pookiepats Месяц назад
That’s not why, JS is popular because it’s inescapable and STILL the ONLY language that can natively manipulate the DOM-not to mention web browsers are ubiquitous.
@fb-gu2er
@fb-gu2er Месяц назад
Because computers are procedural by nature. Assembly, the direct representation of binary code, it’s procedural. We can abstract away and program functionally, but at the end of the day, programming is procedural in nature
@DTux5249
@DTux5249 2 месяца назад
Because trying to bend over backwards to avoid state on what is fundamentally a state machine is a bit much. That being said, it's not really an either or situation. Knowing a bit of both is rather useful.
@josersleal
@josersleal 2 месяца назад
but later all apps need state and FP becomes crap!!!! just a decoration in the mental state of people who think it makes them better than others to use FP. it does not work in the real world in isoation = sugar = the king goes naked.
@LouisWaweru
@LouisWaweru 2 месяца назад
In case you’re looking for the Stroustrup interview, thats an O not the number zero, and the title is “The Design of C++ , lecture by Bjarne Stroustrup.”
@mariobroselli3642
@mariobroselli3642 2 месяца назад
Why the Elm Guys dont substitute Scala with OcaML
@mariobroselli3642
@mariobroselli3642 2 месяца назад
Imagine If Java would have been Haskell😮😮😮
@davidmurphy563
@davidmurphy563 3 месяца назад
Because it's shit
@harrypewpew901
@harrypewpew901 3 месяца назад
Because ots stupid for big projects
@donwinston
@donwinston 3 месяца назад
Functional languages are "purist" or more informatively "extremist". More acceptable languages would allow you to code using OO, functional, imperative, and declarative as you see fit for a particular problem. Scala tries to do that. I think it does it quite well.
@7th_CAV_Trooper
@7th_CAV_Trooper 3 месяца назад
Functional isn't the norm because programmers can't do math anymore. Functional isn't the kind of thing they teach at two week boot camps.
@nimeshpoudel8277
@nimeshpoudel8277 3 месяца назад
Python's popularity and code both are same slow and steady. No hate
@hibob841
@hibob841 3 месяца назад
Because the best ideas it has to offer have been ported to numerous modern languages/frameworks, which still allow and support other paradigms in parallel. Why tie one hand behind your back?
@throatwobblermangrove7508
@throatwobblermangrove7508 3 месяца назад
You can do some sort of encapsulation in C though. Static functions and anonymous structs. Anonymous structs don't stop you from actually "touching" the contents, but neither does python, if you are persistent(or rather _Classname__persistent). Basically, create .h file, define a struct there with all needed fields, create init/deinit functions(alloc with good ol' memset/free), create all the functions that do actual job, make all other implementation detail functions static. Compile .c file without linking, than link it with the project and bam. You have some sort of object, constructor, destructor, 'methods'. Inheritance would be a bit more difficult though.
@wideraam
@wideraam 3 месяца назад
😌
@edgeeffect
@edgeeffect 3 месяца назад
I've always struggled with Lisp... I suppose it's the parenthesis, but I've always looked at Lisp code and wished it looked more like something else. ????? It's an interesting thought that if Brendan Eich had got his own way and made what became JS a dialect of Lisp would I have managed to get over my foibles and would happily be coding away in Lisp today.
@cg219
@cg219 3 месяца назад
Whats wrong with CSS ??
@jsmythib
@jsmythib 3 месяца назад
Semantics, Compilers and Frameworks, oh my! I am still in Kansas. Super huge, neat stuff tho :)
@typicalhog
@typicalhog 4 месяца назад
Rust is the future.
@Dyras.
@Dyras. 4 месяца назад
seems like java created a hype train too strong
@matt.loupe.
@matt.loupe. 4 месяца назад
44 years later and the best piece of software is still visicalc / excel
@MrChelovek68
@MrChelovek68 4 месяца назад
And programming languages exists for only one tging-not for human study machine language, it exists for make lightly transfer human thinking process in machine code. That's why exists compilers.
@MrChelovek68
@MrChelovek68 3 месяца назад
​ @lepidoptera9337 It's funny how some people trump degrees. You see, old man, most people with degrees are downright dumb, like everywhere else. skills, knowledge, yes there is. They lack logic, passion and just brains. And in fact, there are only a few researchers among this rabble, as everywhere else) Well, as a person involved in the sciences, you must understand that it is not authority that decides, but adequate knowledge that reflects reality. That's why it's so funny to me)))) so I leave you alone with your picture of the world. P.S. Well, as a physicist, you may or may not be familiar with algebras: vectors, tensors and simpler group objects, for example) and again objects and the connections between them. Along the way, you also don't really understand what you're trumping with. And keep your basement) and I also taught. So, like any room phd, you go through the forest with your assumptions)
@MrChelovek68
@MrChelovek68 3 месяца назад
I wonder where my messages go, old man? ​ @lepidoptera9337
@MrChelovek68
@MrChelovek68 4 месяца назад
Why not norm? It's not obvious. That's all. Every man and woman thinking by objects. But functional style of programmig very cool. I mean synthesis of oop and functional in ddd. Awesome technic
@lepidoptera9337
@lepidoptera9337 3 месяца назад
Nobody thinks in objects. Western language speakers think in subject, verb, object, adjectives and adverbs, which are used in complete sentences to establish relationships between two or more parts, something that OOP does not. But that's not even the important part. The important part is the question "What solution is your problem really asking for?" and the answer to that is rarely "objects".
@MrChelovek68
@MrChelovek68 3 месяца назад
@@lepidoptera9337 You're probably not familiar with math at all. Everything is an object and the relations between them - the concept of "algebra" is to the rescue. I don't even want to sort out the rest of the nonsense. Like being an idiot without understanding, be it
@lepidoptera9337
@lepidoptera9337 3 месяца назад
@@MrChelovek68 That's not algebra, kid. That's category theory. Please get a life. I am a physics PhD, by the way, who has also taught computer science at university. So much for your idea that I don't have an idea about math. Now let me give you some more attention. Your basement is very cold. :-)
@MrChelovek68
@MrChelovek68 3 месяца назад
@@lepidoptera9337 ну тогда, мне жаль твоих студентов,granny. а до степеней,я например наслышан об овощах,пишущих статейки с помощью chatgpt. думаешь,это дерьмо,кроме академической степени что то из себя представляет?) а что до теории категорий, ну ты херово вообще понимаешь что такое алгебра) видишь ли,phd, мы снова возвращаемся к понятию "объект" и "соотношения между объектами". и если спроецироовать это на мышление любого из людей,мы поо прежнему мыслим исключительно объектами. в общем то,каждый ходит в магазин,чтобы купить некоторый необходимый объект,строит объект-жилье из объектов строительных материалов. я не phd, но я тоже преподавал, и преподавал действительно адекватную дисциплину. и в отличие от тебя,мне пришлось не просто нести фигню,а преподносить информацию на понятном языке. ну а поскольку я всю жизнь с удовольствием изучаю всякое, в том числе и профессионально и умею рефлексировать над изучаемым, то я знаю о чем говорю. и, если честно, большинство со степенью -откровенные идиоты. skills, knowledge, yes there is. They lack logic, passion and just brains. And in fact, there are only a few researchers among this rabble, as everywhere else) Well, as a person involved in the sciences, you must understand that it is not authority that decides, but adequate knowledge that reflects reality. That's why it's so funny to me)))) so I leave you alone with your picture of the world. Reality often breaks such castles in the air very painfully.
@MrChelovek68
@MrChelovek68 3 месяца назад
@@lepidoptera9337 It's funny how some people trump degrees. You see, my rainbow friend, most of the people with degrees are outright idiots, just like everywhere else. skills, knowledge, yes there is. They lack logic, passion and just brains. And in fact, there are only a few researchers among this rabble, as everywhere else) Well, as a person involved in the sciences, you must understand that it is not authority that decides, but adequate knowledge that reflects reality. That's why it's so funny to me)))) so I leave you alone with your picture of the world. Reality often breaks such castles in the air very painfully. P.S. Well, as a physicist, you may or may not be familiar with algebras: vectors, tensors and simpler group objects, for example) and again objects and the connections between them. Along the way, you also don't really understand what you're trumping with. And keep your basement) and I also taught. So, like any room phd, you go through the forest with your assumptions, Granny)
@timeWaster76
@timeWaster76 4 месяца назад
Clearly the industry has been working with none functional programing for decades
@mrbigberd
@mrbigberd 4 месяца назад
Rust and JS together are particularly responsible for pushing FP as an OOP alternative.
@edwardonsax9919
@edwardonsax9919 5 месяцев назад
The speaker didn't mention that before Microsoft came out with C# they tried to do something called J++.
@youarebeingfooled
@youarebeingfooled 5 месяцев назад
A lot of these seems like hamfisting the square peg through the round hole, especially the "C++ definitely not success because of OOP" when OOP was the reason it exists instead of just using C. Sure, adding more features to C with Classes is nice, but there is this immediate assumption that is the cause and not it having gradual and consistent developments while also being a relatively good language. The golang section makes me think the speaker has spent very little time with golang. Golang works with a lot of the inheritance style, but technically its not inheritance because the the details of how it functions, but the entire point of that is to enable inheritance behavior. And his explanation of the function swapping as a function of a specific struct vs just a specific function really seems to demonstrate this. Speaker also seems to not be consistent in what he means with OOP - in some cases it seems he is asserting its when you have the encapsulation of private fields, and in other cases it seems he means its the extendibility of other classes. Lastly - favor composition over inheritance isn't the motto because inheritance is bad, but because it does a lot (and in many cases you can only extend one class). Inheritance has its time and place and it is good - its just silly to reach for that tool if composition will do that trick just as well for the particular problem at hand.
@Srulio
@Srulio 5 месяцев назад
Thanks for an excellent review of history of software development. Object Orientation won the acceptance wars more than 20 years ago. Scalability and concurrency in functional programming is very impressive. But the new proposal is up against incumbency and resistance to change.
@cosmojg
@cosmojg 6 месяцев назад
5:20 All of these projects are now dead or proprietary 😭
@bc24us
@bc24us 6 месяцев назад
The elitism of the FP community has a lot to blame. Hardcore functional programmers think it's all monads, and for example the Erlang/Elixir and Orleans community seems isolated, even though the actor models seems a great fit for distributed systems. But even Erlang community development was arrested due to pay walled training among others. Elixir seems to be doing better but I still hear too often wild claims like people saying you can implement s production ready map reduce with the standard library, like shuffling or distributed fault tolerance is trivial. Also, Spark and Flink are profoundly functional as they based on functional constructs and rely on lack of side effects for fault tolerance, but they are treated as something separate. Too much purity in a community is alienating. And in the end what I need is a language that I can use to get a job, sorry for sounding like a poor dummy
@lepidoptera9337
@lepidoptera9337 3 месяца назад
Those are just excuses. FP has some serious performance issues besides the purist mindset that plagues it overall. Most problems CAN NOT be solved without side effects. If you have to deal with GByte size data then your computer's memory is not "infinite for all practical purposes". Unless you want to reduce your 5.6GHz $1000 CPU to the equivalent of a slightly faster 32bit microcontroller for $5.60 you CAN NOT tolerate cache misses (I do have a $5.60 microcontroller here on my table right now. It has an L1-cache and if I program it in a way that it generates cache misses it's only slightly faster than a 60 cents 8 bitter.). The algorithms have to stay local in memory, which means that in high performance applications YOU have to control memory layout and not your compiler. FP ignores all of this for the sake of purity. It's like the guy who expects great love making from a woman who has never been with a guy before. That ain't going to happen, either.
@EvgeniiNeumerzhitckii
@EvgeniiNeumerzhitckii 6 месяцев назад
Good review. I think OOP is the norm because most programmers like to over enginere and overcomplicate things. Also, we are easily influence by other programmers, and rather use "good practices" without critically thinking.