No video

Where did software go wrong?

  Рет қаралды 40,010

Blow Fan

Blow Fan

Күн бұрын

Jonathan Blow talks about where software and programming went wrong.
Tip me: ko-fi.com/blowfan
Jon's Twitch: / j_blow

Пікірлер: 199
@SaHaRaSquad
@SaHaRaSquad 2 жыл бұрын
Abstraction is tempting because it seems easier at first and helps splitting the problem into smaller chunks, but in reality that's the wrong way around because beforehand you don't really know what's the best way to split up the problem. You first need to understand it, write some code and get a feel for what you need to do. Finding issues with the first attempts is less painful if you didn't spend a week writing useless classes and other boilerplate first.
@DavidsKanal
@DavidsKanal 2 жыл бұрын
I think abstraction and improperly preplanning your program's structure are two completely different things.
@SaHaRaSquad
@SaHaRaSquad 2 жыл бұрын
@@DavidsKanal I was of course talking about unnecessary abstraction and it then imposing a bad structure on the code. And so far I've yet to see a "proper" way to preplan software before some form of prototype and understanding of the problem exists.
@RockTo11
@RockTo11 2 жыл бұрын
Yes, I agree. It's doing speculative programming, way ahead of any concrete solution exploration of the issue. Waste of time, and likely wrong. People get sucked into systems and design patterns, rather than focusing on the actual solvable problem, and that cost is ridiculous. People used to write complex software is shorter time periods than today, with more reliable results. Jon mentions doing the simplest and most direct thing, and then refactoring later if more is needed. He's absolutely correct. The other method that most seem to do these days is backwards, and ends up in a bloated mess that is difficult to refactor, because the "solution" was more about patterns and abstraction, rather than the fundamental problem that is being ultimately tackled.
@DavidsKanal
@DavidsKanal 2 жыл бұрын
@@RockTo11 Well, I agree with you. Personally, I never even fell into this pattern of speculative programming - it makes no sense to me. If having finished multiple projects taught me anything, is that you'll end up refactoring lots of stuff 5+ times anyway - it's a waste of time and energy to preplan stuff you can't predict. I don't get how more people see this. It's painfully obvious if you've ever programmed anything non-trivial; at least to me.
@bobweiram6321
@bobweiram6321 2 жыл бұрын
Mike Tyson said it best: Everyone has a plan until you get punched in the face. I remember writing code for a disk controller and got my ass whipped. It was well structured and abstracted to the point of supporting other disk mechanisms too. With a simple script and a configuration database, I could generate and compile code for almost any drive made. It worked, but the performance was dismal. It just banged out bits and polled for results. To make it faster, I had to use lots interrupts, which turned my masterpiece into Spaghetti code and universal support impractical.
@Olodus
@Olodus 2 жыл бұрын
This is why I like C. It is a language with many problems, but it is so small that it pushes you towards basic solutions (usually the easiest solutions).
@jazzgirl2358
@jazzgirl2358 2 жыл бұрын
I saw your comment on John carmack interview and you mentioned John blow and then I started watching him, and now found you here lmao
@Olodus
@Olodus 2 жыл бұрын
@@jazzgirl2358 Haha Yeah listening to the Carmack interview made me want to go back to these old Jon clips and see if my position on them changed after a few years. Looking back at it, it is kinda cool how similar John and Jon's view seems to be on the matter.
@FastFSharp
@FastFSharp Жыл бұрын
Which John Carmack interview? Just making sure I didn’t miss one.
@Olodus
@Olodus Жыл бұрын
@@FastFSharp The Lex Fridman one a month or so ago.
@evandrofilipe1526
@evandrofilipe1526 Жыл бұрын
C, at least for me, was easy until I got into multithreading, but even excluding that, it was a bit of a headache sometimes
@KilgoreTroutAsf
@KilgoreTroutAsf Жыл бұрын
I am so glad I am a largely self-taught developer who later came to computer science and software engineering thru other paths so I never had to "learn" coding the modern way. For some reason "not doing things the right way" has never stopped me from writing anything from audio plugins to parallel physics simulation to 3D visualization programs that do the job and run reasonably efficiently.
@ryanleemartin7758
@ryanleemartin7758 Жыл бұрын
Yeah, I started programming Java in the late 90's and fell hard for all the OOP stuff. It took years to unlearn all that dogma.
@nerdError0XF
@nerdError0XF 2 жыл бұрын
Thanks for the new uploads!
@nurjafri
@nurjafri 2 жыл бұрын
Keep up the good work man. I hope people will realise the importance of what you are conveying.
@samhsmith
@samhsmith 2 жыл бұрын
Nice man, this video deserves to be on this channel. It's good to have all the advice in one place.
@FicoosBangaly
@FicoosBangaly 2 жыл бұрын
After many years in tech I can say that the problem is that programming and software architecture is hard. Very few people can reason about code, orders of magnitude fewer people than we currently need. We keep trying to find ways for more people to be able to write high quality software but we're not there yet. Maybe some day. Edit: were->we're
@MisterFanwank
@MisterFanwank 2 жыл бұрын
Why should we expect to ever get there? All attempts to simplify programming so far have ended in complexity disasters.
@___Hermitage
@___Hermitage 2 жыл бұрын
I think the problem is actually deeper, in that our society has an education and intelligence problem. Lower standards in schools, degenerating culture, etc. Knowledge and the capacity for knowledge is being lost in many fields.
@HairyPixels
@HairyPixels 2 жыл бұрын
@@___Hermitage I agree. All of this assumes high quality human capital, but does that actually exist in the amounts needed?
@FicoosBangaly
@FicoosBangaly 2 жыл бұрын
@@HairyPixels I don't think it ever existed. Most people are and always were just OK at their jobs. This is how statistics work. Most construction companies can build a detached home. Vey few can build a skyscraper. Fewer can build either well. We've been building houses for thousands of years.
@HairyPixels
@HairyPixels 2 жыл бұрын
@@FicoosBangaly The quality of the NEW programmers has been going down due to the lowering of entry requirements. Back when I started to program in 1997 you were forced to learn yourself from first principles but nowadays you can just watch tutorials on KZfaq.
@IDontReadReplies42069
@IDontReadReplies42069 Ай бұрын
God i love this. Its all the permission i need to go and just write code instead of worrying about what a recuiter would think of it.
@chrisdistant9040
@chrisdistant9040 2 жыл бұрын
The irony in this video is that he talks about people stopped solving their problems in favor of writing abstractions first, while Mr. Blow, instead of making games, is writing his own programming language first.
@chrisdistant9040
@chrisdistant9040 2 жыл бұрын
@@DemonixTB chill, I’m not telling anyone what to do… just pointing out
@MsBukke
@MsBukke 2 жыл бұрын
@@DemonixTB but that is a good point, creating a language is not solving a problem, the same way creating an abstraction is not solving a problem, they are both tools that help you solve problems later. and trust me, a bad language is WAY worse than a bad abstraction and it takes WAY more time to make.
@davidandrewthomas
@davidandrewthomas 2 жыл бұрын
@@MsBukke Yeah, I think that's why he didn't just release it publicly early. The future will show whether Jai is worth it, but I definitely think we are past due for a better C-like language. And Rust isn't necessarily the right solution, IMO, at least not for everyone. Zig, Odin, Nim, Jai, seem to be poking at this from slightly different directions, and it's good that people are trying. I hope in the future I can reasonably write code for projects where currently I need to use C++, but in a better language.
@Kevzz2srs
@Kevzz2srs 2 жыл бұрын
@@davidandrewthomas It's pretty amazing how Jai sort of kickstarted people to create languages for solving these kinds of problems, can't wait for it to get released :)
@simonfarre4907
@simonfarre4907 2 жыл бұрын
@@DemonixTB pour out the koolaid. There are low level languages that you can do that perfectly fine in. C++, Rust both are great examples. C is alright, but writing in it is unergonomic. 75% of what we write is trivial stuff and C makes writing that verbose thus wastes our time. There are so many things that already waste our time, bugs, logic errors, etc, that we cause ourselves. You can write C style code in Rust or C++ or any of the other systems programming languages. Jai is going to bomb, I am pretty certain of that. But if it doesn't, cool, we got another great language if I am wrong.
@joelimbergamo639
@joelimbergamo639 2 жыл бұрын
Software engineering are one of the few jobs that create more jobs instead of less for no reason ans somehow we get away wit it. 😂
@mitnick212
@mitnick212 2 жыл бұрын
it needs to be so to make up for the jobs stolen by AI and other automation
@georgeokello8620
@georgeokello8620 2 жыл бұрын
​@@mitnick212 AI really hasn't stolen any jobs. The modern AI application to problems are typically horrendous enough that most companies have thrown away billions of dollars into data research that do not even yield significant real world solutions since 2011. AI is a VC term utilized for other companies to signal to investors to throw capital at that company until they burn out and eventually sell themselves to Google, Facebook or Amazon
@gustavcoetzee5018
@gustavcoetzee5018 2 ай бұрын
Software went wrong the day project managers realised they can make money from your work.
@christopherlucas1475
@christopherlucas1475 2 жыл бұрын
One of the problems is that along they way of the Internet we took an actual app (we used to call them programs) called a "browser " that was only designed for finding information on the Internet and turned into an app platform itself. No one the time thought of a better way to create an "Internet capable" platform for actual apps. So now 20 years later we just compounded problem with building frameworks on top of a desktop app that was never meant to be itself an app platform. And current generation of developers actually have the belief system that this is the best approach, which has turned programming languages and frameworks into fads like the fashion industry. The only thing close to actual Internet capable Apps that actually run on the OS (that people actually use) are games and smartphone Apps. Maybe one day we'll think of something better than using the Internet browser as host for internet apps.
@mitnick212
@mitnick212 2 жыл бұрын
if I understand correctly, WebAssembly enable web apps run near OS level, right ?
@TheSaintsVEVO
@TheSaintsVEVO 2 жыл бұрын
@@mitnick212 There's significant overhead and delay I believe, when communicating the results with the website/webapp itself
@ilonachan
@ilonachan 2 жыл бұрын
Something better than the web browser to host apps? Are you suggesting we should write code that runs on the user's computer?! Come on, that's such a 201x thing to suggest 😏
@TheSaintsVEVO
@TheSaintsVEVO 2 жыл бұрын
@@ilonachan Only if writing such code wasn't such a shit experience..
@warrenhenning8064
@warrenhenning8064 2 жыл бұрын
OOP ideology: just writing functions against structures is "imperative spaghetti code". having a function that takes an input and returns an output or performs a side effect (like I/O) is a "poor abstraction" and is hard to understand. Polymorphism that requires jumping throughout the entire project to trace the execution path (even if no exceptions are thrown) -- and even then it's impossible to predict what a program will do in general depending on how the program is structured -- is "maintainable". Any time an OOP codebase is a fucking mess, it's just because they didn't "refactor" or "follow patterns". The old fucking boomer consultant's code, however, is always perfect and never has any problems. We never see the projects they work on, though, because they haven't shipped real production software in fucking decades.
@PixLgams
@PixLgams 2 жыл бұрын
It's unrthodox perhaps but I like to view Objects not as representatives of something to be modeled as they teach you in OOP 101, but rather try to design them as essentially programs or subsystems in itself that combine with different handles to make up the complete software. Think of it as an engine you drop in your car or a shell tool you install into a Unix system. It avoids the pitfall of stack trace spaghetti while still providing some level of modularity to the design.
@warrenhenning8064
@warrenhenning8064 2 жыл бұрын
@@PixLgams if it works for you and your users, great. the only thing I'll mention is that what you're talking about sort of sounds like a module system. i think just having explicit support for modules is a better idea. but, at the end of the day it's all about the end product.
@ochuspokus
@ochuspokus 2 жыл бұрын
@@PixLgams Yes, like Warren said, what you're describing is 'modular programming'. This is almost always the mistake that OOP coders make -- that is to say, to use crude objects as modules. What you ideally want is a program made up of modules that are only connected to the rest of the system via one function (or as few as possible, usually init() and uninit()). That one init() function could take 2-50 parameters, including function pointers to things that it needs, such as a malloc() function. This way, when you want to replace the module, or when you've replaced the allocation module, you don't have to change the 2000 lines of code that use the allocation function that you reference. In C, you would use static on all your functions and 'global' variables (This way they're only 'global' to this file), except the init() and deinit(), and as few other funcs as possible. This is proper encapsulation. Look at the Quake 2 source code for examples of minimalist interfaces (esp the gfx interface) in pure C, in a data-driven paradigm.
@charlesd4572
@charlesd4572 Жыл бұрын
OOP has nothing to do with modules, objects it's about pets - dogs, cats and even chickens. I know I read 20 books about it.
@KilgoreTroutAsf
@KilgoreTroutAsf Жыл бұрын
@@PixLgams That's fine and all, but this already existed decades before OOP in the form of modules,. APIs, library interfaces, etc.
@VenturiLife
@VenturiLife Жыл бұрын
I like that Jon asks these questions, and thinks about these things. Few people do.
@robinpage2730
@robinpage2730 2 жыл бұрын
Programming languages were developed originally because programmers wanted easier ways to write programs. Why did that trend stop? Compare: From Tkinter import * Window = Tk() Window.mainloop Pretty clean compared to most but you still have to learn Python to know what's going on. Instead we could have this: Display window(x = 500 pixels, y = 500 pixels) People dunk on CSS but it is more readable than any other programming language. Too bad it's not a general purpose language.
@KilgoreTroutAsf
@KilgoreTroutAsf Жыл бұрын
CSS is fine-ish for the domain it is designed for. Also a graphic interface is THE ONE example in which objects make 100% sense, since the UI abstraction is literally made of objects.
@laxmanneupane1739
@laxmanneupane1739 18 күн бұрын
Just read "Software and Mind" book by Andrei Sorin. He literally wrote thousand pages on this. Impoverishing language by dictators to forbid expressing things freely, authoritarianism, etc. Its a brilliant take.
@AChannelINeed
@AChannelINeed 3 күн бұрын
1:09 OOP belief system 6:50 TDD
@ihspan6892
@ihspan6892 2 жыл бұрын
Eccentric but strangely appealing. Please, post more!
@BDYH-ey8kd
@BDYH-ey8kd 2 жыл бұрын
There is only a few things a good programer has to do, write the solution, make it understandable, watch out for creating spaghetti, and good naming. All possible without any C++, or classes.
@ilyabykov2437
@ilyabykov2437 2 жыл бұрын
Procedural style is my favorite, sometimes though you can't get away without abstractions. But they should come afterwards, not on the initial stage.
@nickbarton3191
@nickbarton3191 Жыл бұрын
Quite, write small programs then factor out classes or functions as it gets larger.
@boot-strapper
@boot-strapper Жыл бұрын
this dude has some points, but has like 80% jumped the shark
@andrewporter1868
@andrewporter1868 6 ай бұрын
On the contrary, it makes no sense: 1. to reinvent a wheel you've already made, and which is going to be used elsewhere (or can be because of its generality); 2. prototyping is great for figuring out design, but prototype code is throwaway code, and if you enjoy writing your software twice, then by all means. As for me, I will continue to understand and apply good design principles, and by that I mean one: let everything be that which it is, and not that which it is not; write my documentation first because the abstract design and concrete design go hand in hand before the implementation can be properly just auto-coded while listening to tunes; and then optimized for particular hardware because you already know the exact structure of your entire program, so your effort (save for algorithmic optimization) is not wasted (though I do save the fine details of design for "when I get to that part").
@telesniper2
@telesniper2 7 ай бұрын
Well this is how the AI design philosophy/doctrine came about. Back in the smoke filled room somewhere in SF where they decide these things, someone said "you know there's no going back. Everything is one huge unmanagble mess of gobbldegook and we're past the point of no return." Then another person was all "well, if everything's gonna be one big opaque ball of mud, maybe we can still save the situation. We still go with a big ball of mud, just one we can massage in a way where we can get a roughly predictable output. If we can't understand how it does what it does, who cares".
@Saghaley
@Saghaley Ай бұрын
that's a cool ass lamp what the hell
@evgiz0r
@evgiz0r 2 жыл бұрын
TDD is a big overhead if handled poorly, can slow down 1 line changes in the code to take a day. but it does keep the quality higher...
@oblivion_2852
@oblivion_2852 2 жыл бұрын
Yes but quality considerations only think about passes but never speed. Is it really quality for something to take 100s when it could take 0.1s?
@evgiz0r
@evgiz0r 2 жыл бұрын
@@oblivion_2852 thats not correct. Tests can measure performance aspects as well. And yes, Some check correctness, some memory, some check errors and so on dependong on the product. Tests are 10% for verifying content and 90% making sure they dont break in the future.
@wonseoklee80
@wonseoklee80 6 ай бұрын
Abstraction hides details so it removes the need of coding gradually. I don’t think coding is a sacred skill that should be the one to solve all problems. Use no code, AI, even Excel if that solves your problem. What’s wrong with that.
@marcotroster8247
@marcotroster8247 Жыл бұрын
I'm a huge fan of performance. And tests really help me to accomplish it because I can refactor towards better performing structures / algorithms without risk 😄 This "5x as much test code" thing only happens if you're ideologically chasing 100% code coverage or you haven't figured out the right structures for solving the problem, yet. As Jon said, ideological approaches are bs. Do it as pragmatic as possible to solve some problem instead of creating beautiful code or whatever. If you've got tests, you can make it beautiful by refactoring. Ok, and some other unpopular thought. If it's hard to test, your design sucks 😅
@Optimus6128
@Optimus6128 Жыл бұрын
Problem is programming dogmas. Everyone is accustomed to their tools and things they are proud to have learned and so they evangelise about the one true way to code. But that closes someone's mind or people are discouraged to try different things.
@avi123
@avi123 2 жыл бұрын
I disagree, the right abstractions can be great actually. I think the term abstraction is used differently among programmers than other people, you need to realize that the low level stuff is actually abstract for most people, what programmers call abstraction is actually abstracting away the low level stuff, and making things behave like we expect them to. in short it's the exact opposite of the regular notion of abstraction.
@pinkguy8205
@pinkguy8205 2 жыл бұрын
I don't think anyone is against abstraction per se. What Jon is pretty much saying is that if you do a cost-benefit analysis of your abstractions then you will find out that a large number of them are not worth it.
@Cons-Cat
@Cons-Cat 2 жыл бұрын
This post is the dumbest thing I've read all day
@simonfarre4907
@simonfarre4907 2 жыл бұрын
@@Cons-Cat no, he is a 100% correct. Without it, there would be no malloc, no alloca, no C standard library. All abstractions. But I suppose you've written your own std lib? And if you have; congratulations, you've written abstractions.
@Vitorruy1
@Vitorruy1 Жыл бұрын
​@@simonfarre4907 he's a low level system programmer, he obviously knows those are abstractions. He's not telling anyone to write in assembly what he's saying is that OOP abstraction are mostly bad/widely misused. He's arguing against the implementation not the concept.
@drequena
@drequena Жыл бұрын
Love how this vid ends. There’s really no other way 😂😂
@SimGunther
@SimGunther 2 жыл бұрын
First we solved problems, then we spent the next 30 years "solving" problems when in reality, people were sustaining problems to keep up profits
@vasilyaver5246
@vasilyaver5246 2 жыл бұрын
Same can be said about any modern industry, not just software engineering.
@Tsunami14
@Tsunami14 Жыл бұрын
Wasn't Jon also arguing that hardware intrerop should be TCP instead of drivers? Seems like that contradicts this video.
@Cyberfoxxy
@Cyberfoxxy 2 жыл бұрын
you have data, you have functions and you have groups of all 3
@jac1011
@jac1011 2 жыл бұрын
yeah "Object Oriented" is more about communication than anything else. It is so misused however, that we are forced to comply with a wrong definition because it is standard.
@davidandrewthomas
@davidandrewthomas 2 жыл бұрын
Issue with object-oriented as an idea is that it's terrible for modern processors. What you need for code to run fast is for most things below a certain level to run tight loops on packed data. Object-oriented ideas really fight that, unless it's used as a module system basically at the periphery of an application to wire components together.
@jac1011
@jac1011 2 жыл бұрын
@@davidandrewthomas well yeah, I wasnt saying that true OO is better than the current definition or anything I was just sayibg that the definition changed.
@davidandrewthomas
@davidandrewthomas 2 жыл бұрын
@@jac1011 yeah, that's definitely true.
@theDr83
@theDr83 2 жыл бұрын
I think i really understood what you want to Say there. And I am more a Script Kiddy than an actual programmer. I think you could not had made it more clear than that. I write mostly in Java and most of my background befor is from QBasic. (Of course thats not all XD. That would be hillarious) And i really like a lot of the Object Oriented Stuff. But often i feel overwhealmed with what i have to build to solve Easy Problems. It feels like it takes way more Time and Code to get somthing accomplished then in these good old days^^
@gustavcoetzee5018
@gustavcoetzee5018 2 ай бұрын
I begged neih i pleaded. Js cannot do this. Cannot does not exist in the mind which delegates but only in those that execute. I really loved programming. Now i love grants wiskey.
@laketuna
@laketuna 2 жыл бұрын
OOP isn’t about forcing you to use inheritance on everything you write. This is a common misconception used as an argument by people who dislike and have poor understanding of OOP. Just like with any tool, it’s up to the user how well it’s used. Programming didn’t go “wrong”.
@KookoCraft
@KookoCraft 2 жыл бұрын
it still sucks tho... and is useless and bad
@youtubesuresuckscock
@youtubesuresuckscock 2 жыл бұрын
@@KookoCraft Nah it's fine. Just another tool. Blow's a dummy.
@zenshade2000
@zenshade2000 2 жыл бұрын
OOP is a monumental fucking disaster for large scale projects. The only successes I've seen basically had to rewrite large portions of the code base in a style that mostly bypassed all of OOP's supposed strengths. That ends up being the only way to be able to make changes that don't feel like trying to swim in concrete. Funniest thing I've ever seen was in a very large web application with a really impressive 500,000 lines of code class hierarchy that developers got so frustrated with that they replaced it with a single class that ONLY funneled name/value strings from the database to the web page, and a couple of other classes handling security checks (SQL injection, etc). That actually saved the company from going under, as they could now give customers what they wanted within a two-week development cycle instead of 6 months.
@Vitorruy1
@Vitorruy1 Жыл бұрын
The issue is that nobody can agree what OOP's "best practices" are suppose to be and what is misused or overuse, because its solutions are proposed not on measurable results but subjective philosophical concepts.
@Vitorruy1
@Vitorruy1 Жыл бұрын
The irony is that the "bad" OOP code is created by the people trying to "do it right" and follow everything OOP gurus say by the letter. The "good" (acceptable) OOP code is create by the people who don't give a damn and just do the minimum amount of OOP to pass the code review.
@maxsamukha
@maxsamukha Жыл бұрын
"what's wrong with a function pointer?" Really. Like an interface is a bunch of function pointers.
@IDontReadReplies42069
@IDontReadReplies42069 Ай бұрын
With other highly specific criteria.
@davidmurphy563
@davidmurphy563 2 жыл бұрын
People that coin words don't get to dictate their use in perpetuity. The meaning of all words change, Richard Dawkins may have meant something different when he originally coined "meme" but that's not what it means today. OOP means what we think it means, that's how language works.
@davidmurphy563
@davidmurphy563 Жыл бұрын
@championchap I can assure you that when my 15 year old says "meme", he's not referencing The Selfish Gene. I did explain the concept to him once, he's probably forgotten.
@thatonegoblin7051
@thatonegoblin7051 Жыл бұрын
No, that is how entropy works
@syntaxed2
@syntaxed2 2 жыл бұрын
Companies seem to have traded enduser performance for development speed resulting in usage of various over-abstracted, garbage collected, interpreted languages like Python/JAVA and everything else in those ecosystems is probably one major factor.
@SimGunther
@SimGunther 2 жыл бұрын
@FichDich InDemArsch Why the 🤦‍♀️??? This is a sophomoric, but valid point everyone here brings up. From my experience, it's the problem solving framework (rather, a lack of a good framework) that's the biggest problem across several industry, not exactly the languages that are used. This would be why corpos value problem sustaining practices and capital over problem solving.
@La0bouchere
@La0bouchere 2 жыл бұрын
@FichDich InDemArsch I don't think the op was saying that there's nefarious intent at play. Moreso that there are selection pressures in the industry that reward being first to market/shipping things quickly. This results in people using tools and processes that make development time fast, possibly at the expense of the end product. This obviously isn't the only reason for the problems in SE, but it is definitely a cause of some of the problems.
@SimGunther
@SimGunther 2 жыл бұрын
@FichDich InDemArsch Measure/profile all the things: from development/debug time to execution/dev comprehension time with control variables just like you would with any scientific experiment for an empirical study. Inlining code before abstracting the commonalities into pure functions is one of the many techniques that helps you converge towards the "nirvana" between genericity, expressivity, and performance, which is what all code should strive for. Knowing what you know, knowing what you _might_ know, knowing what you actually don't know is essential for the design of a solution (See that Symmetry and Orthogonality talk by Charley Bay for other gems related to this); though it might take some experience to create mental shortcuts made after seeing certain problem shapes. Thankfully there are plenty of PKMs like Obsidian and Roam to help out with storing mental shortcuts and most common searches.
@SimGunther
@SimGunther 2 жыл бұрын
@FichDich InDemArsch Emotional empathy to find use cases and counter-examples for the knowledge banks like I mentioned before helps with the bottom-up software architecture. Finding "general-enough" patterns/concepts that help with the top-down software implementation. There's also this idea of using incremental development to improve development processes/feature sets and iterative development to improve product quality simultaneously (with reflection) as noted by Alistair C0ckburn. Also have a paper indexable commonplace book with consolidated fundamental truths that can be applied to a number of sources.
@SimGunther
@SimGunther 2 жыл бұрын
@FichDich InDemArsch Appreciate your latest response. I agree that there's a disjoint as far as what "good code" is. Having such a meta industry like "software engineering" that is considered an "art" first which encompasses many different topics explains why there's little overlap across all industries as far as what best practices apply universally. Doesn't mean they can't be written down in some central authority looking over all of software engineering. With the current science community in govt that focuses more on narratives over "scientific integrity", looks like we all have to establish those rules/guidelines together from the bottom up before they do. I hope that empirical studies are conducted in the near future to establish those "good practices" in industry and education.
@user-cz1ex7kf2g
@user-cz1ex7kf2g 2 жыл бұрын
everything in moderation
@internetsfinest8839
@internetsfinest8839 2 жыл бұрын
The hardest part of a function pointer is reading it.
@dukereg
@dukereg 2 жыл бұрын
Is he writing an editor, or someone else?
@SimGunther
@SimGunther 2 жыл бұрын
A language, then a couple of games before (maybe) getting to an editor, OS, and terminal emulator?
@EEEEMMMMKKKK
@EEEEMMMMKKKK 2 жыл бұрын
Bjarne always say, C++ was never designed as OO language. This guy always say something bad about C++ and than can’t find better language to write his own language which he wanted to use sooner than 10 years obviously things didn’t went so well so only thing left is to talk more bad things about c++ so maybe his language will look better right?
@SpeedfreakUK
@SpeedfreakUK 2 жыл бұрын
That would be the most cynical possible interpretation, yeah.
@krinjon193
@krinjon193 2 жыл бұрын
If there was a better language to write his own language then he wouldn't write his own language. He would just use that better language. C++ being the best we got is the tragedy. Thats my interpretation.
@SimGunther
@SimGunther 2 жыл бұрын
Bjarne did say he wanted his language to be general and designed to evolve. Clearly there was a disconnect between his ideas and those of "the committee". If only they took his ideas of "concepts" earlier on, then generic meta-programming would be so much easier than it is now.
@TheSaintsVEVO
@TheSaintsVEVO 2 жыл бұрын
@@krinjon193 Why doesn't he use C
@KookoCraft
@KookoCraft 2 жыл бұрын
@@krinjon193 the better language is C
2 жыл бұрын
Jon: IDEs are dumb and useless! Also Jon: Typing ALL_SOURCE_CODE_THAT_CAN_CURRENTLY_BE_INFERRED_IS_INFERRED every time by hand.
2 жыл бұрын
@WS WS If it has autocomplete, I consider it IDE. Therefore the terminology may be inconsistent between me and others.
2 жыл бұрын
@@AN-ke2uz Well I've been working as a software engineer for nine years and it never caused me any trouble. Just a tip: Be careful when using the word "stupid". People may get offended because they would think that you are calling them dumb.
@pinkguy8205
@pinkguy8205 2 жыл бұрын
I've been using VSCode since it pretty much came out. At first the autocomplete worked fairly well. But over time it has started failing more and more (not loading the suggestions in time, not finding the suggestions etc.). Now it fails many times a day for more, causing a lot of annoyance and swearing. If I were a bigger man I would work to undo my autocomplete habits. I can see how Jon with his 0 tolerance for bullshit would not accept something like this.
@TypingHazard
@TypingHazard 2 жыл бұрын
"If it has autocomplete it is an IDE" Gmail has autocomplete Ergo Gmail is an IDE
2 жыл бұрын
@@TypingHazard A guy killing cockroaches is a debugger. Therefore he is also an IDE. Yes, I still defend my position, thank you for asking.
@michael1
@michael1 Жыл бұрын
Blow, explaining at length why everyone else gets it wrong without the self awareness that he's exactly the same - a guy who loves the sound of his voice and thinks he's the smartest guy in the room (probably not true even when he's alone)
@Vitorruy1
@Vitorruy1 Жыл бұрын
you're one of those guys that throws accusations of elitism and presumption every time someone talks about anything deep and provoking. He's attacking the methodology and philosophy used by the industry but you just gotta to make it personal and feel like it's some attack towards other people's intelligence/professionalism.
@Jkauppa
@Jkauppa 2 жыл бұрын
you went wrong when you tried to theorise detached from the actual thing
@Jkauppa
@Jkauppa 2 жыл бұрын
law kills everything
@Jkauppa
@Jkauppa 2 жыл бұрын
go back to basic(s) pun intended
@Jkauppa
@Jkauppa 2 жыл бұрын
when the language became the problem, it was lost
@Jkauppa
@Jkauppa 2 жыл бұрын
when pride of the methods became the problem
@Jkauppa
@Jkauppa 2 жыл бұрын
someone needed to be paid
@youtubesuresuckscock
@youtubesuresuckscock 2 жыл бұрын
I'll save you 8 minutes: software didn't go wrong, everything is generally fine and constantly improving, and this guy's games are junk. You're welcome.
@snowflyer9737
@snowflyer9737 2 жыл бұрын
How can you really say that? Don't you constantly criticize game software for being an unoptimized mess?
@adrianalanbennett
@adrianalanbennett 2 жыл бұрын
You're in a dream land. I am a civil engineer in bridge design. Aside from all the other information of 44 years of living, I watch a lot of videos on line on different things, and I can tell you there is a consistent pattern running though everything. The core problem is not in programming it is in our society. Things are not continuously improving, they are running downhill fast. There may this and that that is improving, but overall things are not. There is a an almost irresistible tendency toward making things overly complex in every direction. At the same time it takes more and more people to accomplish even less. There is too much abstraction. Too much high mindedness. Too many people trying to prove how smart they are. Too many people who do not want to take the time to understand things in a deep way. To think is not the same thing as to do. Too many thinkers are trying to tell the doers how to do.
@bossgd100
@bossgd100 Жыл бұрын
Lol
@Vitorruy1
@Vitorruy1 Жыл бұрын
@@adrianalanbennett we all know how it feels like to read code made by a guy trying to show how smart he is..... I feel your pain.
@maxron6514
@maxron6514 Жыл бұрын
Facts !!!
Jonathan Blow was right about the crash of "tech" jobs?
14:11
Blow Fan
Рет қаралды 111 М.
Jonathan Blow on the Herd Mentality in the Industry
5:44
Blow Fan
Рет қаралды 47 М.
ОБЯЗАТЕЛЬНО СОВЕРШАЙТЕ ДОБРО!❤❤❤
00:45
CHOCKY MILK.. 🤣 #shorts
00:20
Savage Vlogs
Рет қаралды 29 МЛН
UNO!
00:18
БРУНО
Рет қаралды 4,9 МЛН
Jonathan Blow on backdoors and cybersecurity
18:53
flâneur
Рет қаралды 56 М.
Jonathan Blow on work-life balance and working hard
19:18
Blow Fan
Рет қаралды 91 М.
The most important talk on programming by Jonathan Blow
22:55
Not Sure
Рет қаралды 202 М.
WHY IS THE STACK SO FAST?
13:46
Core Dumped
Рет қаралды 147 М.
Jonathan Blow on ChatGPT Style Things at Producing Software
11:23
Umut Kaan Özdemir 🔻
Рет қаралды 46 М.
Jonathan Blow on mitigating buffer overflow risks
15:07
Blow Fan Too
Рет қаралды 26 М.
The Collapse of Web Programming Jobs
5:14
Blow Fan
Рет қаралды 77 М.
Jonathan Blow on Simplicity
16:08
Jonathan Blow Clips
Рет қаралды 59 М.
Jonathan Blow - Truth In Game Design
48:02
Þórður Ágúst
Рет қаралды 60 М.
ОБЯЗАТЕЛЬНО СОВЕРШАЙТЕ ДОБРО!❤❤❤
00:45