473,773 Members | 2,326 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Java developer moving to Windows-Only apps: C++ or C#?

Hi I'm a Java developer moving to windows only applications. Of course
the first thing I thought was "well at least, without the VM now I can
write desktop applications that run real fast".

So I was happily heading to refresh my C++ memory and learn MFC when I
ran into this on Wikipedia:

".... applications written in Managed C++ have automatic garbage
collection and will run via the .NET virtual machine, just as
applications written in C# and Visual Basic .NET do. Additionally,
applications written in Managed C++ compile to CIL-Common
Intermediate Language-and not directly to native CPU instructions
like regular C++ applications do."

Now, it's my understanding that Microsoft is really pushing for all C++
programmer to use Managed C++, and that MFC, while still supported,
will not get too much spotlight on Longhorn. In fact I have read in a
few places that to benefit from the new Aeroglass/Avalon 'look and
feel' you will be pretty much forced to use Managed C++.

So... if you are using Managed C++ you are using a VM, so you basically
lose the 'traditionnal' advantage of C/C++ being 'faster' than C# or
Java. It's almost as if the only reason one would want to use C++ is
because they already know it, certainly not because it will provide
better performance on Longhorn. Basically, almost as if Microsoft was
providing "Backward compatibility".

If that's the case, then I suppose a Java guy like me probably will be
more at home with C#. But before I make the jump and invest a lot of
time and effort in this project, I'd like to ask this group their
opinion first.

I do find this very odd. I installed Paint .Net and noticed the whole
thing runs slow compared to say, Photoshop. It also took an awful lot
of memory for what it did. I can't really imagine Ms would want
EVERYONE to build applications that run within VMs, JIT or not. Sounds
horribly wasteful to me, especially since after all they do have
control over the platform.

TIA,

Steve.

Nov 17 '05
18 2368

"Ioannis Vranos" wrote:
I think they must make their bug-reporting mechanism more open than what is currently.

Currently, we have a product feedback page (link below) where our deveopers
and testers look at the bugs opened by customers and address the issue as
soon as possible. We fix most of the legitimate bugs and give a workaround if
it is too late in the product cycle and we dont have resources to fix the
problem.

You can report any bugs you find at
http://lab.msdn.microsoft.com/productfeedback/

We highly appreciate customers finding bugs and reporting them. As these are
real world scenarios, they are always very high priority.

Thanks,
Kapil
Nov 17 '05 #11
John Gabriel wrote:

<sight> May I recall the good old Usenet proverb : DO NOT FEED THE TROLL
!!!!
Arnaud
MVP - VC
Nov 17 '05 #12
MVP - Does this stand for Most Valuable Pawn?

I was not going to reply to this post but you are a troll! It's people like
you who have nothing to contribute, who know very little and who are good
Microsoft puppets. Carry on being a fine Microsoft troll - they may offer
you a job there soon some day. Don't bother responding, because I won't be
responding. I promise you.

"Arnaud Debaene" wrote:
John Gabriel wrote:

<sight> May I recall the good old Usenet proverb : DO NOT FEED THE TROLL
!!!!
Arnaud
MVP - VC

Nov 17 '05 #13
"John Gabriel" <Jo*********@di scussions.micro soft.com> wrote in message
news:D7******** *************** ***********@mic rosoft.com...
MVP - Does this stand for Most Valuable Pawn?
LOL.
Don't bother responding, because I won't be
responding. I promise you.


We can only hope.

Regards,
Will
Nov 17 '05 #14
st********@gmai l.com wrote:
Hi I'm a Java developer moving to windows only applications. Of course
the first thing I thought was "well at least, without the VM now I can
write desktop applications that run real fast".

So I was happily heading to refresh my C++ memory and learn MFC when I
ran into this on Wikipedia:

".... applications written in Managed C++ have automatic garbage
collection and will run via the .NET virtual machine, just as
applications written in C# and Visual Basic .NET do. Additionally,
applications written in Managed C++ compile to CIL-Common
Intermediate Language-and not directly to native CPU instructions
like regular C++ applications do."

Now, it's my understanding that Microsoft is really pushing for all C++
programmer to use Managed C++, and that MFC, while still supported,
will not get too much spotlight on Longhorn. In fact I have read in a
few places that to benefit from the new Aeroglass/Avalon 'look and
feel' you will be pretty much forced to use Managed C++.

