PDA

View Full Version : Recommendations on next language



emobrad
August 30th, 2008, 08:14 PM
So I've been programing in C++ for a few months, and I'm thinking I want to move to a different language. The thing is I don't have a clue what I should try. I wanna try something that isn't object oriented. Anybody have a recommendation on a good language to learn?

mike_g
August 30th, 2008, 08:16 PM
You could try python or you could try searching for threads like this; there are hundreds of them on this board.

CptPicard
August 30th, 2008, 08:48 PM
I wanna try something that isn't object oriented.

The subject of many a heated discussion... you're correct IMO to move away from object-orientation AND C++...

I guess the typical suggestion applies; try Python. It lets you use OO when you need it and want it, and also exposes you to some interesting new concepts and ways of doing things.

If you're adventurous and really serious about the non-oo aspect, take a look at Lisp or Haskell :) (Lisp is more practical and interesting because of the macro capability IMO)...

emobrad
August 30th, 2008, 09:50 PM
Yeah, I've taken a look at LISP, and the thing is I really don't wanna spend days or weeks learning Emacs for LISP. I also looked into Python about a month ago, but it never really caught onto me. I dunno why but I just didn't feel clean hacking it out lol.

Anybody have any experiance with Ruby?

LaRoza
August 30th, 2008, 09:54 PM
Check out my site and try the Language Selector. It is much more reliable than human opinions.

CptPicard
August 30th, 2008, 09:57 PM
Yeah, I've taken a look at LISP, and the thing is I really don't wanna spend days or weeks learning Emacs for LISP.

Well, you could try the cusp plugin for Eclipse... you do want a proper environment for it though.


I also looked into Python about a month ago, but it never really caught onto me. I dunno why but I just didn't feel clean hacking it out lol.

Just spend some time at it, you'll see why it is popular.


Anybody have any experiance with Ruby?

Well, Ruby is rather object-obsessed, and if you want to get rid of OOP... :)

Then again, at least Ruby is dynamically typed and has a lot of other stuff going for it, so why not, if you feel more comfortable in it than Python.

forger
August 30th, 2008, 09:59 PM
Anybody have a recommendation on a good language to learn?
Sign language :) But you might want to consider learning perl as well heh

emobrad
August 30th, 2008, 10:03 PM
Yeah, I was looking at LaRoza's guide to languages, and I saw that Ruby was under scripting so I was like "Okay, it's not OOP" lol. Mah bad.

Kadrus
August 30th, 2008, 10:18 PM
Yeah, I was looking at LaRoza's guide to languages, and I saw that Ruby was under scripting so I was like "Okay, it's not OOP" lol. Mah bad.
Well it's a multi-paradigm programming language,with object-orientation.


Check out my site and try the Language Selector. It is much more reliable than human opinions.
You should add more languages to the selector :-)

If you want to move away completely from OOP,I would suggest Haskell.It's a purely functional and modular programming language.

Sinkingships7
August 30th, 2008, 10:30 PM
Well, if you want to move away from OOP, and you already have a small background with C++, you could move on to C. The transition will be easy, and the payoff will be great.

That or you could spend some more time with Python, and just use it in a functional way.

LaRoza
August 31st, 2008, 12:04 AM
Sign language :) But you might want to consider learning perl as well heh

Or Hindi. It is fun :-)



You should add more languages to the selector :-)

It is aimed at beginners mostly, so it is diverse in paradigm but not in languages.



If you want to move away completely from OOP,I would suggest Haskell.It's a purely functional and modular programming language.

OPP is a way of programming. The OP can use Ruby, Python, C, Lisp, etc and use or not use OPP, even though Ruby and Python have it built in, and C and Lisp don't.

I think the OP would be most interested in Python or Perl or C. Sure, you can use OO in Python and Perl, but you don't have to (and if you do, it isn't like C++) and C doesn't have it built in, although one can design a program that way.

Reiger
August 31st, 2008, 12:37 AM
Those languages just don't have, ehm... that 'functional' touch to 'em like Haskell does. And, for beginners in Haskell there exists the Helium interpreter for Haskell.

