Lesson 13

APIs,
Libraries &
Frameworks



Application Programming Interfaces (APIs)

An API can be defined as "a set of clearly defined methods of communication between two of more computers." Unlike a user interface, which allows for person to computer interactions, APIs make it possible for software running on computers to exchange data in a formal way. The best way to think of an API is as a building block that can be used to add functionality to an operating system, a desktop or mobile app or a Website. Any professionally written API that you use will have a well defined interface with some kind documentation on how to use it. APIs come in all shapes and formats and depending on the type of programming you are building you might even use an API written in a different programming language than the program you are writing in, however you won't care because all you need to know is how to interact with the API using its provided interface.

Watch the following video for an excellent animated illustration of what an API is.

There are a lot of businesses and organizations that provide APIs to enable software aplications written by other developers to access certain content that the entity wants to makes available. Airline reservations systems were represented in the video, but here are just a few other examples of companies who offer API access to their sotware systems for outside developers.

Images representig the Google, Twitter, and Facebook APIs, Web pages, and mobile apps.

Amazon Web Services

Amazon Web Services is an API that gives subscribers access to some very powerful resources in their cloud, including virtual machines aka compute power, database storage, content delivery, or other functionality, AWS has the services to help you build sophisticated applications with increased flexibility, scalability and reliability. That advantage you get with this type of API is that other than some base fees, you will only be charged for the resources used by your account each much. So if you setup a Website and traffic is low you only have to pay for that usage, but you are still in a position to dynamically scale reaources as traffic become more robust.

NOTE: You can get started for free, but once the trial period ends you'll be forking out big time expenses. So be carefull what you setup during your trial period. It is highly recommended that you investigate what your fees will actually be for the services you add before the trail period ends to be prepared for what your monthly fees will actually be.

screenshot of the AWS homepage.

Facebook for Developers

Image of the facebook for developers toolbar.

Facebook for developers, now Meta for Devlopers, is an API that give developers access to resources provided by Facebook for integrating games and applications into the Facebook cloud infrastructure. This includes items like integrating the Messenger platform into your applications, allowing Facebook users to login to your app using their Facebook account credentials and having Facebook authenticate the user login process, creating tools for businesses, creators, and people to enhance the Instagram experience, and implementing their WhatsApp business platform into your apps. See https://deveopers.facebook.com for more information.

Image showing a sample facebook developer's dashboard screen.>

Google Developers

The Google Developers API exposes numerous resources that developers can integrate with including their Payment Request API and their Credential Management API.

For more information view their Website

Google Developers
screen capture from google developer's home page.

Libraries

Libraries come in many different configurations, but generally they are a collection of functions, APIs, Classes, or pre-compiled objects that can be used to provide added functionality to an application without you having to write the code required to accomplish the same task. Libraries are also contained within Frameworks, as you can see in the Frameworks section on this page.

JavaScript Libraries

There are currently numerous JavaScript libraries available for use in enhancing your Web site or application.

jQuery is one of the more popular and well known JavaScript libraries.

React is a JavaScript library developed by Facebook for creating modular user interfaces.

Table of Contents

Frameworks

The best way to think of a software framework is as a comprehensive system for developing applications by utilizing an existing code base provided by an included coding library. Depending on the framework, it may or may not be open-source, it could have supporting tools like a compiler, or a code editor enhanced for the programming language used. The biggest drawback to using a particular framework could be that you can only code for certain platforms, or a change to the existing code library may change and break your program.

Here is a recent article written about software frameworks; the author lists seven reasons why frameworks are the new programming languages.

Javascript Frameworks

Angular is a JavaScript framework developed by Google.

TypeScript is a typed superset of JavaScript that complies to plain JavaScript.

Web Assembly is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable target for compilation of high-levl languages like C/C++/Rust, enabling deployment on the Web for client and server applications. Developer reference documentation.

The .Net Framework

The .NET (pronounced dot net) framework is a software framework developed by Microsoft that, until recently, ran primarily on computers running the Microsoft Windows operating system. However, Microsoft has made most of its coding libraries available as "open-source" allowing a larger community of developers to contribute to its content, but also with the advent of .NET Core, has now made it so that programs written using the .NET framework can now run on any device running either the Android, OS X, iOS, or Linux operating systems in addition to Windows.

The .NET framework includes a large class library named the Framework Class Library (FCL) and provides language interoperability (each language can use code written in other languages) across several programming languages. Programs written for .NET framework execute in a software environment (in contrast to a hardware environment) named Common Language Runtime (CLR), an application virtual machine that provides services such as security, memory management, and exception handling. (As such, computer code written using .NET framework is called "managed code".) FCL and CLR together constitute the .NET Framework.

The layered architecture of the .NET framework.
Table of Contents

Finding Documentation

C# and Microsoft .NET

In order to learn about the classes that are available in the .NET library, including their properties, methods, and events, check out Microsoft Documents Website by navigating your Web browser to https://docs.microsoft.com/en-us/dotnet/, this is where we'll find the home page for the .NET Documentation.

.NET Documentation screen

On this page we see a menu of topics on the left and links to documentation for the three, standard, core, and framework .NET libraries on the right.

JavaScript

The Mozilla Developer's Network (MDN) is an excellent resource for documentation on the core JavaScript language. For documentation on JavaScript libraries or frameworks like jQuery or React, you need to go to the Website for the specific library or framework you need the documentation for.

C++

The Website cplusplus.com is a good resource for the C++ language.

Python

For information about the python language docs.python.org is a good resource.

Table of Contents

How To Become and What It's Like To Be A Programmer

The following is a series of videos by a gentleman of the name of John Sonmez. I am not endorsing him nor his products here, I just found these videos interesting, provocative, and entertaining and thought you might enjoy viewing them as well.

What Was Your First Programming Job Like?

Table of Contents

What Do You Need To Know For Your First Developer Job?

Table of Contents

Programming Job With No Experience

Table of Contents

How To Become A Software Developer Without A Degree

Table of Contents