Eclipse is a free and open source integrated development environment (IDE).
N/A
Oracle Java SE
Score 8.7 out of 10
N/A
Oracle Java SE is a programming language and gives customers enterprise features that minimize the costs of deployment and maintenance of their Java-based IT environment.
Eclipse is recommended for enabling the user community to be self-reliant in scenarios where the mode of operation demands agile, on the fly accurate reporting, such as during month ends for reconciliation purposes. The urgency and sensitivity of such situations result in a lot of stress with quick turnaround times but with the ability of Eclipse and Hana views, the reliance on IT could be minimized. Also, IT could leverage the power of Eclipse to develop Hana views without having to do the traditional route of ABAP developments. It might be less appropriate for situations where the agile and dynamic nature of the operations is not a necessity.
Oracle Java SE is well suited to long-running applications (e.g. servers). Java Swing (UI toolkit) is now rather outdated, lacking support for modern UI features. JavaFX, the potential replacement for Swing, has now been separated out of Java core. Ideally, there would be a path to migrate a large application incrementally from Swing to JavaFX, but due to different threading models and other aspects, it is difficult. At this point, it is probably better to use an embedded web browser (e.g. JxBrowser) to provide a modern UI in HTML/Javascript and keep just the business logic in Java.
It is very good at managing many files under edit. I like the ability to manage multiple projects and multiple files. It supports a wide variety of file formats with type-specific syntax formatting.
I like the integrated debugging facility. In particular, we used a remote file system debugger with Python in external VMs to great effect.
I like the ability to access multiple types of databases in the integrated development environment. It provides connectors for a wide variety of databases and supports most basic DB access methods.
GIT integration is very effective. You can easily manage repositories and connect them to projects, and the project integration into GIT is virtually seamless.
Since Java runs on a virtual machine, it's generally considered to be agnostic of the hardware it's running on. It allows for deployment across a mix of hardware setups with the same binary.
Lots of literature, third party libraries, support forums, and books have been devoted to Java in general, making it a great language to use to support the business.
Backwards compatibility has been an important strength of Java for us. Legacy code that isn't ready to be retired yet can still run on our newer setups despite using older versions of OJSE.
I love this product, what makes it one of the best tool out in the market is its ability to function with a wide range of languages. The online community support is superb, so you are never stuck on an issue. The customization is endless, you can keep adding plugins or jars for more functionalities as per your requirements. It's Free !!!
It has everything that the developer needs to do the job. Few things that I have used in my day-to-day development 1. Console output. 2. Software flash functionality supporting multiple JTAG vendors like J-LINK. 3. Debugging capabilities like having a breakpoint, looking at the assembly, looking at the memory etc. this also applies to Embedded boards. 4. Plug-in like CMake, Doxygen and PlantUML are available.
The language is fluent and has good support from a number of open source and commercial IDEs. Language features are added every 6 months, although long-term service releases are only available every 3 years. It would be nice if some of the older APIs were depreciated with more pressure to move to the new replacement APIs (e.g. File vs. Path), but transitions to new features are generally well implemented.
I gave this rating because Eclipse is an open-source free IDE therefore no support system is available as far as I know. I have to go through other sources to solve my problem which is very tough and annoying. So if you are using Eclipse then you are on your own, as a student, it is not a big issue for me but for developers it is a need.
Java is such a mature product at this point that there is little support from the vendor that is needed. Various sources on the internet, and especially StackOverflow, provide a wealth of knowledge and advice. Areas that may benefit from support is when dealing with complex multithreading issues and security libraries.
As previously said, Eclipse is one of the most complete and useful tools for Java development. And as a plus, it's open-source and free, so you won't beat that price-quality relation. When starting with Java projects, you won't fail with Eclipse. But, if you are getting into other programming languages, or your projects are getting bigger and bigger, you might consider switching to another solution.
We choose Java as our system has multiple sub-applications that have different purposes and architecture including back-end applications, front-end UI, front-end Rest API, and Selenium Automation tests. They are deployed in Windows and Linux, communicate with each other using Rest API, RMI and Queue Message and need to support different deployment environment from Dev, Test, UAT to Production so using Java allows us to have a common standard from development, build and deployment for all applications.
Eclipse handles numerous languages and a multitude of features, so many features that it requires a deep learning curve for users. The setup is complex and requires someone with expertise or background with software implementation.
Eclipse is free and offers user community support which is a huge benefit.
Eclipse has solid Subversion integration which saves costs for a firm that is already using Subversion as their configuration management tool.
Eclipse lacks the ability to support mobile application development which is a negative impact for the need to deliver mobile apps.
Eclipse is open source which means it is constantly updating features and functions extending the learning curve for users.