This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
No one list like this will be right for all shops, or even many shops. For example, I've never done Java development on Windows, although we have Windows users among our customers. My whole team uses Linux desktops in development. And believe it or not, some especially hardy souls with a taste for self-mutilation will run server editions of Windows in production.
Likewise, plenty of shops develop and deploy on the same server software: Tomcat, JBoss, anything free is easy enough to install on all the developer's desktops.
You can make some comparisons based on requirements for the two environments. In a server environment, anyway, the production machine(s) usually needs to be 24x7 available, while the developer machines are shut down at night. The production server(s) may not have graphics cards, while the developer machines need nice ones. But otherwise, you can only compare the development and production environments in a specific location.
Generally production environments are tuned for performance, by switching off Hot deployment, keeping logger level to ERROR or WARN, security features are turned on, precompine JSP etc. Where as in development environment you will see opposite, hot deployment is ON, debug levels are set to DEBUG, security features are off (if possible). This reduces development time segnificantly. Bottom line is that production environments are tuned for performance but development environments are tuned for developer friendlyness than performance.
Please provide links/informations so I can get more information on the same.
Thanks.[/qb]<hr></blockquote> [ November 14, 2005: Message edited by: onkarshendge ]
As earnest pointed out 24X7 support and number of users are the main difference.
In the enterprise I work the main difference between production and development environment is security, deployment procedures/protocol, data.
In production a developer don't have access to all the features available in development. Need to go through lot of procedures to change code in production. In development data is synthetic - not real data as in production.
Some of the commonalities between enterprises in the industry are.. Developer environment can have debugging enabled. Seperate datasources for production and development. Seperate databases for production and development. Seperate subsystems for production and development. Operating System specific configurations will be in properties file and contents will differ with os. If non-100% java third party tools are involved, OS specific configuration will be needed for each environment.
Interestingly, there are many production systems that use windows. The reasons are they are cheap and can be quickly installed (via ghost). You can quickly build (and power up) a large farm / grid, this way.
Obviously the grid software will have to route around machines that fail in production.