So... if you are using Managed C++ you are using a VM, so you basically
lose the 'traditionnal' advantage of C/C++ being 'faster' than C# or
Java. It's almost as if the only reason one would want to use C++ is
because they already know it, certainly not because it will provide
better performance on Longhorn. Basically, almost as if Microsoft was
providing "Backward compatibility".

If that's the case, then I suppose a Java guy like me probably will be
more at home with C#. But before I make the jump and invest a lot of
time and effort in this project, I'd like to ask this group their
opinion first.


C#, despite the name, is MS's "improvemen t" of Java. It has much more to
do with Java and its ideas than it does with C++. C++ is a language
still far in advance of Java or C#, despite all the hype for the former
languages. If you are used to Java, then learning C# will be a snap,
while using modern C++ idioms will probably be harder you. BTW, MFC is
very far from modern C++ and is a dinosaur waiting to die its natural
death despite all the people still using it.

Of course if you use C++, not only will you be using the best statically
typed language around but nearly all other statically typed languages,
as well as first-rate dynamically typed languages like Python and Ruby,
should be fairly easy to learn and use. C++ is still tops, and is the
language par excellence for the best of programmers. Java and C#,
although nice languages, offer nothing which C++ does not have, and will
still be catching up with C++ for years to come.

As far as .NET goes, a serious bug in net 1.0 and net 1.1 keeps C++
developers from writing normal C++ code in .NET assemblies. This has
been fixed in the next release however. Good luck !
Nov 17 '05 #15
John Gabriel wrote:
Are you in for a nasty shock! VC++ 2005 is a disaster - at least from what I
have seen from the Express Beta Edition. Managed code is Microsoft's buzzword
for controlled memory management (garbage collection as in Java). Trying to
write even the most simple application is a Herculean task. Most of the
traditional C++ functions have been deprecated in favour of the 'managed
ones'.

Some facts I learned very fast:
- The Beta Edition crashes for no reason at all.


snip...

That's why it is called Beta.
Nov 17 '05 #16
I am curious to see how internal product groups of Microsoft will handle this
'migration' from Unmanaged C to Managed C, most of MS' products are still
built on Win32 API such as Office, SQL Server and even Windows. .NET
libraries are mostly provided as a 'wrapper' to their Win32 interfaces for
ease of coding in .NET. Maybe we will get a better idea when VS2005 is
officially out later...
"st********@gma il.com" wrote:
Hi I'm a Java developer moving to windows only applications. Of course
the first thing I thought was "well at least, without the VM now I can
write desktop applications that run real fast".

So I was happily heading to refresh my C++ memory and learn MFC when I
ran into this on Wikipedia:

".... applications written in Managed C++ have automatic garbage
collection and will run via the .NET virtual machine, just as
applications written in C# and Visual Basic .NET do. Additionally,
applications written in Managed C++ compile to CIL-Common
Intermediate Language-and not directly to native CPU instructions
like regular C++ applications do."

Now, it's my understanding that Microsoft is really pushing for all C++
programmer to use Managed C++, and that MFC, while still supported,
will not get too much spotlight on Longhorn. In fact I have read in a
few places that to benefit from the new Aeroglass/Avalon 'look and
feel' you will be pretty much forced to use Managed C++.

So... if you are using Managed C++ you are using a VM, so you basically
lose the 'traditionnal' advantage of C/C++ being 'faster' than C# or
Java. It's almost as if the only reason one would want to use C++ is
because they already know it, certainly not because it will provide
better performance on Longhorn. Basically, almost as if Microsoft was
providing "Backward compatibility".

If that's the case, then I suppose a Java guy like me probably will be
more at home with C#. But before I make the jump and invest a lot of
time and effort in this project, I'd like to ask this group their
opinion first.

I do find this very odd. I installed Paint .Net and noticed the whole
thing runs slow compared to say, Photoshop. It also took an awful lot
of memory for what it did. I can't really imagine Ms would want
EVERYONE to build applications that run within VMs, JIT or not. Sounds
horribly wasteful to me, especially since after all they do have
control over the platform.

TIA,

Steve.

Nov 17 '05 #17
Patrick wrote:
I am curious to see how internal product groups of Microsoft will handle this
'migration' from Unmanaged C to Managed C,

Or better described, unmanaged code to managed code.

most of MS' products are still
built on Win32 API such as Office, SQL Server and even Windows. .NET
libraries are mostly provided as a 'wrapper' to their Win32 interfaces for
ease of coding in .NET. Maybe we will get a better idea when VS2005 is
officially out later...

