difference?

This is a discussion on difference? within the C# Programming forums, part of the General Programming Boards category; what is major setback of c# as compared to c++ ?Is it object oriented like c++??...

C#.net is object oriented, every instance of a type in C# is an object, even the built in types. Taking a narrow view, this is more than C++ can say, in other words, the .net framework is a pure object oriented environment, whereas the Standard C++ language definition supports multi-paradigms.

Personally I would recommend learning C#, if you are using the Microsoft operating system. When I use Microsoft I study .net and C#. It is also an advantage to learn .net for moving toward the most common job markets. There are more jobs for .net and java programmers than C++ programmers.

Okay, here is some big news. There is a difference between Microsoft C++ and Standard C++. The C++ language definition is standardized by the international standards organization < www.iso.org >

Standard C++ by it's nature is a research language. The .net framework supports research but the framework is a middleware component. A framework is the product of object oriented design, a culmination of object modeling theory, using class hierarchies in order to maximize code efficiency, and design reusability in the form of an intermediate language (all of the .net languages are subsets of IL). The .net framework was written in a proprietary version of C++ called Microsoft Visual C++.

The .net framework offers a layer of abstraction between the system API (Win32) and User Mode execution. The framework actually solves constraints that become inherited by your applications due to the complexity of the implementation of the operating system (a.k.a, software architecture) when interoperated with through it's interface (Win32). The framework becomes a facility for runtime execution, it is able to understand the instructions (requests) of your code by compiling it into an intermediate langage before it is executed, because of this, the framework can manage the code, it can set permissions upon it and it can establish a specification for acceptable behavior.

As you can begin to see, the .net framework is a system, outside of which, a native .net language like C# does not exist. The C# language simply originated with the development of the .net framework, and that is why they call it a native language. Languages like VB.net and C++.net, etc, existed before the .net framework was created. The design of these languages as well as many hundreds of others, influenced the development of the .net intermediate language, they affected it's design, however ultimately they were made to conform to the functionality that Microsoft chose to support. Microsoft C++ was never great to begin with, however compared to Standard C++, the features of C++.net are lacking (at least in the current version of the IL). Since C#.net had no past, it did not have to perserve any resembance to itself and it had the most freedom to support the largest subset of the intermediate language.

There is research being done with Standard C++ in areas such as generative programming which use templates and are keen toward specialized library development related to distributed systems. This work is cutting edge and it is very exciting. It is also sure to gain popularity among vendors who most often use C++ to build systems. Standard C++ is a flexible and broad based, light weight langauge.

C++ and C#.net should not be compared because they have different valences. An effort should be made to build a context for any interpretation of a solution. This is what we strive for, to determine the value of a technology using objective criteria and analysis. Than we can weigh our choices in order to plan a future for ourselves that is aligned with our individual needs.

Standard C++ is a stronger investment if you intend to incorporate (open a corporation), and provide an original solution. On the other hand, certainly C#.net is better if your goal is to become quickly integrated into a job. This is not to say that .net is a worse choice. To the contrary, it must be obvious to most that .net has more utility for outsiders than any other method of building solutions specifially for the Microsoft operating system. It will be used heavily to meet demand that currently exists because many people are running Microsoft Windows. The .net framework is a product of research conducted by the OOA/D community and vendors such as Java, as well as some independent original work by microsoft C++ engineers. It was organized by Microsoft into an effort to make things easier for the developer who wants to build applications that run on their operating system. It is an improvement on their previous solutions.