> Cg (“C” for graphics) is a high-level graphics programming|
> language NVIDIA has developed in cooperation with Microsoft.
No mention whether Cg is slated for eventual inclusion in .NET
but right now Cg seems a lot more portable than .NET:
"Once the program is written, the compiler can output code for DirectX
or OpenGL. Since Cg is designed specifically for vertex and pixel
shader programs, DirectX versions 8 and 9 are supported as well
as OpenGL 1.4. The compiler itself is cross platform; in particular
programs written for Windows, Linux, Macintosh, and Xbox are supported."
Microsoft's multimedia API's (like DirectX and Media Player) are
glaringly absent from .NET API's. Is there some reason behind this or
was it just due to lack of time? Is it slated for eventual inclusion?
You can do a lot of cool things with .NET but integrating audio into an
application like I need to do with English language listening test software is not one of them. Macromedia's Director and Flash, other multimedia authoring tools, and JMF still have this functionality locked down for ease of use.
>I'd be the last one to begrudge anybody their right to create
>their own DSL, but given that this looks like C with some
>domain-specific types and functions one has to wonder why
>they couldn't make this happen with C++ and an
DSL's seem like a good device for proprietary lock-in.
It's not that they couldn't, it's that they don't have to.
They have something for which their is no open source
substitute and they are going to extract some revenue
from it and perhaps lock some people in to NVIDIA and monopolize some market share:
" Cg could bring us one step closer to an NVIDIA-dominated world. What happens if developers choose not to dedicate enough time to ensure that non-NVIDIA cards work well with their Cg-compiled code, or aren’t optimized for the best performance?"
.....until either .NET is available on all those platforms....Xbox?.. Highly unlikely....
The browser with the 3D images in it also doesn't look too portable.
IMHO Value is added to proprietary software by
adding features that make it different, unique, and
supposedly better rather than incrementally adding
to already existing functionality in an open sourced generic
software system....which in the long run is more useful.
Look at the way Apache and the Jakarta Project are structured
as opposed to monolithic branded server systems that are marketed
commercially. Instead of aiming for generic functionality and generic
skills that can be applied to any server system, the computer
"professional" gets "certified" on his knowledge of the particular settings, terminology, and problems of a commercial product that is bound to change in the near future anyway so that the company can maintain its revenue stream.....sell new books....certification programs.....generate new hype. This typical pattern/cycle is counter-productive to computer science education.