c# is a good way to learn c

M

Montrose...

After working in c# for a year, the only conclusion I can come to is
that I wish I knew c.

All I need is Linux, the gnu c compiler and I can do anything.

Web services are just open sockets hooked up to interfaces.

The Gtk is more than enough gui.
 
B

Bruce Wood

I worked for 15 years in C. Yes, you can do anything. The only hitch is
that you have to do it all yourself.

You'll never really know how much the .NET Framework is helping you
until you go into the C world and have to work without it... build all
of your tools yourself, from scratch. Believe me, you spend as much
time building "tool" classes as you do actually solving the problem at
hand. Yes, it can be entertaining at first, but after 10 years or so it
wears very, very thin.

Programming in C is kind of like driving a Volkswagon Beetle. Yes, Bugs
do have their charms, but perhaps it's just my age showing up that I
much prefer driving in C#'s comfy SUV where so much is handed to me on
a silver platter. :)
 
G

Guest

After working in c# for a year, the only conclusion I can come to is
that I wish I knew c.

All I need is Linux, the gnu c compiler and I can do anything.

Web services are just open sockets hooked up to interfaces.

The Gtk is more than enough gui.

Sometimes all you want is the piece of mind that is afforded by doing it yourself
 
O

Olaf Baeyens

After working in c# for a year, the only conclusion I can come to is
that I wish I knew c.
You can always start to learn it. :)
But you will discover that it is not very rewarding to program in C, because
it take ages before you have something that actually works. And it is even
harder to keep up with the new technology to extend that C program. Very
time consuming.

And I do not talk about the ever strugle with the header files, search
paths, link errors, and a zillion of errors in your output screen because
you forgot a ';' and all the errors try to point you in the wrong direction.

But in my opinion, you should at least have tried C/C++. And you can indeed
program parts of the program that needs the higest performance. And you
should also try assembly language. This helps a lot to understand why some
functions are faster than other, and you can create even faster code in C if
you know how the processor works. Especialy in 2D loops, and why the 'true'
part of the if-then-els should contain the most used code than the else
part.
 
B

Bob Powell [MVP]

Thats a good idea. Learn C and make sure that you keep on using 20 year old
technologies. The job-market is too full anyway.

--
Bob Powell [MVP]
Visual C#, System.Drawing

Find great Windows Forms articles in Windows Forms Tips and Tricks
http://www.bobpowell.net/tipstricks.htm

Answer those GDI+ questions with the GDI+ FAQ
http://www.bobpowell.net/faqmain.htm

All new articles provide code in C# and VB.NET.
Subscribe to the RSS feeds provided and never miss a new article.
 
O

Olaf Baeyens

Thats a good idea. Learn C and make sure that you keep on using 20 year
old
technologies. The job-market is too full anyway.
But we need people that still understands C in order to port C to .NET way.
:)
 
?

=?iso-8859-1?Q?Lin=F8nut?=

Bruce Wood poked his little head through the XP firewall and said:
I worked for 15 years in C. Yes, you can do anything. The only hitch is
that you have to do it all yourself.

You'll never really know how much the .NET Framework is helping you
until you go into the C world and have to work without it... build all
of your tools yourself, from scratch. Believe me, you spend as much
time building "tool" classes as you do actually solving the problem at
hand. Yes, it can be entertaining at first, but after 10 years or so it
wears very, very thin.

I've not found that. However, I did find that packing and unpacking a
structure fit to go around the network between Linux and Window was so
painful using C that I don't do that again.
Programming in C is kind of like driving a Volkswagon Beetle. Yes, Bugs
do have their charms, but perhaps it's just my age showing up that I
much prefer driving in C#'s comfy SUV where so much is handed to me on
a silver platter. :)

Except that C# is still basically a Microsoft-only thingie, though it is
gaining some traction in Linux thanks to Mono, as Tom will jump in to
clarify.

I still think C++ is the ultimate language. Enough rope to shoot off your
foot and then build a new one. <grin> Why jack off with Java when you can
get pure programming.

Flame on!
 
?

=?iso-8859-1?Q?Lin=F8nut?=

Olaf Baeyens poked his little head through the XP firewall and said:
You can always start to learn it. :)
But you will discover that it is not very rewarding to program in C, because
it take ages before you have something that actually works. And it is even
harder to keep up with the new technology to extend that C program. Very
time consuming.

