I'm learning about Google App Engine and Googles datastore from here and they keep mentioning "low-level Java API."
What exactly is a "low-level Java API" and how does it differ from a "high-level Java API" (which I assume must also exist since there is a low-level one?"
Google searches yielded poor results for this question.
High-level APIs are fairly abstracted, meaning that they are more generic and therefore limited in functionality. Low-level APIs are much more detailed and specific due to a low level of abstraction. Low-level APIs allow for finer control over application functions.
The High Level API (HLAPI) is a system for building multiplayer capabilities for Unity games. It is built on top of the lower level transport real-time communication layer, and handles many of the common tasks that are required for multiplayer games.
The low-level API is the collection of basic classes that implement SNMP according to v1, v2c, and v3 standards. The low-level API consists of the snmp2 Java package, which enables you to work directly with the details of SNMP and helps reduce the size of your management applet or application.
What is the difference between low level interfaces and high level interfaces? Low level deals with storage and scheduling while high level deals with interactivity. Low level deals with interactivity while high level deals with storage and scheduling.
Let us first see what documentation says about this -
The Java Datastore SDK provides a supported low-level API for the Datastore. In the documentation for the Datastore we use this low level API for the sake of simplicity.
However, for your convenience, the Java SDK also includes third-party implementations of the Java Data Objects(JDO) and Java Persistence API (JPA) interfaces. Note that these are provided for your convenience only; they are not supported by Google. In addition, the Java SDK includes other third party frameworks designed to simplify Datastore usage for Java developers.
When somebody refers to low-level and high-level, they usually talk about abstraction level.
Abstraction
is a technique for managing complexity of computer systems. It works by establishing a level of complexity on which a person interacts with the system, suppressing the more complex details below the current level. The programmer works with an idealized interface (usually well defined) and can add additional levels of functionality that would otherwise be too complex to handle.
To give direct example, language C offers you lower level API to computer resources than Java. In C it is possible to do garbage collection in real time at will of programmer, however it is most likely that majority programmers will shoot themselves in a foot with this than get concrete benefits.
In other words, google offers you officially low level API which is powerful but not as trivial to use. There are third party solutions which abstract google's low level API into high-level API and make it simpler to use the API.
Simply put, a low-level application programming interface (API) is generally more detailed and hence allows you to have more detailed control to manipulate functions within them on how to use and implement them while a High-level API is usually more generic and relatively simpler and provides more functionality within one command statement than a lower-level API. High-level interfaces are comparatively easier to learn and to implement the models using them. They allow you to write code in a shorter amount of time and to be less involved with the details. Hope it helps to get the general idea.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With