Summary
Sun announced a release of a version of OpenSolaris, its open-source operating system, aimed especially at developers. The freely available release includes the suite of Sun's C++ and Java developers tools. Artima spoke with Sun developer tools marketing director Dan Roberts about the new release.
Advertisement
Sun's Solaris operating system is known chiefly as server room workhorse. But lately Sun has been trying to lure developers into adopting the x86 version of Solaris as a developer platform. These efforts culminated in the release today of a developer-focused Solaris version. Artima spoke with Dan Roberts, Sun's director of developer tools marketing, about why developers would want to develop on a Solaris box:
First, some developers would want to do at least part of their development on the platform their applications will be deployed to. Solaris is one of most widely used enterprise operating systems, and many Java enterprise applications will eventually run on a Solaris server somewhere. By giving developers easy access to Solaris as a development and testing platform, we want to make sure those developers have all the tools they need to ensure their applications run well in the deployment environment.
One of the tools we provide with Solaris is DTrace. It's one of the most innovative tools out there that allows you to monitor an application's execution not only within one IDE, or even just on the JVM, but across the entire OS stack. DTrace, by itself, is a good reason to use this version of Solaris for at least part of the development process.
Another tool that Solaris provides, and that might be interesting to developers, is zones. Zones allow you to configure virtual environments, each partitioned off from the other, and each providing a configuration for, say, a specific application or project. You can create, for instance, a zone for testing, which can closely [mimic] your ultimate deployment configuration.
This release also comes with a full stack of software pre-installed and configured to be used out of the box. That includes a full AMP stack, giving you MySQL, Apache, PHP, and a host of other tools used in many common Web applications. Our Java developer tools are also in this release... These tools have all been tested and configured to work well together... You're basically ready to go as soon as you install this version of Solaris.
We asked Roberts how Sun intends to compete with increasingly capable Linux distributions for developers' desktops:
Our focus is not to compete with Linux, but to provide an alternative that developers can use, especially keeping in mind deployment on Solaris, which, again, a lot of enterprises use...
That said, we do provide a lot of new features, such as an improved Gnome UI, collaboration tools, and so on, that developers have come to expect from more recent Linux distributions. And Solaris is one of the most capable Unix systems out there.
How important is it for you to develop on the platform that your application will eventually be deployed to? In general, what practices do you follow to ensure that your application runs well in its deployment environment?
"How important is it for you to develop on the platform that your application will eventually be deployed to?"
Personally - its not very important to me to code in the same env where it will be finally deployed. for the following reasons
One: Enterprise applications are typically made for multiple target environements. This alone deflates the idea of developing in the same env as where it will be finally deployed.
Two: At the time of deevelopemnt - what I really need is An efficient development env- along with good debuggers, efficient editors, designing and conceptualizing tools and of course loads of cofee and a window seat
"what practices do you follow to ensure that your application runs well in its deployment environment"
1) Stay away from Weblogic\Websphere specific API or for that matter any API which binds you to a specific container or OS 2) Use Hibernate to write DB netral code 3) When SQL is used- make sure its DB neutral 4) If a DB specific SQL is used- make sure its written in that database specifc DAO and not a generic DAO