Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Someone for the love of god, please introduce the USB committee to the concept of semantic versioning. Stop this Gen madness.


Semantic versioning as it usually applies to software is a bit awkward for numbering the USB specs. The challenge is that USB has two largely orthogonal features that need to be described: link speed, and everything else that has been layered on top as the standard has evolved (power delivery, OTG, etc.)

USB 1.1 supported low speed (1.5Mb/s) and full speed (12Mb/s). USB 2.0 added high speed (480Mb/s) but didn't make it mandatory; you can have a USB 2.0 compliant keyboard that only supports low-speed or full-speed operation. USB 3.0 did the same thing with the introduction of SuperSpeed (5Gb/s).

What they should have done was keep making point releases on the 1.x, 2.x etc. specs when they added things like On The Go and Power Delivery, but keep the major version number representing the maximum supported link speed. By that scheme, we would have all 3.x devices capable of 5Gbps and no more, and what's now being introduced as USB4 would be more like USB 6.5 (if the minor version numbers were kept in sync across the speed grades). But this would deprive many companies of marketing opportunities, and instead force them to advertise USB 3.x support years after USB 4, 5 and 6 come into existence.


They had the right idea by using a different symbol set for protocol vs ports with USB A B C. Maybe they could use greek letters for speeds.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: