Jump to content
  • Advertisement
Sign in to follow this  
Cycles

I'm looking to learn a new language - something "different"

This topic is 3880 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

Hi, I come from a background that started with some BASIC languages, and has been predominantly C, C++ and C# for the past 3 years. Recently I've been dabbling in Python and really like this language and it's dynamism, and it's made me think that I really need to start looking in to other programming languages and paradigms. At the moment SmallTalk is really taking me, but I haven't started any work with it yet. I did a reasonable amount of work with Objective-C (4-5 months; enough to get a nice feel for the language) and really liked it. However, Objective-C seems based on SmallTalk - so I'm not sure I'll get much from learning SmallTalk as well. I've seen a lot of interest around Erlang and Haskell recently, and haven't touched either of these languages. Does anyone have any suggestions? Look forward to hearing what you suggest!

Share this post


Link to post
Share on other sites
Advertisement
Haskell is gorgeous (although monads mess with my mind, at least, and the information on them is spread fairly thin).

I think it's improved my programming considerably.

Share this post


Link to post
Share on other sites
Erlang or Ruby.

Erlang- functional, cool concurrency, pragmatic
Ruby - smalltalk-y, encourages meta-programming

Share this post


Link to post
Share on other sites
Interesting to see Ruby there, I thought of it as just another python-copy language. How wrong am I it seems :) I will look into Ruby more (more than just that poignent guide, that is).

Thanks for the feedback about Haskell too - I've heard about the pains of monads... learning them is going to be fun :P

Share this post


Link to post
Share on other sites
Monads are no harder to understand than pointers, or recursive functions, or any other programming concept. They are just "different" - exactly what you are looking for!

I tried learning haskell several times, each time giving up, before finally actually getting that "aha" moment that people talk about, the moment where something switches in your mind and changes the way you think about programming. I had been programming in various languages for several years, but in that moment I was hit with the understanding that programming can be so different! That there is this huge world of programming ideas that 99% of programmers aren't even aware of. I felt the same kind of excitement that I felt the first time I programmed in qbasic and made a pixel animate across the screen.

Haskell is the most powerful language there is
  • . It is also one of the simplest, with only a handfull of keywords, and no builtin types. It's syntax is elegant and readable. It's my favorite language.

    By the way, you can do lots of interesting things in haskell, without using monads!

  • Apart from the more extreme academic languages, which aren't yet "practical"

    Share this post


    Link to post
    Share on other sites
    I'll throw in a vote for Erlang, especially if you're working on applications which require a lot of concurrency or network stuff. For these types of applications I'd not consider using anything else anymore - Erlang is just too awesome.

    Share this post


    Link to post
    Share on other sites
    APL, J, or K. J is probably easiest for you to get your hands on.

    Loopless programming is going to blow your mind much, much more than 'monads'. And tacit programming? Yikes.

    Example:

    quicksort=: (($:@(<#[) , (=#[) , $:@(>#[)) ({~ ?@#)) ^: (1<#)

    Exactly.

    But if not, then I would go with Erlang or Ruby. I have always enjoyed Ruby's meta programming abilities, though it truly is horribly slow. Erlang is nice, if you don't already know another functional language. If you do, then just learn Erlang's message passing structure. Learning the actual syntax probably isn't as important, IMHO.

    Share this post


    Link to post
    Share on other sites
    I vote for a functional programming language too. I only used Standard ML and OCaml (wich are very similar) so perhaps there are better/nicer alternatives out there. I add that I didn't liked them much (I wouldn't like a job that asked me to use them, nor I would use them for my personal projects, unless they really were the better choice) but being forced to use recursion everywhere is a good training. I suppose that they improved my programming a lot.

    Share this post


    Link to post
    Share on other sites
    Quote:
    Original post by visage
    APL, J, or K. J is probably easiest for you to get your hands on.

    Loopless programming is going to blow your mind much, much more than 'monads'. And tacit programming? Yikes.

    Example:

    quicksort=: (($:@(<#[) , (=#[) , $:@(>#[)) ({~ ?@#)) ^: (1<#)

    Exactly.
    Bugger that! Talk about cruel and unusual punishment!

    Well if you want to broaden your paradigms experience then you almost certainly have to jump into using Prolog, or even Mercury.

    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.

    We are the game development community.

    Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

    Sign me up!