View Single Post
Old 09-03-2004, 06:35 PM   #2
cmaxwell
World Wind enthusiast
 
Join Date: Aug 2004
Location: Los Angeles
Posts: 355
Default

Quote:
Originally posted by marksolo@Sep 3 2004, 08:50 AM
Chris,

I get a lot of questions on why pushing for C# and Direct X instead of the more portable Java and Open GL.Â* How did you decide on C# and Direct X?
Mark
I've already lost count on the number of times I've had to defend using both C# and DirectX. Usually people think the C++ and OpenGL route would be better, but the issue really just comes down to performance, productivity, and marketability.

Microsoft ownes greater than 95% (or so) market share with personal computers. Our aim here at Learning Technologies is to touch as many people as possible with our products, so making something work (and work well) with MS Windows is top priority. World Wind started it's life with a piece of software called Blue Marble Viewer(this was before I came onboard), which was based on Open Scene Graph. That was primarily developed on Linux and while this piece of software was revolutionary and extremely powerful, porting each successive version to Windows proved to be costly. This created a need for a stable MS Windows product with the same functionality of BMV. With extremely limited resources, C# seemed like the only option that would allow us to have a deliverable product. This leads me into the biggest advantage for using C#...

C# is one of the most productive programming languages out there. When I try to implement a feature in c# with the .NET framework, it usually doesn't take me that long, and what gets produced is (relatively) bug-free. However, doing the same thing in c++ would take me at least twice as long, perhaps more depending on how much I was able to leverage the .NET framework when using c#.

*This productivity issue comes into play when it's just one guy (a student intern) programming the entire project. Going the C# route was the difference between finishing the project, and not finishing the project.*

Why not JAVA? The World Wind software pushes the limits of the new 3D accelerated hardware. JAVA 3D doesn't yet have the features, functionality, and performance of OpenGL or DirectX.

OpenGL vs. DirectX -> World Wind started off with using C# and a Wrapper for OpenGL access. There were a few issues with this, and the implementation of it was not exactly straightforward. I also saw that many of the latest games use DirectX, and with the introduction of Managed DirectX, it seemed only natural to use it. Managed DirectX gets rid of the complicated C# to C++ wrappers and basically makes everything more readable and robust. It's easier to explore the limits of the new video card features with Managed DirectX, and being natively Object-Oriented in C#, development fits better in the overall architecture of World Wind. The same *productivity* issue also comes up again, as DirectX has built-in libraries for meshes and math, which make my life easier since I don't have to build these libraries from scratch like I would with OpenGL. Oh, and one small but critical element for the use of DirectX over OpenGL, multi-threaded graphics device access.

I guess that's the ~short~ answer to the issue... :lol: I can elaborate more if anyone has specific questions about it.
__________________
~ just a programmer ~
cmaxwell is offline