В основном в IT царит анархия и самоуправство, все делается по беспределу.
Однако же некие намеки на соглашения имеются, хотя многие их просто игнорируют (или даже не слышали о таких). Вот самый полный список:
https://en.wikipedia.org/wiki/Category:Application_programming_interfaces (если найдете более полный или лучше структурированный — буду благодарен).
Вопрос такой: какие, по вашему опыту, наиболее важные соглашения/протоколы в IT? Давайте попробуем в порядке убывания важности.
Моя версия:
1. Языки программирования — с этой абстракции все началось — когда идея стала выше железа.
2. Особняком — стандарт вызова библиотек C. Только библиотеки на языке C можно вызывать из большинства других языков (а так же добавлять обертки, чтобы ваши библиотеки вызывали как будто это C-библиотеки). Поправьте если не точно выразил. Это как мостик между языками программирования.
3. Протокол IP (ну и, до кучи, TPC/UDP/QUICK). Все устройства связаны по нему, это инфраструктура нашего мира. Даже захотели поменять на IPv6, который создали, на минуточку — в 1996 году — и хрен там. До сих пор IPv6 больше приятный бонус, нежели основополагающий протокол.
4. API операционных систем, POSIX, OpenGL. В принципе, операционных систем, которыми реально пользуются люди, не так уж много. Это Unix-based, Windows, Android, iOS, macOs — всего как пальцев 1 руки.
5. Соглашения, которые умеет браузер. Браузер стал своего рода сверх-операционной системой. Основные протоколы браузера это: HTTP/WebSocket, HTML+CSS, EcmaScript, WebAssembly, GLSL. Более мелкие не считаю, там их с несколько десятков.
6. Форматы структурированных данных ASN.1, XML, JSON, CSV и языки запросов/модификаций данных SQL, GraphQL.
7. Стандартная библиотека вашего ЯП. Для некоторых это может быть на первом месте, т.к. позволяет не вникать в детали всего вышеперечисленного.
8. Еще вспомнил важное — кодировки, Unicode. Unicode очень важен, хотя бы к этому мы пришли как человечество.
9. Еще вспомнил. Файловые системы. Многие переносимы между разными ОС.
10. Еще — универсальные протоколы для взаимодействия устройств, USB.
Просьба дополнить.