I’m pretty deep into developing my zig library for an industrial protocol called EtherCAT (I think it stands for Ethernet Control and Automation Technology).
But I want a cooler name. currently named ZECM (Zig EtherCAT MainDevice).
Things I don’t like about this name:
It says Zig in it, when really this could be implemented in any language. And putting zig in library names I think is frowned upon because it manifests zig as a rare language.
It could be cooler
Here is some background on EtherCAT:
Used to control industrial equipment, motors, sensors, etc.
Consists of a single “MainDevice” and many “subdevices” arranged in a ring topology, connected together with ethernet cables.
A “field bus” (communication bus). Has dominant marketshare and performance when it comes to fieldbuses.
Special ethernet frames are created by the maindevice and sent through the network. Subdevices write data onto the frames and read data from the frames as they pass through.
High speed (up to 10 kHz update rates) and real-time (ns timing jitter)
Existing library names:
SOEM (Simple Open EtherCAT Master) (A C library that is frustratingly composed and poorly documented)
IgH EtherCAT Master (German?) (Lots of Germans in this German protocol!)
Acontis (commercial)
CODESYS EtherCAT (I think it stands for Code Development System) (its a PLC runtime)
EtherCrab (rust implementation)
EtherCAT.NET (SOEM-based .NET wrapper)
ethercat-cpp (c++ implementation)
Requirements:
The official EtherCAT standard recently switched from Master/Slave naming to MainDevice/SubDevice so would like to stick with MainDevice if that is part of the name.
Should decide on the name of repo (currently zecm) and the default package name in the build.zig (currently ecm.
Maybe the name could be extended to the subdevice as well if I ever get around to writing a library targetting embedded platforms for the subdevice side.
EtherCAT is a trademark so idk what that means for me.
ideas:
EtherGuana
EtherGator
GatorCAT
GatorBus
Gatorclaw (might be a little too close to “garbage collect” when shortened to gc?)
The first thing that comes to my mind when I read “ethercat” is the Cheshire cat from Alice in wonderland, appearing out of nowhere (the ether in old parlance).
Controlling All Things via Network Internal Processing
Control and Automation Technology Not In Pearl/PHP/Python
Cool And Totally Not In PHP
CATs Also Teleport/Transport around News In Protocols
CATs Advancing Towards Nirvana In Playfulness
I would suggest that “zig in library names” is more about wanting a social norm that if a library name says “Zig” that it’s about Zig, the language, not just in Zig the language.
There’s no official policy on these things, and there might never be. It’s just that it would be helpful if seeing a name like zigparse indicates that it parses Zig, not that it’s a parser written in Zig.
ZECM is more like how the Rust community uses -rs, rather than rust: rust-analyzer analyses Rust, it isn’t an analyzer which happens to be written in Rust (although of course it is). Sometimes a library is a familiar thing implemented in Rust, and familiarthing-rs is a reasonable thing to call it at that point.
I would suggest that the fact that you’re looking for a different name means you’ll end up picking a different name. But I don’t think the community habit of not-infrequently tossing a z into library names is going anywhere, and I see nothing wrong with it.
I don’t have a strong favorite among the list you wrote. Well, maybe GatorCAT. I don’t actually get where the Gator thing came from in those names but it sounds cool, and that’s the idea, right?
Three mascots of two species huh. That’s… several mascots, alright. I must admit that I had not noticed the Allocgator.
I thought you might have been from Florida ¯\_(ツ)_/¯
EtherGator or GatorCAT both seem like perfectly reasonable choices. If you do pick GatorCAT you owe it to all of us to commission a GatorCat from some artist, so the project has its own mascot Not really, I just want to see what a gatorcat looks like.