Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 An Open Challenge
Index -> Programming, General Programming -> Functional Programming
Goto page 1, 2, 3, 4  Next
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
wtd




PostPosted: Tue Feb 21, 2006 1:00 pm   Post subject: An Open Challenge

This challenge is posed to all programmers that frequent compsci.ca.

Learn O'Caml.

With all due respect to Haskell, rizzix, O'Caml is in many ways a more accessible language, and yet has the ability to really open minds.
Sponsor
Sponsor
Sponsor
sponsor
Cervantes




PostPosted: Tue Feb 21, 2006 6:12 pm   Post subject: (No subject)

That's quite the broad challenge. I second it, although I should continue learning it, myself.
rizzix




PostPosted: Tue Feb 21, 2006 11:32 pm   Post subject: (No subject)

Well, I'll look into it, although I should say, I'm very reluctant on learning new languages. Unless of course they are outstanding -- yes Haskell Smile

I usually just take a look at it Confused
wtd




PostPosted: Wed Feb 22, 2006 12:04 am   Post subject: (No subject)

Haskell's a great language, but...

The way the interactive environments work is a bit more complicated from an end-user/student perspective than that of O'Caml. This is probably the biggest problem I see for teaching.

Additionally, type classes are fantastic, but running into their errors is frightening for programmers new to functional programming. It's a lot to explain just so that someone can figure out why they can't add an int and a float the way they want to.

These are good things to know, but Haskell suffers from one of the same problems that Java does from a teaching perspective: even the simplest code leverages the fanciest of tricks. Just as one needs to understand the depths of OOP to really comprehend "Hello world", one needs a deep understanding of Haskell to understand similarly simple programs.
wtd




PostPosted: Wed Feb 22, 2006 12:06 am   Post subject: (No subject)

I think that coming from Java and its style of OOP, you'd find parameterized classes interesting. Incidentally, Scala employs the same concept.

Also, there are labelled arguments... not unlike your own little language idea. Smile
rizzix




PostPosted: Wed Feb 22, 2006 12:29 am   Post subject: (No subject)

Yea I know. Well I was really looking at Haskell from a programmer's perspective, not from that of a teacher Smile

I can see how it can be a real pain to teach, but if you already know the stuff, well this is the language and there's nothing better -- so far.

As for labeled methods, well they are simply not the same as multi-part methods.

code:
someMethod(label1: abc, lebel2: 23);

versus.
code:
someMethod:abc part2:123;


Scala is a complicated langauge. I do give the author a lot of credit. It's not easy creating such a thing. But seriously, I'd like it cleaner. =/

IMO, if a language can define it self, it is perfect. Unfortunatly the reality is, no language is perfect by that definition. Yet Haskell is not too far off.

This does not mean non-perfect languages are not worth learning. Heck, I know Java and I like it and Java is far from perfect. The same goes for Perl, C, Obj-C etc. (Yes C, contrary to what people might think, I like C. It isin't that bad, just unsafe. Now C++, that's terrible)
bugzpodder




PostPosted: Wed Feb 22, 2006 10:08 pm   Post subject: (No subject)

language should be only used as a tool to do the task, not as a God to worship upon
rizzix




PostPosted: Thu Feb 23, 2006 12:13 pm   Post subject: (No subject)

Yep. And use the better langauge when there's a choice. There's usually a choice.
Sponsor
Sponsor
Sponsor
sponsor
bugzpodder




PostPosted: Thu Feb 23, 2006 3:20 pm   Post subject: (No subject)

But only so many languages are mainstream thus limiting our choices because of incompatibilities.

.net is a pretty good attempt at addressing cross-language issues, of course, within microsoft realm. And Java does a good job at the cross-platform implementations.

It is only natural to use .net to develop in windows, and Java to develop java bases apps. Mixing just doesn't work.
rizzix




PostPosted: Thu Feb 23, 2006 8:44 pm   Post subject: (No subject)

Actually SUN and Microsoft are collaborating one getting these two technologies to work together.. We'll just have to wait and see how it goes.. Smile
bugzpodder




PostPosted: Thu Feb 23, 2006 9:11 pm   Post subject: (No subject)

actually java code compiles on J#... Of course, J# only work on .net framework which primarily works on Windows platforms...

edit: Mono is an open source .net framework implementation in linux?
http://www.mono-project.com/Main_Page
wtd




PostPosted: Thu Feb 23, 2006 9:17 pm   Post subject: (No subject)

bugzpodder wrote:
But only so many languages are mainstream thus limiting our choices because of incompatibilities.


That statemet, while true to some extent ignores one critical aspec of programming. Learning less "mainsream" languages makes you a better programmer, and that helps with the mainstream languages.
rizzix




PostPosted: Thu Feb 23, 2006 9:25 pm   Post subject: (No subject)

little off-topic Confused : just out of curiosity (wtd), why isin't Turing a good language for learning/teaching? (with an exception to the fact that it isin't free)

Ok I understand its OO implementation is even not close to acceptable, but aside that..?
wtd




PostPosted: Fri Feb 24, 2006 12:14 am   Post subject: (No subject)

The fact that it isn't free is a major problem. Students should feel free to experiment at any time. Turing actively discourages that.

As does the fact that it's not portable. If you want to use Tuing, you're effectively limited to using Windows, and accepting all of the problems that come with that.

There's the lack of any kind of interest in Turing outside of a very limited set of schools which poses a problem in that there are few external resources for students.

There's the overwhelming preponderance of bad instructional material, which ignores fundamental programming concepts while pushing graphics heavily.

There's the fact that it (badly) reinvents the wheel where standard input and output are concerned. This leads to some gross misconceptions about what other languages should be capable of out of the box.

As mentioned, OOP in Turing is a joke.
[Gandalf]




PostPosted: Fri Feb 24, 2006 1:22 am   Post subject: (No subject)

"Solutions":
1. There are ways around this, and although it provides an unnecessary obstacle, it seems the larger majority of people who come here already have Turing in some way or another.

2. Ignorance. There are many other non-portable programming languages out there, so why not Turing. Razz

3. CompSci.ca

4. Ignore it, see 3.

5. No solution*.

6. No solution*.

*Other than, of course, switching to another language. Which if I am not mistaken is the whole point heh.
Display posts from previous:   
   Index -> Programming, General Programming -> Functional Programming
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 4  [ 52 Posts ]
Goto page 1, 2, 3, 4  Next
Jump to:   


Style:  
Search: