If you program using Visual Studio [..] you will need to do a lot of work to port your app
You omited the important part hidding the statement with the [..] about WinSxS DLLs and language dependencies.
Yep, you CAN port pure C/C++ easy but... Try to port your Visual Basic application to linux... Try to port your MFC8 app to linux... Try to port your Managed C++ app to Mono ( go talk M.Icaza about MS CRT and you will discover a bad thing)... Emulators don't count... and if you count then try to install the WinSxS DLLs using WineHQ... Oppz you need IExplorer and MSIInstaller, which won't install.
Btw, have you tryed to install VS2005 on Windows98/ME? Ooopz, you cannot ( manifest problems, WinSxS models, recompiled DLLs, etc). So i'm forced to buy a Win2k/XP and also VS2005 to make a .NET 2.0 application.
And remember... IExplorer/Media system/DLL File protection/other DLLs were embedded into the OS so Microsoft could not extract it... and thats why the UE required the "N" Windows versions.
Don't get the wrong impression: *everyone* wants to lock you in to their stuff, not just Microsoft. You're being naive to think that Microsoft is a big bad monster but - for instance - Apple is some sort of holy saint.
Thats true. But well, I can buy the only-and-all-features-included Leopard OS by just 100$ ( which i think is a decent price for an OS... not 300€ llike Vista is selling here ). Well, Solaris or Ubuntu only accepts $$$ for the support but not the software itself. And well... GNU or Open source foundation only want you to participate.
And last I checked, .NET is a pretty well-accepted and developing standard with increasingly good support on non-windows OSes.
That's what Microsoft wants you to think. The .NET source code exists(google "rotor"), but license does not allow to use it really. We have seen some deals with Novell too... but the .NET as exists in Windows is not ported to other OSs. Novell IS porting the parts which can be ( others cannot, by technical, license or patents reasons )... the project is called "Mono". GNU is working also on other port(google dotGNU), but is very immature.
Mono just works
decently (where it means... not perfectly...) with .NET 1.0, that's why I put the >1.0 on the statement. Also contains C# support ... and, AFAIK, lacks VB, MC++ or J#(which is a very curious Java microsoft implementation btw... created from the Sun vs Microsoft Java fighting ).
System.Windows.Forms namespace is not yet totally implemented. Also got some problems because uses Wine emulation and a strange mixed Gtk model ( because GDI+ was patented or something like that ).
.NET 2.0 is only partially supported(in fact, has no official support). VistaAPI(WPF/Avalon, WCF,etc) is not at all done.
Also, MonoForge no longer exists to host your ASP.NET pages... and hosting enterprises don't like Mono because uses too many resources.
Monodevelop (the Mono IDE) is still very immature.
The garbage collector on Mono could use some optimizations ( ask the Unity Engine people or Artificial Studios team about Mono implementation ).
So, even when Microsoft tries to tell you .NET is a standard and portable thing, no... is not really... not yet and perhaps never will be... and if you don't trust me run your .NET app in linux as "./mono myBeautyNET20App.exe" and see.
Due to all this, I was recommending Apache (+php, etc) and Java as an alternative to .NET... but if you can use pure C/C++ will be better... thats, perhaps, why you say your C apps compile and run well on some OSs... but for other .NET languages is other history... and please notice VS is more than just C/C++ !.
Furthermore there are plenty of libraries and functions that only work on Linux or Mac
For posix/unix libraries on Windows need to try compilation with MinGW or Cygwin. They could work if don't have very complex dependencies or are too HW-dependent. Usually they give you the source code so you can modify them too(now go and get the source code for Avalon, DirectX, Windows kernel or some file systems/formats... and remember the EU directives vs Microsoft for this ).
For example, you can port zlib, tifflib, pnglib, posix threads, openGL, openAL, theora, ogg/vorbis, XViD, libxml2, iconv, postgreSQL, gtk+, wxWidgets, etc...
On the other hand I can see more Windows-only libraries which cannot be natively-ported to other OSs.. for example Direct3D, DirectSound, DirectInput, Xaudio 1/2, Winsocks(well, just the async part), MSXML, .NET 1/2/3, ADO/Access/SQLServer, Office controls/doc SDK, Windows Media technologies(ASF/WMV/codecs...), MFC, ATL, etc etc, but well... sometimes is better to use DX to OpenGL as you mention... but requires to code a different path specific for Windows... while the OpenGL path can work on different OSs with a few modifications(OGL3 gonna be a special case, I admit it... i'm talking to port OGL 1.3 for Windows to linux, for example )
And, again, the first block libraries can be used in linux, macos, solaris and Windows too, the second ones just work well on Windows.
I dare to mention the huge number of OpenGL extensions that Apple decided to create for Mac
You still can use glx protocol and Mac X-Windows port. Humus can tell you if was very hard to port his OGL framework to Mac, pls.
And let me remember Microsoft left the OpenGL's ARB and wanted to kill OGL in Vista... so I still prefer a few extensions than Microsoft wanted to do!
This is veering heavily off course.
Yep, is going a bit offtopic. Pls, somebody start a Vista sux/nosux/Microsoft 666/angel /damm portability / windozed thread! I just hope this contributes a bit to open some windozed minds and to get 3dmark ports to other OSs.
I don't think that it's very critical that an OpenGL path be included in the next 3dmark.
Well, with the current OpenGL 2.1(or 3.0) status, I could agree.
The question is if 3dm2008 gonna be Vista and DX10 only. Or DX10.1 only ( so we need to thrash our GF8800s). Perhaps with Mount Evans(3.1) they could do nice next-gen effects without having to require Vista
and could open some portability possibilities... but Nick had to GLSL "discard" this pixel fragment!
Cmon! almost tell us if is DX10.1 or what! and if you have plans to port 3dmark to other OSs!