Overview
Over the years Java has evolved, incorporating new features and ideas. But there were some key ideas that were considered while designing the language. Let’s look at these.
What Java intends to provide?
- Simple
Java should be simple to learn and use by the Professional Programmers. - Object Oriented Features
The Object Model in Java is simple and easy to extend. - Robust
Programs written in Java should be able to run reliably in any Environment. - Multithreading
The language should support concurrency and parallelism. - Architecture Neutral
Thanks to Java Virtual Machine you can write a Java program once and run on any platform. - Interpreted and High Performance
- Distributed
Java supports Remote Method Invocation.
Apart from these Java is a strictly typed language so it checks your program at both compile and run time. If you are familiar with Javascript then you may know the primary reason behind creating Typescript, which was Type safety.
It also frees you from Memory Management activities which can cause major errors at run time, if not managed properly.
I know this was a high level overview of the design considerations. If you want to explore further please checkout my other articles.