A delegate at PDC 2005 at the community lounge asked me that he wanted to run SQL Server on Linux in his organization. I asked him what gave him that idea, and he said that since Mono runs the .NET environment on Linux and you can run .NET assemblies compiled on Windows on top of Mono running on Linux, it should be doable. I said, no. While mono is running the ECMA CLR and other reverse-engineered .NET tools and technologies on Linux, SQL Server is not a managed piece of code. Parts of SQL Server may be managed code, but it runs on Win32, not on the CLR. That is why you can not run it on Mono. If you had some sort of a bridge between Win32 and the Linux APIs, you might be able to run Windows programs on Linux. Wine is a tool that you do this with, but I gather that it is a pain to run a Windows program using Wine on Linux. It is not a general tool in which you just copy a file and it runs, you have to configure it on a case to case basis.
I believe that it is not very useful to think about platform independence. It may be possible in theory, it may be possible in some situations with Java or with .NET, but with both, it has its limitations, for example, with Java Beans for example, things are very application server dependent, not even platform dependent.
It is much better to think interopearbility, and that is the leading theme on all sensible fronts. Let everyone coexist on whatever it is that they do best in a standards compliant way and be able to interoperate with them.
3 months ago