According to the criteria below , what is the best technology stack ?
- Cross-platform (Linux / Windows).
- Ability to run as a service (daemon).
- Powerful object-oriented data access (O / R-mapping).
- Support for multiple databases (MsSql, Oracle, MySQl, SqlLite, Postgress).
- You can test the web application (unit testing and integration).
- Reasonable or no development cost (including IDE and other tools).
- Reasonable or free licensing (price of OS, database, etc.).
- Very small development team (1-5 people).
- Background Windows / .NET team.
I would easily choose .NET as a platform with ASP.NET MVC / NHibernate. I work well in .NET and have been doing this for about 3 years. So this is the easiest choice for me.
But there seem to be too many problems running on ASP.NET in Mono. I basically found them on the net. But I know:
- different versions of Mono on different hosts.
- different behavior of some objects on different platforms (Ayende wrote on his blog a while ago about this)
- conservative garbage collector
- legal issues with MS.
I especially like Ruby as a language, but I'm not too sure if it takes a lot of tricks to satisfy points 2, 3, 4.
As for Java, for some reason I just can't do it. Every time I have to think to write get / set instead of a property, I return to C #. I would do Java if there were no .NET 2/3.
So, 2 main questions:
- Which language is best for?
- What related technologies will be useful?