You're not a very experienced programmer, are you?
And I do not talk about the ever strugle with the header files, search
paths, link errors, and a zillion of errors in your output screen because
you forgot a ';' and all the errors try to point you in the wrong direction.

Ahhh, you must be using a Microsoft compiler. Horrible error messages.
Many of them not comprehensible. Small errors yielding a tome of error
messages.

You want to see error messages that actually help you find the one true
error? Check out gcc/g++.
But in my opinion, you should at least have tried C/C++. And you can indeed
program parts of the program that needs the higest performance. And you
should also try assembly language. This helps a lot to understand why some
functions are faster than other, and you can create even faster code in C if
you know how the processor works. Especialy in 2D loops, and why the 'true'
part of the if-then-els should contain the most used code than the else
part.

I take back my first comment, but still do not understand why you think C is
unrewarding.

The Linux kernel is nothing but C, for example. Bare gtk+ is nothing but C.
Yet, from this apparently barren ground, you get a sea of software.

(I'm a C++ fanboy, by the way.)
 
?

=?iso-8859-1?Q?Lin=F8nut?=

Bob Powell [MVP] poked his little head through the XP firewall and said:
Thats a good idea. Learn C and make sure that you keep on using 20 year old
technologies. The job-market is too full anyway.

And now you know why being called an MVP is absolutely, totally useless.

What does this guy think? That Win32 is coded in C#?

Next puppy I get, I'm going to call him "MVP". Here MVP! Fetch! Good boy!
 
C

Cor Ligthert

Bob,
Thats a good idea. Learn C and make sure that you keep on using 20 year
old technologies. The job-market is too full anyway.
Not that it matters, I don't agree with you, there will in my opinion always
be needed to make things as drivers etc. Beside direct machine language is
in my opinion than C the best alternative. When you disagree please tell
than why, maybe do I have an old perception.

Cor
 
O

Olaf Baeyens

You can always start to learn it. :)
You're not a very experienced programmer, are you?
It depends how you look at it. I am not a beginner. ;-)
direction.

Ahhh, you must be using a Microsoft compiler. Horrible error messages.
Many of them not comprehensible. Small errors yielding a tome of error
messages.

You want to see error messages that actually help you find the one true
error? Check out gcc/g++.
CBuilder is as bad as Visual C++.
I take back my first comment, but still do not understand why you think C is
unrewarding.
It is very rewarding if you want to impress your fellow C/C++ programmers
with your knowledge.

But it is not very rewarding if you have a deadline and must add new
features because they forgot to tell me. And I have to explain to the
customer that adding this one stupid button will take a few weeks. C/C++ in
it's current state just misses all the necessary building blocks needed to
have something functional in a day or 2. (compared to C#)
 
O

Olaf Baeyens

Thats a good idea. Learn C and make sure that you keep on using 20 year
old
And now you know why being called an MVP is absolutely, totally useless.

What does this guy think? That Win32 is coded in C#?
Actually he is right, not to delve too deep into C.
He is not referring to C++!

The problem is that if you learn C first then you will have to unlearn that
way of thinking and this is very hard to do.
But learn C++/C# first and then it is much easier to see why C is outdated
and hard to keep up with if your code library gets big and you do not have
to unlearn.

A programmer coming form school should not take too much effort in outdated
languages, because by the time he has a job the new languages will be far
more in demand than the older ones. Unless you want to specialize in a niche
to keep outdated software running. The C population is getting a lot of grey
heir, and are preparing for their pension. ;-) They are litteraly dying out.
:)
 
O

Olaf Baeyens

Thats a good idea. Learn C and make sure that you keep on using 20 year
Not that it matters, I don't agree with you, there will in my opinion always
be needed to make things as drivers etc. Beside direct machine language is
in my opinion than C the best alternative. When you disagree please tell
than why, maybe do I have an old perception.
This is true. At this moment and probably the next 5 years.
 
S

Sean Hederman

[Snip]
The Linux kernel is nothing but C, for example. Bare gtk+ is nothing but
C.
Yet, from this apparently barren ground, you get a sea of software.

Yes but the Linux kernel is also based on a 40-year old architecture, so I
suppose writing it in a 33-year old programming language makes a certain
sick kind of sense...

