473,837 Members | 1,722 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

C# vs. C++

cj
I don't want to start a war but why would I choose one over the other?
First and foremost I need to keep in mind marketability of the skill and
the future of the language.

I'm getting the feeling I'll be moving from VB to one or the other. I
have some say on which but perhaps not the final decision. I have used
C and C++ a little bit years ago. I have no experience in C#. I don't
expect it to be that difficult but I hate remembering the idiosyncrasies
of too many languages so I'd like to pick one C# or C++ and make the
right choice.
Jun 27 '08
151 4296
Ben Voigt [C++ MVP] wrote:
Rudy Velthuis wrote:
Daniel Boulerice wrote:
>
CJ,
>
I guess you were surprised of how many replies you got so far!!
>
Anyway, if you want to move to C# or C++, know this:
>
a.. C# is a virtual machine - a little like java and VB already -
at run-time your program is interpreted by another program called
the CLR.
No, it isn't. At runtime, it is compiled just-in-time and it runs
natively, it is not interpreted. The CLR is not another program
either, it is the main runtime library that comes with .NET, and
also runs natively. AFAIK, most C++ products also have a runtime
library. .NET's CLR is just more extensive.

The CLR is not the same as the BCL. The BCL is comparable to the
runtime library of other languages, C++ doesn't need anything
corresponding to the CLR.
The CLR is much more than a simple runtime, I agree. But it is not a
program that interprets programs as bytecode. <g>
--
Rudy Velthuis http://rvelthuis.de

"The instinct of nearly all societies is to lock up anybody who
is truly free. First, society begins by trying to beat you up.
If this fails, they try to poison you. If this fails too, the
finish by loading honors on your head."
-- Jean Cocteau (1889-1963)
Jun 30 '08 #131
Ben Voigt [C++ MVP] wrote:
I think people have noticed exactly that.... newer versions of Visual Studio
are much slower and memory intensive than the most recent non-.NET version,
hence the "10 is the new 6" goal we hear from the MS developer tools team.
VS 2008 uses a lot more memory than VS 6.

But I would argue that so do all other apps compared
to what they did 10 years ago.

Office 2007 compared with 97.

FireFox 2 compared to Netscape 4.

Etc.

I really doubt that VS is unique in that aspect.

Yes - JIT & managed tend to add to startup time.

Arne
Jul 1 '08 #132
Rudy Velthuis wrote:
Ben Voigt [C++ MVP] wrote:
>Rudy Velthuis wrote:
>>Daniel Boulerice wrote:
CJ,

I guess you were surprised of how many replies you got so far!!

Anyway, if you want to move to C# or C++, know this:

a.. C# is a virtual machine - a little like java and VB already -
at run-time your program is interpreted by another program called
the CLR.

No, it isn't. At runtime, it is compiled just-in-time and it runs
natively, it is not interpreted. The CLR is not another program
either, it is the main runtime library that comes with .NET, and
also runs natively. AFAIK, most C++ products also have a runtime
library. .NET's CLR is just more extensive.

The CLR is not the same as the BCL. The BCL is comparable to the
runtime library of other languages, C++ doesn't need anything
correspondin g to the CLR.

The CLR is much more than a simple runtime, I agree. But it is not a
program that interprets programs as bytecode. <g>
It isn't "interpret + execute" which is the definition of an "interprete d
language". It is "interpret + optimize + native codegen + execute" which
has both advantages and disadvantages. In any case, .NET does target a
virtual machine, just like Java (which also does JIT compilation in several
implementations ).
Jul 1 '08 #133
ajk wrote:
On Tue, 24 Jun 2008 08:42:43 -0400, David Wilkinson
<no******@effis ols.comwrote:
>C++/CLI as a first class .NET language does indeed appear doomed.
Maybe using C++ for .NET was a bad concept from the beginning, or
maybe it was done in by the flawed initial version of MC++. But,
anyway, it seems dead.

C++/CLI is great for inter-op, but that is a limited market compared
to all the things that C# can do in .NET.

what exactly can be done in C# that can't be done in C++/CLI (VS
2008)?
It's not "can't be done in C++/CLI", it's poor designer support. Sure, you
can write WPF code in C++/CLI. But you don't get to use the XAML designer,
because XAML is compatible with C# but not C++/CLI. And so on.
Jul 2 '08 #134
RFOG wrote:
Arne Vajhøj avait écrit le 29/06/2008 :
>RFOG wrote:
>>"Arne Vajhøj" <ar**@vajhoej.d kescribió en el mensaje de noticias
news:48****** *************** **@news.sunsite .dk...
RFOG wrote:

Next OS from MS could very well be done in C#.

We have a phrase: "confía en Dios y no corras", that will be
translated as "be confident with God and don't run".