Wybiral
August 31st, 2008, 01:10 AM
Those languages just don't have, ehm... that 'functional' touch to 'em like Haskell does. And, for beginners in Haskell there exists the Helium interpreter for Haskell.

There are some pretty functional dialects of Lisp out there...

pmasiar
August 31st, 2008, 01:42 AM
If you want to try different language from C++, dynamically types language with GC would be my first suggestion. Python is obvious choice, just ignore it's OO capabilities and use it as plain procedural language.

Other even more different languages you may want to look beyond Lisp: Forth and Prolog, or http://en.wikipedia.org/wiki/ML_(programming_language)

slavik
August 31st, 2008, 02:32 AM
Here's what I gathered about OP so far:
- comfortable with C++
- tried Python, didn't get into it
- tried Lisp, didn't get into it

OP, if you would like to learn something similar to Lisp, I would suggest Scheme (it is a Lisp dialect made for teaching computer science).

On the other hand, what features have you used in C++, have you done templates and such?

After Scheme, I would suggest looking at Haskell and Prolog, these are 2 more languages that are unlike anything you have encountered before.

Another thing you might want to look at is a shell scripting language (I'd go with BASH since that is the default shell in most (if not all) Linux distributions).

EDIT: OP, what options did you choose in LaRoza's language selector and what result were you given?

Alasdair
August 31st, 2008, 02:49 AM
With a few months C++ experience both Python or Ruby would seem like good choices for a second language. While you say you want a non OO language there is more to OO than C++! Python or Ruby would let you build on what you already know, as they are not completely alien (like Haskell) and their simplicity and 'batteries included' philosophy lets you make stuff that's actually useful.

Ptero-4
August 31st, 2008, 03:09 AM
The one I would recommend (and I'm wanting to master as well) is Ruby.
For exotic languages, besides the ones already mentioned, try brain**** and whitespace.

danbuter
August 31st, 2008, 05:41 AM
Check out my site and try the Language Selector. It is much more reliable than human opinions.

You do not have Javascript listed for someone who wants to learn how to program websites. [-X

mssever
August 31st, 2008, 06:56 AM
Well, Ruby is rather object-obsessed, and if you want to get rid of OOP... :)Ruby is fully OO, as is Python. Python just hides the fact through syntax (you call len(object) in Python, which is equivalent to calling object.__len__(). In Ruby there's no hiding; it's just object.length).

In reality, though, Ruby doesn't force you to use an OO style. As far as programming paradigms go, it's quite similar to Python.

emobrad
August 31st, 2008, 07:10 AM
Here's what I gathered about OP so far:
- comfortable with C++
- tried Python, didn't get into it
- tried Lisp, didn't get into it

OP, if you would like to learn something similar to Lisp, I would suggest Scheme (it is a Lisp dialect made for teaching computer science).

On the other hand, what features have you used in C++, have you done templates and such?

After Scheme, I would suggest looking at Haskell and Prolog, these are 2 more languages that are unlike anything you have encountered before.

Another thing you might want to look at is a shell scripting language (I'd go with BASH since that is the default shell in most (if not all) Linux distributions).

EDIT: OP, what options did you choose in LaRoza's language selector and what result were you given?


In LaRoza's language selector I got Python, and Lisp. Both stated that I wasn't a big fan of.

And in C++ I got comfortable up till lists and such.

I could give Scheme a try I suppose.

I'll look into it.

Thanks to everyone who's helping

slavik
August 31st, 2008, 07:25 AM
I would say that your knowledge of C++ is not advanced at all and I suggest you learn more of it either way.

When you say you got up to lists and such, you mean the std::list? or did you implement your own linked list?

Sinkingships7
August 31st, 2008, 07:34 AM
I would say that your knowledge of C++ is not advanced at all and I suggest you learn more of it either way.

When you say you got up to lists and such, you mean the std::list? or did you implement your own linked list?

Our own. Brad and I are real life friends, and we learned together. It was odd: I never even found out about the std::list until AFTER we'd already learned how to write and implement them on our own. A bit frustrating, but certainly a 'rewarding' experience.