37 ms·
Someone still needs to write those, and you'd need to be a psychic to succeed in making an immutable API that can handle all possible future requirements. E.g.
by creshal 5y ago
Someone still needs to write those, and you'd need to be a psychic to succeed in making an immutable API that can handle all possible future requirements.
E.g., up until a while back, 32-bit ARGB as exchange format would've been sufficient, but is now insufficient to handle 10 bit channels and/or stuff like HDR. What if we get a standard for 3D images? It gets worse if you want to handle animated images as well, whatever exchange format you specify will break once a decade at least. And god forbid someone tries DRM for images again…
- selfhoster11 5y agoAmiga did it. We can do it again. Besides, such an API is a slow-moving target, so still better than status quo.
- BrightGlow 5y agoAre we thinking about the same thing? Amiga did not have a perfectly future-proof API. Such an invention would be the holy grail of API design.
- selfhoster11 5y agoSome future proofing is better than none, right?
- creshal 5y agoThe status quo is the continued existence of IrfanView, which is probably as close as it gets to the ideal. Hasn't changed much since the 1990s, and looks like it, but supports about everything via plugins.
- BrightGlow 5y agoIrfanView is updated constantly though.
- selfhoster11 5y agoYes, but the idea is that even if the original author dies, people can still keep using the last release of the application, but independently write new plugins to interpret new image formats that come out in the future. Winamp has a similar property. If in 2030 FLAC is replaced by some fancy neural-network based lossless encoder, it can still read the files and play them without touching the core of the application, because all that's needed is a single plugin.
- BrightGlow 5y agoWell IrfanView is open source, so if the original author dies I would expect someone else to pick it up. Your description might help with one specific area (compression algorithms) but there are numerous other areas where you can't just use a plugin.