Go Back   RunUO - Ultima Online Emulation > RunUO > General Discussion

General Discussion General discussion for the RunUO community, all off-topic posts will be deleted. This forum is NOT FOR SUPPORT!

Reply
 
Thread Tools Display Modes
Old 10-30-2007, 07:32 AM   #1 (permalink)
Forum Novice
 
Join Date: Jul 2006
Posts: 142
Default C# A Good Language?

I have been looking for a language to seriously learn & was wondering if C# is a language i should look into a lot or are there other more powerful languages that are better off being learnt?
birdman2279 is offline   Reply With Quote
Old 10-30-2007, 12:29 PM   #2 (permalink)
Newbie
 
Join Date: Jul 2007
Location: Seattle, WA
Age: 29
Posts: 31
Send a message via ICQ to zoggins Send a message via AIM to zoggins Send a message via MSN to zoggins Send a message via Yahoo to zoggins Send a message via Skype™ to zoggins
Default

Well the defacto standard for "powerful" programming languages is C/C++, but it is more difficult to fully learn than say C#/Java/etc. If you have no programming experience and are planning on teaching yourself I honestly think C# is a good place to start. If at a later time, once you have solid programming techniques down, you want to pick up another language C/C++ would be a good one to learn.
zoggins is offline   Reply With Quote
Old 10-30-2007, 01:17 PM   #3 (permalink)
Forum Expert
 
wieganka's Avatar
 
Join Date: Oct 2004
Location: Chesterton, IN
Age: 29
Posts: 288
Default

Quote:
Originally Posted by zoggins View Post
Well the defacto standard for "powerful" programming languages is C/C++, but it is more difficult to fully learn than say C#/Java/etc. If you have no programming experience and are planning on teaching yourself I honestly think C# is a good place to start. If at a later time, once you have solid programming techniques down, you want to pick up another language C/C++ would be a good one to learn.

I second that.

I started with BASIC, moved to VB, then to VB.NET, and then finally onto C#. I've been programming for somewhere around 10 years now, and have determined that, if C# was available way back when...I would have picked that up first before VB.

I wanted to eventually transition to C++, but I'm finding that C# can do exactly what I want well enough that I don't need to move to C++ ever...granted moving to C++ has some pluses...I don't feel it will be necessary for me.

Now if you want to be what I would personally consider to be a "hard core" programmer, then you should eventually move to C++, and learn some ASM along the way too.
wieganka is offline   Reply With Quote
Old 10-30-2007, 01:36 PM   #4 (permalink)
Forum Novice
 
Dereckson's Avatar
 
Join Date: Dec 2005
Location: Belgium
Age: 25
Posts: 254
Send a message via Skype™ to Dereckson
Default

Yes, birdman2279, C# is a perfect language to learn development.

C# is based on C++ with the following goal "80% of its power, 20% of its complexity".

You can start with 101 C# and Visual Studio 2005 samples:
http://download.microsoft.com/downlo...SamplesAll.msi

Three real world great C# project:
To zoggins


Er ... well ...

I agree with your affirmation "C# is a good place to start". But I strongly disagree with your idea than C# isn't a powerful language, after have learned you'll need a more powerful one.

First. The difficulty of the C languages is grosso modo equivalent. You learn the C++, the Java and the C# with the same level of difficulty.

The only C++ startup problem is pointers. Yes but VERY VERY VERY SOON you'll need to learn the difference between value, reference in C# and Java too so in a 4 months time frame it's false to say C# is A LOT easier to C++.

So learn directly C/C++ help you to have a solid knowledge foundation and understand what you do. It's the more important.

Yes, you can develop easy applications and then understand details but it's not the natural way. You've learned the alphabet before read and to read before grammar.

Actually, the de facto powerful language to develop application is your brain.

You choose the language the more adapted to your situation. You can make a website in C++ you know ... but who want to?

A developer must know how to code and how to learn new languages and be proficient in C, Java, C#, without forget database languages like SQL, scripting languages like PHP, Perl, TCL, Python and for port an app for you f****ing customer some VB.

The advantage of C++ is you have a lot of library. Well ... in the .Net world you can use it directly or even create a wrapper to help this task.

A real world developer

I'm rightly currently do a break for a C++/C# development (the core library is in C++, the wrapper in Managed C++ (the .Net C++), the GUI in C#).

Now if you develop .Net, you can freely choose the language and access to the same libraries. .Net applications are language agnostics.

If you browse the Microsoft patterns & practices development center, you'll find libraries and blocks to develop complete infrastructures (it's patterns initially developed for a bank internal IT infrastructure to redesign all the bank workers applications).

And about the "more powerful languages" than C# why a plural ? There's only one truly evident, the C++.
__________________
La connaissance s'accroît quand on la partage.
Share your knowledge, you'll increase it.

Utopia. Votre Monde.
Dereckson is offline   Reply With Quote
Old 10-30-2007, 05:16 PM   #5 (permalink)
Forum Novice
 
Join Date: Jul 2006
Posts: 142
Default

thanks guys
birdman2279 is offline   Reply With Quote
Old 10-30-2007, 05:40 PM   #6 (permalink)
Master of the Internet
 
TMSTKSBK's Avatar
 
Join Date: Feb 2004
Location: NC/NC State Univ
Age: 23
Posts: 16,424
Default

The "most powerful language" is probably C. or C++.

But C# is an excellent starting point.
__________________
Goodbye, folks.
TMSTKSBK is offline   Reply With Quote
Old 10-30-2007, 05:59 PM   #7 (permalink)
Forum Novice
 
Dereckson's Avatar
 
Join Date: Dec 2005
Location: Belgium
Age: 25
Posts: 254
Send a message via Skype™ to Dereckson
Default

Er ... about asm ... there are some C/C++ alternatives

e.g. consult Target Compiler Technologies : Home Page.

With their tools you can describe an instruction set for a processor. that description is used to compile C code for that processor, an assembler is derived from it and the ISS is a simulator for that processor.

It's also possible to derive VHDL or Verilog from it to actually make the processor.
__________________
La connaissance s'accroît quand on la partage.
Share your knowledge, you'll increase it.

Utopia. Votre Monde.
Dereckson is offline   Reply With Quote
Old 10-30-2007, 08:11 PM   #8 (permalink)
Forum Expert
 
TheRockstar2253's Avatar
 
Join Date: Sep 2007
Location: Over there
Posts: 1,571
Default

Dereckson is great.


*coughs* o and yag C# is a good language I use it for RunUO...
TheRockstar2253 is offline   Reply With Quote
Old 10-30-2007, 08:35 PM   #9 (permalink)
Newbie
 
Join Date: Jul 2007
Location: Seattle, WA
Age: 29
Posts: 31
Send a message via ICQ to zoggins Send a message via AIM to zoggins Send a message via MSN to zoggins Send a message via Yahoo to zoggins Send a message via Skype™ to zoggins
Default

I never implied one language is good for everything, I simply answered his question. I use whatever the situation requires just like any good software engineer. Don't even get me started on object oriented perl. :P Also, i said "if he is going to teach himself" he should start with C#. I firmly believe that in academic settings like a unversity C/C++ should taught first since it seems easier for students to move from the pointer world into the non-pointer world than the other way around. Also he didn't ask which one was easier to become an expert in, in that respect C# is just as powerful as C, however i believe C# is easier to "learn" at a basic level than C/C++ because of pointers.

Last edited by zoggins; 10-30-2007 at 08:41 PM.
zoggins is offline   Reply With Quote
Old 10-31-2007, 04:22 AM   #10 (permalink)
Forum Novice
 
Dereckson's Avatar
 
Join Date: Dec 2005
Location: Belgium
Age: 25
Posts: 254
Send a message via Skype™ to Dereckson
Default

Fully agree with C/C++ learning is ideal in academic environment, C# in DIY.

You know, if C# seems easier about pointers management it's because in .Net "all data types are pointers, all value types are values". In public override void OnDoubleClick (Mobile from), from is a pointer. In C++/CLI (the c++ for .Net apps) we'd write void OnDoubleClick (Mobile^ from). Yeah in C++/CLI we've a new pointer to reference the managed objects. (^ (Handle to Object on Managed Heap)) Writing this, okay okay C# power to start .Net development without any kind of hesitation

