You are not logged in.

#1 2007-11-27 21:25:16

Bison
Member
From: Jacksonville, FL
Registered: 2006-04-12
Posts: 158
Website

Need to learn a new language

Preferrably a new and interesting paradigm (as in not another class-based OO language).  Any suggestions?

Offline

#2 2007-11-27 21:26:12

Cerebral
Forum Fellow
From: Waterloo, ON, CA
Registered: 2005-04-08
Posts: 3,108
Website

Re: Need to learn a new language

It might help to list what languages you already know.

I recommend lisp, if you're looking for a paradigm shift.

Offline

#3 2007-11-27 21:33:21

shining
Pacman Developer
Registered: 2006-05-10
Posts: 2,043

Re: Need to learn a new language

Functional languages like ocaml or haskell.


pacman roulette : pacman -S $(pacman -Slq | LANG=C sort -R | head -n $((RANDOM % 10)))

Offline

#4 2007-11-27 21:50:44

Dusty
Schwag Merchant
From: Medicine Hat, Alberta, Canada
Registered: 2004-01-18
Posts: 5,986
Website

Offline

#5 2007-11-27 22:40:25

Klepto
Member
From: Scotland
Registered: 2007-11-12
Posts: 41

Re: Need to learn a new language


I'm a moderate, it's the mainstream that's extremist.

Offline

#6 2007-11-27 23:40:30

tam1138
Member
Registered: 2007-09-10
Posts: 238

Re: Need to learn a new language

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. wink )

Offline

#7 2007-11-27 23:55:13

pauldonnelly
Member
Registered: 2006-06-19
Posts: 776

Re: Need to learn a new language

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

#8 2007-11-28 12:58:16

kakTuZ
Member
From: Hannover, Germany
Registered: 2007-10-20
Posts: 86

Re: Need to learn a new language

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

#9 2007-11-28 13:00:44

mucknert
Member
From: Berlin // Germany
Registered: 2006-06-27
Posts: 510

Re: Need to learn a new language

So you know OO. So how about good old procedural C? big_smile


Todays mistakes are tomorrows catastrophes.

Offline

#10 2007-11-28 14:51:58

Jerry
Member
From: Philippines
Registered: 2007-09-14
Posts: 126

Re: Need to learn a new language

Common Lisp and French tongue  The SICP book runs 600+ pages (edit) of lisp goodness.  As for french... I'll get a good manual someday.

happy coding! cool

Last edited by Jerry (2007-11-28 15:56:41)

Offline

#11 2007-11-28 15:15:29

ironbug
Member
Registered: 2007-11-04
Posts: 19

Re: Need to learn a new language

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

#12 2007-11-28 18:17:28

Bison
Member
From: Jacksonville, FL
Registered: 2006-04-12
Posts: 158
Website

Re: Need to learn a new language

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

#13 2007-11-28 21:26:33

kakTuZ
Member
From: Hannover, Germany
Registered: 2007-10-20
Posts: 86

Re: Need to learn a new language

Bison wrote:

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 tongue ), 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

#14 2007-11-29 00:59:38

pauldonnelly
Member
Registered: 2006-06-19
Posts: 776

Re: Need to learn a new language

ironbug wrote:

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

#15 2007-11-29 01:45:00

scrawler
Member
Registered: 2005-06-07
Posts: 318

Re: Need to learn a new language

newlisp

Offline

#16 2007-11-29 03:41:44

pauldonnelly
Member
Registered: 2006-06-19
Posts: 776

Re: Need to learn a new language

scrawler wrote:

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

#17 2007-11-29 10:44:18

Bison
Member
From: Jacksonville, FL
Registered: 2006-04-12
Posts: 158
Website

Re: Need to learn a new language

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

#18 2007-11-30 04:07:00

tam1138
Member
Registered: 2007-09-10
Posts: 238

Re: Need to learn a new language

Or you could go in a completely different direction and learn Verilog HDL.

Offline

#19 2007-11-30 09:58:22

Jansson
Member
From: Sweden
Registered: 2006-09-10
Posts: 106

Re: Need to learn a new language

Offline

#20 2007-11-30 11:00:44

lloeki
Member
From: France
Registered: 2007-02-20
Posts: 456
Website

Re: Need to learn a new language

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

#21 2007-11-30 11:26:02

xsdnyd
Member
Registered: 2007-04-28
Posts: 110

Re: Need to learn a new language

haskell smile
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

#22 2007-11-30 13:57:53

Bison
Member
From: Jacksonville, FL
Registered: 2006-04-12
Posts: 158
Website

Re: Need to learn a new language

How could I forget about eiffel?  Thats another good one to check out.

Offline

#23 2007-11-30 15:39:56

Bola
Member
From: Italia
Registered: 2007-02-16
Posts: 118

Re: Need to learn a new language

D language but there is only a manual in japanese... cool

Offline

#24 2007-11-30 15:45:17

jb
Member
From: Florida
Registered: 2006-06-22
Posts: 466

Re: Need to learn a new language

VHDL is always good tedious fun (at least the output is).  It's definitely different, I had a few classes in it.


...

Offline

#25 2007-11-30 16:09:43

elasticdog
Member
From: Washington, USA
Registered: 2005-05-02
Posts: 995
Website

Re: Need to learn a new language

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

Board footer

Powered by FluxBB