Thread: Which language to learn next ?

  1. #1
    [](){}(); manasij7479's Avatar
    Join Date
    Feb 2011
    Location
    *nullptr
    Posts
    2,657

    Which language to learn next ?

    Other that C++, I don't really know any other language in any significant depth; so I'm trying to expand my 'bubble' .
    The probable candidates are ruby, python, go and D .
    So, I read a few of the sorts of 'X Language in 20 minutes' tutorials lying around.

    Here are my opinions about them:
    ruby : nice... seems flexible.
    python: I'm a little confused about its class syntax.
    go: nice.. (I was put off by the fact that the compiler refuses to compile for my preferred indentation style, without running the code through a formating filter.)
    D: I don't know what to think of this one .

    I know that the choice of programming language depends on the task at hand.. but as there is no task to speak of here, just 'productive' time pass,
    I'd want the language to be general purpose.
    If any of you have experience with the mentioned languages or had had a good experience with something else, I'd like to hear your opinion on it.

  2. #2
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    Quote Originally Posted by manasij7479
    python: I'm a little confused about its class syntax.
    What exactly do you find confusing about that? One thing that comes to mind is the new-style and classic classes thing, but it isn't really a big deal.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  3. #3
    Officially An Architect brewbuck's Avatar
    Join Date
    Mar 2007
    Location
    Portland, OR
    Posts
    7,396
    Python is awesome for glue code. And if you stay away from some of the more dynamic features of the language, it's not a bad language for prototyping solutions for eventually conversion to C++.

    I went through a period of template craziness several years ago, which was mostly fueled by me also doing a lot of Python at the time. Python really puts you into a functional/generic mindset and that was leaking over into my C++ work.
    Code:
    //try
    //{
    	if (a) do { f( b); } while(1);
    	else   do { f(!b); } while(1);
    //}

  4. #4
    Registered User
    Join Date
    Dec 2011
    Posts
    795
    You didn't specifically mention it in your OP, but you could always learn assembly. It's great for understanding C mechanics more, optimization, debugging, fine control that high languages might not provide, and a lot more.

  5. #5
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    If you don't know one of the general purpose, dynamically typed, GC'd OO languages (perl, python, ruby), you should. Like brewbuck says, they are great for prototyping things (I doubt which one makes much difference) and really really useful. There are a lot of tasks that are not much sweat that way, that would take a lot more effort in a strongly typed language with no GC (which is why they are great for prototyping -- you have a working design you can convert to C++).

    Also, they have libraries/modules for everything including the kitchen sink, and a central repository for the libraries (I think: perl = CPAN, python = PyPI, ruby = RubyForge), and some form of quick and simple CLI installer (like w/ linux packages) for the libraries in the repository. C/C++ does not have anything to compare to that; CPAN, eg, has more than 100,000 modules.

    I have bunches of perl scripts that I would never have bothered to write in any other language I know, because it would just have taken too much time and be too irritating to maintain.

    Finally, those languages are all (I presume...) 100% portable -- file ops, etc, are the same regardless of the platform.
    Last edited by MK27; 03-31-2012 at 10:16 AM.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  6. #6
    Master Apprentice phantomotap's Avatar
    Join Date
    Jan 2008
    Posts
    5,108
    I'd recommend Python. It seems to have more weight behind it than Ruby.

    Plus, I just like that Python development is willing to make major breaking changes to the language between major versions. Python may not be perfect now, but with the mindset that breaking changes is "Okay." it actually has the potential to get really close to perfect.

    D is trash; they managed to lose some of the "power" of C++ while still managing to look ugly as sin so it doesn't even offer a new set of ideas for you to play with. I'd literally suggest any real language over it. So, no Whitespace or Brain........, but Perl, Python, Ruby, C#, Cobol, Fortran, Ada, and so on.

    Soma

  7. #7
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    Quite honestly if you want to expand your bubble and do not mind the Windows platform there are plenty of technologies to learn in .NET. C# .NET 4.0 added a few new features and along with that there are a host of Microsoft technologies that can be learned that integrate right into C#. The good thing about learning this is that C++ is getting a major overhaul in the new MSVS and soon all languages on the Windows platform will be playing on the same field (so to speak). If you look at the current job market you will see that nearly every 'Windows' job for C/C++ either requires or 'prefers' C# .NET experience as well. My apologies to all the Linux folks and the open sourcies for this but Microsoft technologies are still king and you can never go wrong by learning them.

  8. #8
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Quote Originally Posted by VirtualAce View Post
    but Microsoft technologies are still king
    At least, on one widely used OS Beyond that, they aren't even serfs -- they're useless.

    Platform specific libraries are hard to avoid, but I wouldn't learn a platform specific language unless I was dead set on getting a job that specifically required it (which most jobs are not MS jobs).
    Last edited by MK27; 04-01-2012 at 12:09 PM.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  9. #9
    [](){}(); manasij7479's Avatar
    Join Date
    Feb 2011
    Location
    *nullptr
    Posts
    2,657
    Quote Originally Posted by laserlight View Post
    What exactly do you find confusing about that?
    Nothing specific. I was initially trying to learn by analogy with C++ classes and the whole 'dynamic' nature of everything in python threw me off balance.

    Quote Originally Posted by brewbuck View Post
    Python is awesome for glue code. And if you stay away from some of the more dynamic features of the language, it's not a bad language for prototyping solutions for eventually conversion to C++.
    Quote Originally Posted by MK27 View Post
    If you don't know one of the general purpose, dynamically typed, GC'd OO languages (perl, python, ruby), you should. Like brewbuck says, they are great for prototyping things (I doubt which one makes much difference) and really really useful. There are a lot of tasks that are not much sweat that way, that would take a lot more effort in a strongly typed language with no GC (which is why they are great for prototyping -- you have a working design you can convert to C++).
    Quote Originally Posted by phantomotap View Post
    I'd recommend Python. It seems to have more weight behind it than Ruby.
    Plus, I just like that Python development is willing to make major breaking changes to the language between major versions. Python may not be perfect now, but with the mindset that breaking changes is "Okay." it actually has the potential to get really close to perfect.
    Python sure seems to be popular!
    I'll try my luck with it.

    Quote Originally Posted by memcpy View Post
    You didn't specifically mention it in your OP, but you could always learn assembly. It's great for understanding C mechanics more, optimization, debugging, fine control that high languages might not provide, and a lot more.
    I've been putting it off for the future, as low level stuff still frightens me.

    Quote Originally Posted by VirtualAce View Post
    Quite honestly if you want to expand your bubble and do not mind the Windows platform there are plenty of technologies to learn in .NET. C# .NET 4.0 added a few new features and along with that there are a host of Microsoft technologies that can be learned that integrate right into C#. The good thing about learning this is that C++ is getting a major overhaul in the new MSVS and soon all languages on the Windows platform will be playing on the same field (so to speak). If you look at the current job market you will see that nearly every 'Windows' job for C/C++ either requires or 'prefers' C# .NET experience as well. My apologies to all the Linux folks and the open sourcies for this but Microsoft technologies are still king and you can never go wrong by learning them.
    But, I'll not be looking for a serious job for at least 7 more years. Who knows what can change in that time !
    Last edited by manasij7479; 04-01-2012 at 12:54 PM.

  10. #10
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    You kids do not know what you are missing out on by skipping the perl. I blame it on GNU and the strongly phallic name.
    Last edited by MK27; 04-01-2012 at 02:17 PM.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  11. #11
    Lurking whiteflags's Avatar
    Join Date
    Apr 2006
    Location
    United States
    Posts
    9,613
    Quote Originally Posted by MK27 View Post
    You kids do not know what you are missing out on by skipping the perl. I blame it on GNU and the strongly phallic name.
    Phallic huh? Well that just plants ideas doesn't it...

  12. #12
    Registered User
    Join Date
    Sep 2007
    Posts
    131
    Quote Originally Posted by manasij7479 View Post
    I've been putting it off for the future, as low level stuff still frightens me.
    To each their own. I work best at the low level.

  13. #13
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    ...but I wouldn't learn a platform specific language
    I'm not so sure I would write C# off as a platform specific language.

  14. #14
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    Quote Originally Posted by MK27
    You kids do not know what you are missing out on by skipping the perl.
    I would tell you not to throw perl before swine, but then I don't want to become bacon!
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  15. #15
    Registered User
    Join Date
    Apr 2012
    Posts
    44
    yeh python

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. What language to learn
    By ajrillik in forum A Brief History of Cprogramming.com
    Replies: 23
    Last Post: 08-15-2005, 06:36 PM
  2. Should I learn a FULL language first?
    By Raeliean in forum Game Programming
    Replies: 8
    Last Post: 07-16-2005, 06:59 PM
  3. URGENT!! Which language should I learn!???!!!
    By webmaster in forum A Brief History of Cprogramming.com
    Replies: 27
    Last Post: 06-14-2004, 05:41 PM
  4. What Language to learn???
    By Serpentineocean in forum Game Programming
    Replies: 7
    Last Post: 06-10-2004, 09:07 PM
  5. which language should I learn
    By Unregistered in forum C Programming
    Replies: 6
    Last Post: 03-07-2002, 06:26 PM