Using Libraries in Design Philosophy
|
|
Should the average BYOND developer use libraries?
Things that everyone seems to agree on:
* Libraries make things easier, and sometimes faster
* Libraries encourage laziness, an intentional avoidance of knowledge, reliance on others, and degrade overall quality in the long run
EDIT: Those in support of libraries also seem to agree that libraries should only be used by already competent developers who have a full understanding of what the library will do and how
|
It has taken me about 15 minutes to understand how Forum's map library works from the documentation (incidentally, Forum, should document that maps.copy() actually returns the MapBase.make()). It would've been even less had I just skimmed the documentation for relevant features and not insisted on reading every definition. Coming up with an elegant API for this kind of thing, implementing it and testing it for bugs would've taken me a couple of hours at least and in all probability I would've ended up with an inferior product. Were I a game developer, I would've preferred to spend that time designing my next dungeon.
Addressing some of your points:
- I don't think libraries encourage laziness. They encourage letting others do the tedious work for you so you can focus on the actual game. If anything, this increases productivity because you get to work on what you find enjoyable.
- I don't think there's a problem with not knowing how a specific piece of code works. If you use a list sorting library and one day find yourself in urgent need to understand how QuickSort works, you can always look it up. Until that point, why should you care? It affects nothing related to the game.
- I suppose there's some reliance, but on the other end, I basically have this guy, the library's maker, fixing my bugs for me and implementing features I'd like to see.
- Not sure it degrades overall quality. What do you mean? Heck, sometimes the library maker does things better than I'd ever think to. And if at some point I find a library no longer suits my needs, I can just modify it.