C++ Implementation of JAVA API

Java is a programming language created by Sun Microsystems,now owned by Oracle Corporation. One of the strength of the Java programming is that it comes with a rich set of Application Programming Interface (API).

This API facilitates programming of IMAGE Processing, Sound processing etc.

The standard library in C/C++ does not have any built in functions for manipulating images or sound.

You have to start coding from scratch a set of functions which will allow you to accomplish this task (What a pain !!) Alternatively, you can use open-source or third party libraries.

While searching for a native implementation of JAVA-like API I got NaJa and NewJ as solutions.
NaJa is an open source project while NewJ is a commercial product (Trial available)

What is NaJa according to the official website:
"NaJA stands for Native C++ Java-like API. The Java API is is a rich, standard and quite good design object library. There is no complete equivalent usable directly with C++. C++ developers must reuse old C libraries or a big set of C++ libraries, each with its own design. This make C++ difficult and code not as readable as it should be. The main NaJA goal is to provide what standard ANSI C++ library and STL don't.
NaJA also intends to bring C++ as easy as java can be while letting hackers free to decide whenever they need assistance (and then, accept some limitations, no magic!) or not. Not providing at all pointers and multiple inheritance because they are hard to use is not a solution !"

What is NewJ according to the official website:
"NewJ is a 100% native implementation of the core Java API and language features in C++, for C++. It is intended for Java/C++ developers who wish to use the Java API to deploy 100% native applications where performance or executable size are crucial factors. It is also well suited for Java developers who are learning C++ or maintaining existing C++ applications."


Other open source attempts include j2k and stemkit.

To prevent data loss, proactively monitor your hard disk

Nice Introduction from the Acronis website:
“There are three unavoidable certainties in life: Death, Taxes and Hard Disk Drive Failures. 
Acronis does not have a solution for the first; however, we can make sure that your financial records, photos, videos and other items of sentimental or monetary value are protected so that you can cherish the memories and pay your taxes on time!
Acronis Drive Monitor is a free tool that helps monitor your hard drive, and prevent data loss.”

How? Understanding the Technology:
S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology) is a disk monitoring technology which can predict many disk failures. This technology is implemented on the most modern hard drives.
Many hard disk monitoring software e.g Acronis Drive Monitor query this information to analyze and predict hard drive health, status, failure.

Supported Hard Drives according to the Acronis website:
With the first version of Acronis Drive Monitor, the level of support may be described as following:
·         Vast majority of internal drives attached to internal I/O controllers are supported.
·         Most USB-connected drives are supported, too.
·         Many software RAID controllers are supported.
·         Most hardware RAID controllers are not yet supported.


Notes:
1. Suitable for monitoring the hard disk on your laptop or PC because the hard disk is not attached to a hardware raid controller .
2. In general, software raid controllers can be monitored but not hardware RAID controllers
3. Data found on the hard disk must be regularly backup’d as a good practice, not only when the monitoring software starts giving you a warning or error.

Disclaimer: I am not affiliated to Acronis in any way. This information is for educational purpose only.
The author cannot be held responsible for any data loss which might occur even after using this software (Acronis Drive Monitor).