Next Programming Language?

Recommended Videos

Fooz

New member
Oct 22, 2010
1,054
0
0
i am in the middle of learning Visual Basic 2010, and i have made a fully functional calculator with error messages and a friendly UI etc

now im going to stick with VB2010 for a while to improve my knowledge etc, but im just wondering what should i move onto afterwards?

im thinking maybe C#

i primarily want to build games, so thats why i was thinking C# because you can make some basic games with it but is it too advanced to move to just after VB2010?

what do you think?


Also, what's the thing you are most proud of building?
 

Hiikuro

We are SYD!
Apr 3, 2010
230
0
0
If I may be so direct, go with C++ if you're interested in something serious. Almost all high-budget modern games are made in it. Unfortunately it isn't trivial to start making something big with it, unless you're making a source mod or something like that. Also, I'm not a big fan of garbage collection when it comes to non-script development (I like having control of my own memory).

The thing I'm most proud of is a FPS/RPG game engine that uses Ogre 3D rendering as a base, and lua for scripting. It is surprisingly stable and flexible, and the core code is easily adaptable to other games.
 

Fooz

New member
Oct 22, 2010
1,054
0
0
Hiikuro said:
If I may be so direct, go with C++ if you're interested in something serious. Almost all high-budget modern games are made in it. Unfortunately it isn't trivial to start making something big with it, unless you're making a source mod or something like that. Also, I'm not a big fan of garbage collection when it comes to non-script development (I like having control of my own memory).

The thing I'm most proud of is a FPS/RPG game engine that uses Ogre 3D rendering as a base, and lua for scripting. It is surprisingly stable and flexible, and the core code is easily adaptable to other games.
but isnt C++ really hard to learn if your a newbie, because lets be honest, VB2010 isnt that challenging really

and you made an engine? thats fucking awesome
 

Smooth Operator

New member
Oct 5, 2010
8,156
0
0
Well I concur on C++, if you have a firm grasp of VB then it's time to step it up, yes C++ is harder but it will give you that extra insight into the bowels of every program (actually that will really come with C but that is another level altogether).

If you actually want to learn more about programming I suggest you put high level languages on the side, they will come in very handy later for bigger projects but you should first learn what makes them tick.

For actual game making you might want to look up existing engines, as neat as your own engine sounds it is alot of work and it probably wont be as good as the things that others made, don't reinvent the wheel if you don't haveto.
 

Snork Maiden

Snork snork
Nov 25, 2009
1,071
0
0
Master Steeds said:
i primarily want to build games, so thats why i was thinking C# because you can make some basic games with it but is it too advanced to move to just after VB2010?
I can't recommend C# enough as a learning language - I would've told you just to straight up skip VB and go C# to be honest. C# can make some pretty damn complex games, and has the advantage that anything that works on the PC can more or less be ported straight to the 360. If you want to write games for Windows Phone 7 you'll be in C#, too.

I'm not going to disagree with others - C++ is almost certainly a necessity if you want to get into games development and want to join an existing game studio. From that point of view there is no point not to just try your hardest and learn C++ from the off. That said, I don't think there is any real reason to put yourself through that pain - C++s quirks aren't really hard if you know anything about programming, and learning C# will certainly teach you the fundamentals of programming. Plus, there's really no reason not to learn C# given that it's a very powerful language and all manner of applications are written in it.

Mr.K. said:
For actual game making you might want to look up existing engines, as neat as your own engine sounds it is alot of work and it probably wont be as good as the things that others made, don't reinvent the wheel if you don't haveto.
Depends what you want out of it. I wouldn't recommend to a brand new programmer to "go write your own engine" (but then I certainly wouldn't recommend they start writing anything more complex than pong, which doesn't require an "engine" as such) but writing your own engine is as good a learning experience as writing games, and is probably better because if you're learning what you need more than anything is a project you can follow through to completion and I'd find it pr. hard to come up with a gaming idea that is complex enough to be a challenge but simple enough that the end can be in sight (nevermind having it be extensible so you can stop/start when you want).

