Baiting the PL people

Jul 12, 2009 21:50

I have several questions I'd like to ask the PL people out there (and really, anyone else who feels like giving their own answers, as I'm mostly soliciting opinions, scenarios and what-ifs rather than "facts"). I am posting them here because I would like to see some degree of lively debate. Anyway, here goes:

  1. Given how much the "standard ( Read more... )

Leave a comment

Comments 32

catamorphism July 13 2009, 05:05:21 UTC
Questions #1 and #2 don't interest me, because I am a pointy-headed academic who hates Americathe real world.

As for question #3, I remember that post of jcreed's. My own list would be:
1. monads
2. monads
3. monads

Reply

r_transpose_p July 13 2009, 05:18:30 UTC
What are monads? How do I learn about them? Why are they interesting/useful?

Reply

catamorphism July 13 2009, 05:37:04 UTC
Languages like C have just one way to combine different computations: the semicolon. The meaning of "A; B" is "do A, then do B". A monad is a generalized semicolon. For example, imagine if the semicolon meant "evaluate A, producing a result a and a new state s; then, evaluate B in state s." Okay, what does this buy you over programming in C, where the state is implicit? Programming in Haskell with monads, you get encapsulation of effects for free: by looking at the type of a function, you can see exactly what its effects are, because depending on what kind of "semicolons" you're using, the compiler infers a different type ( ... )

Reply

soong July 13 2009, 12:32:33 UTC
So, monads are syntactic sugar on passing around a context structure to all your functions.

Reply


combinator July 13 2009, 05:36:08 UTC
Caveat: I am only a language enthusiast, not a researcher ( ... )

Reply

soong July 13 2009, 12:31:33 UTC
(I am a practitioner/systems-hacker/anti-ivory-tower kinda guy)

1. I agree that parallelism and concurrency should be important features in future language design. I think Java is a current language that makes threading reasonably easy to get right, but it requires more smarts than the average programmer has. Future languages will make massively multithreaded/parallel computation voodoo-programmable for the masses (it may be bad, but it'll be likely correct), and easy for to do right for the top programmers.

2. I don't see any functional languages being used in industry projects. Javascript doesn't count because everyone tries real hard to pretend it's Java. If you insist on calling it a functional language because it can be one, well, I still think most of the javascript written is not in classical functional style ( ... )

Reply

catamorphism July 13 2009, 15:51:59 UTC
I don't see any functional languages being used in industry projects.

Er, what about the examples combinator just gave? There's also Haskell, which is in use at Galois, Credit Suisse, Deutsche Bank, and Amgen. Yahoo! uses Erlang. The schedule from last year's Commercial Users of Functional Programming workshop has more examples.

A type system should capture useful information and help me, not make bizarre hoops for me to jump through or block me with strange errors.

That's p. much the entire point of type systems research.

The problem with Java's type system is that it's unsound. (Well-typed Java programs can go wrong with errors that a reasonable type system could catch at copile time.)

Reply

combinator July 13 2009, 17:29:14 UTC
Facebook's chat is also written in Erlang.

The worst thing about Java's type system is that arrays are covariant. This makes using them a pain in a generic context.

Reply


jcreed July 13 2009, 06:17:27 UTC
that post. I'ma think about your actual questions tomorrow after I get some sleep.

Reply


slgarrett July 13 2009, 12:04:54 UTC
You get depth out of Javascript that I never knew was there.

Reply

angelbob July 13 2009, 14:44:05 UTC
It's a pretty impressive little language.

Reply

slgarrett July 13 2009, 22:03:01 UTC
I was just happy to have my mouse rollers work. :-)

Reply

r_transpose_p July 14 2009, 00:06:01 UTC
Yeah, thats about as far as I've gotten in practice...

Reply


angelbob July 13 2009, 15:58:26 UTC
Responding to questions 1 and 3... Have you already read enough Paul Graham to have homoiconicity (LISP macros) drummed into your head as a really, really good idea? All this Ruby metaprogramming stuff that people are so excited about is really a cheap half-measure of that with a syntax that (finally, blessedly) only sucks a moderate amount, not a huge amount.

And I say that as somebody who is really, really in favor of said Ruby metaprogramming stuff :-)

Reply


Leave a comment

Up