They wrap existing functionality because it makes no sense to rewrite it from scratch, and
is also faster.

I am not sure what you mean by "handling", but in C++ both managed code and unmanaged code
can be compiled mixed. Thus existing projects written in native code can be extended with
..NET code, with the old code remaining unchanged.
Nov 17 '05 #18
Ioannis Vranos wrote:
Patrick wrote:
most of MS' products are still
built on Win32 API such as Office, SQL Server and even Windows. .NET
libraries are mostly provided as a 'wrapper' to their Win32
interfaces for ease of coding in .NET. Maybe we will get a better idea
when VS2005
is officially out later...

They wrap existing functionality because it makes no sense to rewrite
it from scratch, and is also faster.

I am not sure what you mean by "handling", but in C++ both managed
code and unmanaged code can be compiled mixed. Thus existing projects
written in native code can be extended with .NET code, with the old
code remaining unchanged.


Visual Studio itself is a fine example of such.

The main IDE is written in unmanaged C++, while the tools that plug into
that IDE are (in vc2005) a mixture of unmanged C++, MC++, C++/CLI and C#
(maybe even some VB.NET and VB6 thrown in for good measure - I'm not sure).

-cd
Nov 17 '05 #19

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

Similar topics

3
6014
by: Robert Bralic | last post by:
Hello, I writed small graphical editor for probabilystic networks in JAVA, but there was problem with making save file inJAVA. I thinked about it and I concluded that Save in JAVA is great error. If is possibile to mke save in JAVA then is posible tha make save in any
0
2239
by: asj | last post by:
luke: BORRRRRRRRING......the most interesting initiatives are happening on the client side - in small wireless devices such as cellphones and smartphones, where J2ME has become the de facto standard for application development. Article from Javaworld.com: "Java everywhere is for world domination" http://www.javaworld.com/javaworld/jw-08-2003/jw-0822-wireless.html? Some quotes:
13
472
by: Moonraker | last post by:
After working extensively with .Net and Java, these are the differences I see: Java does not have Reflection.Emit But it does have Reflection. That's okay so far, because most programmers are too dumb to use Reflection.Emit. Visual Studio .net is the easiest way to create web services.
25
3184
by: wee | last post by:
I've been using Java for a few years now and am just amazed at how many new "technologies" or tools come out all the time (i.e., Struts, Java Server Faces, JMeter, jad, etc.). It is nigh impossible to keep up on everything. It seems almost like it's a fad in which you've got to know the next new thing or you aren't much. I've always wondered: does the C++ world do this? Are there new libraries coming out all the time, new paradigms, or...
5
14718
by: Hassan Naqvi | last post by:
Hi, Basically, I am Java developer. In past I have played with Oracle using Java (JDBC). But this is the time to play with IBM DB2 using Java (JDBC). So kindly help this DB2 newbie. I have a file of 32 MB, named as "fdbk5.0". This is actually a database created in DB2 and containing records. I am interested in viewing the *structure of this database, i.e. table names, column names and finally all the records. How I can do this? Which...
9
1813
by: babylon | last post by:
i just read this (http://java.sun.com/developer/technicalArticles/releases/j2se15/) am I correcting on these concepts? Java Metadata == C# Attribute (java learn from c#?) Java Generics == C# Generics (any other difference?i heard that C#'s generic is faster) Java autoboxing == C# autoboxing (java learn from c#?) java enchanced for == C# foreach ( (java learn from c#?) java enumerated type == c# enum (java learn from c#?) java static...
11
1312
by: redefined.horizons | last post by:
I wanted to thank those members of the Python community that took the time to answer my questions about interfaces and plug-ins in Python. I have discovered that Python is a very powerful language, and one that I look forward to using for Linux development. I have found the support for Python much better than that for Mono, and I will be moving development of my Linux applications to Python. Thank you again for the help. Scott Huey
5
1801
by: Abhinay | last post by:
Hi there, I am new in java, I was C++ developer. I have to develop echo server using java which would be run on windows , I am ready with server logic. I am stuck in basic code of java server as I don't understand how to write code for server start / stop as well run java server as daemon process ( like C++ ). Is there any thing in java simillar to windows services in C++ ?? Please suggest me, your help will make me happy.
0
9621
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
10264
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...
0
10106
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
9914
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
8937
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...
1
7463
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5484
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
3610
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2852
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.