Jump to content
  • Advertisement
Sign in to follow this  
Fuji

Expanding my horizons with a new paradigm?

This topic is 3054 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

So, I've been told that I should learn at least one new programming language a year and that I should try a Lisp-based language to change how I think about programming.

However, I've only been programming a year. While it's still entirely possible for me to learn a new language as I have most of the fundamental concepts down for OO languages, other paradigms are drastically different. I wouldn't even know what to do with a language like that.

So, what I'm wondering is if it's really good for me to switch to a different language before I've mastered one. I'm not exactly a pro, but I do understand the concepts. I'm just worried that this will keep me from actually getting any project work done.

My overall programming ability is the stage between theory and practice. That is, I know enough to make working programs but games are still a bit difficult for me.

Share this post


Link to post
Share on other sites
Advertisement
I don't want to troll or anything, I'm just curious.
Who told you that?

And another thing: games are difficult to make. No matter how many programming languages you learn. Even if you are experienced, games are difficult to make.

So don't postpone making games, start them now!

Share this post


Link to post
Share on other sites
Three points:

1. You shouldn't wait until you've mastered a language to move along. Mastery takes a long, long time. You should be comfortable with the language, enough that you're not fighting syntax, or spending tons of time debugging an app to get something simple working.

2. I wouldn't choose something drastically different for your second language. Go to something like C# or Java from C++. Perhaps Python or Ruby from C#. Things that are different enough, but fairly similar. That helps you abstract out concepts from syntax.

3. A functional language (LISP or ML based) is a good learning target, and your original advice is fairly solid, though something perhaps best left once you've got the time to learn, and gotten your feet under you.

Share this post


Link to post
Share on other sites
You didn't say which language you've learned?

The language itself is the least thing there is to programming. If you've only been programming for a year, I wouldn't be overly concerned about learning new languages. If you want to make games, then continue with the language you know, and start learning some relevant libraries. For example, you might get SDL, which will quickly let you put graphics on the screen. After that it's a short step to moving it around and calling it a space invader clone - and before you know it, you'll be plotting to make your own MMORPG like everyone else :)

In time, you'll want to learn other languages. If you know C/C++, then pick one of the dynamic languages (Ruby can be nice), or vice versa. You might give C# a go, just for the sheer getting-things-done-quick rush you get from having access to the libraries the .NET world has. And then one day, learn Lisp - afterall, it IS the most powerful language ever released, and will change the way you think of code.

But first, have some fun and write your first game :)

Share this post


Link to post
Share on other sites
I've mainly used Java and related languages (Like Fantom, which you most likely haven't heard of).i have done graphical programming, and I did develop a game demo with a friend. I have some experience with cpp, which means my programming knowledge basically lies in OO languages with c at the roots.

Share this post


Link to post
Share on other sites
Quote:
Original post by Fuji
So, I've been told that I should learn at least one new programming language a year


I'd guess that comes from "The Pragmatic Programmer"? I wouldn't learn a new language just yet; after all, learning a language doesn't really bring you much closer to learning to program. I know because when I started out a year-a few ago, I learned many languages; C++, Java, Eiffel, Python... Now all I remember from Eiffel is Bertrand Meyer :)

But, if you have knowledge of Java, you might perhaps take a look at one of the languages that runs on the Java Virtual Machine? I only have a little knowledge of Clojure, which is Lisp-like. It has a pretty easy interface to Java so if you don't know how to accomplish something you need, you can always turn to the Java libraries.

Share this post


Link to post
Share on other sites
Quote:
And then one day, learn Lisp - afterall, it IS the most powerful language ever released, and will change the way you think of code.


Agreed that it has a complete different way of doing things, but programming large systems with a language like Lisp tends to be a nightmare. The problem with a language like Lisp is that it assumes godlike programming skills before you can write anything remotely maintainable. This is all good if you're the only one working on a project, but in a team I'd definitely prefer a language targeted at "humble average programmers", like C++ :P
Now, don't get me wrong, I certainly think languages like Lisp have their place. But come on, just look at the code for example: it looks like a mess with all those parentheses! If there's one thing that's very important for code is that it is readable and understandable. In fact, I'm a strong believer of the fact that code should document for itself.
In that respect, Lisp might be the most powerful language ever released, but if you can't leverage all that power than that's practically useless. I guess that's why the language is so popular in academic circles. Nice in theory, but in practice...

Share this post


Link to post
Share on other sites
@Fuji

I'd never heard of Fantom. Thanks a lot for making me aware of it :) I'll have to follow their efforts to bridge java and .net apis - it looks interesting.

@godmodder

Absolutely. Lisp is primarily good for changing the way you think. When it's time to get everyday stuff done, it's rarely the tool you'll want to reach for.

Share this post


Link to post
Share on other sites
I suggest a scripting language of your choice.
It's different enough but not too much like a functional language would be.
Or you could just try C# since you already know Java it should be quick to pick up.

[Edited by - daviangel on July 14, 2010 6:59:40 AM]

Share this post


Link to post
Share on other sites
Quote:
Original post by godmodder
Agreed that it has a complete different way of doing things, but programming large systems with a language like Lisp tends to be a nightmare.
Tends to? Can I see some citations? Or are you just guessing based on your very limited exposure?

Quote:
Original post by godmodder
But come on, just look at the code for example: it looks like a mess with all those parentheses!
Oh, so you just haven't written more than an assignment or two in Lisp. You're right though, I can see where ;:(){}*& are immediately intuitive.

Quote:
Original post by godmodder
If there's one thing that's very important for code is that it is readable and understandable. In fact, I'm a strong believer of the fact that code should document for itself.
Where I am, we leverage specification-as-implementation.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!