5 ms·
I don't program C languages, but I can't help but feel that naming your incompatible library libspng you are introducing a source of potential confusion. edit:
by your-nanny 7y ago
I don't program C languages, but I can't help but feel that naming your incompatible library libspng you are introducing a source of potential confusion.
edit: Thank you cormacrelf for the explanation re: lib being mandatory. Thank you OP for explaining your rationale.
- traviscj 7y agoEdict: all future library names must be UUIDs? I’ve been really distracted lately thinking about what things need named handles in my data models/representations, and what they should be handles for, and how to do so, and how to change them in sane ways. So far all my thinking has just convinced me that I am a mediocre architect.
- ailideex 7y ago> all future library names must be UUIDs No thanks.
- aphexairlines 7y agoso, a COM CLSID. https://docs.microsoft.com/en-us/windows/win32/com/com-class-objects-and-clsids https://docs.microsoft.com/en-us/windows/win32/com/com-class...
- traviscj 7y agoIt would seem my insanity wolf idea was only low-tier insanity! Thanks for sharing. I’m also kinda reminded of aws lambda URLs, or I guess URLs in general.
- pjc50 7y agoCOM definitely has large levels of insanity wolf in it. It's a reference-counted object-orientated dynamically-typed self-describing interface for embedding any program in any other program ... written to target 1990s C.
- gmueckl 7y agoStill, it enabled features that others have a hard time replicating to this day. E.g. MS OFfice exposes a ton of its functionality via COM for remote control and embedding.
- Klathmon 7y agoCOM was incredible for being able to hack bits of various programs together. I worked on a spike once to try and get a modern web browser embedded in a proprietary business basic language who's UI toolkit only exposed some COM/OLE stuff. It was an unholy abomination of unmaintainable software, but it worked and worked well. It made me think a lot about how things would have looked today if ActiveX managed to keep it's foothold.
- pjc50 7y agoThere was a lot wrong with ActiveX, starting with the fact that it was proprietary and Windows/X86 only, but the basic concept of cleanly embeddable controls was extremely sound and is something the modern Javascript world is only slowly groping towards.
- tialaramex 7y agoThe biggest problem is that they start with something that's supposed to be part of application software on your PC and then try to blacklist the dangerous bits and put everything else on the web. We already knew by then that blacklisting is a terrible idea in security and won't work. The meeting should have gone like this: Manager: We're going to put COM on the Web! Engineer: What about this COM function that deletes files? Manager: We'll blacklist that. Engineer: Or this one that reboots the PC? Manager: Blacklist. In fact I'm assigning you the job of making the blacklist. Engineer: I think there's an unlimited number of problematic features of COM. Manager: Good point. OK, ActiveX is cancelled. Thanks for your time, good meeting everyone, make sure to implement PKIX correctly so we don't cause more holes there too.
- deleted 7y ago
- cormacrelf 7y agoThe 'lib' is generally mandatory so that the GCC/clang linker flag can find the binaries in its search path. '-lpng' means 'find libpng.a or libpng.so'. Hence many, many C libraries have it as part of the name of the project. In general the 'lib' prefix in a name means 'this is a C library', or at least now in the days of Rust, 'you can link to this with a C linker or normal FFI'. Considering that, 'spng' is different enough from 'png'.
- Eldt 7y agoIt's a very generic name and adding a single letter doesn't do much to differentiate at a cursory glance. If you're focused on what you're doing then maybe...
- true_religion 7y agoThat’s really the original libpngs fault for picking a generic. Now everyone wants to follow suit.
- FroshKiller 7y agoI suggest you not take on dependencies based on your cursory glances, then.
- aargh_aargh 7y agomaybe... libpng-ng?
- dfgdghdf 7y agoIt is similar to how many JavaScript libraries are call "something.js" or Java libraries are called Something4J. I would call this library "spng" and the original "png"; once compiled they would be named "libspng" and "libpng".
- deleted 7y ago[deleted]
- userbinator 7y agoConsidering that, 'spng' is different enough from 'png'. It's different, but I think it's so close as to verge on namesquatting, especially when the description and purpose is almost identical to the original libpng --- in fact, that's why I clicked, to see what exactly this is about.
- reacweb 7y agoUsual: https://twitter.com/codinghorror/status/506010907021828096 https://twitter.com/codinghorror/status/506010907021828096
- randy408 7y agoNaming things is hard, I wanted to have 'png' in the name and still have a short prefix for the API that matches the name.
- unwind 7y agoI don't mind "spng" myself, but perhaps it would have been more popular to spell it out, i.e. libsimplerpng, that is quite readable and harder to confuse for the original libpng. Do you pronounce it as "sping"?