Of course if what you're aiming for is pumping out games to a given standard in a short time frame then using someone elses engine is absolutely the way to go.
 

Hiikuro

We are SYD!
Apr 3, 2010
230
0
0
Master Steeds said:
Hiikuro said:
If I may be so direct, go with C++ if you're interested in something serious. Almost all high-budget modern games are made in it. Unfortunately it isn't trivial to start making something big with it, unless you're making a source mod or something like that. Also, I'm not a big fan of garbage collection when it comes to non-script development (I like having control of my own memory).

The thing I'm most proud of is a FPS/RPG game engine that uses Ogre 3D rendering as a base, and lua for scripting. It is surprisingly stable and flexible, and the core code is easily adaptable to other games.
but isnt C++ really hard to learn if your a newbie, because lets be honest, VB2010 isnt that challenging really

and you made an engine? thats fucking awesome
C++ is kind of a tricky language, but once you get to know it (which might take quite a few years) it will become a highly liberating friend. As an example, I feel extremely shut in and frustrated every time I have to use Java, because it makes me miss a lot of C++'s features.

Also, as said, python is a good language. Though, my strongest recommendation is to avoid C# and Java. Both seem to breed bad programmers, and don't have many other merits (I'm especially negative about C#, as it is not cross-platform).

Well, as the only real skill I have, I'm pretty much a one-person programming team. I can do quite a lot really fast with not much effort. But given I've been programming for about 10 years now, that shouldn't be too surprising. Thanks though.
 

Fbuh

New member
Feb 3, 2009
1,233
0
0
I think little beeps and boops would be awesome. Can you imagine walking in to a room with a computer and actually hear it making all those little noises that Nickalodeon and Disney Channel seem to think all electronis make?
 

docSpitfire

New member
Jun 13, 2011
110
0
0
Master Steeds said:
Hiikuro said:
If I may be so direct, go with C++ if you're interested in something serious. Almost all high-budget modern games are made in it. Unfortunately it isn't trivial to start making something big with it, unless you're making a source mod or something like that. Also, I'm not a big fan of garbage collection when it comes to non-script development (I like having control of my own memory).

The thing I'm most proud of is a FPS/RPG game engine that uses Ogre 3D rendering as a base, and lua for scripting. It is surprisingly stable and flexible, and the core code is easily adaptable to other games.
but isnt C++ really hard to learn if your a newbie, because lets be honest, VB2010 isnt that challenging really

and you made an engine? thats fucking awesome
Odds are, learning VB set you as far back as it did teach you a thing or 2.
While yes, you learned loops and such, if/then statements, those things that exist in all languages, VB is so drastically different from anything else you've seen you're going to find it hard to learn a lot of languages

I recommend if you know any HTML that you crack open a Javascript book, and make a few projects out of that (Not a ton... enough that you can do simple things without having to consult a book) It's not programming but scripting, but the syntax is very similar to C/C++

Then move on to C (with the eventual graduation of C++) there are a few differences between the 2, but anything written in C will compile in a C++ compiler, so if you learn C and then switch to C++ and learn objects you'll have a firm grasp of the languages you likely want to know.

The GUI stuff you learn from C# (or VB for that matter) will not be something you can apply to any other language, but you might not even need them if you're making games... think about how many games you play on the computer and all those that don't that don't have a "file" menu, or any traditional windows menus. WoW, Civ V, Spore etc. (yeah ok those are the only 3 games I have for my PC, but) none of them use windows style GUI features, to open the main menu, you hit escape or a custom made button on the screen, which means all that stuff you learned making GUIs (if you want to make games one day) was likely a waste... and if your VB learning process was anything like mine (which it likely wasn't because I took a class to fill a requirement already knowing how to program) your first few (ton) projects were a exercise in making an interactive UI...
 