Now, something wanting to start great console UNIX applications (Linux, BSD, Solaris, Mac OS X, ...) development he must begin directly with C++. It why I said you choose your first language from the first things you want to do.
__________________
La connaissance s'accroît quand on la partage.
Share your knowledge, you'll increase it.

Utopia. Votre Monde.
Dereckson is offline   Reply With Quote
Old 10-31-2007, 04:30 AM   #11 (permalink)
Newbie
 
Join Date: Sep 2007
Age: 25
Posts: 16
Default

C++ would be a good one to learn, I think.
pickup00000 is offline   Reply With Quote
Old 10-31-2007, 08:45 AM   #12 (permalink)
Forum Novice
 
Join Date: Jul 2006
Posts: 142
Default

I Built A Calculator!

This is the first programming language i ever tried so yes im proud!, I figured out how to by looking at UO scripts & some online Stuff about converting variables.

Thought i would post project here just for some feedback
Attached Files
File Type: rar Calculator.rar (55.2 KB, 11 views)
birdman2279 is offline   Reply With Quote
Old 10-31-2007, 12:04 PM   #13 (permalink)
Forum Expert
 
Courageous's Avatar
 
Join Date: Nov 2005
Location: San Diego, CA
Posts: 1,824
Default

Let me chip in as a professional here. First, the broader community is slowly but surely abandoning C and C++, except in niche cases where it really matters (operating systems, high speed libraries, and other point solutions). Having written literally hundreds of thousands of lines of code in C++, I'd rather program in Java or C# any day, just to avoid the reality of having to fire up specialized expensive tools to diagnose memory leaks, segfaults induced by non-localized memory corruption, terrible exception management, etc, etc, etc.

It's not just me, most everyone who's used all of the languages mentioned agrees. While sometimes you feel compelled to use a lower level language due to the requirements of the project, you'd do anything to avoid it.

Languages like Java and C# are therefore _the_ future. You can safely ignore C and C++ if you like.

That said, once you have a modern language like Java or C# under your belt, it can be really beneficial to have the ability to use C and C++, as these languages will be around for a long time, and their use cases won't go away any time soon.

As for whether C# or Java, pick C#. It's a better Java than Java, mainly because they could rethink all Java's warts while "copying" it. Also, C# development is less shackled by purists who like to think there is "One True" way of doing it, and more grounded by practical programming needs. One Trueism both tires and bores me... it's the thing the Java community needs to lose the most.

C//

p.s. picking C# also implies picking Windows. So if you're a linux fan, go the Java route and suffer under the yolk of One True.

Last edited by Courageous; 10-31-2007 at 12:07 PM.
Courageous is offline   Reply With Quote
Old 10-31-2007, 03:09 PM   #14 (permalink)
Forum Expert
 
o0_Sithid_0o's Avatar
 
Join Date: Nov 2004
Location: Hiding his old posts from Daat99.
Age: 22
Posts: 2,322
Send a message via AIM to o0_Sithid_0o Send a message via MSN to o0_Sithid_0o
Default

Quote:
Originally Posted by Courageous View Post
. . .

p.s. picking C# also implies picking Windows. So if you're a linux fan, go the Java route and suffer under the yolk of One True.
Or learn C# with dotgnu or mono? ^^.
__________________

Quote:
Originally Posted by Radwen View Post
Give me a reason... to like you.
Quote:
Originally Posted by excuse me miss, but uh... View Post
11/f/n.korea
Priceless.
o0_Sithid_0o is offline   Reply With Quote
Old 10-31-2007, 03:44 PM   #15 (permalink)
Forum Expert
 
Join Date: Nov 2004
Posts: 1,656
Send a message via ICQ to Murzin Send a message via AIM to Murzin Send a message via MSN to Murzin
Default

the problem with C# and Java are that they are 4th gen languages.

you are therefore limited by the 4th gen restrictions.

