5 ms·
Except, especially regarding the former tweet, I get the impression that he's having a pipe dream (with all respect), and he's heavily criticized. Did he actual
by jstimpfle 7y ago
Except, especially regarding the former tweet, I get the impression that he's having a pipe dream (with all respect), and he's heavily criticized. Did he actually program anything serious recently? He seems to be mostly tweeting about languages instead of actual technology.
Honestly I can't make sense of what he's saying there, so there's a chance I'm not getting an important detail, but GC has nothing to do with function specialization. What does the following even mean?
> Without garbage collection, offering an array of bytes where an array of integers is required requires stack-allocating an array of integers and converting each byte to an integer every time a subtype is used in place of an actual type. This is so absurd that it’s not done.
The only interpretation of this that I can come up with would be just factually wrong.
- pjmlp 7y agoExcept that ignores the small detail that his company is selling a game engine with heavy use of GC, via Blueprints and C++ classes marked as UOBJECT. I bet he understands one or two things about shipping games with such engine. The sense I get from those tweets are the usual anti-GC discussions, mostly by folks that usually are even against modern C++ (as recently seen on some C++20 related discussions), which eventually derailed the discussion into something else.
- jstimpfle 7y ago> Except that ignores the small detail that his company is selling a game engine with heavy use of GC, via Blueprints and C++ classes marked as UOBJECT. Yes I've heard that there are some high-level things and _some_ amount of GC in there. And I'd wager that this is about where your knowledge about UE ends as well. If that is so, better don't make bold statements like "heavy use of GC". And Mr. Sweeny is obviously not only accomplished, but extremely sharp. But being sharp doesn't protect anybody from buying into stupid ideologies without any actual real world validation. Just as it doesn't protect HN trolls from collecting little factual nuggets from the internet and then spreading misinterpretations (i.e. falsehoods) hundreds of times. For example, the kind of "Data oriented design" that has been all the rage recently is so definitely no concession to OOP. Regarding Mr. Sweeney, the German Wikipedia page for example states that he didn't have any significant programming involvement anymore since Unreal Engine 3 (which was released in ~2006; Unreal Engine 2 was released in ~2002). Regarding programming, all I've read from him on twitter was just language related stuff, frequently mentioning theoretical blah-blah, such as covariance, monads, higher-kinded, blah-blah, and oh it is sooo practically relevant that C function pointer syntax is unusable if you want to return pointers to functions that return pointers to functions that return pointers to functions... > The sense I get from those tweets are the usual anti-GC discussions I suggest trying to make sense of his actual statements in the first place. Any offering from your side is very welcome! Again, I'll collect all the arrogance that I have in me, to criticize this man, who is obviously much sharper than myself, of blathering in this tweet a load of BS that hasn't undergone real world validation. Again, I might be missing the valid interpretation of what he's saying, but to me all evidence points to him needing a little refresher regarding the real world, in practice.
- deleted 7y ago[deleted]
- pjmlp 7y agoAny C++ developer worth their salt is perfectly able to understand that blah-blah.
- jstimpfle 7y agoYou know, I once learned category theory, at least to the point where I could explain from the ground up what a monad is, as well. And the most important thing I've learned in the process is that these theoretical buzzwords don't have any relevance to programming whatsoever. This theory stuff is not a means to an end. It's a means unto itself. > My answer to this is: the ultimate type system is constructive logic (following the proofs-as-programs direction), the ultimate typechecker is a theorem prover, and theorem proving technology improves over time. https://twitter.com/TimSweeneyEpic/status/1231412413087571968 https://twitter.com/TimSweeneyEpic/status/123141241308757196... People who say such things have simply drunken the kool-aid, big time. When it's about practice instead of theory, I prefer to listen to people who have actually made stuff in the last decade.
- gameswithgo 7y ago>with heavy use of GC Game logic can optionally use GC, the engine itself does not. so, it would only be heavy use of GC if you had lots of computationally heavy game logic. If you do, you might not use the GC!
- pjmlp 7y agoJust because it is possible to use GC, one doesn't need to use it all the time, not all platforms have a restricted GC that runs all the time without extra knobs to tune. So just like one would not do malloc() on specific engine code paths, it is possible not to use GC heap allocations as well.
- jstimpfle 7y ago> it is possible not to use GC heap allocations as well At this point you're almost doing manual memory management.
- pjmlp 7y agoRAII and arenas are not manual memory management.
- jstimpfle 7y agoI didn't notice the point at which this turned into a discussion about RAII or whatever a GC is in 1990's books' definitions. And why would an arena not be manual memory management if I make explicit allocations that make explicit use of such arena, and I free the arena on a suitable occasion? I'm even likely to write the arena myself, but not necessarily. I have this simple and (in my mind) very useful equation of manual memory management ~ writing code to manage memory. Conversely, GC ~ using an external runtime (such as that in JRE) that helps you to avoid writing any memory management code at the cost of giving up control. Ok, let's lose a sentence about ARC, I don't care if you name it GC or not, and I don't use it. I'm not interested in other pointless taxonomic discussions. Whatever, man.