Jump to content

C# : The Future?


hav0k

Recommended Posts

In April of 2003, ISO ratified the standards as ISO/IEC 23270 (C#), ISO/IEC 23271 (CLI) and ISO/IEC 23272 (CLI TR). Trusting Microsoft is not an issue as there is no legal undo button to open standardization.

 

C++ is an excellent language to learn because it's the current industry standard. C# is an excellent language to learn because Microsoft is going to push it as the industry standard. Even if they don't succeed completely, it will be widespread.

 

C++ programs can be faster than C# programs. Then again assembly language can be faster than C++ program wise. Development time for C# is faster than C++ but programs can be (max) 20% slower. I'd also suggest that C# has a nicer learning curve and that programs will have far less runtime errors. C++ has a nice range of supported tutorials; you can find several books specifically geared toward developing games in C++. Though C# has the same potential, you'll have to work harder to get the necessary information and instruction.

 

If anyone ever tells you that language X is the best then they're incorrect. Imagine a group of construction workers sitting around arguing whether a hammer, screwdriver, or handsaw is the best tool or a group of mathematicians debating on the merits of addition verses multiplication. My situations are wandering into the realm of the absurd but the point is a valid one. A programming language is a tool, each has their strengths and weaknesses, and while the emotional tie many programmers develop toward their language of choice is romantic, it often provides a stumbling block for those in search of informed but unbiased opinions.

 

using System;

 

class PostBSCalcWithIf

{

    static void Main()

    {

        string post;

        int postLength;

        int saltAmount;

        decimal bsCounter;

 

        Console.Writeline("Enter Post: ");

        post = Console.Readline();

        postLength = post.Length;

 

      Console.Writeline("Enter Desired Amount of Salt: ");

      saltAmount = Int32.Parce(Console.Readline());

 

      if(post.Length > 1623){

            Console.Writeline("Error. BS Overflow. Dumping physical memory. /n Have a nice day

"When is this out. I can't wait to play it so I can talk at length about how bad it is." - Gorgon.

Link to comment
Share on other sites

metadigital:

" The point I was making, since you seemed to miss it, is that learning C is a good thing, because it will provide an entry point inot all the programming in demand (like Java 2 Enterprise Edition)."

 

Learning C is a good thing. Learning C as a first language is not, especially for someone teaching themselves, which I believe the original poster was doing. I think it's better to learn a object oriented language first, one that doesn't trust the programmer to know what they're doing.

"When is this out. I can't wait to play it so I can talk at length about how bad it is." - Gorgon.

Link to comment
Share on other sites

Learning C is a good thing. Learning C as a first language is not, especially for someone teaching themselves, which I believe the original poster was doing. I think it's better to learn a object oriented language first, one that doesn't trust the programmer to know what they're doing.

Arghh... :ph34r:

 

Now you sound like my old teacher, praising the virtues of Oberon :p

“He who joyfully marches to music in rank and file has already earned my contempt. He has been given a large brain by mistake, since for him the spinal cord would surely suffice.” - Albert Einstein

Link to comment
Share on other sites

I think it's better to learn a object oriented language first, one that doesn't trust the programmer to know what they're doing.

 

Sounds very much like every first year university programming course, where Java is always a language of choice.

 

 

More radical approach is to learn Visual Basic :blink: first. Most novices find it fun to code with, hence the interest and motivation sparked by almost instant results.

Link to comment
Share on other sites

metadigital:

" The point I was making, since you seemed to miss it, is that learning C is a good thing, because it will provide an entry point inot all the programming in demand (like Java 2 Enterprise Edition)."

 

Learning C is a good thing. Learning C as a first language is not, especially for someone teaching themselves, which I believe the original poster was doing. I think it's better to learn a object oriented language first, one that doesn't trust the programmer to know what they're doing.

It was never implied by the poster or myself that the first language should be C. I said that the C family was a good language to learn, for all of the above-mentioned reasons.

 

I don't know why I have been singled out for special mention by so many people, heck, I had to learn 24 computer langauges in my first year at university (SNOBOL, anyone?), and I can tell you that if I had to do it all again, I would just learn BASIC and C/C++/Java (oh, and C#, if you must). The danger with BASIC is that it is easy to focus on it to the detriment of C, and I don't know how many computer games use BASIC. :D

 

It's true that Micro$oft make enviable development environments. It's also true that what language you chose to use is dependent on a lot of different factors, but familiarity ends up having a large -- yes, even disproportiate -- impact. If I can write a complete script in a language in hours rather than days (including debug time), then it makes more sense to do so. But, if that routine is going to be run thousands of times a day, and it will save expenses (computing overhead, user time) to programme in a language that you are not so familiar in, then it obviously behooves you to write it in the more unfamiliar / difficult language.

 

I remember (early on) writing C programmes one week, then going back the next week to re-use some of the code and having to re-write the first algorithm to understand what I had done in the first place!

 

Anyway, back on topic, the poster will gain most benefit from understanding C for a longer time. Hence my encouragement to learn it, or one of the sister languages.

OBSCVRVM PER OBSCVRIVS ET IGNOTVM PER IGNOTIVS

ingsoc.gif

OPVS ARTIFICEM PROBAT

Link to comment
Share on other sites

I'll repeat it because it can't be said often enough:

 

C++ programs can be faster than C# programs. Then again assembly language can be faster than C++ program wise. Development time for C# is faster than C++ but programs can be (max) 20% slower. I'd also suggest that C# has a nicer learning curve and that programs will have far less runtime errors. C++ has a nice range of supported tutorials; you can find several books specifically geared toward developing games in C++. Though C# has the same potential, you'll have to work harder to get the necessary information and instruction.

 

If anyone ever tells you that language X is the best then they're incorrect. Imagine a group of construction workers sitting around arguing whether a hammer, screwdriver, or handsaw is the best tool or a group of mathematicians debating on the merits of addition verses multiplication. My situations are wandering into the realm of the absurd but the point is a valid one. A programming language is a tool, each has their strengths and weaknesses, and while the emotional tie many programmers develop toward their language of choice is romantic, it often provides a stumbling block for those in search of informed but unbiased opinions.

 

You are so right... :-

"Jedi poodoo!" - some displeased Dug

 

S.L.J. said he has already filmed his death scene and was visibly happy that he

Link to comment
Share on other sites

  • 3 weeks later...
C/C++, whatever. C++ is a superset of C, with Classes.

 

 

Sort of, kind of, but ultimately not really. There are ANSI C constructs that work differently in C++. The size of character literals is different between the two languages. Objective C on the other hand is a superset of C.

Link to comment
Share on other sites

Call in the Barber's Federation, we have a plethora of hair-splitters here!

 

The size of the character literals? To quote John P. MacEnroe: "You cannot be serious!"

 

The original poster was asking for tips on what languages were worth studying for games design; instead of constructive comments, like mine, there have been a number of detractors trying to win "technical victories" over a generalisation I made to give some perspective of languages to hav0k.

 

:huh:

OBSCVRVM PER OBSCVRIVS ET IGNOTVM PER IGNOTIVS

ingsoc.gif

OPVS ARTIFICEM PROBAT

Link to comment
Share on other sites

I think it's better to learn a object oriented language first, one that doesn't trust the programmer to know what they're doing.

 

Sounds very much like every first year university programming course, where Java is always a language of choice.

 

 

More radical approach is to learn Visual Basic :) first. Most novices find it fun to code with, hence the interest and motivation sparked by almost instant results.

 

While I agree that C probably isnt the smartest language to start of with. I dont realy think a OOP language is nessesarily the best chioce of starting language. It depends on what the focus of your learning is.

Java for instance is a good language for sparking interest since its easy to get something to show for your work (this is probably even more true for MSVB). But if the goal is to learn the basics of algorithms and datastructures the object orientation can in my opinion distract from the learning.

I think its thoughts like these that have led the university that I study at to chose different languages based on who the students are. Most non computer science programs learn java first (and probably only) while we computer geeks are forced to use Standard ML (a functional language), to begin with I hated SML but after a while I realised that by forceing us to develop everything recursiveliy it actualy helped us understand the underlieing structure that we where programing.

 

Hmm wonder where I wanted to go with this post, I think im sidetracked... Oh well I think it was to say that I disagree that OOP is essential for a beginner and agree that the chioce of language isn't the important part.

Link to comment
Share on other sites

  • 3 weeks later...

When I was learning I had been told that C was a good start because it gave a good base, with C++ there are some shortcuts that can be used which are great, but programmers can get sloppy with them and well, then it isn't as helpful to know them.

 

I would be amazed if in 10 years C++ is still the program that is primary, I'm sure that it will be something else entirely.

Link to comment
Share on other sites

Just like Cobol doesn't exist anymore. :rolleyes:

 

FORTRAN is pretty much a language of the past, though much of that has to do with DEC no longer being a company. - I think most of that software is being slowly migrated to a C type language.

 

It isn't that the language doesn't exist, more that the number of jobs that use that language are getting to be less and less. And certainly at this point most people who have jobs using those languages are working their hardest to keep those jobs until they retire. :D

Link to comment
Share on other sites

C is pretty huge.

 

true, and it is the basis of many other languages and scripting languages. But even so, lots of people don't want to deal with it, so they learn the other languages without have the solid understanding of C... kinda like taking Spanish, French and Italian without taking Latin. It is possible to learn, but the addition of the basis of Latin makes it easier to grasp each of the languages as individuals. -- ok, so C isn't as ancient or as dead of a language, but well...

 

And if taking only one language, then it isn't as much of an issue. I am however going with the idea that the person who originally asked is planning on working in some aspect of computers for a good 40 years, so C++ won't be the only language they need to learn.

 

I still say that Java is something that should be looked into. I don't know the differences between Java and J++ (other than one is Sun and the other is Microsoft) because I haven't worked with either enough to see differences, but I'm sure that there will be a change within the next 10 years.

Link to comment
Share on other sites

I am starting to get very confused. I started learning C++ and got ok with some simple stuff. And then I was talking to a friend and he said that I was wasting my time with C++ and that the future was in C#. So I did some research and C# does seem pretty good. But C++ is the standard now and more indepth and more for game programming. I would like some advice on what you guys think I should do.

 

I've realized how far we have gotten from the original question, and figure that I would try to revisit the actual question itself.

 

The important thing to remember is that C++ can be used anywhere, as opposed to C# which is a Windows specific language. (hubby says that C# is VB with vowels taken out).

 

The other thing is that learning both will make you more employable no matter what. One thing you should do though is that whatever program you aren't using for a work project, then create small projects for yourself/friends using that language. This will help to ensure that you are using both languages and that you don't get to a point where you need to know "the other language" and can't remember anything about it.

 

And no matter what you end up doing, make sure to make small programs and applets with that program so that you can show your skills to any perspective employers. Sometimes they will ask for this, sometimes you will get an interviewer who is clueless and is looking more for if you make a good personality match more than if you can actually program. The other option that I have run into is that the interviewer didn't want to see any old work, but wanted code finished (on a white board) for some action. - or they might set you down in front of some code and want to see if you can troubleshoot the code.... any number of things can happen, so make sure that you keep up your skills on any programming langugage you say you know.

Link to comment
Share on other sites

  • 3 weeks later...
Learning any programming language is never a waste of time.

 

The logic and algorithms that you learn can be quickly adapted to different programming languages.

 

C# seems good for rapid application development, but I think it still limited in it's capabilities compared to C/C++.

 

 

hehe this is a lesson you will learn once you learn your second language I've listed mine some where esle all I need to do for c# is go by a book because I already own VS.NET

 

but inorder to want to learn a new language you have to addicted to programming kind ok like I am.

Link to comment
Share on other sites

  • 2 weeks later...
The important thing to remember is that C++ can be used anywhere, as opposed to C# which is a Windows specific language.

C# is not a Windows-specific language. It can be used on every operating systems which have a .NET framework. (For Linux, there is Mono.)

Link to comment
Share on other sites

The important thing to remember is that C++ can be used anywhere, as opposed to C# which is a Windows specific language.

C# is not a Windows-specific language. It can be used on every operating systems which have a .NET framework. (For Linux, there is Mono.)

But .NET is still M$ proprietary, as opposed to the open standard for C/C++.

 

:rolleyes:

OBSCVRVM PER OBSCVRIVS ET IGNOTVM PER IGNOTIVS

ingsoc.gif

OPVS ARTIFICEM PROBAT

Link to comment
Share on other sites

The important thing to remember is that C++ can be used anywhere, as opposed to C# which is a Windows specific language.

C# is not a Windows-specific language. It can be used on every operating systems which have a .NET framework. (For Linux, there is Mono.)

But .NET is still M$ proprietary, as opposed to the open standard for C/C++.

Microsoft made an ISO standard from the .NET technology, and Mono is an opensource implementation of it.

Link to comment
Share on other sites

<_< Syntax's are generally easy to pick up.

 

C++ is found by many to be an ugly language, bah personally I like it and prefer it to Java.

 

But I will maintain that probably the best language to start with and also gives the best understanding of what is going off inside those dusty innards is asm.

 

asm, coupled with an OO language leads to the best understanding in my opinion of how to best go about writing code.

 

I just find it's more important to know exactly what is going off in a line of code opposed to which language has the best syntax.

 

So be it C++, C#, or Java, it doesn't really matter all that much. Learn them all!

RS_Silvestri_01.jpg

 

"I'm a programmer at a games company... REET GOOD!" - Me

Link to comment
Share on other sites

  • 3 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...