there are times what you want simply wont work because of the limits of working within a 4th gen enviro.

C# and Java are great languages, but you are highly advised to pick up a 3rd gen language if you want to be serious.
Murzin is offline   Reply With Quote
Old 10-31-2007, 08:15 PM   #16 (permalink)
Forum Expert
 
Courageous's Avatar
 
Join Date: Nov 2005
Location: San Diego, CA
Posts: 1,824
Default

Quote:
Originally Posted by Murzin View Post
...you are therefore limited by the 4th gen restrictions...
What did you have in mind when you wrote this?

C//
Courageous is offline   Reply With Quote
Old 11-01-2007, 03:20 AM   #17 (permalink)
Forum Novice
 
Dereckson's Avatar
 
Join Date: Dec 2005
Location: Belgium
Age: 25
Posts: 254
Send a message via Skype™ to Dereckson
Default

Hey, fine birdman :-)

Three tips:

(1) The class Convert is fine but to convert anything to a string, use instead the ToString method.
two.ToString();

(2) 6/9 = 0. Only a C compiler will agree with you and maybe some physic guys but in the casual mathematics world, we want (well ... or just need) real numbers, so try use double instead int and abracadabra you'll have 0.75

(3) Try also to use the camel case to identify more easily your buttons and stay the button prefix.

e.g. buttonEquals buttonSubstract buttonClear buttonDigit1 buttonDigit2 buttonDigit3

----------

o0_Sithid_0o Nope you can't, Mono isn't intended to learn development. It's where the Windows and UNIX world converges and you've to code hacks and kludges to have a solution fine for the two. Oh and is Mono really stable, finished, mature for real applications right now?

Hmmm and see also Mono Versioning - Miguel de Icaza.
__________________
La connaissance s'accroît quand on la partage.
Share your knowledge, you'll increase it.

Utopia. Votre Monde.
Dereckson is offline   Reply With Quote
Old 11-01-2007, 03:51 AM   #18 (permalink)
Forum Novice
 
Join Date: Jul 2006
Posts: 142
Default

hey thx i converted it into doubles, but

Quote:
(3) Try also to use the camel case to identify more easily your buttons and stay the button prefix.
camel?

i use the prefix command - cmd, for my buttons?

thx for the feed back
birdman2279 is offline   Reply With Quote
Old 11-01-2007, 12:07 PM   #19 (permalink)
Forum Expert
 
Join Date: Nov 2004
Posts: 1,656
Send a message via ICQ to Murzin Send a message via AIM to Murzin Send a message via MSN to Murzin
Default

Quote:
Originally Posted by Courageous View Post
What did you have in mind when you wrote this?

C//
you know what a 4th gen language is and what defines them?
Murzin is offline   Reply With Quote
Old 11-01-2007, 12:10 PM   #20 (permalink)
Forum Expert
 
Courageous's Avatar
 
Join Date: Nov 2005
Location: San Diego, CA
Posts: 1,824
Default

Quote:
Originally Posted by Dereckson View Post
we want (well ... or just need) real numbers, so try use double instead int and abracadabra you'll have 0.75
You've just stepped on a pet peeve of mine. floats and doubles are absolutely NOT real numbers. Real numbers are the set of numbers for which, picking any two numbers in the set, there are always numbers between them. There are any number of two numbers in the sets of floats and doubles for which there are no numbers between them at all.

Never minding little intractable issues like certain numbers, when represented by us as rational decimals, are actually irrational numbers when represented in binary floating point.

It's extremely sloppy to refer to IEEE754 numbers as "real" numbers.

Nothing personal to you at all of course. You, alas, are not the only one being so sloppy, and were probably even taught this out of some book or by a professor. Both were wrong.

C//
Courageous is offline   Reply With Quote
Old 11-01-2007, 01:11 PM   #21 (permalink)
Forum Novice
 
Dereckson's Avatar
 
Join Date: Dec 2005
Location: Belgium
Age: 25
Posts: 254
Send a message via Skype™ to Dereckson
Default

Thank you to notify me this language abuse.

