473,378 Members | 1,372 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,378 software developers and data experts.

C# -- Good or Bad?

I was wondering if anyone had any thoughts on the relatively new C#
programming. Do you think it is getting too far away from the barebones
of coding, or do you think it is a practical, or possitive, step
forward?

Jul 22 '05 #1
16 2222
This has nothing to do with ISO C++, but... :)

I have only worked with C# for an assignment during an internship, and I
liked it a lot better than Java. It's cleaner and more consequent than
Java. IMO properties and delegates for example are language constructs
which really make sense to have in an OO language. D has them, too.

Jewbster wrote:
I was wondering if anyone had any thoughts on the relatively new C#
programming. Do you think it is getting too far away from the barebones
of coding, or do you think it is a practical, or possitive, step
forward?


Jul 22 '05 #2
Sorry, first time using the google groups.

Do you think this is something witch could replace C/C++, or is not
quite powerful enough?

Jul 22 '05 #3
I'm kinda sick of people going nuts with being off topic. C# from the C++
programmer's perspective is an interesting topic and might as well be
discussed here. This is comp.lang.c++, not comp.std.c++, so we should allow
a little lee way. Anyway, as for my opinon. I think that a "higher level"
language is necessary in today's computing environment, but have always been
annoyed with some of java's fickleness. C# takes what java's laid the
ground for, but adds some stuff I missed from C++, such as pointer
manipulation. So I like it, but would never undertake a serious programming
endeavor in it, unless I was heavily relying on the .net framework.
Jul 22 '05 #4
Jewbster wrote:
Sorry, first time using the google groups.

Do you think this is something witch could replace C/C++, or is not
quite powerful enough?


No, I don't think it will ever "replace" C++ for several reasons.

