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

Started by
30 comments, last by Rebooted 16 years, 5 months ago
Ruby is very similar to Python. Smalltalk is similar too, but it usually runs in an "image" environment.

If you want to go all the way into functional programming then I'd recommend Haskell. Erlang or OCaml would be good choices too.

Quote:Original post by johnfarris
Monads are no harder to understand than pointers, or recursive functions, or any other programming concept.

I agree. I think all the nuclear waste metaphors and stuff people put in their tutorials just confuse people. If you learn algebraic data types, type classes and higher order functions then monads should be straightforward. A monad is just an instance of the Monad type class satisfying 3 rules.

And until you learn those things and so can understand monads properly, there is The IO Monad for People who Simply Don't Care (you need to use the IO monad for any IO your program does).
Advertisement
If you want a language which is different, and might just possibly have some practical use (maybe), and is well-known, I'd vote for Haskell.

If you want a language which is different, and a bit novel, I'd vote for this
Add another vote for Haskell. It's really the only (practically usable) language that forces you to grok functional programming.
Quote:Original post by iMalc
you almost certainly have to jump into using Prolog

+1

Here is an online book for starters.
Allllriiiight! Thanks for the feedback guys :) I'm going to pop a Haskell book on my christmas list - any ideas? LOok forward to twisting my brain soon, hehe.

Thanks for all the feedback, very helpful.
Oliver Charles (aka aCiD2) [ Cycles Blog ]
Quote:Original post by TheUnbeliever
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.


I'm teaching myself Haskell for exactly the same reason: To learn something different. I chose Haskell because of this thread on Gamedev and seem to like it so far.

Next to that I'm also trying to teach myself Python, which is also a very nice language to know imho.
I agree, Haskell is something which will mess with your mind, and probably for the better. I'm just finishing my CS class at Dartmouth on Haskell, and I'm finally starting to get it, and I definitely feel it's improved my programming in other languages.

I'd recommend Paul Hudak's The Haskell School of Expression, which is the book we used for my course. It gives a pretty good overview, I felt, and covered some cool applications that demonstrated the power of Haskell.
Eric Richards
Quote:Original post by johnfarris
Monads are no harder to understand than pointers, or recursive functions, or any other programming concept.

I tried learning haskell several times, each time giving up, before finally actually getting that "aha" moment that people talk about


I can't remember having had that kind of difficulty with pointers or recursive functions, myself. Maybe I'm just special? :) I've never really been able to understand monads from an English description, though.

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


Can you do I/O?

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


A lot of people think Lisp (and its many, many offspring) is (are) quite practical.
Quote:Original post by Zahlman
Quote:By the way, you can do lots of interesting things in haskell, without using monads!


Can you do I/O?


No, you can't do I/O without using the IO monad. But you can still write interesting programs and run then from the haskell prompt. An example would be a raytracer that renders using ascii art. I actually did this as one of my first haskell programs :)

Also, you can do I/O using monads, without really understanding them. Just like you can learn C++ and write [cout << "Hello"] without yet understanding classes or operator overloading.

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


A lot of people think Lisp (and its many, many offspring) is (are) quite practical.


I agree that lisp is very practical and an excellent language. But haskell is more powerful than lisp.
Quote:Haskell is the most powerful language there is
  • .


  • Finally, someone has found the One True Metric for gauging programming language power across the board.

    We can all stop having language wars now, scrap all other languages and start using Haskell. It is, after all, the Most Powerful Language, without qualification.

    Quote:It is also one of the simplest, with only a handfull of keywords, and no builtin types.
    That is just unmitigated bollocks. Haskell is very complex, with special syntax for everything under the sun.

    You have syntax for monadic bind and return.

    You have syntax for making monads look imperative (do notation).

    You have two different syntactic constructs for binding (where and let clauses).

    You have syntax for list comprehensions.

    You have the seq operator and its twenty best friends, which subtly mess up parametricity.

    You have at patterns.

    You have 9 (or is it 10) arbitrary levels to specify operator precedence...

    Nobody calls Haskell simple: don't take my word for it, read

    "A history of haskell: being lazy with class" by Simon Peyton Jones and the other Haskell guys. Even they call the language complex.

    This isn't a bad thing necessarily, but saying Haskell is one of the simplest languages is like saying elephants are one of the smallest mammals.

    Quote:I agree that lisp is very practical and an excellent language. But haskell is more powerful than lisp.
    Does it shoot laser beams from its eyes? Could it beat up lisp if lisp fought dirty?

    This topic is closed to new replies.

    Advertisement