Er ... no way to reject the fault to my teachers, it's only mine. We've got comprehensive lectures about data representation, especially numbers.

*prepares an auto da fé*
__________________
La connaissance s'accroît quand on la partage.
Share your knowledge, you'll increase it.

Utopia. Votre Monde.
Dereckson is offline   Reply With Quote
Old 11-01-2007, 01:31 PM   #22 (permalink)
Forum Expert
 
Khaz's Avatar
 
Join Date: Mar 2003
Location: where I belong
Posts: 1,784
Default

Quote:
Originally Posted by Murzin View Post
you know what a 4th gen language is and what defines them?
You apparently don't. C# is 3GL, not 4. 4GLs are more data-driven languages, and usually don't control an entire application, such as SQL. 4GLs are also closer to human language than 3GLs. (For example: the SQL statement SELECT * FROM ooga.)

3GLs are the successors of 2GLs () and are high-level languages that are easier to read than 2GLs but usually require a tad more training to understand as readily as a 4GL. (For example: the C# statement for( int i = 0; i < 10; i++ ){}.)
__________________
"Misfortune shows those who are not really friends." -Aristotle
"A multitude of words is no proof of a prudent mind." -Thales
Khaz is offline   Reply With Quote
Old 11-01-2007, 09:03 PM   #23 (permalink)
Forum Expert
 
Courageous's Avatar
 
Join Date: Nov 2005
Location: San Diego, CA
Posts: 1,824
Default

Quote:
you know what a 4th gen language is and what defines them?
I should say, I find references to a "generation" of a language to be only so much silliness. Basically no one in the industry talks about language generation. And Khaz is correct. Java and C# are not 4GL's. I suggest you follow this link:

Fourth-generation programming language - Wikipedia, the free encyclopedia

Anyway, we digress. I didn't ask you to ask me about my knowledge. I asked you what you were thinking when you said we you said. Please refine. A concrete example would be good.

I'm not particularly concerned with your misuse of the 4GL term, but rather am curious what thing you want to try to do in C++ that cannot be readily done in Java or C#.

C//

Last edited by Courageous; 11-01-2007 at 09:09 PM.
Courageous is offline   Reply With Quote
Old 11-02-2007, 01:15 AM   #24 (permalink)
Forum Expert
 
Join Date: Nov 2004
Posts: 1,656
Send a message via ICQ to Murzin Send a message via AIM to Murzin Send a message via MSN to Murzin
Default

looks like wiki got it wrong.

1st gen languages are computer code. binary code used for cpus and bios.

2nd gen languages is basic, qbasic, basica, and other non-OOLs

3rd gen languages is primarily made up of OOLs and some non-OOLs.

4th gen languages are those that require interperters at run-time rather than compile. biggest clue of a language being 4th gen is if you have to have an environment installed on the computer such as Java, C#, visual languages... they require the OS to have libraries at times of execution supported by the OS. 3rd gens get all that at time of compile rather than execution. thats why C# is a 4th gen, you have to have .Net 1.x, 2.x, 3.x to run, and you cannot use those programs without an OS present. same situation with Java. same situation with visual languages and such.
Murzin is offline   Reply With Quote
Old 11-02-2007, 02:45 AM   #25 (permalink)
God of Pandora
 
KillerBeeZ's Avatar
 
Join Date: Jun 2003
Location: Gainesville GA
Age: 31
Posts: 2,000
Default

*grabs coffee and a smoke* This promises to be a good learning experience.

I have great respaect for Courageous as I've seen him do some really good things here, yet while I've never seen Murzin, what he says does have a few valid points (at least as far as I know).

Wiki being a user generated site is subject to be wrong (tho rare at that) and while I am not sure either way, I'd love to learn more about this...

I guess the real question in all of this is "what is the definition of a 4th gen language?" and "why does it matter in this case?"
__________________
The Den of KillerBeeZ...Kender's Komments, uncensored commentary from the Kender. Plus anything else the Kender might have in his pouches.

Last edited by KillerBeeZ; 11-02-2007 at 02:47 AM.
KillerBeeZ is offline   Reply With Quote
<