The type is dynamic. It can be whatever you wish.
The type is dynamic. It can be whatever you wish.
From the original document:
Software manufacturers should build products in a manner that systematically prevents the introduction of memory safety vulnerabilities, such as by using a memory safe language or hardware capabilities that prevent memory safety vulnerabilities. Additionally, software manufacturers should publish a memory safety roadmap by January 1, 2026.
My interpretation is that smart pointers are allowed, as long it’s systematically enforced. Switching to a memory safe language is just one example.
I can imagine Uncle Bob be proud of this Clean Code ™
My guess to why there’s two functions is because it was originally only internal
, and the programmer realized they needed public
as well, but changing internal
to public
is too scary so they created a new method instead.
if (CompareBooleans(CompareBooleans(a, b), true))
TAOCP is a misleading title. It shouldn’t be computer programming. It should be computer science.
For most people, programming is the engineering discipline. I think that’s a very different art form. Software engineers are rarely dealing with the type of problems TAOCP is concerned about.
The demo they showed is mostly a 1 hour cinematic with barely any gameplay. Fancy graphics, but if I want to watch a movie I watch a movie.
Scope creep commonly happens when there’s no clearly defined scope or vision that keeps the scope in place. Star Citizen clearly suffers from this. It’s a space sim game where seemingly anything goes.
I’m mostly working in Java now. I’m proficient to the degree that I can solve most things without looking for reference online. I think that matters most to me.
OO languages typically use garbage collector. The main purpose of the borrow checker is to resolve the ambiguity of who is responsible for deallocating the data.
In GC languages, there’s usually no such ambiguity. The GC takes care of it.
Sounds like you’re thinking more about the builder pattern.
Mainstream statically-typed OOP allows straightforward backwards compatible evolution of types, while keeping them easy to compose. I consider this to be one of the killer features of mainstream statically-typed OOP, and I believe it is an essential feature for programming with many people, over long periods of time.
I 100% agree with this. The strength of OOP comes with maintaining large programs over a long time. Usually with ever changing requirements.
This is something that’s difficult to demonstrate with small toy examples, which gives OOP languages an unfair disadvantage. Yeah, it might be slower. Yeah, there might be more boilerplate to write. But how does the alternative solutions compare with regards to maintainability?
The main problem with OOP is that maintainability doesn’t necessarily come naturally. It requires lots of experience and discipline to get it right. It’s easy to paint yourself in the corner if you don’t know what you’re doing.
Even when computers did improve and became able to handle Vista people weren’t willing to change their minds about it. Windows 7 had a 1GB memory requirement. Why didn’t more people use Vista right before the Windows 7 launch?
Vista shows how important the initial reputation is. Everybody had made up their mind to hate it, even if the hate wasn’t fully justified. There wasn’t much Microsoft could do about it, other than releasing Windows 7.
Windows 8 on the other hand was genuinely bad.
Windows 7 recovered from the disaster of Vista. Windows XP recovered from Me. It has been a bumpy ride for a long time.
AFAIK it has always been nagging about how much better things will be if you just connect your login to their Microsoft account.
It was the last Windows version that felt it was primarily made for desktop use.
Windows 8 tried to be a hybrid between mobile operating system, and Windows 10 and onward feels more like an advertising platform for Office 365 and Microsoft’s AI services.
Pac Man was younger when Halo was released than Master Chief is today.
For me it’s the opposite. No money no deal.
Do you know why?