Of course, C# can deal with LDT, GDT, vector interrupts, rings,
direct hardware access and of course microprocessors executes MSIL
directly(*) .

You will need something native to do that.

But that is a microscopic part of an OS like Windows Vista.

Are you really sure you are saying?
Absolutely.
Please, take C:\WIndows and c:\windows\syst em32 and count what programs
are .net and what programs are native.
Try examine in EXE's in C:\DOS on a DOS 6.22 system.

They are all 16 bits, so we have hereby proven that an OS need
to consist of 16 bit executables.

Or maybe not.

How can you consider the fact that Vista is written almost
entirely in native as an indication of that is has to be so ??

Arne
Jul 4 '08 #135
Hendrik Schober wrote:
Arne Vajhøj wrote:
>Andre Kaufmann wrote:
>>Arne Vajhøj wrote:
[...]
Boost is a good, cool library - sure. But these libraries get
somewhat bloated, because of all the template stuff and compilation
slows down more and more.
Compilatio n speed is usually not important.
Why ? For RAD tools it's IMHO essential and if 1000 developers wait
daily an hour for compilation they are loosing simply 1000 hours of
development time, besides the energy wasted.

I'm simply used to quickly recompile my code after a compilation
error. In C++ is meant to compile fast code. Why can't the compiler
be not that fast ? The sad story is - it could be.

On modern hardware I believe that 1 hours compilation per day for
each developer in most cases will be an indication of a badly structured
project and/or build.

What if you have to fiddle with templates in a
several MLoC project?
No difference.

If you constantly need to rebuild MLOC's the project structure
is fubar.
>And besides I would expect the developers to think while they wait
for the build to complete.

