pig-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Benjamin Reed <br...@yahoo-inc.com>
Subject Re: Jaql reactions?
Date Sat, 08 Dec 2007 01:41:58 GMT
Ted I think you are looking at this from a specific functional programming 
perspective. Pig Latin is not a functional programming language. It's not 
even Turing Complete. It is a language to specify distributed computations 
and is meant to be embedded into other languages. Sounds like you want 
emaSchay or perhaps askellHey.

To some people [lambda(Map) return lambda(input) {foreach input generate 
flatten(Map(*))] would be a thing of beauty. To others it is a terrible 
flashback from a failed programming course; they would much rather have 
something embedded in Bash. Rather than pick one, we want to express what is 
necessary to optimize a run a computation and allow those expressions to be 
added to a host language. (Grunt is a noise made by a Pig, not a language :)

I think you and Utkarsh are looking at Jaql differently (and potentially 
filling in the blanks differently). For example: 

When Utkarsh said: 
> > If people really want map-reduce as a programming abstraction, where
> > the "group" operation is implicit, it would be easy to add this as a
> > macro in Pig.

and you said

> Indeed, but macros do not make a functional language.

Utkarsh was talking about the ability to specify a particular computation, not 
asserting that Pig was a functional language.

> Pig's lazy evaluation semantics remind me quite a bit of functional
> programming.  Why stop halfway?

I think you are right on here. We stopped where we did because the other half 
would be part of embedding Pig into Haskell (or any other language). So far 
we haven't run into anyone here at Yahoo who has asked for a functional 
language. The cries are all for Python and Perl bindings.


View raw message