Комментарии 5
Как мы отмечали, аббревиатура «SDK» («Software Development Kit»), как и многие из обсуждавшихся ранее терминов, не имеет конкретного значения. Считается, что SDK отличается от API тем, что помимо программных интерфейсов содержит и готовые инструменты для работы с ними.
На мой взгляд несколько спорное утверждение. Сами аббревиатуры говорят за себя:
API - Application Program Interface - набор интерфейсов (экспортируемых функций, выполняющих какие-то задачи), предоставляемых кем-то. В частности, это могут быть системные API, предоставляемые операционкой, это могут быть API, предоставляемые фреймворком и т.п.
SDK - Software Development Kit - набор [инструментов] для разработки программ. Сюда входит документация по API (часто с примерами), заголовочные файлы с описаниями прототипов этих API, если необходимо - библиотеки импорта.
В целом можно пользоваться API и без SDK (хотя это и преодоление), но вот SDK без API бесполезен.
Ну, в теории да, на практике нет. Скажем, Google свой веб-API карт называет Google Maps API, ArcGIS — Maps SDK, а Майкрософт свой поначалу называл Bing Maps SDK, а потом переименовал и вовсе в Web Control. Кто во что горазд, короче.
Как мне кажется, SDK — это софтварный продукт (включающий документацию, инструменты, примеры, и т.д.).
То есть, главное отличие — SDK можно скачать/купить, сохранить на диск, установить (если предусмотрен инсталлятор).
Ну такое. Вот Amazon SDK for JavaScript https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/welcome.html
А вот, скажем, Ethereum JavaScript API: https://web3js.readthedocs.io/en/v1.10.0/getting-started.html
Казалось бы, найди 5 отличий в том, как их надо подключать.
То есть, главное отличие — SDK можно скачать/купить, сохранить на диск, установить (если предусмотрен инсталлятор).
В целом - да. API - кем-то предоставляемый набор интерфейсов. ОС, кем-то в сети и т.п.
SDK - пакет который устанавливаешь себе сам для работы с этими интерфейсами.
Как пример - есть WinAPI - экспортируемые системные функции которые реализованы в ядре ОС. WinSDK - пакет для работы с этими функциями - заголовочные файлы, библиотеки импорта, оффлайновая документация.
В принципе, можно и без SDK - почитать про нужную функцию на MSDN, самому написать заголовочный файл, получить ее адрес через GetProcAddress (или самому сделать библиотеку импорта нужного модуля при помощи implib).
Но если функций много таких, то это все дополнительные затраты времени и сил.
[SDK и UI-библиотеки] Введение. SDK: Проблемы и решения