We toss a lot of terms around in the development world that can often leave users scratching their heads. Not knowing the jargon is nothing to be ashamed of.
This is DevSpeak, where we demystify the dense arcanity that is tech jargon. While this may be a fairly basic review for many, even if you know your stuff in the dev world you may find some tidbits that you didn’t know before.
Nobody begins from the same starting point in tech, but that doesn’t mean you can’t brush up on fundamentals to form a solid foundation of knowledge.
Today we’re taking a deep dive into SDKs. We’ve talked a lot about SDKs this year – particularly the GalaChain SDK. If you were ever confused about how that SDK fits into development, now is your chance to get some insight!
SDK: Defined
SDK stands for Software Development Kit. This is a full package of tools designed to build software on a particular platform or in a particular programming language. SDKs allow a pre-built pipeline to build new tools and projects. Often these are released so that developers can easily integrate new apps with a service or ecosystem.
An SDK can vary in what it contains based on the needs of the specific platform it was designed for, but they usually have some basic things in common:
- Libraries. These are repositories of code snippets and pre-constructed commands that perform specific functions on the platform and will be needed to build and plug anything into the existing infrastructure.
- Documentation. An SDK is a full kit, so it should have some degree of documentation and instructional material on how to use it and what it can do.
- Debugging Tools. Most SDKs will include compilers, testing frameworks or other tools to debug work and find coding issues as they develop.
- IDEs. Integrated Development Environments are visual editors used to develop on the platform. This component may vary wildly depending on which SDK we’re talking about, but most have some form of graphical interface that developers can work within.
- APIs. Application Programming Interfaces are absolutely essential for any SDK, as they allow new developments to use them to easily interact with features on the platform. APIs are essentially small bits of code that have a specific, common purpose and can be “called” easily to access the platform’s services. (More on these coming in a future DevSpeak!)
There are other things that may be included in an SDK. Those are the big five, but really anything that helps developers access and create in your ecosystem easier should go into your SDK.
Why SDKs?
SDKs are more than just an occasional find in the development world. Many of the tools you see in your daily life were created through an SDK.
Literally any application that interacts with Microsoft Windows you’ve ever used probably used the Microsoft SDK during their development. This allows developers outside the company to innovate tools on top of the base Windows software, while keeping the definition of what is and what isn’t official Microsoft software clear.
Let’s say you develop a platform that nearly a billion people are using… Congratulations on your success! You want the platform to grow and become more feature-rich, but what hope can your limited dev team have of innovating to keep up with the demands of such a vast amount of people!?
Eventually, you just can’t keep up and competition develops a better platform. But what if you could invite other people to make apps that work within your platform? Then the innovation of all those people on your platform could actually help your platform grow, scale and develop!
SDK in Practice
Now let’s make it a little more complicated. Let’s take a look at Ethereum.
Ethereum is a fairly simple blockchain at its base level. The Ethereum team created the programming language “Solidity” in 2014, which serves as the key language of Ethereum Smart Contracts. They released it as part of a GNU General Public License. This enabled it to be used by everyone, and developers quickly began going through their repository to make more specialized tools… including more specialized SDKs.
Now there are tons of Ethereum SDKs that all let developers build dApps on the Ethereum Network. External developers know what tools they need. Ethereum never would’ve been able to keep up with everything that’s happened on their blockchain in the decade since if they had kept it all in-house. Now people have provided so many additional tools for the Ethereum Network that its use cases have grown much more varied and valuable for even more users.
Bottom line is, brilliance doesn’t happen in a vacuum. Instead of guarding development as an internal responsibility entirely, organizations and developers can use SDKs for external developers to work within their framework. More development, more room for innovation.
Developing Together
This is the basic story of the information revolution as a whole. Take what has been done, and build on it to make it better. The internet as we know it was developed over years as a series of languages, protocols and systems that all synchronize and build off of each other.
No one person or team ever could’ve designed something so sweeping. Our tech is what it is because of community development.
SDKs are key to that culture in development. They allow people to set the basic framework for what can be done in their ecosystem, then developers can innovate new ways to use those tools. As each successive wave of development builds on top of each other, our digital systems get more robust and specialized.
Hopefully this quick rundown gave you some basic idea of what SDKs are and the role that they serve in the tech world. We’ll be back soon with more DevSpeak.
Are you a Gala Gold member with a tech term that you think people would love to see explained in a future DevSpeak article? Let us know on Discord in the #Gala-Gold-Suggestions channel!