The thing is that C has it's place, but it's certainly not every place. If
you were to tell me that I should write business solutions using C, I'd have
to ask what you were smoking.
(I'm a C++ fanboy, by the way.)

For me it depends on how recently I used it. Memory has a way of fading the
frustration ;D
 
B

Bill Butler

*** News Flash ***
There is still a huge demand for Legacy software support.
And as a rule, legacy software is NOT written in the latest of languages ;^)

There is an ENORMOUS amount of legacy code out there that still needs
support.
Having a healthy knowledge of "Legacy languages" as well as "Hot Languages"
can only make you MORE attractive in your field.

The important thing in using legacy languages is to code like it is a modern
language.
Object oriented C
Structured Cobol

Don't propagate spaghetti

My language of choice is C# and I use it whenever I can.
Unfortunately, many of my clients are Dotnet shy.

Bill
 
T

tab

I still think C++ is the ultimate language. Enough rope to shoot off
your
foot and then build a new one. <grin> Why jack off with Java when you
can get pure programming.

That is funny. I have, at work, now beat C++ programmers, 4 times,
in getting the job done. And my solutions are still in place.
The C++ guys were finally layed off. They took to long to finish,
and spent all their time debating what is faster. I have now also
seen a C# guy kick the hell out of a C++ guy in building GUI's to
Databases. You know, the most common business stuff.

You must not be in the mainstream of coding, but a side application.
 
T

Tom Shelton

Bruce Wood poked his little head through the XP firewall and said:


I've not found that. However, I did find that packing and unpacking a
structure fit to go around the network between Linux and Window was so
painful using C that I don't do that again.


Except that C# is still basically a Microsoft-only thingie, though it is
gaining some traction in Linux thanks to Mono, as Tom will jump in to
clarify.

No need... You've done my work for me. C# is being used on Linux as
well.
I still think C++ is the ultimate language. Enough rope to shoot off your
foot and then build a new one. <grin> Why jack off with Java when you can
get pure programming.

Hmm... C# allows you do direct memory manipulation (a.k.a pointers).
There are definately places where you wouldn't want to use C#, for
example device drivers, but for most line of buisness applications C# is
a much more superior choice.
 
I

Incense & Peppermints

Bob said:
Thats a good idea. Learn C and make sure that you keep on using 20 year old
technologies. The job-market is too full anyway.

If I were the IT director of a midsized startup with total fiat power I
would:

0. Eliminate all application servers
1. Ban all OO programing and only use structs in c
2. Implement the SOA
3. Hire only proficient c coders with CS degrees
4. Only run Linux
5. Do all windowed programming using the Gimp Toolkit ( gtk )
6. Be highly data dispersed; using a lot of XML instead of RDBMS where
possible.
 
?

=?iso-8859-1?Q?Lin=F8nut?=

tab poked his little head through the XP firewall and said:
That is funny. I have, at work, now beat C++ programmers, 4 times,
in getting the job done. And my solutions are still in place.
The C++ guys were finally layed off. They took to long to finish,
and spent all their time debating what is faster.

Big deal. They sound like doofuses. They problem don't even know how to
use the STL. You could probably beat them just as well if you used straight
C.
I have now also seen a C# guy kick the hell out of a C++ guy in building
GUI's to Databases. You know, the most common business stuff.

I don't do GUIs at the moment. Other people do it here, using Qt.
You must not be in the mainstream of coding, but a side application.

Nah, I just wrote the C++ socket library and an XDR packet library
implementation for our group, not to mention a unit test library, an NT
service base class, our audio library, a dictionary XML markup language library,
and a library of string, filename, and other odds and ends. All in C++.

Yeah, a side application, that's the right term.

There's more to programming than "kewl apps" and GUIs. In fact, the GUI
code is by far the easiest part of most applications.
 
?

=?iso-8859-1?Q?Lin=F8nut?=

Tom Shelton poked his little head through the XP firewall and said:
Hmm... C# allows you do direct memory manipulation (a.k.a pointers).
There are definately places where you wouldn't want to use C#, for
example device drivers, but for most line of buisness applications C# is
a much more superior choice.

That would be extremely difficult to prove. If I ever have to get some
significant experience with C#, I'll get back to you with my feelings on it.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top