As you are likely aware, the embedded space is changing rapidly in two ways. Technology advances lead to faster processors that consume less power than ever and low-cost memory has exploded with the advent of mp3 players, iPods, and more capable handsets. The notion of what is embedded is evolving as well. An embedded device used to have a small range of functions and be dedicated to one or two special purposes. Today, boards with the capabilities of high-end PCs are being embedded into a wide range of infrastructures as we move into a world of networked "smart" objects.
This is generally good news for embedded developers. On the one hand, these improved capabilities mean greater choice for a development platform. After years of struggling to fit ever-more-complex code into slow and extremely small spaces, you can start reusing code from the broader software community and reduce your time to market and cost of development. But this also means that you're likely trying to figure out how much of your legacy solution you can bring forward, how hard it will be to upgrade development skills, and whether you need to make some architectural decisions to help you better take advantage of more mainstream software and tools. This is where Java can help.
The Java Advantage
You may be familiar with Java ME, the standard form of Java that has been used for the last several years in cellphones and other traditionally embedded spaces like printers, and switches. However, given the changing marketplace, Oracle has made Java Standard Edition (SE), the world's most robust and best performing form of Java, available for licensing on embedded systems. Java SE is quickly showing up in many embedded systems including intelligent routers and switches, high-end printers, military defense systems, and RFID readers. There's a reason for this - Java enables developers to be more productive. Here's how:
Familiar But Easier:Java has a familiar object model based on C++ but simplifies it and removes error-prone elements such as pointers and memory management. This allows traditional C and C++ programmers to quickly develop reliable solutions without having to track down memory leaks and segmentation fault errors.
Robust, Secure Environment:Java SE comes complete with a rich set of functionality for developers including networking, security, graphics, database, and XML support. Java SE was designed around security and connectivity. it's easy to develop connections with other applications, other systems, the Internet, and databases. Plus, Java's inherent memory model ensures that rogue programs or functions don't bring down the environment.
Portable and High Performance:Java provides a Write-Once-Run-Anywhere (WORA) environment which is very useful for the embedded space. Java SE allows you to develop and test on your x86 box, for example, then deploy on PowerPC. And your solution won't be slow. Our award-winning HotSpot technology inside Java SE uses machine code in-lining and just-in-time compilation to put Java applications performance on par with C or C++.
Widespread Community Support:This is probably the biggest difference you'll notice when moving to Java. There is an entire ecosystem of Java tools, code and applications many of which are open source and/or freely available. These tools and programs, supplemented by a wide range of Java books and training, help reduce the time and cost to design, develop and deploy Java programs, and ensure you'll have a solid base of trained developers available for you as you grow.
Top Ten Things You Should Know About Java SE Embedded
1. The Best Programming Language on the Planet
A vital language that offers industry-best reliability, performance, throughput, security, and cross-platform support.
2. Rich Java SE Environment
Java SE comes complete with support for serious graphics, security, XML, and networking as well as just-in-time compilation, templates, and much, much more.
3. Faster Development
Developers can use NetBeans, Oracle's award winning -- and free -- extensible IDE, for rapid team-based prototyping and development.
4. Multi-Platform Support
Java's model of write once, run anywhere is very powerful for the diverse embedded space -- code here, run there. Avoid hardware platform/vendor lock-in.
5. Flexibility and Choice
SE supports full-graphics support or headless mode. There are also many configuration options to enable deployment-specific tuning and optimal performance.
6. Complete Offering
Oracle offers the best implementation of Java as well as proven development and deployment support and engineering services to ensure your success.
7. Binary or Source Product
Let our experts provide a compliant, tuned, tested binary - or do it yourself. Either way we can help.
8. Leading Experts
You know your environment better than anyone. We know Java better than anyone. Let us help you design, tune, and configure your solution for best results.
9. Affordable Pricing
Innovative business models and pricing bring Java SE to your solution -- after you ship. Development is free!
10. From Oracle
We are widely known as the best IT infrastructure innovators and the inventor and/or key driver of technologies such as TCP/IP, ethernet, Solaris, Java, SPARC, XML, and much more. Who else should you trust?