Not 90% of the day.
(Go to
http://www.joelonsoftware.com/articl...000000043.html
and read the first paragraph of #9.)
I know the point of view.

But I don't believe in it.

Software engineering is about thinking, analzying and
designing (plus troubleshooting if it does not work) - typing
in code and building is the least part and by far the easiest part.

Arne
Jul 4 '08 #136
Daniel James wrote:
In article news:<48******* *************** *@news.sunsite. dk>, Arne
Vajhøj wrote:
>That is one of the worst pieces of logic I have seen in a long time.

If I were trying to make the argument you seem to think I am making
then you would be right about that!

I wrote:
>>>>I understand that the design of the JVM specifically makes
it hard to taget it with C or C++.

.. but note that "specifical ly" does not mean (and should not be
taken to imply) "deliberate ly".

(and for "taget" read "target")

The point I was making was that the JVM lacks instuctions for pointer
handling that would be needed if it were to be targeted by some other
languages than Java -- /specifically/ C-like languages.
I wrote explicit what I considered the flaw in the logic.

And it had nothing to do with specifically versus intentionally.

The discussion was whether the JVM was for one language or
many languages. None claimed that it was for all languages.

The fact that it is not for C/C++ does not prove that it was
for one language.

Arne
Jul 4 '08 #137
I'm going to stop this absurd conversation. This is my last email.

Because Windows IS kernel32.dll, gdi32.dll, user32.dll and those files are
native ones.

Because Windows IS ntoskrnl.exe, and some other .exe/.dll/.sys files that
are native ones.

Because Windows Shell IS explorer.exe and a little aux. files that are
native ones.

Bye forever.

"Arne Vajhøj" <ar**@vajhoej.d kwrote in message
news:48******** *************** @news.sunsite.d k...
RFOG wrote:
>Arne Vajhøj avait écrit le 29/06/2008 :
>>RFOG wrote:
"Arne Vajhøj" <ar**@vajhoej.d kescribió en el mensaje de noticias
news:48***** *************** ***@news.sunsit e.dk...
RFOG wrote:
>
Next OS from MS could very well be done in C#.
>
We have a phrase: "confía en Dios y no corras", that will be translated
as "be confident with God and don't run".

Of course, C# can deal with LDT, GDT, vector interrupts, rings, direct
hardware access and of course microprocessors executes MSIL
directly(* ).

You will need something native to do that.

But that is a microscopic part of an OS like Windows Vista.

Are you really sure you are saying?

Absolutely.
>Please, take C:\WIndows and c:\windows\syst em32 and count what programs
are .net and what programs are native.

Try examine in EXE's in C:\DOS on a DOS 6.22 system.

They are all 16 bits, so we have hereby proven that an OS need
to consist of 16 bit executables.

Or maybe not.

How can you consider the fact that Vista is written almost
entirely in native as an indication of that is has to be so ??

Arne
--
Microsoft Visual C++ MVP
=============== =========
Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
=============== =============== ==========
Acelgas a medio día y a la noche acelgas, mala comida y mala cena.

Jul 4 '08 #138
Arne Vajhøj wrote:
Hendrik Schober wrote:
[...]
> What if you have to fiddle with templates in a
several MLoC project?

No difference.

If you constantly need to rebuild MLOC's the project structure
is fubar.
I'll stop taking you serious right here. You seem to not to
know what you're talking about.
[...]
Arne
Schobi
Jul 4 '08 #139
Arne Vajhøj <ar**@vajhoej.d kwrote in news:485c5d19$0 $90265$14726298
@news.sunsite.d k:
clintonG wrote:
>Microsoft developed C# specifically for the web.

I don't think so. I believe C# was developed to be a general
language.
C# was developed because Sun wouldn't allow MS to tightly couple its Java
implementation to Windows, encouraging people to build Windows-only Java
apps. (The "embrace and extend" system of locking in your customers.)

As others have pointed out, use C# for business clients, particularly GUI
stuff. With project Mono, you can even use it on other platforms. (I just
recently coded a C# wrapper for a high-performance C++ library so that the
GUI people would have an easy time of connecting to it.) It's also good for
systems with complex object lifetime management needs.

If you need to connect to non-.NET business apps, consider Java, instead.
You can even use the new open source "Iced Tea" implementation to free
yourself from vendor lock-in. Java is the real language to compare to C#,
not C++. C++ is the fussy but fast hot-rod, while C# and Java are the
comfortable but slower family sedans.

Now to go find my flame-retardent underwear.... ;)
Jul 10 '08 #140

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
11260
by: William C. White | last post by:
Does anyone know of a way to use PHP /w Authorize.net AIM without using cURL? Our website is hosted on a shared drive and the webhost company doesn't installed additional software (such as cURL) on the server because of that. Our site will have an SSL certificate next week, so I would like to use AIM instead of SIM, however, I don't know how to send data via POST over https and recieve data from the Authorize.net server over an https...
2
5860
by: Albert Ahtenberg | last post by:
Hello, I don't know if it is only me but I was sure that header("Location:url") redirects the browser instantly to URL, or at least stops the execution of the code. But appearantely it continues to execute the code until the browser send his reply to the header instruction. So an exit(); after each redirection won't hurt at all
3
23047
by: James | last post by:
Hi, I have a form with 2 fields. 'A' 'B' The user completes one of the fields and the form is submitted. On the results page I want to run a query, but this will change subject to which field is completed.
0
8504
by: Ollivier Robert | last post by:
Hello, I'm trying to link PHP with Oracle 9.2.0/OCI8 with gcc 3.2.3 on a Solaris9 system. The link succeeds but everytime I try to run php, I get a SEGV from inside the libcnltsh.so library. 354 roberto@ausone:Build/php-4.3.2> ldd /opt/php4/bin/php libsablot.so.0 => /usr/local/lib/libsablot.so.0 libstdc++.so.5 => /usr/local/lib/libstdc++.so.5 libm.so.1 => /usr/lib/libm.so.1
1
8617
by: Richard Galli | last post by:
I want viewers to compare state laws on a single subject. Imagine a three-column table with a drop-down box on the top. A viewer selects a state from the list, and that state's text fills the column below. The viewer can select states from the drop down lists above the other two columns as well. If the viewer selects only one, only one column fills. If the viewer selects two states, two columns fill. Etc. I could, if appropriate, have...
4
18313
by: Albert Ahtenberg | last post by:
Hello, I have two questions. 1. When the user presses the back button and returns to a form he filled the form is reseted. How do I leave there the values he inserted? 2. When the user comes back to a page where he had a submitted POST data the browser keeps telling that the data has expired and asks if repost. How to avoid that? I tried registering all POST and GET vars as SESSION vars but
1
6882
by: inderjit S Gabrie | last post by:
Hi all Here is the scenerio ...is it possibly to do this... i am getting valid course dates output on to a web which i have designed ....all is okay so far , look at the following web url http://www.mis.gla.ac.uk/biquery/training/ but each of the courses held have maximum of 8 people that could be
2
31455
by: Jack | last post by:
Hi All, What is the PHP equivilent of Oracle bind variables in a SQL statement, e.g. select x from y where z=:parameter Which in asp/jsp would be followed by some statements to bind a value to :parameter I dont like the idea of making the SQL statement on the fly without binding parameters as I dont want a highly polluted SQL cache.
3
23612
by: Sandwick | last post by:
I am trying to change the size of a drawing so they are all 3x3. the script below is what i was trying to use to cut it in half ... I get errors. I can display the normal picture but not the results of the picture half the size. The PHP I have installed support 1.62 or higher. And all I would like to do is take and image and make it fit a 3x3. Any suggestions to where I should read or look would be appreciated.
0
9853
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
10903
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
10644
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
10289
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
9423
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
7014
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
1
4482
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
4062
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
3131
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.