Japanese language trainer program
13:51
the Unity job system
18:21
4 жыл бұрын
OpenGL - introduction
4:27
4 жыл бұрын
OpenGL - textures
12:51
4 жыл бұрын
OpenGL - create a window
9:35
4 жыл бұрын
OpenGL - draw a triangle
21:02
4 жыл бұрын
OpenGL - camera movement
12:34
4 жыл бұрын
OpenGL - deferred rendering
9:42
4 жыл бұрын
OpenGL - normal maps
13:23
4 жыл бұрын
OpenGL - instancing
8:07
4 жыл бұрын
OpenGL - geometry shaders
13:01
4 жыл бұрын
Пікірлер
@hgbugalou
@hgbugalou 18 сағат бұрын
I have tried so many times to use OOP but it never makes sense to me versus procedural. Granted I'm not a pro, I just do stuff for my own purposes, but I still completely agree with you.
@muesique
@muesique Күн бұрын
UNIX is the Shell! It's a core component. You may argue to make a fresh Shell, OK. If you don't like it I guess you have to use Windoze or Mac. Video in short: I don't like the Shell, I don't want to read manual pages, I think it's too complicated! Fine! Use a proper language (Python Shell, tclsh...) or do something about it! I don't like large Shell skrips either but I use tcl or awk instead or...
@yifangren8570
@yifangren8570 4 күн бұрын
I wonder if it is the programming principle garbage or just the example they chose is not appropriate.
@psychotictendency
@psychotictendency 4 күн бұрын
Misleading title and definitely a ridiculous example to label entire OOP as embarrasing. A followup question, how would you design a game of your choice without OOP?
@codecaine
@codecaine 5 күн бұрын
@gustavstreicher4867
@gustavstreicher4867 6 күн бұрын
The problem with OOP is that it is taugh as if encapsulation is synonymous with security. Encapsulatin does NOT protect your code, it just provides a way to communicate your intent. Once you understand this you'll realize that OOP has some use-cases, but you can completely leave it out of the vast majority of your code.
@hamesparde9888
@hamesparde9888 6 күн бұрын
I've been using lambda functions inside other functions for code that is just going to be part of the enclosing function. This way I can write much longer functions than I would normally feel comfortable doing, but still have some separation and protection of the data in the enclosing function. It is nice noting have to jump around a file (or files) too much to find a function.
@RyanHarris77
@RyanHarris77 7 күн бұрын
I learned OOP on Java back in the mid-2000s at CSU. I ended up working at a college, and today their introductory programming language for CS is Python. I don’t really see much about Java these days.
@Seltyk
@Seltyk 9 күн бұрын
Rust comes pretty close to the use block. All blocks in Rust are expressions that create a scope and all expressions evaluate to something, so the sub-scope and return behaviors are checked off. Sub-scopes do have access to their parent scopes, however, so the parameter-specific behavior is out of the question. You can still have that effect though, via the method you yourself mentioned: make a separate function. That said, I do think Rust gets like 1/4 of a point for this because all functions and closures automatically implement one of three traits (similar to typeclasses in Haskell) which tells you about the function's operation. This use block you suggest would be equivalent to calling a function bound to the Fn trait, which means it can be called repeatedly without mutating state or consuming/deallocating data. You could theoretically write code using type generic syntax which enforces this Fn bound and makes a use block... maybe.
@lucaxtshotting2378
@lucaxtshotting2378 10 күн бұрын
after watching these videos... I think a lot of programmers are just untalented. Simple as that. The dunning krugger effect is what's pushing them to write such programs. Talented programmers make a healthy use of classes.
@lucaxtshotting2378
@lucaxtshotting2378 10 күн бұрын
The second example is hilarious. A lot of clowns do put themselves in an awkward spot when classes become a thing.
@lucaxtshotting2378
@lucaxtshotting2378 10 күн бұрын
ok so ure arriving to the need of services, what comes now, that oop is not bad but actually impossible and we escape it trough service classes?
@lucaxtshotting2378
@lucaxtshotting2378 10 күн бұрын
ok called it. I'd argue that a service can be thought of as a file name, so I'd argue OOP can be not bad. I get your point though, in fact I share it, but your point is not "OOP is bad" your point is we made OOP be a shitshow. Imagine a big application, hell imagine a spring boot application with one single actually-not datatype. Would you still have to deal with java's class enforcement? sure but who cares. I guess what I'm saying is the problem seems to have appeared once all those stupid factory manager provider classes appeared. What if you just don't? You would argue that is not OOP? well then of course OOP not only is bad it is also impossible. Some sentences don't have a subject. sometimes "it rains".
@lucaxtshotting2378
@lucaxtshotting2378 10 күн бұрын
yeah, I agree, navigating "object oriented" code (I used to call this "designed" code) is horrible. I'm just not sure if it is fair to call this OOP. Interfaces, data structures, microservicing is usually overdone because it tickles people's brain (you talkd about why we started using java, I just said why we didn't stop using it) but I'd like to think it is possible to use object oriented programming to, simply put, not repeat code. Just that.I wrote a sudoku solver recently and I had this "nine cell chunk" abstract class, extended by row column and block. It made my program shorter and easier. It is possible.
@lucaxtshotting2378
@lucaxtshotting2378 10 күн бұрын
I think I get it now: deeply you understand that OOP can be healthy but you think a lot of people don't need to hear that because they have a toxic relationship with OOP. Fair enough. My boss makes me write interfaces for classes I just created and don't belong to any yet. There is no excuse to that, but it is worth mentioning that interfaces can help manage dependencies across modules. I think there are a lot of clowns in the industry that think good code is circle code that looks almost squared (not my boss, he both is a good programmer and tends to overdone code) and I appreciate the video because that is the case. But OOP CAN BE NOT BAD.
@lucaxtshotting2378
@lucaxtshotting2378 10 күн бұрын
I will listen to anyone who understands that the opposite of oop is not fp but pp. That being said, ure using pp wrong here. PP is a subset of imperative programming. The actual parameters are imperativeness and objectorientedness. where the oposite of the first is functional and the opposite of the second is simply non object oriented or "data oriented". Now that I come think of it, maybe I won't listen to anyone who doesnt do what I said you didnt do lol. This is pretty basic for a 45 minute essay.
@nukkable
@nukkable 11 күн бұрын
best video on KZbin
@gmeister3022
@gmeister3022 11 күн бұрын
Love this guy, dedicated his channel to shitting on OOP. Can't say I blame him either
@a_k__
@a_k__ 11 күн бұрын
I think js is weak and dynamic
@vimalathithand917
@vimalathithand917 11 күн бұрын
Thanks a lot for this wonderful series! The best resource on the internet to learn about terminals
@jjggbbjunk
@jjggbbjunk 11 күн бұрын
I am a power systems engineer. Lately, I have been using Python to automate power system studies. Most of the object oriented code I look over in order to learn new techniques I can't make heads or tails out of. Procedural programming is just a log easier to follow. I can see the utility of grouping data and functions to access data where there is a close association, but to me it looks like classes are just being created to conform to some arbitrary and confusing standard.
@nyahhbinghi
@nyahhbinghi 13 күн бұрын
Functions transform, objects store - Erlang is good, but shared memory is still alive like a zombie
@nickbarton3191
@nickbarton3191 16 күн бұрын
Back once more and I've realised my ideas have changed. In C# at least you can write static classes and methods in particular extension methods to extract the helpers but they operate on the original object type, patent or whatever. Modern C# combines functional programming eg. method chaining with failure states rather than if then else. Now there's the real power and simplicity of it.
@piotrek7633
@piotrek7633 16 күн бұрын
So youre saying LLM programming will give us more jobs than OOP?? GOOD JOKE
@lookingjust987654321
@lookingjust987654321 17 күн бұрын
I write all of my web apps in ASM. Hopefully that describes things to this kid.
@Gornius
@Gornius 19 күн бұрын
29:35 - Oh yes. I am yet to encounter an introduction to OOP with real world example, solving a real problem rather than being a 2d shape, animal or furniture.
@angelcaru
@angelcaru 19 күн бұрын
Can't believe the industry is catching up to this *now*
@jasonzhang4632
@jasonzhang4632 20 күн бұрын
Stop talking like 40 years old Karen
@Sanscripter
@Sanscripter 20 күн бұрын
this is important because I'm the only one saying it => polio is valuable because it's rare
@noahwilliams8996
@noahwilliams8996 7 күн бұрын
What does that have to do with anything?
@vashlex
@vashlex 21 күн бұрын
I agree that OO is tempting you to overengineer and this will result in a mess described in the video. Otoh a lot of people have seen too much bad code and are blaming the tools. 😂
@noahwilliams8996
@noahwilliams8996 7 күн бұрын
Sometimes the tool really is the problem.
@crykfury
@crykfury 21 күн бұрын
This video is very useful to understand what OOP does good and what not. I also appreciate the end, were you explain how to write procedural code in the best way possible.
@billybob7177
@billybob7177 22 күн бұрын
Such a fantastic video - clear, dense information that is well-planned & presented, especially when simple Lucene instructional videos aren’t the most easily findable. Thanks for making this!
@MisterrVi
@MisterrVi 22 күн бұрын
It is now the most popular today
@WilhelmDrake
@WilhelmDrake 25 күн бұрын
@17:39 Test Driven Development is not, in any way, restricted to OO.
@WilhelmDrake
@WilhelmDrake 25 күн бұрын
@12:50 C++ has had exceptions from pretty much the beginning.
@WilhelmDrake
@WilhelmDrake 25 күн бұрын
What about the encapsulation of invariants?
@codez35
@codez35 25 күн бұрын
You obviously are talking about Java. not every language is the same nor should you say OOP is bad period. Each language handles OOP differently. for example, C# has static classes of which go against everything you said.
@bambitsunami4165
@bambitsunami4165 25 күн бұрын
Ive watched this series like 4 or 5 times now. I keep coming back to it, because it's one of the best explanations of unix terminals and shells I've found (over a period of a few years). Just the right amount of depth (deep but not too deep), very very clear, well structured, very useful. And fun! Many others have commented similar things already but I felt I had to say something too, given how useful this series as been to me.
@donwinston
@donwinston 26 күн бұрын
This is silly. Today's modern software would be a nightmare to develop and maintain without OOP.
@formyeve
@formyeve 26 күн бұрын
Amazing presentation. You've done an amazing job voicing many of the concerns I had writing oop, and i love the guidelines you've outlined towards the end of your presentation.
@nooneatall5612
@nooneatall5612 29 күн бұрын
27:27 this painful game is very relatable
@anthonydevellis6708
@anthonydevellis6708 29 күн бұрын
I was today years old when I realized the name C++ was a joke meaning "C, incremented"
@aygaoua
@aygaoua Ай бұрын
Thanks !!
@cameronburnett9679
@cameronburnett9679 Ай бұрын
I've always just started that way anyway because you can just get your ideas down and quickly have something that works. Then you can refactor it and put stuff in objects if it makes sense to do so, and at this stage it will be extremely quick and logical.
@exception05
@exception05 Ай бұрын
Excellent videos. You know what I LOVE about it? It's not clear, inaccurate and you have to research to get the right answer. No sarcasm. I like how you demonstrate absurd code as an examples. You just watch it and saying "WTF???" and you start digging. But there is a pretty big mistake. char *s="abc"; is not stored in a text section. Text section is a code segment for storing program instructions. char *s is stored in read-only data segment, but char s[]="abc"; will be stored on read-write section. Also s[] will be precisely number_of_chars+1 bytes long and char *s will use +4 bytes to store the pointer, but it allows to reuse "abc" memory if these literals are used many times in program.
@patturnweaver
@patturnweaver Ай бұрын
amazing. you are one of my favorite computer topic explainers you are gifted. keep sharing the gift
@icvetz
@icvetz Ай бұрын
The original coin flipping code is hilarious lmao
@patturnweaver
@patturnweaver Ай бұрын
your ability to explain is outstanding. i am sure much of it comes from a clearer deeper understanding of the subject than most. please keep sharing.
@user-hd3pz2ow1b
@user-hd3pz2ow1b Ай бұрын
interesting
@daveddev
@daveddev Ай бұрын
Object literalism is a significant burden only surpassed by purity zealotry. Both OOP and FP are useful, one size does not fit all. More so, we need to better understand function decomposition before we can truly wrestle with either approach.
@anthonydevellis6708
@anthonydevellis6708 Ай бұрын
I would say Lua is another language of note that uses prototypical inheritance. In fact, I find these dynamic languages with prototypical inheritance somewhat better for doing OOP, becasue they are more flexible.
@Andy_B.
@Andy_B. Ай бұрын
OOP: Success story for the last decades. Now with AI it might change, as no one needs to develop any more...
@twynb
@twynb Ай бұрын
41:44 the wild thing about this: PHP of all languages does this! PHP! when creating a php closure, it doesn't know of anything around it. *if* you want to pass anything in, you either do it as a parameter or have to explicitly declare it using use() so for example: $knownInside = 1 $passedIn = 2 $notInScope = 3 $fn = function($param) use ($knownInside) { echo $param + $knownInside; } $fn($passedIn);