You are not logged in.
Preferrably a new and interesting paradigm (as in not another class-based OO language). Any suggestions?
Offline
It might help to list what languages you already know.
I recommend lisp, if you're looking for a paradigm shift.
Offline
Functional languages like ocaml or haskell.
pacman roulette : pacman -S $(pacman -Slq | LANG=C sort -R | head -n $((RANDOM % 10)))
Offline
Offline
Offline
Assembly!
(No but really: lisp. Or blow your mind by learning yourself some computability and/or complexity theory. The former will just lead you back to lisp, though. )
Offline
Unless you already know Smalltalk, learning either it or Objective-C is a good exercise. Object Oriented it might be, but unless you know one of those two (or another language implementing Smalltalk-style OO — I don't know of any), you don't know OO as it was intended to be.
Common Lisp is another good choice, of course. If you don't know it, you need to learn it ASAP. Even before Smalltalk. Other dialects of Lisp could be interesting too, but I think CL has a good mix of power via extensibility (shared by all Lisps) and power via standard features (such as loop).
EDIT: And I seem to remember Stallman saying something about how you should learn it even if you don't use it, implying that a person shouldn't be choosing Lisp for their projects. That's crazy talk.
Last edited by pauldonnelly (2007-11-27 23:59:04)
Offline
Have you ever done something with Generic Programming? Like templates in C++? If you already know a Language that supports this, take that Language (but not Java) and learn how to apply that paradigm on you language.
In C++ you will fast see how different paradigms can benefit from each other.
Offline
So you know OO. So how about good old procedural C?
Todays mistakes are tomorrows catastrophes.
Offline
Common Lisp and French The SICP book runs 600+ pages (edit) of lisp goodness. As for french... I'll get a good manual someday.
happy coding!
Last edited by Jerry (2007-11-28 15:56:41)
Offline
im learning scheme (using elk) for school - that's good enough for learning lisp, right?
is there any part of common lisp that makes it that superior to scheme?
from wikipedia:
"Common Lisp, descended mainly from MacLisp, Interlisp, and Lisp Machine Lisp, is an expanded superset of earlier Lisp dialects, with a large language standard including many built-in data types and syntactic forms, as well as an object system. Scheme is a more minimalist design, with a much smaller set of standard features but with certain implementation features (such as tail-call optimization and full continuations) not necessarily found in Common Lisp. Common Lisp also borrowed certain features from Scheme such as lexical scoping and lexical closures."
that makes it seem likes its personal preference...
Offline
I am actually familiar with many of the languages already suggested (haskell, ocaml, scheme, cl, c).
From what I've heard of C++ templates it sounds like its similar to either java generics or functional style parametric polymorphism. Can anyone comment on this?
I like the idea of message passing OO, like Objective-C and Smalltalk (Thanks for this suggestion). Anyone with experience in both? What do you like about smalltalk/objective-c compared to, say, python or java. And doesn't ruby use message passing oo?
As I am a fan of functional programming, I'd also be interested in any other languages that feature lazy evaluation (other than haskell)
Thanks all for the suggestions.
--
PS: Yes, scheme counts as a lisp (IIRC its a lisp-1)
Last edited by Bison (2007-11-28 18:18:10)
Offline
From what I've heard of C++ templates it sounds like its similar to either java generics or functional style parametric polymorphism. Can anyone comment on this?
Java generic only allow you to design and use container classes. The Template mechanism in C++ is much more powerful. What is possible is quite good illustrated in the stl (look moor at the algorithms than the data structures) and in boost with mpl (Template metaprogramming) for example.
Generic Programming in D is quite good (held a seminar talk about that ), too, but D isn't that mature (was the overall conclusion in the seminar) at all and it lacks in Library support (compared to what stl and boost offers for c++).
You are lucky: http://en.wikipedia.org/wiki/Generic_programming says, that Haskell has Generic Programming, too.
Offline
im learning scheme (using elk) for school - that's good enough for learning lisp, right?
is there any part of common lisp that makes it that superior to scheme?
Well, yes, it's personal preference, but that's all it ever is when you're choosing languages. Whether there is any part of it that makes it better depends on your priorities and preferred style. Either one is fine.
Offline
newlisp
Offline
newlisp
What do you like about that one? I wasn't impressed by it, but I haven't actually heard from any of its fans yet.
Offline
Alright, so it looks like the winners are C++ (templates) and Objective-C. Thanks everyone for suggestions.
I'd also be interested to see a more functional lisp. I know we have liskell (lisp frontend for ghc), but I'd like to see some more pure lisp examples).
Offline
Or you could go in a completely different direction and learn Verilog HDL.
Offline
Or why not brainfuck
http://en.wikipedia.org/wiki/Brainfuck
Offline
you want a language that look like no other language? INTERCAL is your new pal (and nemesis)
more seriously, have you put your hand on aspect programming or component programming (the real thing, not component engineering like bonobo or java beans)?
aspects: many approaches in various languages
components: eiffel language has both design by contract and generics.
Last edited by lloeki (2007-11-30 11:03:16)
To know recursion, you must first know recursion.
Offline
haskell
http://en.wikipedia.org/wiki/Haskell_(p … _language)
Last edited by xsdnyd (2007-11-30 11:26:13)
We can't stop here! This is bat country!!
Offline
How could I forget about eiffel? Thats another good one to check out.
Offline
D language but there is only a manual in japanese...
Offline
VHDL is always good tedious fun (at least the output is). It's definitely different, I had a few classes in it.
...
Offline
If you decide on C++, maybe look at D first. Also, I've been messing with Factor and have been learning a lot...it's very different from any other language I've tried (it pulls ideas from Forth, Joy, Common Lisp, Slate). It's stack-based, which takes some getting used to, but has an amazing environment provided.
Offline