TypeScript types can run DOOM [video]
81–90 of 391 posts
Re: TypeScript types can run DOOM [video]
#82I wonder if there will come a time when the HN audience will stop being amazed that some system is Turing complete, or that any Turing-complete system can run Doom (barring resource constraints). Maybe I’ve just seen it too often. The fact that TypeScript’s type system is Turing-complete was shown back in 2017 [0], and then of course you can run Doom on it. [0] https://github.com/microsoft/TypeScript/issues/14833
There’s a difference between a _system_ being Turing complete and something actually _using_ that Turing-completeness to make something arbitrary run on it. You can’t deny this is an impressive effort.
Re: TypeScript types can run DOOM [video]
#83Re: TypeScript types can run DOOM [video]
#84One of the top comments in the video: > If this guy goes for a big tech interview they're still going to ask him how to invert a binary tree The industry's hiring process is so messed up that this is completely believable. "We've decided to prioritize other candidates, as you are strong in the fundamentals but lack the kind of experience in Vue that we're looking for."
But if he was being considered for a mid level generalist role, yeah, none of this would’ve mattered. And why should it?
Re: TypeScript types can run DOOM [video]
#85I wonder if there will come a time when the HN audience will stop being amazed that some system is Turing complete, or that any Turing-complete system can run Doom (barring resource constraints). Maybe I’ve just seen it too often. The fact that TypeScript’s type system is Turing-complete was shown back in 2017 [0], and then of course you can run Doom on it. [0] https://github.com/microsoft/TypeScript/issues/14833
Just because we know something is possible in theory doesn’t mean it’s not impressive to see it done in practice. There was a lot of effort and creativity involved here.
Re: TypeScript types can run DOOM [video]
#86One of the top comments in the video: > If this guy goes for a big tech interview they're still going to ask him how to invert a binary tree The industry's hiring process is so messed up that this is completely believable. "We've decided to prioritize other candidates, as you are strong in the fundamentals but lack the kind of experience in Vue that we're looking for."
I have a nuanced view of your particular example. I've been in this industry for almost 30 years. I cut my teeth writing C/C++, had an interest in language theory and frameworks and was brought up to care about portability. I always wanted to be able to easily transition from one language to another, or one framework to another.
And I always assumed this was the case for other engineers in our field as well.
However, I have worked for startups that like to move really fast, and hired talented developers who passed our technical screenings (read: "had the fundamentals down") under a "framework agnostic" hiring policy ... only to see them display stunning degrees of incompetence trying to learn our tooling.
The problems that compound this are:
- When you enter a new company with a large codebase that you have to ramp up on, you're not only required to learn the language or 3rd party frameworks and libraries that they use ... you need to ramp up on THEIR "framework." Depending on the complexity of the system, there is a lot of domain specific knowledge and custom supporting code that will have been written. Try to learn the ins and outs of Angular change detection, for example, while also ramping up on a massive codebase that does things in weird ways for legacy and historic reasons.
- Every business, but some more so than others, has time pressure. You need to be able to write functional, easy to maintain code but also get it shipped yesterday. If you come into a company unfamiliar with the languages and tools that they use, you are essentially coming in handicapped. Expectations that you can deliver are very high, despite the time that you need to ramp up. Maybe you're one of those 10x'ers who can learn all the ins and outs of a new tool in a week or two before starting your position and then apply that knowledge at the level of someone whose been working with the tool for years and has learned all of the hidden footguns ... but if so, you are a rare specimen indeed. The industry can save itself a ton of inefficiency if it takes a "better not take a chance" attitude.
- All problems are people problems. It's not that the company needs people who know how to code in the language or tool ... they need someone who has worked on enough different projects with that tool that they can navigate the completely fucked up ways that THIS company uses it. Because THIS company will for sure have years of active development behind it by developers of all sorts of different experience levels ... and some of those developers did it the right way while others found creative solutions and did things weird. The company doesn't need someone who can write the Hello World tutorial in the language or framework, they need someone who can evaluate the good decisions vs the bad ones in an existing codebase.
Re: TypeScript types can run DOOM [video]
#87Earlier quoted context omitted.
There’s a difference between a _system_ being Turing complete and something actually _using_ that Turing-completeness to make something arbitrary run on it. You can’t deny this is an impressive effort.
It’s a considerable amount of work for sure, but that alone doesn’t make it impressive. Maybe there were particularly difficult hurdles to overcome that were solved in novel ways? But I don’t see such noteworthy aspects being mentioned in this thread, and it’s not evident at all that there should be any.
Re: TypeScript types can run DOOM [video]
#88Earlier quoted context omitted.
There’s a difference between a _system_ being Turing complete and something actually _using_ that Turing-completeness to make something arbitrary run on it. You can’t deny this is an impressive effort.
It’s a considerable amount of work for sure, but that alone doesn’t make it impressive. Maybe there were particularly difficult hurdles to overcome that were solved in novel ways? But I don’t see such noteworthy aspects being mentioned in this thread, and it’s not evident at all that there should be any.
Doing things can be difficult and admirable, even if it was confidently believed possible beforehand.
Re: TypeScript types can run DOOM [video]
#89Re: TypeScript types can run DOOM [video]
#90At this point the easiest way to know if a system is Turing complete is to check if someone has ported DOOM to it haha Very impressive!
Only if the church-turing-carmack thesis holds, which I personally doubt