Prime Reacts: Software Engineering is In Decline

  Рет қаралды 237,327

ThePrimeTime

ThePrimeTime

Жыл бұрын

Recorded live on twitch, GET IN
/ theprimeagen
MY MAIN YT CHANNEL: Has well edited engineering videos
/ theprimeagen
Discord
/ discord

Пікірлер: 669
@DaLoler1
@DaLoler1 Жыл бұрын
"Do you really want people who write JavaScript to be controlling your house" made me laugh harder than it should
@NatSPlay
@NatSPlay Жыл бұрын
It literally encapsulates the talk though
@chessthoughts
@chessthoughts Жыл бұрын
@@NatSPlay good pun.... It threw me for a loop
@nexovec
@nexovec Жыл бұрын
DIES IN NODERED
@kurtnelle
@kurtnelle Жыл бұрын
OR the flight control software for the airplne you're on.
@NatSPlay
@NatSPlay Жыл бұрын
@@kurtnelle spacex used chromium for their rocket controls inside the dragon capsile
@jonnyso1
@jonnyso1 Жыл бұрын
The possibility of just patching your broken software latter is really what created this whole scenario, you're absolutely right. My personal big complaint about modern software is the mentality that there are more resources available now therefore its ok to write wastefull garbage. I hate it whenever someone says "memmory is cheap", "storage is cheap" bs.
@ThePrimeTimeagen
@ThePrimeTimeagen Жыл бұрын
totally agree
@tablettablete186
@tablettablete186 Жыл бұрын
"Processing power is cheap" 🥲
@ade8890
@ade8890 Жыл бұрын
Well memory is cheap, but that isn't a justification to write buggy code that leaks. If somebody wanted to nit pick space complexity over a few bytes, I would definitely rebut with "Memory is cheap", hah.
@nibblrrr7124
@nibblrrr7124 Жыл бұрын
​@@ade8890 Agreed. Though there is that anecdote about engineers purposefully deciding to write code that leaks, since they did a calculation that long before it will become a problem, the program will have stopped running - because it was running on a military missile that will have exploded by then. :^)
@BTrain-is8ch
@BTrain-is8ch Жыл бұрын
No one has that mentality. A huge part of the job of a software developer is balancing the tradeoffs. In situations where resources aren't really a constraint the simplest, cheapest, and most importantly most effective choice for the business frequently isn't the elegant, clever solution that you spent three weeks working on because the quick and dirty option wasn't optimal when the original schedule budgeted for two days. There's also a huge difference between going out of one's way to write garbage (something I'd wager most devs do not have the skill to do intentionally) and understanding that customer requirements are the ultimate arbiter of what is or isn't acceptable. Not your sense of professional pride.
@asdqwe4427
@asdqwe4427 Жыл бұрын
I think he has rose coloured glasses on when he thinks of the quality of the past. Sure chromium apps hog a tone of memory and are sluggish at times. But back in the nineties and 2000s when more desktop apps were c/c++, they would constantly crash and take my computer down…
@NostraDavid2
@NostraDavid2 Жыл бұрын
BSOD used to happen weekly. Now it's once or twice a year, if not less.
@asdqwe4427
@asdqwe4427 Жыл бұрын
@@NostraDavid2 exactly
@olegsilkin8507
@olegsilkin8507 Жыл бұрын
@@NostraDavid2 My computer definitely blue screens once a week at least, a few times a day on a bad day. But I agree that things have become more stable overall.
@arsnakehert
@arsnakehert Жыл бұрын
Doesn't this have to do with the architecture of older operating systems more than the quality of the software they ran? I'm not saying software wasn't buggy back then, but operating systems certainly seem to have become more secure in the sense of not allowing one application to crash the whole computer
@asdqwe4427
@asdqwe4427 Жыл бұрын
@@arsnakehert that’s part of it, for sure. But I would also argue that it doesn’t change my point of old software not being better.
@MatiasKiviniemi
@MatiasKiviniemi 4 ай бұрын
The missing perspective in this is IMO that software has become massively more complex and pervasive, doing much more things for us. Software used to be for trained specialists only that learned how it's supposed to be used, doing some mission critical worth (that justifies the expenditure). Now software is used by everybody everywhere (all at once) ofr purposes that were out of question. The correct perspective IMO is that the cost of software (both development and execution) has plummetted, allowing it to be used elsewhere. He's comparing the banking software of old to fart apps in appstore. The banking software (doing transactions in the backend) is still pretty reliable.
@Pavel-wj7gy
@Pavel-wj7gy Жыл бұрын
Also, the notion that old software was not breaking is just bizarre. It was giving exactly the errors like in Jonathan's Visual Studio example more often than today. I used to have a Celeron PC in 2000s that would eject/insert CD-ROM, like, 4 times on every reboot just for the heck of it. There wasn't even a disc inside that CD-ROM.
@rafaelbordoni516
@rafaelbordoni516 Жыл бұрын
I was thinking the same thing too, like, on the whole talk he showed a clip of the guy who wrote Unix telling the story of how it came to be and it was like, in 2 weeks he went from nothing to having Unix. However, OSs were way simpler back then, computers have a lot of new hardware that must be working off the box today. However I stopped to think: back then computers were only for programmers. Today, people use software to work almost every job, we use software to buy stuff, to do our banking, to communicate... Civilization just depends way harder on software today. Not to say he is 100% right, it's just something to think about.
@erifetim
@erifetim Жыл бұрын
Not to mention that Jon says in his talk that GMail makes the same mistakes that Microsoft Word did in the 90s and 2000s
@crackasaurus_rox9740
@crackasaurus_rox9740 Жыл бұрын
@@rafaelbordoni516 Take a look at reviews for any new product and you will find that users only care about maybe 5% of the software features. People don't rely upon software that does everything because they choose to. They do it because developers force them too. All of these features are useful to someone, but most are merely a distraction to everyone, including the developers. Thing is, developers don't develop for the users anymore. They develop for themselves. The users are just along for the ride.
@nordgaren2358
@nordgaren2358 Жыл бұрын
2000s is past the time he was talking about. He specifically said when developers started relying on just pushing updates, and 2000s is def past that time-frame.
@huckleberryfinn8795
@huckleberryfinn8795 Жыл бұрын
Exactly!! We just use software SOOO much more compared to 30, 20 or 10 years ago so it SEEMS like it happens more frequently, which it does. But if we increase the number of cars on the road 10 fold, then the total number of car accidents will also increase. Basic math really.
@rolandinnamorato1953
@rolandinnamorato1953 Жыл бұрын
Half baked software is everywhere and it's a welcome surprise when it works as intended.
@timothyvandyke9511
@timothyvandyke9511 Жыл бұрын
agreed
@PorthoGamesBR
@PorthoGamesBR 8 ай бұрын
Mostly because people can't see the true cost of software not working. A simple reestart dont cost that much on its own, maybe a couple of seconds or minutes, but if you sum it during days, months or years of work, you start to notice how much time you lost just waiting for Adobe Premiere to reestart after it crashed during rendering
@altrag
@altrag 8 ай бұрын
@@PorthoGamesBR We can see it, but we have to relate it to the cost of software working. If you're OK with the next update to Premiere dropping in 5 years and costing $10,000 annually I'm sure Adobe can make it rock solid. But of course nobody would wait for that or pay for it. They'll just switch to the shitty clone that costs $100 for a "permanent" license and deal with having to restart every few days. Just fire off a message to the developer and you'll have a fix within a few months or maybe even weeks, not a half decade. Developers _could_ do better but there's no incentive for it. They'd lose more customers trying to account for the additional costs and delays than they'd make through the good PR of a "rock solid product". If we want good software, we need to incentivize developers to make good software. Whining about it on the internet isn't sufficient - we need to put our money where our mouths are. A lot of money thanks to the 80/20 rule. That last 20% of bugs will (on average) cost 4x more to fix relative to the first 80%. That's commercial software of course. You might think it doesn't apply to FOSS because there's no cost and 4x0 is still 0. I'd argue that's incorrect. You may not have the dollar cost but there's still the time cost - some developer somewhere needs to put in 4x more of their time in order for those last 20% of bugs to get fixed. That's a lot to ask of someone who is unpaid and only working on the project out of passion. Nothing kills passion like grinding away at some rare problem somebody else has that you can't reliably reproduce. They just won't do it. They'll spend their time adding a new shiny feature instead. New features draw more interest from the public and are less demotivating for the developer. Of course they'll put their time there.
@jewelsbypodcasterganesh
@jewelsbypodcasterganesh 6 ай бұрын
Even on sites like KZbin and Facebook there's obvious, unfixed bugs.
@altrag
@altrag 5 ай бұрын
@@davefunk135 Yeah there's a terminology clash there. "Developer" can either mean the company as a whole, or an individual worker. You just have to use your best judgement from context and not blindly assume I'm implying some singular person is responsible for all of the bugs in all of the products Adobe sells.
@altrag
@altrag 8 ай бұрын
This is trivially explained by the classic triangle: good / \ fast -- cheap We've collectively chosen to focus on the bottom pair. We (end users) want everything right now and we don't want to pay for it. That implies sacrificing quality. But it depends on the demand. Military projects for example tend to focus on the left pair and ignore the cost. Space organizations and other scientific endeavors often focus on the right pair and spend years or decades making damned sure they get it right as its very difficult to fix a broken satellite. Medical equipment tends to focus on the top item exclusively and somewhat balances across the bottom pair, leading to quality software that's neither super cheap nor super fast, but also does eventually release and isn't prohibitively expensive. As the old saying goes, there's no free lunch. Of course one can argue that focusing on "fast" and "cheap" to the detriment of quality is an indication of the idea of "decadence" that we often attribute to the downfall of older civilizations (primarily Rome). I'm not sure that's really valid but its at least an angle to take if you want to assert that having to restart your browser periodically is the big indicator of imminent societal collapse (as opposed to say population growth - or population shrinkage depending on your fears, climate change, the recent push to revitalize authoritarianism, or any of the other problems in the world that have little to do with computers at all, hardware or software).
@ZoraAlven
@ZoraAlven 3 ай бұрын
Jesus Christ said, that there should actually be a free lunch.
@cherubin7th
@cherubin7th Жыл бұрын
Y Combinator always recommends to ship your Minimal Viable Product as fast as possible even if half broken.
@SpookySkeleton738
@SpookySkeleton738 Жыл бұрын
Hit the nail on the head with the problem surface comment. Casey Muratori made a talk about this, the real source of the problem is that while in the 80s and early 90s you were programming for MS-DOS on IBM PC, you're now programming for like 4 different software platforms on a theoretically infinite number of janky hardware configurations. The problem honestly, really begins with the fact that we're not working with a stable hardware ISA to begin with.
@valhalla_dev
@valhalla_dev Жыл бұрын
Describing Jonathan as grumpy is an incredibly accurate and generous statement. He's got some good takes and he's wicked smart in some areas but boy can he get grumpy.
@timothyvandyke9511
@timothyvandyke9511 Жыл бұрын
I would say "Jaded" tbh
@xunjin8897
@xunjin8897 Жыл бұрын
The problem here is not being grumpy, is being disconnected from reality. Primeagen nailed 2 points: - the fact that you can update software made you rethink your strategy of deploy. - How much the scope has grow in layers of indirection and usages. Looking at how things were and what we can learn from the past is good, however saying the future is doomed because things are not how it was in the past, is a childish take.
@gocryptoyourself2423
@gocryptoyourself2423 11 ай бұрын
Smart people are angry because they see all the stupid shit.
@Lazlo-os1pu
@Lazlo-os1pu 7 ай бұрын
@@xunjin8897it’s also the fact that we use software constantly and for everything these days. More time spent using software naturally means you’re going to come into contact with more issues with it. Yet the fact that we use software so much suggests that software is in fact thriving rather than dying.
@MrLordFireDragon
@MrLordFireDragon 6 ай бұрын
​@@xunjin8897 The point isn't "Things aren't the same", it's "Things are worse, and not because we're getting gains in other areas". During the whole "But look at how much surface area a program has now!" I could not stop thinking that Blow would immediately say "Yes, and that's a problem". The fact we have so many pieces of software relying on each other, each of which was not developed rigorously, is a problem. It indicates a lack of software development improvement which accounts for this interconnectedness. We keep developing new things without making the things we already have work rigorously, and this house of cards inevitably gets more fragile. Similarly, the ability to perpetually patch and update software is not some unilaterally good thing we just have to accept because of how good it is, and therefore accept that worse software is now the norm.
@ieternalsyn
@ieternalsyn Жыл бұрын
"Do you really want people who are writing Javascript to control your house?" Instantly liked lmao
@remssi-dev
@remssi-dev Жыл бұрын
One thing that is adding to all this is the commercial side. "Just push Minimum Viable Product out there fast and iterate on that" Also, of course people let more buggy apps slide when it is just an annoyance and not literally going to get someone killed. It depends on the needs of the application (and business).
@ericwalker8382
@ericwalker8382 Жыл бұрын
Yes, sacrificing code efficiency because the hardware is better is exactly what he means. Database developers have been doing the same thing because "storage space is cheap" until it isn't. Processing speed is cheap until it isn't. I 100% understand what he is talking about.
@rafaelbordoni516
@rafaelbordoni516 Жыл бұрын
The whole talk is very interesting. This clip is just a funny part of the talk, but the important stuff was left out. I think it's also important to understand that Jon Blow is a game dev, and the game dev world is very different from web dev, optimization is waaaay more important there. If you know game dev, worked with engines and stuff and go play video games, especially small indie games, you'll see so much suboptimal stuff that it gets to your head. Lots of tutorials teach you stuff that work on the surface but perform really badly on the whole project, when it is feasible to do on bigger scale. Engines do 99% of the work right now in game dev and most programmers don't understand what the engine is doing under the hood (I know I don't...). And even though engines are powerful, they are generic tools so if you were to use a specialized tool to make your game, you could make it better with less bugs. Not to say that in web dev people know their shit, but that's kinda the point: working in game dev makes you more aware of how much better software could be, and today we do everything with software. Back then, when software was simpler, it was just a niche tool only programmers could use. We now use it to communicate, work, be entertained, get transported, our whole civilization depends on it. Not to say he is right about our civilization collapsing, but he definitely has a point.
@prestonrasmussen1758
@prestonrasmussen1758 Жыл бұрын
I agree that game dev and web dev are different. I disagree however, that "optimization is waaaay more important" in game dev than it is in web dev. I think the optimizations are different, and in web dev the optimizations that are happening are even more abstracted away from the end user, so its more difficult for a non-expert to understand or even ntoice that it's happening. For example, game dev for offline games is about optimizing local resources. it's about doing things like 3D vector calculations using as few clock cycles of the GPU as possible. However, don't have to worry about 100 people trying to use resources from the same GPU at the same time. Web dev on the other hand has optimizations around distributed systems, databases with immense amounts of data, and thousands or millions of users making concurrent requests. I saw Jonathan Blow brag about how is program has to handle "gigabytes of data every second" like it was a large amount of data. If you type in a Google search bar it has to be able to return results from a database millions of times that size in a handful of milliseconds. Furthermore, game dev runs on 60-120 FPS and so reducing a process by a handful of milliseconds will often be a meaningful optimization. However, for web dev if the data you're returning is going to take 100 ms to travel over the internet anyways, sacrificing accuracy to improve a search by 5 ms is not a worthwhile tradeoff. So the optimizations are different in web dev, but they are also some of the hardest problems in human history to solve. The issue you bring up with engines is present in web dev too. Engines abstract away a lot of functionality and optimizations in game dev, and frameworks and cloud services do the same thing in web dev.
@rafaelbordoni516
@rafaelbordoni516 Жыл бұрын
​@@prestonrasmussen1758 You realize all of those are also a game dev thing, right? You also have to optimize request times with millions of users sending requests, especially because each frame your requests lags can make or break your game. It's to the point where a modern game like Smash Ultimate has its community limiting online tournaments to only people in the same region to save a few frames, but overall they avoid online tournaments altogether. You are right about optimizing this stuff being hard and important, maybe "important" wasn't a good choice of word. I meant to say it's more impactful to a typical game than to a typical web app. It's easier to tank your performance in UE4 or Unity than at a NextJS React app, at least to the point of making users complain. I'm not sure about which is more abstracted tbh. I'm only your typical TypeScript+React+Express bootcamp summer child at web dev, and at game dev I only know Godot and Unity and in my experience, these two engines abstract way more than the web dev stuff but opinions may differ.
@prestonrasmussen1758
@prestonrasmussen1758 Жыл бұрын
@@rafaelbordoni516 Notice I explicitly said for “offline games.” But in any case, the large websites are still handling much larger user bases than the large games. And the people handling the infra for games are also infra devs. Also when I talked about web dev stuff being more abstracted than offline games, I was meaning that you not only have a framework that abstracts software, but the cloud deployment means you’re also abstracting the hardware, so it’s not just the hardware sitting in front of you that’s running the code.
@jakubrogacz6829
@jakubrogacz6829 Жыл бұрын
yeah. I have enough time to run full map djikstra search ( tanks frames for a second or too but is largely invisible, while former implementation tanked to 1-2 FPS due to draw call ammount (and fun stuff is that technically I still don't know why batching tile layers drops draw calls by three magnitude orders ( thing is I use atlas anyway so probably there is some error mine or in library which rebinds already bound texture ).
@RogerBarraud
@RogerBarraud Жыл бұрын
80% of being a good programmer is knowing that you're a bad programmer.
@ifstatementifstatement2704
@ifstatementifstatement2704 5 ай бұрын
And now 100% is having ChatGPT write the code instead
@laggmonkei
@laggmonkei Жыл бұрын
Its unfortunate that his example with photoshop startup wasn't included because that is the best point regarding all this imo. In the last 20 years when hardware has become almost infinitely faster the loading time is slower than before. Hardware advances has covered up so much of the software performance ignorance that it's ridiculous.
@officiallyaninja
@officiallyaninja Жыл бұрын
And photoshop today can do so much more than photoshop 20 years ago. It's not slow because the programmers and incompetent it's slow because it's big and complex and they can't afford to spend more dev hours on load times.
@saniel2748
@saniel2748 Жыл бұрын
@@officiallyaninja Does Photoshop do anything it didn't do before on startup tho? It really doesn't, and there is no need to make me wait a minute so you can load all your fancy plugins if all I want is to crop the image
@edd9581
@edd9581 Жыл бұрын
​@@saniel2748 Imagine if photoshop only load the features that the user sees on the screen at start
@La0bouchere
@La0bouchere Жыл бұрын
@@officiallyaninja Except that there are games that are more complex than photoshop, developed in 1/30th the amount of time, with less resources, that handle full ray tracing at 60 fps. Besides, long load times are usually caused by poor architectural planning, not a lack of dev time.
@nikhiljugdan724
@nikhiljugdan724 Жыл бұрын
@@officiallyaninja Adobe, a multi billion dollar compay can't afford to improve load times. Yeah, no one is going to buy that.
@atla5_
@atla5_ Жыл бұрын
Maybe the reason why we face so many bugs now is because we use software 24/7. What kind of software was 20 years ago average person would use? TV, radio, Christmas lights, static website with no code inside it?..
@ghosthunter0950
@ghosthunter0950 Жыл бұрын
Isn't that part of the point? that we should be striving for simplicity.
@bobbobson6290
@bobbobson6290 Жыл бұрын
20 years ago the software I used was games, more games, even more games, a ton lot more games.
@grawss
@grawss Жыл бұрын
What about the games? Up until a certain point there were next to no game-breaking bugs in video games, and games like Pokemon were robust enough to have alternate programs built into them and they'll still run without crashing. Those old programmers knew how to power through bugs like nothing, but that was because they couldn't do patch updates. You can't update thermostat software without modern tech, nor coffee-maker software, and if you look at the crazy simple mechanisms being used back then, that stuff was built with exactly that in mind.
@bobbobson6290
@bobbobson6290 Жыл бұрын
@@grawss no game-breaking bugs? You don't seem to have played on PC in the 90s...
@MGMan37
@MGMan37 Жыл бұрын
@@grawss OG pokemon is pretty buggy. The fact that you are able to "have alternate programs built into them" is due to a bug resulting in arbitrary code execution, which would be considered a disastrous security flaw in software today.
@Anteksanteri
@Anteksanteri Жыл бұрын
Prime also watched the Casey Muratori optimization lecture. The complexity thing has to do with both of these. Casey and Jon know eachother and worked together on The Witness. Having watched most of both their highlights on youtube, I think an assumption that they both make is that almost always it would be better to use less abstraction and severely limit your use of external libraries when trying to make performant, high quality software. The most important argument is that you're using the right tool for the right job, and it's your job as a developer to make the right tool, which is often far simpler than people think of and supports deep understanding of how your system actually works, instead of handwaving library calls. Here's a comparative list of the pros and cons I wrote yesterday: writing your own implementation +/- requires studying the problem domain + if done well, eliminates complexity - takes time - result might not be the highest quality - changing requirements make using an existing library seem attractive +/- this is the careful approach using an existing library - you might have unknown invisible dependencies on e.g. system state - requires learning + the interfaces can be better limited to your problem domain + having other people maintain non-trivial changes is ideal (like graphics drivers or something) + more time working on the non-trivial parts of your program + quicker to market - risky, though the risk can be mitigated through reasoning that you actually need to write your own implementation - cheaper in the short term - external dependencies can lead to your program having uncontrollable technical debt. - you might not understand what you are depending on - often the thing you need doesn't really exist or it doesn't match some quality you are looking for. suggested strategies to deal with this if possible, question what is the maximum possible problem domain it may affect e.g. some enemy movement script vs enabling operator overloading for your new programming language through some library popularity can be good, but is not a guarantee of quality avoid bloating your dependencies without reason understand what you actually need be critical of any new libraries at least review what it is very often the thing you use is not as complicated as you may thing. (case and point, JS libraries that are like 10 lines and downloaded a 300k times) it's possible to pivot from an existing library to your own sometimes, if need be. unit tests for this are actually really useful every part of your program that uses and is covered works if the thing already has unit tests you may pick the subset that applies to your problem domain and perhaps translate them to use the new interfaces
@itr00ow93
@itr00ow93 Жыл бұрын
where can I find it?
@odysseasragnarson7295
@odysseasragnarson7295 Жыл бұрын
have a link to that?
@Anteksanteri
@Anteksanteri Жыл бұрын
@@odysseasragnarson7295 It's at 1:41:20 in this vod: www.twitch.tv/videos/1738012731?filter=archives&sort=time
@Anteksanteri
@Anteksanteri Жыл бұрын
@@itr00ow93 check the replies now :)
@itr00ow93
@itr00ow93 Жыл бұрын
@@Anteksanteri I don't see it?
@Kerngebruiker
@Kerngebruiker Жыл бұрын
When I moved from some undefined variant of XP to religious SCRUM the thing I noticed most was the preference of teams for new features over bugs. It really takes a good product owner or spam of bug reports about the same thing to get things moving along.
@illicity2383
@illicity2383 Жыл бұрын
Okay @ThePrimeTime. I have a theory that might explain this better. What if software is crappier nowadays because of simple capitalism!? I'm a full stack developer. I have NEVER worked with a client that didn't have a rushed timeline, or poor budget. Companies want software fast, and cheap. I think thats why we have so many issues with software nowadays.
@barreltitor1419
@barreltitor1419 7 ай бұрын
This ^ Pretty much what prev devs and my boss did at my prev employment and in the end our EC2 machines kept crashing and we had no clue what was going on because we had poor standards :-)
@illicity2383
@illicity2383 7 ай бұрын
@@barreltitor1419 Yup. Been there done that many many times in my career. Unfortunately its just the nature of the beast.
@davefunk135
@davefunk135 5 ай бұрын
it is that. i commented above too and have struggled with this everywhere I've ever worked. Executives causing problems for everyone and then making you work overtime when you launch prematurely and the problems you told them would occur surface. Useless suits who add nothing of value to the org just making everyone's lives more complicated.
@LagMasterSam
@LagMasterSam Жыл бұрын
As far as complexity goes, Jon thinks the complexity itself is the main problem. His argument is that software developers have screwed up by making things needlessly complex.
@Mike.Garcia
@Mike.Garcia 11 ай бұрын
No everything is complex, I think his point is that developer's are willfully ignorant about lower level, fundamental computer science, software engineering knowledge.
@brandongregori995
@brandongregori995 10 ай бұрын
Too much complexity to keep up with is definitely the main issue, but I don't believe software developers did that. Expectations have been raised and the range of devices has increased(and is still increasing). As far as developers needing to do better goes, they are working in abstractions most of the time where the fundamentals of computer science do not help. The problem lies in the fact that we iterate faster than ever, add more features than ever, and most of the time aren't even given the opportunity to write robust tests.
@thewiirocks
@thewiirocks 8 ай бұрын
@@brandongregori995software engineers didn’t drive the complexity, but we did fail to control it. Brooks talked about Accidental Complexity back in the 70s and how damaging it is to software. Yet we not only ignore this today, we go out of our way to run up the bill! ORMs, SPAs, MVC (ish) things, F***ing Spark, Python for serious projects, HIVE, on and on and on. I’m starting to feel like we’re dying under an avalanche of bad software driven by a realty-show level of popularity contest! This can’t end well.
@vitalyl1327
@vitalyl1327 Жыл бұрын
I can sort of see where he's coming from. As a primarily hardware engineer, I do indeed feel this frustration - having all the cool formal verification tools in hardware and seeing software world being so reluctant to adopt even the most primitive forms of it makes one ponder about the future of the software engineering. Software engineering is so resistant to become, well, an actual engineering, where responsibility and safety is a key.
@alexanderlanz9712
@alexanderlanz9712 Жыл бұрын
The problem is that most software has no reason to be "safe" and this makes a lot of software engineering different from hardware and physical engineering. Nothing bad happens when I need to reload netflix or close word. When software interacts with the physical world like in cars and planes it needs to be safe and then a lot of formal verification and testing happens.
@vitalyl1327
@vitalyl1327 Жыл бұрын
@@alexanderlanz9712 The fun part here is that although safety requires an upfront investment, it cost less in a long run. Bad quality code piles up problems and explodes complexity until you cannot maintain it any more. High quality code causes much less problems in long run. Too bad code monkeys very rarely think long term.
@grawss
@grawss Жыл бұрын
@@vitalyl1327 It's a lot easier to make up for lack of knowledge in software engineering. If a software engineer were to build a washing machine, it would weigh a couple thousand pounds, and have 20 tests for drum speed and zero tests for the electronics.
@JLK89
@JLK89 2 ай бұрын
Systems complexity creep is a real problem. In the 60's, designing a new car/plane meant drawing a fuselage, sticking an engine in it, and adding a seat. Buttons controlled things through wires, not can bus or encrypted ethernet. Now it takes the military 40years to make a new plane, and car service technicians just shrug when they can't solve an electrical issue with a can-logger scan.
@zesky6654
@zesky6654 2 ай бұрын
​@vitalyl1327 it's not the programmers' fault, they don't make these decisions. Business is almost always the problem, they demand results in timeframed that don't allow for quality.
@aerialdude
@aerialdude Жыл бұрын
I think Prime hit the nail on the head when he talked about how today we can just update things later, so we push out buggy stuff. So basically we are perpetually in a state of buggy software, because everyone all the time time is operating in this paradigm of "we can fix things later". Bugs do get fixed, but new ones come too, so we always are coping with bugs and now we have all grown so used to it that we just expect it. Also I want to point out that when Prime said "Do you really want people who write JavaScript to be controlling your house", I think he basically was admitting that this guy was right! The state of software is so bad you know you wouldn't want it controlling your house!
@atkascha
@atkascha 7 ай бұрын
Blow has some... off takes in general. He's very intelligent, but he is (was?) also a big Tesla / Elon / Carmack stan. Teslas have caught on fire, caused accidents, caused millions upon millions of dollars in damage, and people have been injured/died due to Tesla's software. Additionally, Elon has famously said that "fully autonomous driving is coming next year", every year, for the last 6 years. Should Tesla stop selling cars until the software is perfect? I don't think stock holders would like that, so there's a bit of the "Yuppie Nuremberg Defense" in there. And as you point out, game dev is massively different than other types of dev. Using Prime's work... Netflix is never off. Its not an application you download that has zero HTTP. Its running 24/7, with millions of people streaming from its servers at any given time. Blow has never worked on a product like that and has often bashed web dev of any kind. Another example is his "hobby?" programming language Jai. Its been in development, without a public release to this day, for 10 years. Not everyone has the infinite money glitch in order to work on 1 thing for a decade. HIs game Braid was neat though.
@user-kh7kx9en9l
@user-kh7kx9en9l 5 ай бұрын
@@atkascha Unfortunately a lot of coders are bootlickers to the tech industry. One of the worst things about this industry.
@ChrisPatti
@ChrisPatti Жыл бұрын
you totally nailed this. Jon Blow is an incredibly smart guy with an incredibly specific viewpoint derived from very specific experience in the game development industry. I work in platform engineering or DevOps as the olds used to refer to it :-) I mostly use Python, because the truth is it really sincerely doesn’t matter how fast my code is when it will spend 99.999% if it’s time waiting for an upstream API return anyway.
@ongeri
@ongeri Жыл бұрын
What of that upstream api? Your code may also be upstream to something else you know, and sometimes it is a complicated web where one slow element may cause the entire system to appear sluggish, a kind of cascading failure. So that 0.001% of the time matters a lot.
@logananders7334
@logananders7334 Жыл бұрын
Hey Christopher, I wouldn't mind asking you some stuff about your job. Could we talk via dm?
@HobokerDev
@HobokerDev Жыл бұрын
Latencies add up. Fast.
@gogudelagaze1585
@gogudelagaze1585 Жыл бұрын
@@ongeri It really doesn't matter, because IO latency makes the bulk of the waiting time. We're talking different orders of magnitude.
@kiaranr
@kiaranr 7 ай бұрын
I'm a software engineer at Epic Games. I use about 25 peices of software on a daily basis. It's just a constant battle of workarounds, restarts, hacks and tears. It legit stresses me out. Even moreso when I see these issues in my OWN software. I felt this talk on a deep, personal level.
@m4rt_
@m4rt_ Жыл бұрын
18:50 KZbin likes to call "Auto(1080p)" HD, but it often is lower quality, and often lags more than normal 1080p, so I have begun just always manually setting it to "1080p" because for some reason you can't set a default quality on desktop, but you can do that on mobile... but recently they have made even that bad. I know that they can add the feature to set a default resolution, but for some stupid reason they have decided to not do it, so I have to do it manually, and because of that it decides to sometimes not let me play the video, and even sometimes change the quality lower even when I have set it to 1080p, WHYY DO YOU HAVE TO MAKE IT SO HARD TO WATCH A VIDEO IN 1080p
@irlshrek
@irlshrek Жыл бұрын
the reason I like rust so much is because being able to limit errors to (mostly) logic errors..is huge. I mean something happening and having no idea why is the shit that keeps me up at night
@NathanHedglin
@NathanHedglin Жыл бұрын
Yeah. The reason why I'm looking more into ML languages and proof languages like Coq and Agda.
@soggy_dev
@soggy_dev Жыл бұрын
I dunno why, but I never thought I'd see a Prime/Blow crossover 😄 My two favorite software opinion guys hahaha
@allan4386
@allan4386 Жыл бұрын
A lot of good content can come from these types of crossovers.
@tech3425
@tech3425 Жыл бұрын
Honestly
@nathankamenchu1239
@nathankamenchu1239 Жыл бұрын
And maybe Casey Muratori
@parlor3115
@parlor3115 Жыл бұрын
So you like blow?
@gkraker04
@gkraker04 Жыл бұрын
@@nathankamenchu1239 Absolutely
@catsby9051
@catsby9051 Жыл бұрын
The part you talk about at the 13 minute mark is definitely true... but in some ways that *is* the problem. Like, we have a lot more buggy software today because of the complexity. And often it is not immediately clear that the complexity actually is worth it.
@todo9633
@todo9633 3 ай бұрын
"Why do they keep recommending me my own video?" Cause real recognize real.
@theondono
@theondono Жыл бұрын
I like this format of posting the reaction later on YT because I can then make a more lasting comment having thought about it for some time. I think software has been under the same kind of process that modern manufacturing has. If you think about it, there’s a composition fallacy at play. For each single company, being nimble and quick to react, build fast and iterate, and to externalize non core functions to cloud services makes total sense. But in the big scheme, having all the companies in tech doing the same leaves you with fragile tech stacks full of holes, a patchwork of software built on shaky interfaces that become moving targets. Just imagine if we had in software something similar to what has happened in supply chains, imagine services randomly stopping, or being massively delayed, changing procedures,… it would be pure chaos. We’ve collectively leveraged our stability for speed, maybe we should consider reducing that leverage. Of course the catch 22 is that trying to do this unilaterally will bankrupt you…
@andythedishwasher1117
@andythedishwasher1117 Жыл бұрын
You do have a very valid point about the comfort layer introduced by modern CI/CD pipelines and other rapid re-deployment strategies. When you can ship a patch with a quick CLI command, you're not sweating very hard when you hit commit.
@dagadbm
@dagadbm Жыл бұрын
move fast break things. thats why :)
@Mike.Garcia
@Mike.Garcia 11 ай бұрын
11:52 30 years ago DOS applications were shipped with a myriad of disparate hardware drivers, and the application had to work with all combinations
@Hector-bj3ls
@Hector-bj3ls Жыл бұрын
The point he's making about the face app is that it requires an entire Linux operating system (30Mloc+) to interface with the hardware while the ML bit is a few ~1kloc if that.
@allan4386
@allan4386 Жыл бұрын
I think he means the quality of MOST of the applications made using whatever new s/w languages hasn't improved, on average... they've been using the improvements in hardware as a crutch.
@prestonrasmussen1758
@prestonrasmussen1758 Жыл бұрын
But the issue is that's just not true in an apples to apples comparison. Websites have functionality now that was unimaginable 30 years ago
@attilazimler1614
@attilazimler1614 5 ай бұрын
Yes, with we can ship bugfixes at the moment notice, unfortunately every such fix delivers two additional bugs too.
@simonrenblad490
@simonrenblad490 Жыл бұрын
Funny that he starts with the 737MAX example, because it most definitely had problems other than software. The whole reason they needed a software fix in the first place is because the aerodynamics of the plane made no sense. Not to mention the fact that the software had to rely on like a single sensor, or that the pilots were given minimal training on the new behavior of the plane. Safe to say there were more problems than "only software".
@JosephSalmans
@JosephSalmans 4 ай бұрын
I totally agree with this. It went way further than just bad software. Are we even sure the software was bad? Seems like no redundancy of the hardware was the problem.
@JayXdbX
@JayXdbX 4 ай бұрын
I'm fairly sure the 737MAX relied on 2 sensors which had to be in sync. The crashes or at least 1 of the crashes was caused by the sensors giving different results which caused the computer to go haywire. also the sensors being out of sync could happen by simply replacing only one of the sensors.
@theelectricprince8231
@theelectricprince8231 Жыл бұрын
3:37 , he has a point. I have observed this in gaming, new games are only different because of the advances in hardware. That's why the gap between gaming generations is so small now. I look at a lot of new releases and I don't see why these couldn't be on a PS4 or even a PS3.
@lucianmot3999
@lucianmot3999 Жыл бұрын
Please make more of these. This is great.
@ruslansmirnov9006
@ruslansmirnov9006 5 ай бұрын
20:00 i remember seeing a HUGE lcd screen on top of a 35 store building in Moscow back in 2010 stating `undefined` in 6-meter tall letters for DAYS...
@Zaf9670
@Zaf9670 9 ай бұрын
The fact that the middle finger ended up being the "we accept it" at the end may not have been planned but... it was definitely destined.
@funguy2627
@funguy2627 Жыл бұрын
all the updates ive seen in apps made the product more bloated, and unreliable. I find that I hate doing updates because I kind of expect some kind of behaviour I don't want. Big corp keep shoving new features with more bugs and then they force on the user to update it. Apps just keep on changing, the dev team prob keeps changing im not surprised why people expect software to be crap with issues
@abyzzwalker
@abyzzwalker Жыл бұрын
Fantastic video and analysis.
@nomoredarts8918
@nomoredarts8918 Жыл бұрын
He convinced my employer, I have no job now
@Rust_Rust_Rust
@Rust_Rust_Rust Жыл бұрын
Good
@angryman9333
@angryman9333 Жыл бұрын
Good news
@aes0p895
@aes0p895 6 ай бұрын
NASA would never knowingly 'ship' a bad product (launch), regardless of how complex it is, because failure is unacceptable. It's the same with software; if customers theoretically would never buy subpar software, the standards would go up immediately. But people just keep buying TVs and microwaves and all the other things no matter what.
@irishskier9432
@irishskier9432 Жыл бұрын
This guy clearly has not worked in enterprise for a long time, so many wild assumptions in all of these takes. This is the software equivalent of your maths teacher telling you not to use a calculator for basic functions. Using tools that improve speed of development and abstraction are not necessarily a bad thing. Any decent dev worth their salt understands the underlying fundamentals. Those who don't get found out pretty quickly once the ask becomes more complex and requires fundamental understanding. The entire thing is essentially a luddite argument. The idea that software relies too much on hardware, what's the solution then? Go down to lower levels and redesign a whole language to meet a specific use case? This completely defeats the purpose of iteration and OS principals. Software has always scaled with the resources available to it. People who care about these real fine grain issues about resource usage are weird to me. Who do you want in your company? The dev who spends 6 months improving a set of functions to improve performance, or the dev who pushes out an entire feature to the client and delivers on the ask and fulfils the requirements. The reality is the client doesn't care about the extra 1 percent performance, they care about being able to run their processes 6 months earlier and then run them continuously. That's the whole point of iterative development, the client comes back for a performance increase down the line and we charge them for that too. If you are good at something never do it for free. I know this take will piss a lot of people off but that's the reality of real world development. The percentage of Devs who care about the academic perfection checklist of reducing completion time of an algo, or reducing all bugs to zero is a vanishingly small proportion. If the ask is for 80 percent code coverage. guess what you are getting? exactly 80 percent and not 1 percent more. Most Devs care about doing the minimum to fulfil the ask this is just the reality of the real world of work outside academic institutions. It may be a "room temperature IQ" take as you put it but the reality is deliver the ask or get sacked, upper level management simply does not care that you resolved a weird bug that only you know about or that you improved performance on a backend process function. Unless it was specifically related to a client ask. Ignoring this aspect is either an oversight or a willfully misleading take. Its all well and good when your primary income is from you tube and not from actual real world development, but when you're under time pressure from a client and management the things you think are important are "nice to haves" and nothing more. No one is going to redesign an entire JS framework because "you think its flaky". It may have been an acceptable outlook 20 years ago when all the internet companies were start-ups ran by engineers. However the reality is, the business people with no programming knowledge took over the upper management in all these companies years ago. The era of perfection that used to exist, with each new version being a self contained work of bug free art are gone. Iteration and rapid CI/CD are the new name of the game and its not going to change because some people have high minded ideas about what "software should be".
@Exilum
@Exilum 7 ай бұрын
The thing is, I'd tend to say I have the opposite observation of what he encountered. There used to be a time when software having issues was way more grave than today, and it wasn't as rare as we like to remember things. Every issue he had couldn't be said to be anything more than small annoyances. The biggest one was a form that he had to refill. Even just taking 2010, I still remember when having software crash in windows 7 had a non-negligible chance of blue screening windows itself. There was also these times when one device's drivers breaking could break all devices. What about when you started a game and it crashed right away because it needed a specific dx version? What about these innumerable softwares that could just break if they crashed at the wrong timing? It's basically the same as what he did, if you look back at your daily life then, you had a lot of troubles too, but their effects weren't dampened by the layers of abstractions, so these sure were very fast and powerful problems.
@codeman99-dev
@codeman99-dev Жыл бұрын
One more factor: A general understanding of how software is made. The percentage of people who understand software over time is definitely on the rise.
@NatSPlay
@NatSPlay Жыл бұрын
More people having general understanding also means that there is more misunderstanding ironically
@KilgoreTroutAsf
@KilgoreTroutAsf Жыл бұрын
A quick shoutout to all those hobbyist bridge and airplane engineers out there.
@kti5682
@kti5682 7 ай бұрын
​@@KilgoreTroutAsfWhat I miss in this discussion is that run of the mill software never receives the scrutiny the airplane software receives. I mean just look at 61508-3 normal software skimps out of easily all of the requirements for functional safety.
@carlynghrafnsson4221
@carlynghrafnsson4221 Жыл бұрын
I remember my Borland Visual Turbo C++ w Protogen RAD tool. I think over time, the only RAD tools now are mostly GUI. So, I see spots missing... like RAD tools for researchers. Scientists want app dev, but they could never afford that or find time to learn. I see that as an opportunity for RAD. A statistical package PLUS a fun plug'n'play compile, distributed service access. But generally, I see the future of AI in executive management suites that not only collect data, but help bossman make a decision or automate... taking out entire floors of accountants. Stuff like that.
@bwhit7919
@bwhit7919 Ай бұрын
I wonder how much of this comes from the Silicon Valley startup advice: “build fast and iterate.” Startups are told that they shouldn’t polish their product until they know they have product market fit. Which leads to broken demos, which leads to broken MVPs, which leads to broken products.
@MegaMurcelago
@MegaMurcelago Жыл бұрын
One thing about more tolerant behavior toward broken code is coming from faster hardware, as it is also said in the beginning. Just imagine it 20 years ago - you are starting a program that takes 1 minute to load a file, if the program crashes after some changes in the file, even if the file is updated correctly, that said the program is now on the verge of being deleted if there are some alternatives. On the other hand - you can now just restart thread/hole process and you will have a working piece of code after crash in a second or two.
@BobbyBasketballl
@BobbyBasketballl 3 ай бұрын
He's 100% right and the first eye opener for me was how Pokemon Red and Blue was developed where the hardware limited them and they needed to make every line of code count. Now hardware allows for A LOT of mistakes in software that build up to just junk. If those engineers from the 90s were given the hardware we have today they would likely build something we've never seen before.
@asdfqwerty14587
@asdfqwerty14587 3 ай бұрын
They would die of old age before they created a game of the scale of a modern AAA game if they did things the way they did. Game developers have to cut those corners if they want their game to actually be finished at some point (unless they're content to make a game that's comparable to games that were made decades ago.. which they usually aren't), because the way they did things was really, really slow when you compare how small games used to be to how they are now.
@tetri90
@tetri90 3 ай бұрын
Pokemon red and blue are famous for being riddled with bugs because they had to rush it out after going through development hell ...
@funkstication
@funkstication 5 ай бұрын
19:01 Most replayed. "Was that my notification or was it on the video?" 🤣
@kaanbargeld
@kaanbargeld Жыл бұрын
Reopen the software if there is an error. Personally, I don't even fully understand how the radio works and I write some gibberish in the ide and it becomes a website! It's amazing enough for me.
@puffin_000
@puffin_000 Жыл бұрын
Tam Türk kafası :D.
@kriskoss1325
@kriskoss1325 9 ай бұрын
I really, really enjoy your channel !
@benjamin_fdw
@benjamin_fdw Жыл бұрын
I was watching at my friend tuning is car AC on his touch screen and I was impressed how long it takes, I mean, I used to the good old switch that takes about 0.1s
@ex0stasis72
@ex0stasis72 Жыл бұрын
As a gamer who plays mostly western games, and not used to Japanese game jank (as opposed to whatever jank we in the west have gotten used to and done see), I had started playing FFXIV seriously after several failed attempts, but this time, I was making a list immediately after every frustrating thing in the UX I experienced. I ended up with a list of hundreds of tiny little issues that, if I complained about any one thing, I'd probably get laughed out of the room for being petty. So I patiently kept gathering a huge list of issues over months, as I grew to love the game more and more. When I look back on the list of issues, those issues still bug me, but I no longer notice them anymore because I've often found workarounds or just developed a muscle memory for how the game devs intended players to use the systems. But once I had a large enough list, and I wasn't hardly adding to it anymore. I combed through the list and removed about a dozen issues that I had that had since been resolved with updates, and then I posted it on the forums. It was such a long list that I had to copy and paste it into 4 separate posts to get around the characters limit.
@miletech
@miletech Жыл бұрын
9:00 You are wrong and that is a bad take. You know what's better than a physical switch or remote control for your your air? Laying in bed without your glasses too drunk to see or walk and saying "Alexa, make the air colder", and fall instantly back asleep snoring. You don't even need to open your eyes. Smart home stuff is boss af.
@shampoable
@shampoable 4 ай бұрын
19:00 protip - if it says 1080p auto, it's not 1080p. Need to force it, otherwise youtube doesn't want to burn their servers
@btbcomputing2500
@btbcomputing2500 7 ай бұрын
Let me expound on what Prime said about the surface area expanding, because it not doubt has. It used to be that all software was written for a specific target, you had a limited set of shared libraries (possibly just the OS or maybe none at all) and mostly used static libraries or what you wrote yourself. Everyone running your code would be running it on the exact same hardware setup, and any time a bug happened due to a weird hardware setup people could mostly get back to what was needed. Today software is no longer written for the specific (except maybe game consoles and hardware applications, though companies will avoid being specific if they can so they only have to write it once), it is written for the generic. There are almost infinite number of targets out there (at least millions of different configurations) and you have to try to write something that can run on all of them bug free. Any tiny bug or unexpected behavior from any Service, Library, Driver, Operating System, Browser, piece of hardware and all the ways these interact, any dependency, can absolutely wreck your code and introduce bugs that never existed on the system the code was written on. This, I think, can lead to the mentality, and truth in the generic, that bugs are just going to happen. You can't account for every edge case when you can't predict every setup someone will try to use!
@mito._
@mito._ 3 ай бұрын
3:42 - It's exactly like modern VGX and CGI. Good visuals are riding on the backs of better hardware and software, but the case remains limited wholly by the talent of the artist behind it. Such remains true in the case of software engineers vs quality.
@just_ppe
@just_ppe Жыл бұрын
I suggest watching the full, original presentation, especially the part about trivia knowledge and adding fake complexity to the software. A great example are all those module systems for js, webbundlers and metaframeworks bs...
@hannessteffenhagen61
@hannessteffenhagen61 Жыл бұрын
If people are talking about "back in the day, when software was less buggy" I really have to wonder what time they're referring to. It must be more than 30 years at least, because certainly most software from the 90s I used at the time (and had the privilege to experience again later in life when working with systems that were still being used for some godforsaken reason) was just as broken as shit we have today - or, I should say, significantly more broken, because it just didn't serve many use cases that the creators hadn't envisioned (such as the user not being an english speaking US american in 1994). I certainly agree that software development practices have not kept up with the increasing complexity of software, and we have much more accidental complexity nowadays (way too much unnecessary compartmentalisation into things like microservices with little justification besides "that's the big guys are doing, it's probably a good idea for our product with like 200 simultaneous users"), but we also produce _shitloads_ more software than we used to in the past, across a much wider variety of hardware configurations (yes, yes, most consumer hardware is running some variant of x86 or arm these days, but it's not like that's the only thing you need to take into consideration) to wider audiences. Of course it doesn't _help_ that there's basically no notion of due diligence in this field and we have a ton of people joining through 3 month bootcamps, but I don't think that's the main cause of our issues.
@yoshiyahoo1552
@yoshiyahoo1552 Жыл бұрын
For me personally I think the bugs and annoyances don’t stop me from getting my work done and that I just have to push through those troubles to get something finished. If the bugs stopped my work or stopped my from playing then Id have a justification to complain, but if it can still do it’s basic things then I just have to push through and get stuff done.
@RPGabe
@RPGabe 5 ай бұрын
Ah yes, the good old days when software famously had zero bugs and people had endless patience for perfect expensive software to ship for their standardized offline devices.
@remsee1608
@remsee1608 3 ай бұрын
That’s exactly what gaming was from the 90s until the mid 2010s
@SoapSoapCrayon
@SoapSoapCrayon 3 ай бұрын
It's funny to me. A game like Vampire Survivors was written in JavaScript. Won game of the year, it's a very complex piece of software, games are some of the most complex things there are. The thing was like 5mb total at launch. Less than most webpages these days.
@lesto12321
@lesto12321 Жыл бұрын
about heater in software: non connected smart valves for living room and bedroom. I heat them up only when needed.
@alangamer50
@alangamer50 6 ай бұрын
I think this originates from the "minimum viable product" concept of just making it work, and fixing it later, because fixing bugs makes no one money, delivering new features does, so the bugs just keep accumulating and getting buried in millions of lines of code beyond any one person's comprehension
@Max-bh8tg
@Max-bh8tg Жыл бұрын
You should react to "The Thirty Million Line Problem", it's related to this.
@scvnthorpe__
@scvnthorpe__ Жыл бұрын
To be honest one of the best things we can do for software quality is TDD; I don't want to have to step through a debugger (which at that point is just spicy manual testing) and really dumb and elusive bugs that ask of me to do so tend to just proliferate as a result of either tight coupling, poor management of mutable state or both. But again, these are all things that are selected against when thinking "for this project, how will I make sure I can test all these bits?" I remember spending about a week when I was first training to code thinking "how the hell am I going to mock all these dependencies??", but then it all just kind of clicked. It's also thanks to TDD that I discovered where I prefer to go for straight functional or even procedural code vs an over-engineered singleton. The best thing period that you can do is also not make your programmers do crunch - and not even as an 'oh it's voluntary but yaknow wink wink nudge nudge' thing, I mean don't even think about crunch unless you're in a literal emergency - but to be honest you, once again, should think about testability as soon as possible to avoid a brewing shitstorm.
@dirtydan8044
@dirtydan8044 Жыл бұрын
Tdd is not the answer to the inherent problems of writing good code. The only thing people care is that it works, no matter how tf it was built.
@billgrant7262
@billgrant7262 Жыл бұрын
28:21 this is literally the same as the companies are greedy point so that makes you a room temp IQ
@L1Q
@L1Q Жыл бұрын
20:20 yes, their UI is made using Panorama engine, which is heavily modified CEF
@KangoV
@KangoV 2 ай бұрын
I'm using software that was originally written on an IBM System/36. These systems were design to have all the symbols compiled into the program objects so when they were moved to newer machines (System/38, AS/400, System i etc), the operating systems could recompile these objects for the newer machines. These apps now take advantage of the newer machines. No code changes are required. PCs are so behind.
@almicc
@almicc 2 ай бұрын
It was two things, originally the idea was you treated software like hardware, it HAD to function properly from day 1 to day 10000 because it WAS a physical product. Then software became digital, you could update it live. Now I don't think this instantly changed the mindset for software developers and companies, they still wanted to ship something perfect (or good enough) to be final. Then some companies got competitive, shipped things a little earlier every time to beat their competition, leaving bugs and things in the code. People's original willingness to tolerate software problems was the reason we started getting worse software, and that feeds back into the system and makes us more tolerant to problems. When we stop craving new buggy features today as opposed to well-made features in a month, then software will start being developed like it was when it was still effectively part of the hardware.
@microcolonel
@microcolonel Жыл бұрын
Watch the WHOLE talk man. It's great.
@mobugs
@mobugs 5 ай бұрын
I think Jblow forgets how often software would fail in, say, the 90s. there was a lot of improvement since followed by an explosion in digitizing and fast shipping everything coming that came with a decline in quality tho.
@alr2157
@alr2157 5 ай бұрын
Jonathan Blows whole conference is a MUST SEE
@jesusjar11
@jesusjar11 Жыл бұрын
16:06 instant flashback of my copy of Sims 2 Pets fro the GBA that had a bug in a mainstory mission which made it impossible to continue
@mikerollin4073
@mikerollin4073 Жыл бұрын
The base layer of software is economics, but our economic system is actually ponzinomics. You see this degradation of quality everywhere. Remember when Chipotle was not disgusting? Eventually a ponzi runs out of steam and I think that is really what we are witnessing.
@aenguswright7336
@aenguswright7336 3 ай бұрын
The other thing is that some of the things we have to live with today are the results of shortcuts in the “glorious” past. There is stuff in the basic web protocols which is objectively bad, and it’s got layers of layers of patches and added features which bloat everything and make it fragile because they didn’t design it right in the first place, and it can’t be changed now. It’s the same with text, albeit Unicode is slowly making it better. We could fix a lot of js problems tomorrow if we just added a feature flag which enabled more modern syntax (like use-strict).
@ExpertOfNil
@ExpertOfNil Жыл бұрын
A lot of stuff to consider here. Seems like some confirmation bias at play though. Also, willingness to ship software with bugs seems like a product of customers being unwilling to wait for something refined.
@ea_naseer
@ea_naseer Жыл бұрын
ship software with bugs... have you met the gaming industry?
@foxbasedelta338
@foxbasedelta338 3 ай бұрын
re: Decline - I've been a dev since the early 90's...in the old days, we'd discuss the low level minutia...how to make things faster, smaller, better, more resilient...these days, sadly, our new devs talk in terms of frameworks...they don't know that the lower stuff exists or why it's important...they're always eager to start using a new library, yet have never mastered the language fundamentals...on top of that, you now have a manager class, who can't do much of anything except have more meetings. I don't mean this to sound how it is going to, but...what was art and love has been consumed by cheap knock-offs...and it's only the old school that really see it.
@reactionaryprinciplegaming
@reactionaryprinciplegaming 18 күн бұрын
Blow is right on this one. A big part of the problem is that we need much more software developers than we used to, but people are not smarter (probably the opposite). It used to be that developers could be way off on the right side of the IQ curve, not, we have to take people in the middle and, with the DEI initiatives, from the left side.
@galenseilis5971
@galenseilis5971 5 ай бұрын
In regards to machine learning, I think that there have been advancements in algorithms. However it is also true that some of the mathematics of machine learning models (including backprop) are older than some people seem to realize. There's new stuf, and there's old stuff. There is also integration of old things that have not been integrated, such as geometric deep learning or graph neural networks. There's no particular reason why these could not have been conceived of many decades before they actually were, but here we are.
@noherczeg
@noherczeg Жыл бұрын
He also completely missed the point that today most businesses don't even know what they want with companies the next day, let alone years ahead... Most customers expect CHANGES at same day speeds, because it's just easier to "try it in prod", then planning and figuring it out.
@sakuyarules
@sakuyarules Жыл бұрын
Agree with his main point, but I kinda feel like there's something up with his computer if he has all those problems back to back to back; maybe it's operating system/software interoperability issues?
@aidankieffer
@aidankieffer Жыл бұрын
You do want software for hvac and building systems for reporting and automation. The problem is connecting all these systems together. It’s a big servicing and integration problem for installers right now.A friend of mine hopes to setup an open source company for this, with network security as a focus
@SimGunther
@SimGunther Жыл бұрын
JBlow is one of the most dogmatic Elon Musk fanboys I've ever seen. Doesn't mean his views on software are invalid. It just means he might only look at one side of the equation (delivery/gas price ~= dynamic languages and bad engineering education - short term inflation) when he also needs to look at the other side of the equation (lack of good processes to keep up ample supply/storage of available materials & goods without globalization ~= outdated von Neumann architecture, hyper-hustle/capitalist culture working everyone to the bone for a minuscule raise, and acceptance to give up "personal" computing to appease normies - longer term inflation) which we haven't analysed properly since the Oil Crisis of 1973.
@johningles1098
@johningles1098 Жыл бұрын
I think the issue is that software getting more and more complex because we want it to do more and more things and we want it to be able to evolve over time. This complexity requires more abstraction and standards that lead to a lot of boiler plate. A lot of people don't like OOP because of this. However, complex, scalable software requires teams of people to manage. These teams need the abstraction to have any hope of managing and scaling the software.
@SimGunther
@SimGunther Жыл бұрын
The simplicity of the past was due to lack of power in hardware at that time, which was a useful constraint that can still be utilized to this day. Now, it's replaced by "I want all the features because hardware's powerful enough, right???"
@vitalyl1327
@vitalyl1327 Жыл бұрын
Software complexity does not match the functionality complexity most of the time. Pretty much every single bit of software you can name can be implemented orders of magnitude simpler without losing a single bit of functionality.
@T0m1s
@T0m1s Жыл бұрын
"A lot of people don't like OOP because of this. However, complex, scalable software requires teams of people to manage". I wonder how the Linux kernel does it, since it doesn't do OOP. How in the world does it manage complexity without OOP? In fact, how did the universe even manage to exist before OOP? I guess we'll never know.
@spross216
@spross216 Жыл бұрын
I am a SOC operator for a software company, and have to frequently page engineers and host outage calls when their software breaks. There are too many “moving parts” that can break outside of the companies sphere of influence. It might be a bad update to a 3rd party api that the software leverages for a certain feature so they didn’t have to reinvent the wheel etc. Maybe the only solution to that problem, is to pencil in some of those “must have features” as luxury items that aren’t necessary and just go back to basics? I don’t know 🤷🏼‍♂️ I’m not big brainded enough to figure that one out. I’ll leave that to the 50 lb fat heads
@metropolis10
@metropolis10 8 ай бұрын
I like how the video he watched cut off early, and this video cuts out early before the outro too.
@mario7501
@mario7501 Жыл бұрын
Wait until no-code increases in adoption and fixing a bug devolves from making your own engineer open the text editor to get the bug fixed to calling support of the company developing the no code tool and waiting for 12 months until you get a reply from an actual human who knows anything about the technology, because the no code tool company has customers that make them more revenue. It's already a problem with the cloud in general. I still have an open ticket at Azure from a year ago where I wanted them to increase the quota for a service from ZERO to anything that is non-zero, so I could use it for a PoC. Every month I get an email letting me know that there is still no approval for the quota increase. And this is on my corporate account, the company I work for is a Microsoft partner and brings in millions in revenue each year for Microsoft and was perfectly happy to pay for that quota increase a year ago.
@kalebproductions9316
@kalebproductions9316 Жыл бұрын
Here is the solution. Developers need to be able to own the software they write. You only get paid if and when it makes money for other people, a system of software royalties. If you want to continue getting your royalties you will make sure it's working and not being dropped for some other better software someone else wrote. The more people use it and it provides them with value, the more royalties you get. You can sell your IP to another developer in which case they are on the job, possibly in perpetuity, to make sure it works and doesn't suck. A direct monetary incentive to make software not suck.
@jinyeom766
@jinyeom766 Жыл бұрын
MCTS + neural net approaches existed for a long time, I think he's not exactly wrong about AlphaGo being MCTS + neural net (+ advanced hardwares)
@tripplejaz
@tripplejaz 5 ай бұрын
Jonathan Blow is my kind of curmudgeon. Can't begrudge a person who desires to be a great craftsman.
@JohnTube2K
@JohnTube2K 2 ай бұрын
This proves that if you go looking for trouble you find it…. Jonathan would be a great QA tester
@elduderino7456
@elduderino7456 Жыл бұрын
Blame MVP and Agile not us, most of my time is spent arguing with MBA project managers suits, how *this* doesn't make sense and if we do it this way instead of taking the time it can introduce a bug where if a user moves to 24 then 22 then 20 it would ring the phone, "we will fix that in the future, I need to show the client and make money now, what is the odds of that happening?" I simply gave up I don't want to argue with my clients all the time it's exhausting.
@ex0stasis72
@ex0stasis72 Жыл бұрын
15:00 ish. The problem is that we can say all we want that we should start fixing bugs completely before we ship, but that only makes us fall behind the competition because others aren't going to wait to ship. So the real problem is that use users put up with the bugs and don't see it as a deal breaker.
@ea_naseer
@ea_naseer Жыл бұрын
10:05 disagree. If software has a quirk, users would find a way to bypass it. This has been true since the dawn of software.
The Darkside of Software Engineering
30:43
ThePrimeTime
Рет қаралды 161 М.
Work Life Balance | Prime React
43:57
ThePrimeTime
Рет қаралды 149 М.
Cute Barbie gadgets 🩷💛
01:00
TheSoul Music Family
Рет қаралды 61 МЛН
Bring GPT into Your Environment
9:07
Penny's Coding Bits
Рет қаралды 13
Rant: Entity systems and the Rust borrow checker ... or something.
1:01:51
Carmack Doesn't Like Vim | Prime Reacts
26:52
ThePrimeTime
Рет қаралды 370 М.
Software is in Decline - Jonathan Blow
10:08
gamedev cuts
Рет қаралды 166 М.
Prime Reacts: I like this Backend
34:07
ThePrimeTime
Рет қаралды 223 М.
Episode 28 - The Independent Mindset of Jonathan Blow
1:18:34
The Fourth Curtain
Рет қаралды 20 М.
Leaving $450,000 a year Job | Prime Reacts
43:42
ThePrimeTime
Рет қаралды 324 М.
Reacting to Controversial Opinions of Software Engineers
9:18
Fireship
Рет қаралды 2 МЛН
"Papers I Have Loved" by Casey Muratori
1:08:04
PapersWeLove
Рет қаралды 72 М.
I am a Bad Software Engineer | Prime Reacts
26:06
ThePrimeTime
Рет қаралды 152 М.
🤔Почему Samsung ПОМОГАЕТ Apple?
0:48
Technodeus
Рет қаралды 424 М.
Which Phone Unlock Code Will You Choose? 🤔️
0:14
Game9bit
Рет қаралды 11 МЛН
НЕ ПОКУПАЙ iPad Pro
13:46
itpedia
Рет қаралды 419 М.