Fooz

New member
Oct 22, 2010
1,054
0
0
Hiikuro said:
i really want to become a good programmer, it seems like a good career path, and its fun

and you seem to know what you are talking about, so i was wondering if you could give some tips

1. how many hours a day did you put in to get as advanced as you are now?

2. did you do a course, or are you self taught?

3. how young did you start to programme? im curious as you say you have been doing it for 10 years, but im already 17, so is it too late to become good and get a decent job?

4. is it still fun after 10 years?


feel free not to answer, but if you did, i would be very grateful
 

Snork Maiden

Snork snork
Nov 25, 2009
1,071
0
0
Hiikuro said:
. Though, my strongest recommendation is to avoid C# and Java. Both seem to breed bad programmers, and don't have many other merits (I'm especially negative about C#, as it is not cross-platform).
I'm curious why you think that, besides the fact you aren't manging your own memory?
 

Eclectic Dreck

New member
Sep 3, 2008
6,660
0
0
Hiikuro said:
If I may be so direct, go with C++ if you're interested in something serious. Almost all high-budget modern games are made in it. Unfortunately it isn't trivial to start making something big with it, unless you're making a source mod or something like that. Also, I'm not a big fan of garbage collection when it comes to non-script development (I like having control of my own memory).
C++ actually allows for direct control over memory as the garbage collector functionality is entirely optional. In fact, one can use both garbage collection and still retain control over memory. By contrast, garbage collection in Java cannot be escaped and the only control a user has is they can politely request the garbage collector run and even then it is only a request rather than a demand.

As far as my suggestion goes, C++ certainly isn't a bad plan but I'd honestly suggest Java. It is quite related to the C family of languages but has the ben efit of having a number of incredibly robust (and free) IDE's, it has a very friendly compiler and it has a wider variety of common applications (in the sense of web development).

I myself am also a fan of Lisp but I wouldn't really recommend the language as a primary development environment in most cases. That said, Lisp does make a wide variety of tasks one might want to accomplish with a program easy to write and it allows one to simply write very clever and efficient algorithms. It is also a language almost entirely relegated to the field of computer science and is rather uncommon in practical application. There is one exception that I am aware of in this regard and it is Uncharted as significant portions of the game were written in a custom Lisp dialect.
 

Snork Maiden

Snork snork
Nov 25, 2009
1,071
0
0
Eclectic Dreck said:
C++ actually allows for direct control over memory as the garbage collector functionality is entirely optional
You mean non-existent, in standard C++?
 

Keava

New member
Mar 1, 2010
2,010
0
0
You want to learn programming language to make games? Get a freeware engine, like Unity or UDK and start with learning their scripting languages. That will let you create majority of games you might hope to do on your own, without a whole studio around.

Once you can make a proper, custom game with that you can start thinking whenever you actually want to be a coder and if so then start learning C++ because that's what used for making games.

Along the way you might also want to learn ActionScript for flash applications since plenty of HUDs these days are made using ScaleForm middleware, which is based on flash.
 

Hagi

New member
Apr 10, 2011
2,739
0
0
Java may be worth looking into.

While it's true that C++ offers great advantages if you're a programmer with 10 years experience creating AAA 3D games it's actually disadvantageous if you're a programmer with nearly no experience creating hobbyist 2D (or even 3D) games.

Professional C++ > Professional Java > Beginner Java > Beginner C++. At least as far as efficiency and speed goes.

What you should keep in mind is your own motivation.
Having a language that can write a sophisticated and efficient 3D engine is great, but chances are 99% that in the 3 years you're writing it you'll get bored and give up.
Having a language that can write interesting and fun games in a matter of weeks is amazing. You get to come to terms with the basics of programming (don't let anyone tell you the basics are that different for languages like C++, they're not. C++ just requires more care when writing, the basic structure of programming is always the same) while at the same time learning the basics of game design and actually making games!

