4 ms·
https://opengoal.dev/ https://opengoal.dev/ has reverse-engineered a compiler and runtime for the non-GC lisp GOAL that Naughty Dog used for the Jax and Daxter
by randomifcpfan 2y ago
https://opengoal.dev/ https://opengoal.dev/ has reverse-engineered a compiler and runtime for the non-GC lisp GOAL that Naughty Dog used for the Jax and Daxter action adventure games. They have decompiled the game code for all three games.
- VyseofArcadia 2y agoTangential rant: My understanding is that Naughty Dog abandoned GOAL after the Jak games due to pressure from Sony. Sony wanted all of their studios to be able to share source code. [0] I hate this. Any two organically grown codebases (like, for example, games from different studios) are going to be so different that significant, non-trivial code sharing between them is going to be impossible anyway. Anything sufficiently generic might as be distributed as a precompiled library, and then use the FFI in your language of choice to take advantage. [0] https://web.archive.org/web/20070720142546/http://lists.midnightryder.com/pipermail/sweng-gamedev-midnightryder.com/2005-August/003789.html https://web.archive.org/web/20070720142546/http://lists.midn...
- cess11 2y ago"Add this to the difficulty curve of learning a new language for new hires". This argument is such a pointy-haired boss argument. Mature applications and systems will be more complicated and take longer to learn than the basics of pretty much any programming language. Grab some juniors and teach them if local seniors don't want to work in the language for a reasonable price.
- VyseofArcadia 2y agoMost seniors I know wouldn't balk at learning a new language for a job, because most seniors know what you just stated to be true. It will take much longer to get up to speed on the codebase than it will be to learn the language. Even for "difficult" languages like a lisp or Haskell. Management and HR seem to assume it will take significantly longer to get up to speed in a new language, but don't seem to care that new hires have to learn all of their weird C++ idioms that have built up over decades like atherosclerosis.
- Jach 2y agoNot to mention working programmers are expected to keep up with changes to C++, Python, Java, JavaScript (and its frameworks), Go2.0, etc., many of which constitute "new language" levels of different, not to mention actual language changes like JS -> TypeScript, or Java -> Kotlin, or ObjC -> Swift, and even occasionally mobile lang -> C++ (maybe just a shared core). There's plenty of evidence that it's not that bad. And meanwhile, Common Lisp hasn't changed, code from the 90s works unmodified, the only things to keep up with really are which libraries and implementation-specific features are new/interesting/in fashion (same as any language ecosystem).
- pjmlp 2y agoIt is quite different, as those are incremental changes, and most of them can be ignored until there is a requirement to use a library or SDK that makes more recent features a requirement. Any corporate developer knows the pain of actually being allowed to upgrade toolchains, traditionally lagging behind several years behind lang v-latest.
- cess11 2y agoI much prefer upgraded libraries and tooling over sticking to deprecated stuff. Handling upgrades is like doing the dishes, it has to be done, there's no use complaining about it.
- pjmlp 2y agoSomeone has to put the money on the table for those upgrades. This is the great thing about consulting instead of product development, developers are made constantly aware of their hourly rates. No budget for spending time on upgrades, no upgrades.
- cess11 2y agoDon't work for people that disallow upgrades and maintenance. Don't make deals with people who don't understand that software is finished when it's dismantled and the code deleted.