First, it's a proprietary language, designed for a proprietary platform
(that is, Microsoft's .NET). That's generally a bad thing, because you're
dependant on one single instance which has total control. That's also one
of the points I don't like Java.

Second, C#, like Java, is working on an abstract machine, namely the .NET
runtime. It is half interpreted, half compiled to some sort of intermediate
language (MSIL). So you have the overhead of an additional abstraction from
the hardware and system software and the additional overhead of translating
the mnemonics of the abstract machine to commands your system understands
at *runtime*. In other words, it's (generally) slower than a binary program
produced by your highly optimized C++ compiler.

Third, regardless how more abstract and intuitive programming languages will
become, there are always situations where you need languages which allow to
work close to the hardware, like C and C++. There are situations, where you
HAVE to deal with your memory directly and don't want the garbage collector
to do the work for you.

Bottom line being, C# has its niche, so do C and C++. I doubt this will
change anytime soon.

Just my 2 cents.

Regards,
Matthias
Jul 22 '05 #5
Mark Bruno wrote:
I'm kinda sick of people going nuts with being off topic.


Me too. So long as a topic has some general relationship to C++, its likely
to be of interest to me. Constantly insisting on discussion of only the C++
standard seems to me to be a very narrow point of view.

--
Chris Gordon-Smith
London
Homepage: http://graffiti.virgin.net/c.gordon-smith/
Jul 22 '05 #6
Matthias Käppler wrote:

First, it's a proprietary language, designed for a proprietary platform
(that is, Microsoft's .NET).


I'm not sure that's strictly true. Here's what the Mono website says:-

QUOTE
Microsoft has submitted the specifications of C#, the runtime, the metadata
and the other various bits of the .NET development platform to the ECMA for
standarization.
UNQUOTE

--
Chris Gordon-Smith
London
Homepage: http://graffiti.virgin.net/c.gordon-smith/
Jul 22 '05 #7
Chris Gordon-Smith wrote:
QUOTE
Microsoft has submitted the specifications of C#, the runtime, the
metadata and the other various bits of the .NET development platform to
the ECMA for standarization.
UNQUOTE


That's good news!
Jul 22 '05 #8
On Sun, 12 Dec 2004 12:11:47 +0100, Matthias Käppler wrote:
Chris Gordon-Smith wrote:
QUOTE
Microsoft has submitted the specifications of C#, the runtime, the
metadata and the other various bits of the .NET development platform to
the ECMA for standarization.
UNQUOTE


That's good news!


It's not really news though, they did this back in August 2000. You can
read about it here: http://msdn.microsoft.com/net/ecma/
Jul 22 '05 #9
Sven Axelsson wrote:
On Sun, 12 Dec 2004 12:11:47 +0100, Matthias Käppler wrote:
Chris Gordon-Smith wrote:
QUOTE
Microsoft has submitted the specifications of C#, the runtime, the
metadata and the other various bits of the .NET development platform to
the ECMA for standarization.
UNQUOTE


That's good news!


It's not really news though, they did this back in August 2000. You can
read about it here: http://msdn.microsoft.com/net/ecma/


On the face it, it appears out of character. Perhaps that's why it takes
longer for the news to become known.
--
Chris Gordon-Smith
London
Homepage: http://graffiti.virgin.net/c.gordon-smith/
Jul 22 '05 #10
I agree with you.

Has there been some discussion in the C++ community about incorporating
some of the features from C# ?

I would like to see C++ support:
- Event handling
- Attributes
- in/out indication is parameters
- Option for garbage collection

Deepa
--
http://www.EventHelix.com/EventStudio
EventStudio 2.5 - Generate sequence diagrams from plain text input

Jul 22 '05 #11
Is there any good editor you can use, that has the ease of use and
capabilities of 'Visual C#' that is either cheap or free.

*or maybe somewhere 'Visual C#' can be found for free; I've looked
fairly thoroughly

Jul 22 '05 #12
Python is a MUCH better choice that C# ( or Java ) for that matter. It
has the high-level goodness with the ability to EASILY integrate C/C++
code for performance critical sections! The best of both worlds!

Jul 22 '05 #13
[ talking about C# ... ]
First, it's a proprietary language, designed for a proprietary
platform (that is, Microsoft's .NET). That's generally a bad
thing, because you're dependant on one single instance which
has total control. That's also one of the points I don't like
Java.
Actually, C# and the CLI are arguably even more standardized than C++.
Like C++, each has an ISO standard, but unlike C++ each also has an
ECMA standard (that is essentially identical to the ISO standard). From
a practical viewpoint, simply having the same standard endorsed by more
standards bodies means little. OTOH, ECMA standards are all available
for free download, which is kind of nice.

Java is a whole different kettle of fish: AFAIK, it's never been
endorsed by even a single standards organization, and it looks like Sun
has given up on even trying to create the illusion of it being
independently defined.
Second, C#, like Java, is working on an abstract machine, namely
the .NET runtime. It is half interpreted, half compiled to some
sort of intermediate language (MSIL). So you have the overhead
of an additional abstraction from the hardware and system
software and the additional overhead of translating the mnemonics
of the abstract machine to commands your system understands
at *runtime*. In other words, it's (generally) slower than a
binary program produced by your highly optimized C++ compiler.
This is an accurate description of the first generation of Java Virtual
Machines, but not really of most current ones, nor of (at least MS's
implementation of) the CLI. These implementations use JIT compilation,
so anything that runs often enough to care much about will get compiled
to native code rather than being interpreted. This doesn't guarantee
the same speed as C++ (any more than code from all C++ compilers is
identical in speed) but using a virtual machine, by itself, doesn't
necessarily imply a loss of speed either. OTOH, even with JIT
compilation, you see the time taken to compile the code as part of the
run-time, which can limit the utility of heavy-duty optimization except
where code is really executed a lot. At the same time, JIT compilation
more or less implies the availability of run-time directed
optimization, which many C and C++ compilers lack. From what I've seen,
the speed handicap of Java stems primarily from other points. I've done
only minimal work with C#, but at least at first glance, its speed
appears to be reasonably competitive as well.
Third, regardless how more abstract and intuitive programming
languages will become, there are always situations where you
need languages which allow to work close to the hardware, like
C and C++. There are situations, where you HAVE to deal with
your memory directly and don't want the garbage collector to
do the work for you.


It's true that access to the hardware is sometimes needed. If you're
really planning on writing an OS (or even a device driver), C# is
probably a poor choice. OTOH, the majority of C and C++ I've seen
really has little need for direct access to the hardware. For even more
direct access to the hardware, you might want to learn Verilog (or
VHDL).

Finally, I'd note that in some cases, interpretation can actually
improve speed. A byte-code interpreter is usually a small, tight loop
with extremely high locality of reference. Byte codes are typically
much more compact than binary code. These two factors tend to lead to
excellent cache usage. A modern CPU can execute quite a few
instructions in the time taken for one main memory access, so
interpretation doesn't necessarily imply a speed loss.

--
Later,
Jerry.

The universe is a figment of its own imagination.

Jul 22 '05 #14
You should be able to download Visual C# 2005 Express Beta from
Microsoft's website.

Deepa
--
http://www.EventHelix.com/EventStudio
EventStudio 2.5 - Generate Protocol Sequence Diagrams in PDF and MS
Word

Jul 22 '05 #15
I d/led Visual C# 2005 Express Beta, but when I went to install it, the
installer took the longest time to d/l the components needed that it
was unreal.

I'm not sure if I got a bad d/l(even tho i got it from a microsoft
affiliate, msdn, or if it's just because it's a beta version.

It would've taken a month to d/l these components, so if you have any
thoughts please post them.

Jul 22 '05 #16
You can get some help in this area from microsoft.public.* newsgroups.

Deepa
--
http://www.EventHelix.com/EventStudio
EventStudio 2.5 - Generate sequence diagrams from plain text input

Jul 22 '05 #17

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

Similar topics

10
by: KN | last post by:
I know both are pretty much the same and it comes down to personal choice. But I have to make the choice for the team. Things so far that I am considering 1. XML documentation in C# -- thats...
29
by: RAY | last post by:
Hi , my boss has asked I sit in on an interview this afternoon and that I create some interview questions on the person's experience. What is C++ used for and why would a company benefit from...
113
by: Bonj | last post by:
I was in need of an encryption algorithm to the following requirements: 1) Must be capable of encrypting strings to a byte array, and decyrpting back again to the same string 2) Must have the same...
59
by: Alan Silver | last post by:
Hello, This is NOT a troll, it's a genuine question. Please read right through to see why. I have been using Vusual Basic and Classic ASP for some years, and have now started looking at...
17
by: Brett | last post by:
I'd like references on where to find some good (quality) icons to use for form and application icons (for the EXE). Most of the free stuff isn't that great looking and there isn't a good...
15
by: Alex L Pavluck | last post by:
I am new to programming other than SAS. I read that C# is a good starting language and I have started to create some simple programs with C# 2005 express edition. Can someone let me know if this...
6
by: Jamiil | last post by:
I am not a programmer by any means, but a dedicated aficionado. I have good understanding of Java and C/C++, and now I would like to learn javascript->ajax, but I don't know where to start. My HTML...
30
by: mistral | last post by:
Neeed good javascript unescape encoder, to protect javascript code. Some advices? Online tool, or ready javascript only. Any opinions about the Javascript Obfuscator:...
244
by: Ajinkya | last post by:
Can anyone suggest me a good compiler for(c/cpp) for windows? I tried dev cpp but its debugging facility is very poor.
76
by: lorlarz | last post by:
Crockford's JavaScript, The Good Parts (a book review). This shall perhaps be the world's shortest book review (for one of the world's shortests books). I like Douglas Crockford (because I am a...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 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 former...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...

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.