Hacker News new | ask | show | jobs
by wudangmonk 748 days ago
When designing anything like a language or library you always create the use cases first and then work backwards. Any game engine not created side by side with a game will be crap. Any 'cool feature' programming language without a decently sized codebase so serve as a beacon to guide you will expose all the flaws in the language that the creators never anticipated because they never created anything sufficiently complex.

Unless you are dogfooding whatever you create, it will be crap and you are better off not creating in the first place, don't waste everyone's time with stuff you yourself couldn't be bothered to actually use.

2 comments

My take is, if you’re not dogfooding what you’ve created, you either don’t believe in it or you didn’t have a need for it (i.e., likely a solution for a nonexistent problem). The latter is okay for fun and/or research/experimentation purposes, but at least make that clear so that everyone knows what to expect (or not expect).
By that heuristic, only astronauts should be making space suits?
I don't think that's the proper interpretation. It isn't so much that you have to make everything you use, but rather, what you do make you should use.
So the guys making spacesuits should be astronauts?
They don’t have to be astronauts in the same way as as the programmer of a word processor does not have to work in office administration. But if said programmer has to write a letter and uses a different word processor you would raise an eye brow.

I think it definitely would be a good idea if the creators of a space suit wear it and try to do some light DIY with it.

Maybe.

I'm not sure. I can imagine that some programmer would prefer LaTeX, even if they work in the Google Docs team (or the Microsoft Office team). That wouldn't raise much of an eye brow from me: Google Docs isn't exactly aimed at programmers.

They don't need to be an astronaut to wear the prototypes and check how they fit, how they allow you to move or not move, how convenient it is to access the tool belt, etc.
They do need to to test it in space or in a rocket taking off/landing. Otherwise they're just running unit tests.
Hmm, maybe. But using a product in anger is very different from just kicking the tires.
Your 2 comments made me laugh - funny
Thanks for appreciating them.

I actually think something like the sentiment expressed in https://news.ycombinator.com/item?id=40594627 is approximately true, but it would need quite a few qualifiers.

I read it more as "spacesuit designers should test the space suits on themselves as well"
Sure, the manufacturers of anything need to test the thing they're manufacturing. But testing something is not the same thing as dogfooding it.
> if you’re not dogfooding what you’ve created, you either don’t believe in it or you didn’t have a need for it (i.e., likely a solution for a nonexistent problem)

That entirely depends on what sort of thing you're programming. My current job is programming for industrial equipment. I certainly don't, and won't ever, personally have a use for the software I write, but that software is 100% addressing a real problem.

Remind me again which games were developed in house to dog-food Gambyro, Unity, Unreal 5, and Godot?
Unreal was designed for the Unreal games, the others I have no clue but I doubt Unity has had any guiding game from my experience using it. Unity was built with the unity-store as its guide imho.
UE5 is almost a from scratch rewrite and Epic didn't dog-food it.