Archived

This topic is now archived and is closed to further replies.

DrGUI

Upgrading to what language?

Recommended Posts

I am having much trouble deciding whether to move from Visual Basic .NET 2002 to VB 2003 or C# 2003. My reasons for moving are (although VB is catching up with <<, >>...), I want ++ --, operator overloading, and all of the System data type aliases. Or does VB 2003 already offer these? I could not really find a comprehensive features list. Here are my questions: Does VB .NET 2003 support all of the things I just said above? Will VB .NET 2002 and C# 2003 work together on a project in the same IDE (because they are from different years) (because I want to be able to move gradually or not upgrade it all)? I think VB .NET 2003 supports generics (or templates) but does C#? CType(expr, type) is to DirectCast(expr, type) as (type) is to what in C#? Are there any converters between them (since they are quite similar now)? Are operations with unsigned data types as fast as with unsigned ones? Does it really matter with big projects using multiple languages? I am only 14, perhaps it will not matter by the time I could enter the gaming industry (look at my resume).

Share this post


Link to post
Share on other sites
If you want to get into game design, you''ll need to learn some lower level languages first: namely C/C++ (which shouldn''t be hard at all if you already understand C#). You''re also going to need to have at least a passing understanding of ASM.

Personally, I''d stick with C# for general-purpose development though. It''s got syntax that most every programmer recognizes, and it''s a lot more likely to be supported in the long run for desktop development (especially as .net is implemented on other platforms).

Ultimately, for game development, bytecode is never going to be as fast as machine code, no matter how you do it. Even custom, stripped down scripting engines run their bytecode at about 5-20% of the speed of their in-game code. That''s not pretty.

Share this post


Link to post
Share on other sites
I think you forgot C++, and since you remember now, there is no decision to make (it''s crossplatform, fast, functional, and great for game development).

Share this post


Link to post
Share on other sites
If you are only 14, and you are serious about trying to get into game programming here is my advice:

- Don''t waste your time on visual basic. If you already have a decent grasp of visual basic, it means you have a decent grasp of programming and that is all visual basic can do for you.

- Learn C++, at 14, you got a LOTTA time on your hands, and that means a lot of time to learn, by age 18 you can be a C++ master and that will be immensely invaluable for you.



But.. to answer your question directly, switch to C#. Because then when you realize you should of just switched to C++, you will at least be familiar with a language that is at least loosely related to c++

Share this post


Link to post
Share on other sites
Yeah, I learnt VB 6 when I was 9, learnt C++ at 11 with book so I do actually know the syntax, but I don''t like the library or MFC. 13, I moved to VB .NET 2002 and converted my Graphics engine; manually I might add because I only had standard edition. I know C# langauge but at the present do not own the compiler, but have read through all of the differences and similarities. They are actually VERY similar now, just slightly different syntax and some keyword differences.

Someone else said that soon the move to C# would be like shift from ASM (which I do know, by the way as I was trying to speed up my fire effect in VB 6). I also don''t really want to have to convert all of my graphics engine again, C# and VB code can work together but aren''t there interoperability issues with C++. I can definately read C++ or I would have got nowhere with reading all the books on graphics, AI, audio and physics programming that I have got.

Share this post


Link to post
Share on other sites
If you just want to learn the language you'll probably be using for your professional career in programming, go with C++.

If you want to learn more about programming, learn Common Lisp and then C++. Common Lisp is quite a bit different from C++ and the languages you listed, and it will help expand your understanding of high-level stuff (which is often more important than the low-level details in my experience - the details only get more attention because the popular languages require it). Not only that, but there are many free Common Lisp compilers and the best IDE I've found for it(emacs) is also free.

If you only want to choose from the languages you listed, I suggest you don't upgrade at all and just keep using VB .Net 2002. I hear the 2003 IDE is better in some ways, but from those same statements I don't think it is worth the cost.

[edited by - Extrarius on May 19, 2004 10:23:18 AM]

Share this post


Link to post
Share on other sites
Even if your eventual goal is C#, I''d learn C++ first. If you get into professional game development chances are you''ll have to code/maintain/understand C++ code at some point.

Share this post


Link to post
Share on other sites
quote:
Learn C++, at 14, you got a LOTTA time on your hands, and that means a lot of time to learn, by age 18 you can be a C++ master and that will be immensely invaluable for you.

Oh please. C++ takes more than four years...especially if its your first language. Of course, people call wildly different things ''mastery.'' In my mind it''s someone who can explain Koenig lookup and workings of the partial template specialization, whereas with other people it is merely writing code that doesn''t produce a syntax error 85% of the time.

I''d jump into game development with C#. It is plenty fast enough for hobbyist projects, you can spend less time fiddling with all the hoops that C++ makes you jump through, and you can get a better feel for how larger-scale applications are constructed. Besides, it is just more fun, and that really counts for something. The C++ specifics can always be picked up later, they aren''t as hard as people would like you to believe.

Share this post


Link to post
Share on other sites
I woud recomend learning c becouse it is easy and you can read the code with no problem (it is wery clear).
The fact that you know VB gives you an advantige becouse ther are many similar things - so if you are a quick lerner you will learn c (maybe c++) in 3 months.

And don''t let the age stops you from trying to make games - I am 15 and i have learnd C/C++ DirectX(8/9) OpenGL and som of assembler coding iin last 5 months (becouse i had some decent background with Visual Basic (5/6) ans DX(8)).

The main diferenc betwen VB and C/C++ (i think) are the pointers (useful at almost every code). If you understand pointers all other c++/c diferences are pure SYNTAX.

P.S.
Sory about the speling errors

Share this post


Link to post
Share on other sites
I suggest simply learning a whole lot of languages. For every language you learn to think in, you learn to think about programming better. As a fortunate side effect of this, you''ll be able to evaluate languages on your own.

You''ll also be able to think about ideas that a "pure C++ programmer" would never concieve on his own. (it''s still true if you replace "C++" with your favourite language)

There''s also the ''learning to learn'' element.


"Without deviation, progress itself is impossible." -- Frank Zappa

Share this post


Link to post
Share on other sites
Yea right by the time you woud learn "all" the lanuges some new woud come out and that woud be "newer ending story". You shoud profile all the lanuges etc.
-c/c++ Good speed / great portability / most comon
-VB/VB .net SPEED ??? / BAD portability / easy to use
-Pascal I hawe not seen win32 version of pascal
......

Again my recomendation woud be C (eventualy c++).

Share this post


Link to post
Share on other sites
you don''t need to worry about that now. do stuff that you enjoy and don''t be stressed about it.

c/c++, python, java will all be around for years. I''d recommend python for beginners, for intermediate I''d say python, and for experts python will probably fit the bill.

Enjoy yourself and keep doing stuff and you''ll be able to pick up what you need closer to the time.

Share this post


Link to post
Share on other sites
I am not quite sure how to say this without sounding rude - but it looks like some of you have not actually read my later reply.

I do already know C++ and know that C is like C++ but without the object orientated syntax, but I don''t really think that many people use C anymore.

C# and VB .NET are nearly the same.

Why should we need to use pointers anyway? Surely compilers should be able to do a better job making code use pointers than any programmer could do on their own.

I wouldn''t change languages just for the IDE, but what improvements have been made in the language?

Why don''t Mcrosoft let C# compile to native with optimization (nmake.exe does not optimize as much as the JIT)? Syntax is better in my opinion so why?

Share this post


Link to post
Share on other sites
quote:
Original post by DrGUI
I know C# langauge but at the present do not own the compiler...


FYI, you can download the .NET Framework SDK from Microsoft, which includes the command-line C# compiler for free.

Also, you can get a decent C# IDE (it uses the free .NET Framework SDK mentioned above) called SharpDevelop at http://www.icsharpcode.net/opensource/sd/. It's an open-source project, and it's free.


[edited by - MonkeyCookie on May 19, 2004 4:52:27 PM]

Share this post


Link to post
Share on other sites
quote:
Original post by antareus
quote:
Learn C++, at 14, you got a LOTTA time on your hands, and that means a lot of time to learn, by age 18 you can be a C++ master and that will be immensely invaluable for you.

Oh please. C++ takes more than four years...especially if its your first language. Of course, people call wildly different things ''mastery.'' In my mind it''s someone who can explain Koenig lookup and workings of the partial template specialization, whereas with other people it is merely writing code that doesn''t produce a syntax error 85% of the time.

I''d jump into game development with C#. It is plenty fast enough for hobbyist projects, you can spend less time fiddling with all the hoops that C++ makes you jump through, and you can get a better feel for how larger-scale applications are constructed. Besides, it is just more fun, and that really counts for something. The C++ specifics can always be picked up later, they aren''t as hard as people would like you to believe.


It can be mastered in 4 years easily. And I agree with your definition of mastery. If you cannot do it in 4 years either you are a moron or you aren''t spending enough time each day. And by enough time I mean 7 to 12 hours per day 6 days a week for 4 years... but hey he said he was 14, what else has he got to spend his time on!

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
quote:
Original post by DrGUI
I do already know C++ and know that C is like C++ but without the object orientated syntax, but I don''t really think that many people use C anymore.



People that think C++ is just C with some added features don''t know C++ very well at all. Often they are using the language the wrong way.

Share this post


Link to post
Share on other sites
quote:
Original post by Red Drake
Yea right by the time you woud learn "all" the lanuges some new woud come out and that woud be "newer ending story". You shoud profile all the lanuges etc.


You have much to learn.

"The limits of my language mean the limits of my world." - Ludwig Wittgenstein

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
quote:
Original post by Red Drake
-Pascal I hawe not seen win32 version of pascal



There are several, the most popular one being Borland Delphi.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Imo you should first decide. Are you interested in using .net or not.

If you are:
In the end it doesnt matter what language you choose when it comes to performance. Afaik all languages should be about the same in the end when developing in .net. I''d personally go for c# for it''s ease to learn(quite similar to java, which is used a lot @ colleges to help students grasp the idea of programming)
(about the guy who said c++ is cross-platform: so is using .net)

If you don''t and you want v. fast performance:
Learn c++.

I recommend using .net as it''s much easier to learn and quickens developing. All in all i dont think ur gonna do a commercial game anytime soon anyhow.

and yes pascal win32 = delphi lol.

I think at your age you should pick the language which is easiest to learn and might help ya in the future. c# is growing with popularity and more and more companies are asking for ppl with c# exp.

make up your own mind tho gl!

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
btw as a side note.. You can still use pointers in c#.. it''s just not widely used You can mark certain stuff as "unsafe code".

i''m not sure about templates in C#.

Share this post


Link to post
Share on other sites
quote:
Original post by duke

It can be mastered in 4 years easily. And I agree with your definition of mastery. If you cannot do it in 4 years either you are a moron or you aren''t spending enough time each day. And by enough time I mean 7 to 12 hours per day 6 days a week for 4 years... but hey he said he was 14, what else has he got to spend his time on!


school? Chicks? anything but c++? for the love of god, you''re not going to understand C++ properly at 14, unless you''re some sort of prodigy, and I certainly wouldn''t recommend spending 7 to 12 hours a day at it. If you plan on programming in a career, then anything you do at 14 will not be considered experience by any companies.

And just ''cos you can "do" something after 4 years in no way implies mastery. After 6 years, you may consider yourself highly skilled in c++. To truly "master" it? To know everything about the language? Try closer to 8 or 9. And if you think you can do it quicker, this story might be relevant to you.

A young boy traveled across Japan to the school of a famous martial artist. When he arrived at the dojo he was given an audience by the Sensei
"What do you wish from me?" the master asked.
"I wish to be your student and become the finest kareteka in the land," the boy replied. "How long must I study?"
"Ten years at least," the master answered.
"Ten years is a long time," said the boy. "What if I studied twice as hard as all your other students?"
"Twenty years," replied the master.
"Twenty years! What if I practice day and night with all my effort?"
"Thirty years," was the master''s reply.
"How is it that each time I say I will work harder, you tell me that it will take longer?" the boy asked.
"The answer is clear. When one eye is fixed upon your destination, there is only one eye left with which to find the Way."

Share this post


Link to post
Share on other sites
quote:
Original post by ChaosEngine
blah blah blah


That''s really funny because by the time I was 14, I had mastered C++, including all of the advanced features. It really isn''t that difficult as long as you aren''t a moron. It should take about 6 months tops of active coding in it to understand.

Share this post


Link to post
Share on other sites
quote:
Original post by ChaosEngine
quote:
Original post by duke

It can be mastered in 4 years easily. And I agree with your definition of mastery. If you cannot do it in 4 years either you are a moron or you aren''t spending enough time each day. And by enough time I mean 7 to 12 hours per day 6 days a week for 4 years... but hey he said he was 14, what else has he got to spend his time on!


school? Chicks? anything but c++? for the love of god, you''re not going to understand C++ properly at 14, unless you''re some sort of prodigy, and I certainly wouldn''t recommend spending 7 to 12 hours a day at it. If you plan on programming in a career, then anything you do at 14 will not be considered experience by any companies.

And just ''cos you can "do" something after 4 years in no way implies mastery. After 6 years, you may consider yourself highly skilled in c++. To truly "master" it? To know everything about the language? Try closer to 8 or 9. And if you think you can do it quicker, this story might be relevant to you.

A young boy traveled across Japan to the school of a famous martial artist. When he arrived at the dojo he was given an audience by the Sensei
"What do you wish from me?" the master asked.
"I wish to be your student and become the finest kareteka in the land," the boy replied. "How long must I study?"
"Ten years at least," the master answered.
"Ten years is a long time," said the boy. "What if I studied twice as hard as all your other students?"
"Twenty years," replied the master.
"Twenty years! What if I practice day and night with all my effort?"
"Thirty years," was the master''s reply.
"How is it that each time I say I will work harder, you tell me that it will take longer?" the boy asked.
"The answer is clear. When one eye is fixed upon your destination, there is only one eye left with which to find the Way."




That was a good story, thanks for that, and I wholeheartedly agree. I tend to believe that expert programmers don''t exist, because there is always something new to learn, and they only earn a higher placement of understanding. The arrogant ones however, those that already consider themselves experts, I tend to steer away from. I learn from the ones who know that they can always get better at what they do.

Share this post


Link to post
Share on other sites
The best programmers I know never claim mastery of any language or style. Humility really goes hand-in-hand with a willingness to learn. Don't entertain delusions of C++ mastery unless you can answer every single question posed on comp.lang.c++.moderated without missing a beat.

Edit:
Oh and I'd much rather learn about school/life/girls/God/etc than claim to be an absolute master at C++. Especially when I was 14. Get off the computer and live a little. Generally people on the Internet are going to exaggerate their age and abilities a little. I know a certain someone here that claims to know twenty different computer languages and later posted that he was having trouble using fstreams.



[edited by - antareus on May 19, 2004 10:49:27 PM]

Share this post


Link to post
Share on other sites