Java is a great choice. C# should be as well as it shares many features with Java. The most important thing is that it should be a language that offers a lot of native libraries and likely garbage collecting as well so that you can get right down to the fun stuff of actually making working programs. And at the level you're now you're incapable of making any program that's complicated enough to take advantage of the extra efficiency that lower level languages like C++ provide.
 

Eclectic Dreck

New member
Sep 3, 2008
6,660
0
0
Snork Maiden said:
Eclectic Dreck said:
C++ actually allows for direct control over memory as the garbage collector functionality is entirely optional
You mean non-existent, in standard C++?
That depends entirely on how you define C++'s standard form. Garbage collection is present in the default libraries of a huge number of distributions. Of course, if by standard you mean functionality inherent to the language then you are correct.
 

Snork Maiden

Snork snork
Nov 25, 2009
1,071
0
0
Eclectic Dreck said:
Snork Maiden said:
Eclectic Dreck said:
C++ actually allows for direct control over memory as the garbage collector functionality is entirely optional
You mean non-existent, in standard C++?
That depends entirely on how you define C++'s standard form. Garbage collection is present in the default libraries of a huge number of distributions. Of course, if by standard you mean functionality inherent to the language then you are correct.
I actually went and Google it after posting to make sure I wasn't making a complete fool of myself (wrong way round, I know) - totally didn't realise something as common as C++/CLI (for instance) was garbage collected in the way you described.
 

Hiikuro

We are SYD!
Apr 3, 2010
230
0
0
Snork Maiden said:
Hiikuro said:
. Though, my strongest recommendation is to avoid C# and Java. Both seem to breed bad programmers, and don't have many other merits (I'm especially negative about C#, as it is not cross-platform).
I'm curious why you think that, besides the fact you aren't manging your own memory?
I must say I'm rather biased. In retrospect I realized I've spoken out of turn. I've just grown up with C/C++ as my main programming languages. I don't know much about C# to be honest, I've only heard that it is fairly similar to Java. Considering my unpleasant experiences with Java so far (among other things, generics are frustrating in Java), that doesn't put it at a high spot on my list. In addition, C# isn't available for linux (or mac, as far as I know), which marks it down in my book. As for "bad programmers", it is just what my general impression is from programmers I've spoken to, which isn't a terribly reliable measure I know.

Master Steeds said:
Hiikuro said:
i really want to become a good programmer, it seems like a good career path, and its fun

and you seem to know what you are talking about, so i was wondering if you could give some tips

1. how many hours a day did you put in to get as advanced as you are now?

2. did you do a course, or are you self taught?

3. how young did you start to programme? im curious as you say you have been doing it for 10 years, but im already 17, so is it too late to become good and get a decent job?

4. is it still fun after 10 years?


feel free not to answer, but if you did, i would be very grateful
I'll try to answer as best as I can.

1. I have no idea how much time I spend programming. I've just spend a lot of time fiddling with various personal projects, the vast majority being terrible. I've mostly learned from experimenting, a lot of experimenting.

2. Self-taught, mostly. I've only been studying computer science for one year so far, not learned much from the actual courses, but a lot from fellow students.

3. I was 11 at the time I think. I started with C, then was a strong supporter of it (often denouncing C++ as "something I didn't need") for a few years before I eventually realized that C++ was vastly more suited for me.

I don't think it is too late. Self-taught programmers seem to be noticeably more skilled than university educated programmers (probably because mere interest can go such a long way). As long as you start earlier than university you should have at least a minor advantage over most "educated" programmers. I've never had a programming job though, so I can't really say much more about it.

4. Absolutely! I'd say it is more fun than when I started. It is extremely enjoyable to see the results of what I can do, and how thought and code translates to digital behavior. It has also been a useful tool, in that I feel much more in control of my computer.
 

Da Orky Man

