Brian Will
Brian Will
  • 330
  • 10 755 778
Japanese Grammar Analysis - Nihongo Picnic Podcast Ep 125. 小学校の運動会 - part 2 of 2
An analysis of the grammar of every sentence in a Japanese language podcast (125. 小学校の運動会).
If you have corrections, let me know in comments.
I intend to do more of this on a regular basis, though in future I will probably pick only 4-5 interesting sentences from the source material instead of going through every sentence.
zhlédnutí: 2 000

Video

Japanese Grammar Analysis - Nihongo Picnic Podcast Ep 125. 小学校の運動会 - part 1 of 2
zhlédnutí 1,2KPřed 8 měsíci
An analysis of the grammar of every sentence in a Japanese language podcast (125. 小学校の運動会). If you have corrections, let me know in comments. I intend to do more of this on a regular basis, though in future I will probably pick only 4-5 interesting sentences from the source material instead of going through every sentence. (Doing every single sentence turns out to take many hours of recording a...
Japanese language trainer program
zhlédnutí 5KPřed 8 měsíci
A program I've made for learning Japanese: github.com/BrianWill/japanese_vocab
Unity DOTS (Data-Oriented Technology Stack) overview
zhlédnutí 20KPřed 4 lety
Quick rundown of DOTS. Detailed coverage in the rest of the playlist: czcams.com/play/PLIbUZ3URbL0Eqk2o5rMyiLPtCoWuLAZwg.html
Unity ECS (Entity Component System) - Object/Chunk/Shared/SystemState Components and Blob Assets
zhlédnutí 10KPřed 4 lety
Covers some of the more advanced features of Unity's ECS: Object Components, Chunk Components, Shared Components, SystemState Components, and Blob Assets.
Unity ECS Angry Bots demo - full code walkthrough
zhlédnutí 37KPřed 4 lety
Walkthrough of this example by Mike Geig, github.com/UnityTechnologies/AngryBots_ECS. I forgot to mention in the video that the enemies are animated by their shader. It's the shader that makes them shimmy, not any MonoBehavior or ECS code. The video I mentioned, 'Converting scene data to DOTS': czcams.com/video/TdlhTrq1oYk/video.html
Unity ECS (Entity Component System) - 1 of 2
zhlédnutí 11KPřed 4 lety
Unity ECS (Entity Component System) - 1 of 2
Unity ECS (Entity Component System) - 2 of 2
zhlédnutí 5KPřed 4 lety
Unity ECS (Entity Component System) - 2 of 2
the Unity job system
zhlédnutí 6KPřed 4 lety
the Unity job system
Every programming language in (another) 15 minutes: data types
zhlédnutí 19KPřed 4 lety
A very brief survey of the most essential concepts about data types common to most programming languages. Follow up to czcams.com/video/duhDovqHbEs/video.html
OpenGL - introduction
zhlédnutí 67KPřed 4 lety
Code examples derived from work by Joey de Vries, @joeydevries, author of learnopengl.com/ All code samples, unless explicitly stated otherwise, are licensed under the terms of the CC BY-NC 4.0 license as published by Creative Commons, either version 4 of the License, or (at your option) any later version.
OpenGL - lighting with the Phong reflection model (part 1 of 2)
zhlédnutí 31KPřed 4 lety
Code samples derived from work by Joey de Vries, @joeydevries, author of learnopengl.com/ All code samples, unless explicitly stated otherwise, are licensed under the terms of the CC BY-NC 4.0 license as published by Creative Commons, either version 4 of the License, or (at your option) any later version.
OpenGL - lighting with the Phong reflection model (part 2 of 2)
zhlédnutí 15KPřed 4 lety
Code samples derived from work by Joey de Vries, @joeydevries, author of learnopengl.com/ All code samples, unless explicitly stated otherwise, are licensed under the terms of the CC BY-NC 4.0 license as published by Creative Commons, either version 4 of the License, or (at your option) any later version.
OpenGL - vertex attributes and uniforms
zhlédnutí 7KPřed 4 lety
Code samples derived from work by Joey de Vries, @joeydevries, author of learnopengl.com/ All code samples, unless explicitly stated otherwise, are licensed under the terms of the CC BY-NC 4.0 license as published by Creative Commons, either version 4 of the License, or (at your option) any later version.
OpenGL - textures
zhlédnutí 16KPřed 4 lety
Code samples derived from work by Joey de Vries, @joeydevries, author of learnopengl.com/ All code samples, unless explicitly stated otherwise, are licensed under the terms of the CC BY-NC 4.0 license as published by Creative Commons, either version 4 of the License, or (at your option) any later version.
OpenGL - create a window
zhlédnutí 15KPřed 4 lety
OpenGL - create a window
OpenGL - draw a triangle
zhlédnutí 23KPřed 4 lety
OpenGL - draw a triangle
OpenGL - camera movement
zhlédnutí 37KPřed 4 lety
OpenGL - camera movement
OpenGL - model transform and projection
zhlédnutí 7KPřed 4 lety
OpenGL - model transform and projection
OpenGL - specular IBL (image based lighting)
zhlédnutí 7KPřed 4 lety
OpenGL - specular IBL (image based lighting)
OpenGL - diffuse IBL (image based lighting)
zhlédnutí 9KPřed 4 lety
OpenGL - diffuse IBL (image based lighting)
OpenGL - PBR (physically based rendering)
zhlédnutí 30KPřed 4 lety
OpenGL - PBR (physically based rendering)
OpenGL - SSAO (screen space ambient occlusion)
zhlédnutí 34KPřed 4 lety
OpenGL - SSAO (screen space ambient occlusion)
OpenGL - deferred rendering
zhlédnutí 31KPřed 4 lety
OpenGL - deferred rendering
OpenGL - gamma correction, HDR tone mapping, bloom
zhlédnutí 12KPřed 4 lety
OpenGL - gamma correction, HDR tone mapping, bloom
OpenGL - normal maps
zhlédnutí 11KPřed 4 lety
OpenGL - normal maps
OpenGL - shadow maps (for point lights)
zhlédnutí 8KPřed 4 lety
OpenGL - shadow maps (for point lights)
OpenGL - shadow maps (for directional lights)
zhlédnutí 22KPřed 4 lety
OpenGL - shadow maps (for directional lights)
OpenGL - instancing
zhlédnutí 12KPřed 4 lety
OpenGL - instancing
OpenGL - geometry shaders
zhlédnutí 14KPřed 4 lety
OpenGL - geometry shaders

Komentáře

  • @bittergourd
    @bittergourd Před dnem

    Title should be "Do not use OOP on everything, even though that's the only thing you were taught at school."

  • @andreaslassak2111
    @andreaslassak2111 Před dnem

    Ok stop using objects in JavaScript 😂

  • @IndellableHatesHandles

    The "use" block thing is basically a C++ lambda if you don't use an ampersand or an equals sign in the square brackets. I just wish they came up with a better syntax for it.

  • @throwitatthewall6289

    Nothing at all wrong with OOP. In fact, it is quite rational and easy

  • @jiggasnap
    @jiggasnap Před 4 dny

    Hey brother great video, I have a video that I think nicely compliments this one where I go into a bit more detail on why tiny functions and classes are bad. czcams.com/video/BPHro8zQBQ0/video.htmlsi=wUXhizbfMtpXrOos

  • @ziaahmad8738
    @ziaahmad8738 Před 4 dny

    Thank you!

  • @NanerBag
    @NanerBag Před 5 dny

    Hey Brian. I love your old series teaching programming and I found all the videos I have watched thus far fantastic. I love your teaching style and the focus on narration and an understanding of the underlying technology used rather than an endless stream of context-less examples and practice questions. However, while jQuery is still relevant to a degree today when it comes to supporting older browsers or simply out of preference and a shorter syntax, vanilla JavaScript has come a long way and has made its original purpose mostly obsolete. Do you have recommendations for a resource which covers the more modern side of vanilla JavaScript for use in the browser? I dislike all the popular platforms which show up at the top of search engines because of their extreme reliance on examples after examples and because they often just paraphrase other sources with some trial or paywall added on top, and I love your simple teaching style which explains the inner working of the language.

  • @noahisamathnerd
    @noahisamathnerd Před 9 dny

    11:45 “… seems like real programming; it has curly braces, after all.” Cue anger from Python programmers.

  • @donwinston
    @donwinston Před 11 dny

    Many if not all of his observations are correct of course but his conclusions are nuts. OOP is not garbage. OOP adoption is not a disaster. Today's software, tools, and applications are frigging awesome compared to what was available before 1995. What many OO programming languages (and many functional programming languages) have done wrong is attempting to achieve "purity". Java could have been designed to support classes, interfaces, polymorphism, encapsulation, and even inheritance as well as traditional imperative procedural programming all in the same language. Scala almost does this and is a significant improvement over Java. Python doesn't force you to use classes. Extremism is always bad. Run away from extremists politics, religion, fad diets, and extremist programming languages and techniques, i.e. Haskel, Lisp, Smalltalk, Test driven development, UML diagramming, Agile, etc.

  • @REOsama
    @REOsama Před 12 dny

    My head is spinning, this is the most meaty video I've ever watched, you are an unsung hero

  • @kingwolf70
    @kingwolf70 Před 13 dny

    At the end of your video it looks like you're not correcting the gamma on the Albedo textures; I believe that should happen, no?

  • @BeekuBird
    @BeekuBird Před 16 dny

    OOP was the dominant paradigm before Java was released and before Visual Studio was released.

  • @druzzyaka
    @druzzyaka Před 16 dny

    Awesome explanation. Thank you!

  • @Scarhwk
    @Scarhwk Před 16 dny

    Half the commenters seem to think that "object-oriented programming" means "code that uses classes." Brian Will was pretty clear that he wasn't saying "don't use classes." He could have been a little more explicit about this, but I think he defines OOP as having three main properties: (i) all of a program's functionality is contained in class methods; (ii) all of a program's data is contained in class instances; and (iii) class properties are all private, or predominantly private, so that classes can only ever directly manage their own internal state (i.e. classes are used to "encapsulate" state). Two things about that: First, that's a pretty reasonable way to define OOP. It's pretty much what I learned in university when they were teaching Java and C++. Second, defined in that way, OOP absolutely is terrible.

  • @lolhahalaughlaugh8033

    Who else is watching this in 1889BC?

  • @Braeden.F
    @Braeden.F Před 19 dny

    Many good points made. But in general I feel you're overcomplicating oop

  • @MachinesTakingOverTheWorld

    I am a SeaCreature!

  • @elias-frihet
    @elias-frihet Před 24 dny

    Here's the coin flipping game in Clojure: (ns coin-flipping-game.core (:require [clojure.string :as str])) (defn play-game [player1 player2] (let [flip #(< (rand) 0.5) player (if (flip) player1 player2)] (str player " won with a flip of " (flip)))) (defn -main [& args] (loop [] (println (play-game "Mark" "Tom")) (println "Play Again?") (when (str/starts-with? (str/lower-case (read-line)) "y") (recur))))

  • @4teapo
    @4teapo Před 24 dny

    OOAD? Nah. Get OOPD.

  • @fnpm
    @fnpm Před 25 dny

    I see a lot of conceptual errors in this video. 19:12 Java is "pass-by-value", if that value is a reference (aka reference variable), you do pass an object reference. 21:01 Encapsulation means that data are not publicly available, which ensure value validation. That doesn't even relate to the fact that more objects can invoke method on the same object. This is shared state, like in procedural programming: guess what, in procedural programming you can touch every data with no encapsulation. So hooray for encapsulation. 22:30 Having a global object? Yes. Traversing to parent to dive to another object? Yes. What's the problem here? (Moreover, Ive never - NEVER - seen circular reference through object in OOP). 26:00 This problem is about software architecture, regardless of the paradigm used. Actually, when specs change, modifying a procedure in Proc. programming is at risk of breaking more things (changing API etc.), while in OOP you just create another class/subclass and you don't even have to touch any existing code. 27:31 In proc. prog. and OOP you both can change the specs of your data structures, but encapsulation and inheritance in OOP allow you not to rewrite existing code to accomodate these new changes. I have to go rn, so cannot continue viewing the rest of the video ... but I can just imagine the court-like thesis he will bring about just to give the illusion that "OOP is bad" is the real deal. To me, this is a fanboy video (sad that people fall for this and don't analyze what he really says).

  • @shear-watts
    @shear-watts Před 25 dny

    💯💯💯❤❤ great playlist

  • @MachinesTakingOverTheWorld

    watching every year

  • @bobweiram6321
    @bobweiram6321 Před 29 dny

    You can't have polymorphism without inheritance! You're confusing it for function or method overloading. Learn OOP before bashing it!

  • @pwhv
    @pwhv Před měsícem

    based on your title: if you come from functional programming and you're not comfortable of using object oriented programming then don't use it, but take in count that that pattern of programming was used to make almost all the software in the world

  • @XolisileBuqwana
    @XolisileBuqwana Před měsícem

    Can you further make videos about the type of operating systems more specifically Unix and LInux

  • @maxmustermann5590
    @maxmustermann5590 Před měsícem

    I think this video is really helpful if you like OOP or not because not enough people even make the connection, that OOP, functional Programming and Rusts borrow checker all try to solve the same fundamental Problem of computation. OOP forces you into structure, that makes it harder to run into problems with shared Mutable state. Functional Programming makes all state immutable and tries to deal with the consequences, rust enforces strict ownership rules to rule out that multiple functions influence the ssme Mutable state at the same time. This critic of OOP boils down to the fact, that of these 3 Solutions, OOP is the only one that doesn't gurantee anything. Haskell and rust can mathematically proof, that these class of problems can't arise, while OOP is more of a workaround. Which Solution is the correct one highly depends on what Problem you're trying to solve. Functional Programming makes some things unreasonable difficult and is still to slow to be used in systems Programming. Rust enforces alot of structure, inhibits fast Iteration times. OOP doesn't actually offer any guranteed protection. If you just need a one-time Script even OOPs structure is overwhelming and not needed

  • @FullStacker-dev
    @FullStacker-dev Před měsícem

    yo man, you are back , i can't believe my eyes, i was waiting for your videos for a 4 years, glad you are back

  • @MrMariozzz78
    @MrMariozzz78 Před měsícem

    i can't load model inporter.hpp say this error AI_FORCE_INLINE const aiScene* Importer::ReadFile( const std::string& pFile,unsigned int pFlags){

  • @orpheus0108
    @orpheus0108 Před měsícem

    Why ... why use an abstract class or interface when classes already encapsulate/abstract code and and you NEED to implement the interface anyways. Wtf is the point 😂. I'll stick to classes and data structures cause they can be handy. Abstract BS is redundant and makes code a nightmare to read

  • @andreymoiseev5838
    @andreymoiseev5838 Před měsícem

    Some allure of OOP certainly comes from the complexity generated by algebraic properties of classes. Classes are sets of methods, so the complexity of set theory is shining through. Multiple inheritance, or just implementation of multiple interfaces, makes it even more complex and entertaining. It's even more coconuts with generics. Those who have studied algebra know that you can make such a toy of simplest mathematical objects. Doesn't automatically mean that that math has any utility though.

  • @puijela3170
    @puijela3170 Před měsícem

    This is just a video about overengineering :D

  • @orbik_fin
    @orbik_fin Před měsícem

    I like to be pedantic so I'll point out that "plain text" includes plenty of formatting. A line feed literally formats text so that it appears on the next horizontal line below. Multiple spaces are often inserted just to format the output with an indented margin. Also: it's not far fetched to make a text editor interpret FF as page break, or SI/SO as emphasis toggle, like originally intended.

  • @MrMariozzz78
    @MrMariozzz78 Před měsícem

    i have trouble with filesystem.h and his root_directory.h can u help me to configurate the program?

  • @MrMariozzz78
    @MrMariozzz78 Před měsícem

    in this source code i have problem with header #include <learnopengl/filesystem.h> it don't find #include "root_directory.h"

  • @orbik_fin
    @orbik_fin Před měsícem

    Sounds quite a bit like Microsoft's Component Object Model. Programs are registered with the kernel as request-response services, identified by UUIDs. It's an old and established part of their OS, technically far better than relying on file path strings, or parsing command lines and output streams. So why didn't COM replace all the "traditional" programs that you can just execute off of a disk? Well, it would've required everyone to ditch their old habits, tools, older software, and of course made it very difficult to develop cross-platform applications.

  • @alienews0
    @alienews0 Před měsícem

    XD what a stupid title... Btw multiplying is wrong it is not safe cause u can make error by using it, u should only make addition of 1 until u reach the result, it's way way safer... Yeah multiplying and OOP are bad cause i'm too stupid to use them correctly and i make a lot of error when i try, so they are very bad as they are not brainlesspeopleproof 🤪 PS you should stay immobile, cause when you walk the probabilty of falling ain't zero, so just lay on the ground it's safer... And ask Brian Will for GTA 7 he is currently programming it in a procedural way with a bunch of his friends who just like him think procedural programming is the future (when we all know it's the past) so just wait one or two centuries and Brian will prove his point by releasing GTA7, his procedural chef d'oeuvre 🤣😂 idiots dare to do anything, that’s even how we recognize them ; that video got such a daring title ^^

  • @beest_
    @beest_ Před měsícem

    For all programming techniques, 1: learn the implementation and techniques. 2: use them to effectively create a tools to address a problem. Example: ytDbTk class ytDb.Query ytDb.AcrionA.....ActionZ You now can have mySql, MongoDb, ....every databse child classes of ytDbTk that only need to override Query method and you dont have to worry about Actions A .Z Additional you can now have areays of subclasses as one and not make your own bookkeeping etc. OOP is just a tool, and if it's misused by the programer then not a fault of OO. You cannot make alternative solution of above scenario and easier to upkeep, understand and work with

    • @darkengine5931
      @darkengine5931 Před měsícem

      I'd contest the final point. The most extensible possible way to achieve that dynamic branching is not through overriden functions of an abstract data type, but a procedural dylib with a C API (the most universally understood across languages). Then third party developers who don't even have access to your source code can add support for MySQL into your software through a plugin, e.g., which they load into your host application.

  • @donwald3436
    @donwald3436 Před měsícem

    18:15 OMG you just explained why Angular sucks so bad!!!!! lol

  • @rouvem12
    @rouvem12 Před měsícem

    How are C++ lambdas different from your ideal anonymous function example?

  • @junesuprise
    @junesuprise Před měsícem

    13:38 This play game function code xdddd wtf

  • @Crygd-utre1
    @Crygd-utre1 Před měsícem

    oop still using in all industry until now

  • @grzegorzmajcher9237
    @grzegorzmajcher9237 Před měsícem

    Much Ado About Nothing. He does not understand what OOP is for.

    • @bendedstraw4294
      @bendedstraw4294 Před měsícem

      I don't see a problem with having an object instantiated and a function immediately called. Sometimes you just want to clean up and put the public function and the private functions in a separate class and never have to look at that code again and continue in the main class what's the problem lol. I don't see their prob with OOP

  • @KNHSynths
    @KNHSynths Před měsícem

    The real title of the video should be "how someone who doesn't even understand a technology chooses to criticize it instead of humbly admitting he doesn't understand it, and learning from it". Seriously, delete this video if you don't want to ruin your career - your credibility has gone into the red zone.

  • @jacksonfive5180
    @jacksonfive5180 Před měsícem

    Fantastic explanation.

  • @QuikRay
    @QuikRay Před měsícem

    There is no OOP that comes close to C++. OOP is the best programming idea that ever came along. BTW, it's subjective to show examples to prove your point. Examples fall on the programmer not the language. OOP is a methodology that C++ implements very well once a programmer fully understands how to properly use it. Most of the time the programmer is the problem, not the language.

  • @danhonks6264
    @danhonks6264 Před měsícem

    8 years later and most folks are moving away from OOP languages, dude was right

    • @GerardoBelot
      @GerardoBelot Před 19 dny

      Really? XD

    • @danhonks6264
      @danhonks6264 Před 19 dny

      @@GerardoBelot yep pretty much everyone I know is looking into systems programming languages like Go as a replacement for Java

    • @dylanburch2719
      @dylanburch2719 Před 8 dny

      @@danhonks6264well this isn’t even remotely true.

    • @danhonks6264
      @danhonks6264 Před 8 dny

      @@dylanburch2719 It's true in my lived experience /shrug but I do only have 15 years of it so what would I know?

    • @dylanburch2719
      @dylanburch2719 Před 7 dny

      @@danhonks6264 Everyone is not looking at Go as a replacement for Java. That’s not even remotely true. Not hard to check the data to verify that, your first comment might be true though, but OOP has its benefits in large ecosystems. I’m a wannabe Haskell dev, I’m not on the OOP side

  • @Nesetalis
    @Nesetalis Před měsícem

    I'm taking exception to the complaint on "abstract" the programming use is the noun, the use the video has is the adjective. ;p

  • @esantix
    @esantix Před měsícem

    On min 33:15: what does it mean there's a buffer for each block? All storage is "repeated" on disk and the buffer?

  • @hlrhlrhlr6955
    @hlrhlrhlr6955 Před měsícem

    This is really mean actually

  • @forest6008
    @forest6008 Před měsícem

    maybe markdown for terminal output