Yeah, that's me
Apr 24, 2011
2,104
0
0
Master Steeds said:
i am in the middle of learning Visual Basic 2010, and i have made a fully functional calculator with error messages and a friendly UI etc

now im going to stick with VB2010 for a while to improve my knowledge etc, but im just wondering what should i move onto afterwards?

im thinking maybe C#

i primarily want to build games, so thats why i was thinking C# because you can make some basic games with it but is it too advanced to move to just after VB2010?

what do you think?


Also, what's the thing you are most proud of building?
\depends on how large a game you want to make is. If you want to work for a games company, then C++ would be best, given it's popularity, though it is horrendously complicated. If yo want to make smaller games for iPhone or similar, go for Python. It's easy to learn, surprisingly powerful, Object-oriented, you really can't go wrong.
 

Snork Maiden

Snork snork
Nov 25, 2009
1,071
0
0
Hiikuro said:
I must say I'm rather biased. In retrospect I realized I've spoken out of turn. I've just grown up with C/C++ as my main programming languages. I don't know much about C# to be honest, I've only heard that it is fairly similar to Java. Considering my unpleasant experiences with Java so far (among other things, generics are frustrating in Java), that doesn't put it at a high spot on my list. In addition, C# isn't available for linux (or mac, as far as I know), which marks it down in my book. As for "bad programmers", it is just what my general impression is from programmers I've spoken to, which isn't a terribly reliable measure I know.
Generics have been a feature of C# for a while now, so you can cross that off :p But yeah, the one criticism I have (because the .NET libraries as well as the language itself are both fantastic for any business/web application, and probably very good for a good deal of game dev too) is that C# isn't anything like cross platform. You can compile .NET applications on Linux through Mono, but that doesn't really count - you'd be far better off just writing the thing in Java on most Linux distros, and on OSX I can't think of any really good reasons not to write stuff in Objective-C and use the Cocoa libraries.

And while I could totally take affront at the idea that C#/Java "breed" bad programmers, it's kind of true - it's just so easy (from a .NET perspective) to program in C#, and with tools like WinForms or ASP.NET WebForms it's just so easy to pump out applications that are terribly written that all the bad programmers end up using these tools rather than writing in C++ (for instance). ASP MVC and (to a lesser extent) WPF/Silverlight are becoming a bit more prominent though, and they at least try and encourage a proper coding style through the framework.

Of course, if shitty programmers didn't exist to program shitty applications badly it'd mean we'd have to do those jobs, which would kind of suck.

Hiikuro said:
(probably because mere interest can go such a long way).
This is the most important thing in learning to program. Having an interest and programming stuff you actually want to do go such a long way in helping you to be good at it, and so there is absolutely no reason not to start as early as possible. Granted some of the best programmers I know only just started learning at University, but they still had a big interest in it and spent a lot of time at home beavering away on projects. The easy trap to fall in to is just doing enough to pass coursework assignments - you'll technically be able to program, you'll be able to pass your degree, and you might even get a job at the end. I find it hard to believe you'd be a great programmer, though, which means the job probably wouldn't fit in with your idea of dream employment.
 

docSpitfire

New member
Jun 13, 2011
110
0
0
Hiikuro said:
Self-taught programmers seem to be noticeably more skilled than university educated programmers (probably because mere interest can go such a long way).
I (mostly) agree with this statement and wanted to emphasize that interest in programming is far more important to success than education in many ways.

The only issue I have with the statement is that a lot of self-taught, (even if only a little) also attend university such as myself, and while certainly no one could touch me in lower level classes or the 2 year universities as far as skill goes, towards the end of the 4 years, you tend to weed out a lot of people, and the material becomes more relevant.

Coding itself can be tedious, however people who truly enjoy programming know that the tedium has a big payoff. The average person (i.e. all the ones who'll try to convince you your wrong if you say to them you want to program games because it's not as cool as it sounds) can't get past this hurdle, if you can though, then programming will be massively rewarding.