p23 wadler

Upload: alvaro-souza

Post on 03-Jun-2018

230 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/12/2019 p23 Wadler

    1/5

    F u n c t i o n o l Pr og m in gW h y n o o n e u s e s f u n c t i o n a l l a n g u a g e s

    E di t o r : Philip Wadler Bell Labora tories Lucent Technolog ies; wadler@ research.bell-labs.com

    Ph i l i p W ad l erT o say t ha t no one uses f unc t i ona l l anguages i s an

    e x a g g e r a t i o n . P h o n e ca l ls i n t h e E u r o p e a n P a r l ia m e n ta r e r o u t e d b y p r o g r a m s w r i t t e n i n E r i c s s o n ' s f u n c t i o n a ll angu age E r l ang . V i r t ua l CD s a r e d i s t r i bu t ed on Cor -n e l l ' s n e t w o r k v i a t h e E n s e m b l e s y s t e m w r i t t e n i n I N -R I A ' s C A M L , a n d r e a l C D s a r e s h i p p e d b y P o l y g r a m i nE u r o p e u s i n g S o f t w a r e A G ' s N a t u r a l E x p e r t . F u n c t i o n a ll a n g u a g e s a r e t h e l a n g u a g e o f c h o i c e f o r w r i t in g t h e o r e mp r o v e r s , i n c l u d i n g t h e H O L s y s t e m w h i c h h e l p e d d e b u gt h e d e s ig n o f t h e H P 9 0 0 0 l i n e o f m u l t i p r o c e s so r s . T h e s eapp l i ca t i ons and o t he r s a r e desc r i bed i n a p r ev i ous co l -umn [ 1 ] .

    S t il l . . . I w o r k a t B e l l L a b s , w h e r e C a n d C + + w e r ei n v e n te d . C o m p a r e d t o u s e rs o f C , " n o o n e " i s a t o le r a b l ya c c u r a t e c o u n t o f t h e u s e r s o f f u n c t i o n a l la n g u a g e s .

    A d v o c a t e s o f f u n c t io n a l l a n g u a g e s c l a i m t h e y p r o d u c ea n o r d e r o f m a g n i t u d e i m p r o v e m e n t i n p r o d u c ti v i ty . E x -p e r i m e n t s d o n ' t a l w a y s v e r i f y t h a t f i g u re - - s o m e t i m e st h e y s h o w a n i m p r o v e m e n t o f o n l y a f a c t o r o f f o u r . S t i ll ,code t ha t ' s f our t i mes a s shor t , f our t i mes a s qu i ck t owr i t e , o r f our t i mes eas i e r t o ma i n t a i n i s no t t o be sn i f f eda t. S o w h y a r e n ' t f u n c t io n a l l a n g u a g e s m o r e w i d e l y u s e d ?

    1 R e a s o n sHer e i s a l i s t o f some of t he f ac t o r s t ha t i nh i b i t adop t i ono f f u n c t i o n a l l a n g u a g e s. I ' l l n o t e s o m e r e s e a r c h a im e da t a m e l i o ra t i n g th e s e f a c t o rs . I f y o u k n o w o f r e le v a n tp r o j e c t s th a t I ' v e f a i l e d t o m e n t i o n , p l e a s e b r i n g t h e m t omy a t t en t i on .

    M o s t o f t h e s e f a c t o rs r e m a i n s e r i o u s i m p e d i m e n t s f o rm o s t s y s t e m s . N o t a b l e e x c e p t i o n s a r e E r i c s s o n ' s E r-lang (www. e r l a n g , s e a n d H a r l e q u i n ' s M L W o r k s(w w w. h a r l e q u i n , c o r a ) , t w o i n d u st ri a l- g r ad e s y s te m sw i t h e x t e n s i v e u s e r e n v i r o n m e n t s a n d s u p p o r t.

    C o m p a t i b i l i t y C o m p u t i n g h a s m a t u r e d t o t h e p o i n tw h e r e s y s t e m s a r e o f t e n a s s e m b l e d f r o m c o m p o n e n t sr a t h e r t h a n b u i lt f r o m s c r a tc h . M a n y o f t h e s e c o m p o n e n t sa r e wr i t t en i n C o r C++ , so a f o r e i g n f unc t i on i n t e r f ace

    t o C i s e s sen t ia l , and i n t e r f aces t o o t he r l anguages can beuse f u l .

    T he i so l a t i on i s t na t u r e o f f unc t i ona l l anguages i s be -g i nn i ng t o g i ve way t o a sp i r i t o f ope n i n t e r change . S e r i -o u s i m p l e m e n t a t i o n s n o w r o u t i n e l y p r o v i d e i n t er f a c e s t oC , a n d s o m e t i m e s o t h e r la n g u a g e s . I n t e r w o r k i n g w it h t h ei mper a t i ve wor l d i s s t r a i gh t f o r war d f o r s t r i c t l anguagesl i ke M L or E r l ang , bu t t r i ck i e r f o r l azy l anguages l i keH a s k e l l o r C l e a n , s i n c e l a z i n e ss m a k e s t h e o r d e r o f e v a l-ua t i on d i f f i cu l t t o p r ed i c t . Ho wev er , t h r ough a p l eas -i n g i n t e rp l a y o f t h e o r y a n d p r a c t i c e , r e c e n t re s e a r c h h a ss h o w n h o w a b s t r a c t c o n c e p t s s u c h a s m o n a d s o r l i n e a rl o g i c c a n b e a p p l i e d t o s m o o t h l y i n t e r f a c e la z y f u n c t i o n a ll anguag es t o t he r ea l wor l d [ 2 , 3 ] .

    C o n q u e r i n g i s o l a t i o n i s m i s a t a s k f o r e v e r y o n e , n o tj u s t fu n c t i o n a l p r o g r a m m e r s . T h e c o m p u t i n g in d u s t r yi s n o w b e g i n n i n g t o d e p l o y s t a n d a r d s , s u c h a s C O R B Aa n d C O M , t h a t s u p p o r t t h e c o n s t r u c t i o n o f s o f t w a r e fr o mr e u s a b l e c o m p o n e n t s . R e c e n t w o r k a l lo w s a n y H a s k e l lp r o g r a m t o b e p a c k a g e d a s a C O M c o m p o n e n t , a n d a nyC O M c o m p o n e n t t o b e c al le d f r o m H a s k el l. A m o n g o t h e rapp l i ca t i ons , t h i s a l l ows Haske l l t o be use d a s a s c r i p t ingl a n g u a g e f o r M i c r o s o f t ' s I n t e r n e t E x p l o r e r w e b b r o w s e r[4] .

    L i b r a r i e s T h e f a s h i o n a b l e i d e a o f s o f t w a r e r e u s e h a sb e e n a r o u n d f o r a g e s i n t h e f o r m o f s o f t w a r e l ib r a ri e s. Ag o o d l i b r a r y c a n m a k e o r b r e a k a l a n g u a g e . U s e r s a r e at -t r a c t e d to T c l p r i m a r i l y o n t h e s t r e n g th o f t h e T k g r a p h i c sl i b r a ry . M uch o f t he a t t r ac t i venes s o f J ava has li t t le t o dowi t h t he l an gua ge i t s e lf , bu t w i t h t he a s soc i a t ed l i b r a r ie sf o r g r aph i cs , ne t wor k i ng , da t abases , t e l ephony , and en-t e r p r i s e s e r ve r s . ( M uch o f t he una t t r ac t i venes s o f J ava i sdue t o t he s am e l i b r a r i e s . )

    C o n s i d e r a b l e e f f o r t h a s b e e n e x t e n d e d o n d e v e l o p i n ggr aph i c use r i n t e r f ace l i b r a r i e s f o r f unc t i ona l l anguages .Haske l l boas t s a p l e t hor a : F udge t s , Gadge t s , Hagg i s , andH u g s T k . S M L / N J h a s t w o , e X e n e a n d S M L T k . T h eS M L l a n g u a g e c o m e s w i t h a p o w e r f u l m o d u l e s y s t e m ,whi ch m akes f l ex i b l e l i b r a r ie s eas i e r t o cons t ruc t . Onee x a m p l e o f s u c h a l i b r a r y is M L R I S C , a r e ta r g e t a b l e b a c k

    2 3

  • 8/12/2019 p23 Wadler

    2/5

    F u n e o n a l P r o g r am m in ge n d t h a t h as b e e n u s e d f o r S M L a n d C c o m p i l e r s a nd h a sbeen ad op t ed t o a num ber o f a r ch i t ec t u r es [ 5 ].

    P o r t a b i l i t y I h a v e h e a r d o f n u m e r o u s p r o j e c ts w h e r e Cwon ou t ove r a f unc t i ona l l anguage , no t because C r unsf a s te r ( a l th o u g h o f t e n i t d o e s ) , b u t b e c a u s e t h e h e g e m o n yof C gua r an t ees t ha t i t i s w i d e l y por t ab l e . F or exam pl e ,r e s e a rc h e r s a t L u c e n t w o u l d h a v e p r e f e r r e d t o b u i ld t h eP R L d a t a b a s e l a n g u a g e u s i n g S M L , b u t c h o s e C + + b e -c a u s e S M L w a s n o t a v a i la b l e o n t h e A m d a h l m a i n f r a m et hey wer e r equ i r ed t o use . O n t he o t he r hand , abs t rac t ma-ch i nes a r e a popu l a r i mpl emen t a t i on t echn i que , f o r bo t hf unc t i ona l l anguages and f o r J ava , in pa r t because w r i ti ngt he mac h i ne i n C m akes i t i s ea sy t o por t to a w i de va r i e t yof a r ch i t ec t u r es .

    A v a i l a b i l i t y E v e n w h e n a f u n c t i o n a l l a n g u a g e h a s b e e np o r t e d to t h e m a c h i n e a n d o p e r a t i n g s y s te m a t h a n d , i tm a y n o t b e e a s y t o u se . F o r e x a m p l e , a ty p i c a l r e s p o n s ef r om a use r o f G l asgo w Ha ske l l i s tha t i ns t a ll i ng i t was an" a d v e n t u r e " .

    L a r ge p r o j ec t s a r e unde r s t andab l y r e l uc t an t t o com-mi t t o a l anguage un l es s i t comes w i t h a gua r an t ee o fcon t i nu i n g suppor t . A f ew func t i ona l l anguages a rea v a i la b l e c o m m e r c i a l ly : R e s e a r c h S o f t w a r e m a r k e t s M i -r a n d a , A b s t r a c t H a r d w a r e m a r k e t s P o l y M L , I S L m a r -k e t s P o p l o g / S M L , H a r l e q u i n m a r k e t s M L W o r k s , a n dE r i c s s o n h a s a d i v i s io n d e v o t e d t o s u p p o r t o f E r l an g .None t he l e s s , f o r many f unc t i ona l l anguages , i t r ema i nsd i f f icu l t t o ensu r e a s t ab l e sou r ce and r e l i ab l e suppor t.

    An add i t i ona l p r ob l em a r i s e s because f unc t i ona l l an -guages a r e o f t en unde r ac t i ve deve l opm ent , c r ea t ing t en-s i on be t ween t he needs o f s tab i l i ty and r e sea r ch . T h eH a s k e l l c o m m u n i t y i s a t t e m p t i n g t o r e s o l v e t h e s e b yde f i n i ng S t anda r d Haske t l , a ve r s i on o f t he l anguage t ha tw i l l r ema i n s t ab l e and suppor t ed whi l e o t he r ve r s i ons o fHask e l l con t i nu e to evo l ve [ 6 ].

    P a c k a g a b i l i t y F o l l o w i n g t h e L I S P tr a d it io n , m a n yf unc t i ona l l anguage i mpl ement a t i ons o f f e r a r ead- eva l -p r i n t l oop . W h i l e conve n i en t , i t i s a l so e s sen t i a l t o p r o -v i d e s o m e w a y t o c o n v e r t a f u n c t i o n a l p r o g r a m i n t o as t a n d a l o n e a p p li c a ti o n p r o g r am . M o s t s y s t e m s n o w o f -f e r t h is . H owe ver , these sys t em s o f t en i ncor po r a t e t he en-t i r e r un t i m e packa ge f o r t he l i b r a r y , and t hus h ave unac -c e p t a b l y l a rg e m e m o r y f o o t p ri n t s. A n a b i li t y to d e v e l o pcom pac t s t anda l one app l i ca t i ons i s e s sen ti a l .

    T o o l s T o b e u sa b l e , a l a n g u a g e s y s te m m u s t b e a c c o m -pan i ed b y a debugg er and a p r o fi l e r. Jus t a s w i t h i n -t e r l anguage wor k i ng , des i gn i ng such t oo l s i s s t r a i gh t f o r -war d f o r s t r ic t l anguages , bu t t r i ck i e r f o r l azy l anguages .However , t he r e a r e f ew debugger s o r p r o f i l e r s f o r s t r i c tl anguages , pe r ha ps becau se cons t r uc t i ng t hem i s no t pe r -ce i ved a s r e sea r ch . T ha t is a shame , s i nce such t oo l s a resor e l y neede d , and t he r e r ema i ns mu ch o f i n t e r e s t t o l ea r nabou t t he i r cons t r uc t i on and use .

    Cons t r uc t i ng debugger s and p r of i l e r s f o r l azy l an-guage s i s r ecog n i ze d a s d if f i cu lt . F or t una t e l y , t he r e havebee n g r ea t s t r i des i n p r o f i l e r r e sea r ch , an d mo s t i mpl e -m e n t a t i o n s o f H a s k e l l a re n o w a c c o m p a n i e d b y u s a b l et i me and space p r o f i li ng t oo l s . Bu t t he s low ra t e o fp r o g r e s s o n d e b u g g e r s f o r l a z y l a n g u a g e s m a k e s u s r e -sea r che r s l ook , we l l , l azy .

    A t a l a r ge r s ca l e , one want s i n t egr a t ed deve l opmente n v i r o n m e n t s a n d s o f t w a r e e n g i n e e r i n g m e t h o d o l o g i e s .B u i l d i n g a n i n t e g ra t e d d e v e l o p m e n t e n v i r o n m e n t is a l o to f wor k w i t h l i t tl e r e sea r ch con t en t , so i t is no t su r pr i s i ngt ha t t h i s has a t t r ac t ed l i t tl e a t ten t i on . Bu t t he r e i s p l en t y o fi n t e re s t in g w o r k t o b e d o n e i n a p p l y i n g s o f t w a r e m e t h o d -o l og i es t o f unc t i ona l l anguages , and i t i s d i s appo i n t i ngthat there i s vi r tual ly no e f for t in thi s area .T r a i n i n g q b p r o g r a m m e r s p r a c t i c ed i n C , C + + , o r J a v a,f u n c t i o n a l p r o g r a m s l o o k o d d . I t t ak e s a w h i l e t o c o m e t og r i p s w i t h w r i ti n g f ( x , y ) a s f x y . C u r r ie d f o o d a n dcur r i ed f unc t i ons a r e bo t h acqu i r ed t a s te s .

    P r o g r a m m e r s p r a c t i c e d i n i m p e r a t i v e l a n g u a g e s a r eused t o a ce r t a i n s t y l e o f p r ogr am mi n g . F or a g i ven t a sk ,t h e i m p e r a t i v e s o l u t io n m a y l e a p i m m e d i a t e l y to m i n do r b e f o u n d i n a h a n d y t e x t b o o k , w h i l e a c o m p a r a b l ef unc t i ona l so l u t i on m ay r equ i r e cons i d e r ab l e e f f o r t t o f i nd( e v e n i f o n c e f o u n d i t is m o r e e l e g a n t ). A n d t h o u g h t h e r ea r e a l a r ge r ang e o f p r ob l em s t ha t pos ses s e f f i c ien t so l u -t i ons i n a f unc t i ona l l anguage , t he r e r ema i n som e toughnut s f o r whi ch t he be s t know n so l u t i ons a r e i mpe r a t i ve i ns t y l e . ( F or these r easons , ma ny f unc t i on a l languag es p r o -v i de an e scape t o t he i mper a t i ve s t y l e , f o r i ns t ance S M Li nc l udes upda t eab l e r e f e r ences a s a bas i c da t a t ype , andH a s k e l l p r o v i d e s t h e m v i a m o n a d s [ 7 ]. )

    T he t r a i n i ng p r ob l em i s no t i n t r ac tab l e . S of t w ar e AGf oun d t hey cou l d t r a in i ndus t r ia l p r ogr am me r s t o use Na t -u r a l E x p e r t i n a o n e - w e e k c o u r s e t h a t i n c l u d e d l a z y e v a l -u a t io n , p o l y m o r p h i c t y p e s , a n d h i g h e r - o r d e r fu n c t io n s .T y p i c a ll y , s t u d e nt s w e r e m i f f e d w h e n t h e c o m p i l e r w o u l dr epea t ed l y r e j ec t p r ogr a ms f o r t ype e r r o r s , bu t p l easan t l ysur pr i s ed whe n t he i r p r ogr am s f i na l l y pas sed t he t ypechec ke r and r an c or r ec t l y on t he f i r s t t r y [ 8 ] .

    2 4

  • 8/12/2019 p23 Wadler

    3/5

    F u n c io n a i P r o i n gPopular i ty I f a m a n a g e r c h o o s e s t o u s e a f u n c t i o n a ll a n g u a g e f o r a p r o j e c t a n d t h e p r o j e c t f a i l s , t h e n h e o rs h e w i l l c e r t a i n l y b e f ir e d. I f a m a n a g e r c h o o s e s C + + a n dt h e p r o j e c t f a i l s , t h e n h e o r s h e h a s t h e d e f e n s e t h a t t h es a m e t h i n g h a s h a p p e n e d t o e v e r y o n e e l se .W h i l e m a n a g e m e n t p r o b l e m s a r e a s i g n i f i c a n t b a r r i e r ,t h e f l i p s id e is a s i g n i f i can t o p p o r tu n i ty : a l a rg e p ro j ec tt h a t i s in t r o u b l e m a y b e w i l l i n g t o c o n s i d e r s w i t c h i n g t oa f u n c t i o n a l l a n g u a g e b e c a u s e t h e i n c r e a s e i n p r o d u c t i v i t ym a y g e t t h e m o u t o f a j a m . A n e f f e c ti v e w a y i n c an b e t oo f f e r t o p r o t o t y p e t h e s o l u t i o n i n a f u n c t i o n a l l a n g u a g e ,a n d o n c e t h e p r o t o t y p e i s r u n n i n g s h o w h o w t o s c a l e i t t oa fu l l so lu t i o n .

    W h i l e m a n a g e r s h a v e t h e i r w o r r i e s , s o t o o d o m a n -a g e e s . E x p e r i e n c e w i t h C + + o r J a v a w i ll b u f f u p y o u rr e s u m e n i c e l y , w h i l e H a s k e l l o r S M L w i l l d o y o u l i t t l eg o o d . L u c e n t ' s P d i f f s y s t e m , w r i t t e n in S M L , i s a k e y t o o li n m a i n t a i n i n g d a t a b a s e s o f t w a r e f o r t h e 5 E S S s w i t c h . N od e v e l o p e r c o u l d b e f o u n d w i l l i n g t a k e o n t h e r o l e o f m a i n -m i n i n g t h e s y s t e m , a n d e v e n t u a l l y a p h y s i c i s t l o o k i n g t osw i t ch f i e ld s w as h i r ed .

    2 N o n - r e a s o n sO n t h e o t he r h a n d , t h e r e a r e t w o p i e c e s o f c o m m o n c a n ta s t o w h y p e o p l e d o n ' t u s e f u n c t i o n a l l a n g u a g e s t o w h i c hI d o n o t su b sc r ib e .

    Per formance T h i s m i g h t h a v e b e e n a r e a s o n a d e c a d ea g o , b u t t h e s e d a y s t h e p e r f o r m a n c e o f f u n c t i o n a l l a n -g u a g e s o f t e n r i v a ls C . T h a t ' s a r o u g h e s t i m a t e . P e r f o r -m a n c e c a n b e s i g n i f i c a n t l y i n f e r i o r t o C f o r s o m e a p p l i -c a t i o n s , a n d a w e e b i t b e t t e r f o r o t h e r s . B u t a s a r o u g hs t a r ti n g p o i n t , w i t h i n a f a c t o r o f t w o o f C s e e m s f a i r.

    M o r e i m p o r t a n t l y , e x p e r i e n c e s h o w s t h a t w h i l e p e r f o r -m a n c e t h a t r i v a l s C h e l p s , i t i s n o t a r e q u i r e m e n t f o r s u c -c e s s . T c l / T k , P e r l , a n d V i s u a l B a s i c a l l r o s e t o p r o m i -n e n c e w i t h i m p l e m e n t a t i o n s t h a t a r e in t e r p r e te d . J a v a h a sb e c o m e e n o r m o u s l y s u c c e s s f u l w i t h p e r f o r m a n c e s i g n if i -c a n t l y s h o r t o f C . I n t h e f u n c t i o n a l w o r l d , E r l a n g a c h i e v e di t s f i r s t su ccesses a s an i n t e rp re t ed l an g u ag e .

    O n e h a s l a n g u a g e s w i t h h i g h p e r f o r m a n c e t h a t a r e n o tw i d e l y u s e d , a n d l a n g u a g e s w i t h m i d d l i n g p e r f o r m a n c et h a t a r e w i d e l y u s e d . P e r f o r m a n c e i s s o m e t i m e s a n i s s u e ,b u t i t is r a r e f o r i t t o b e t h e d ec id in g f ac to r . I t is im -p r u d e n t t o e x p e c t t h a t a l l w e n e e d d o i s m a k e f u n c t i o n a ll a n g u a g e s r u n b l i n d i n g l y f a s t i n o r d e r f o r t h e m t o b e c o m ei m m e n s e l y p o p u l a r .

    They don ' t ge t i t " F u n c t io n a l p r o g r a m m i n g i s b e a u -t i fu l , a j o y t o b e h o l d . O n c e s o m e o n e u n d e r s t a n d s f u n c -t i o n a l p r o g r a m m i n g , h e o r s h e w i l l s w i t c h t o it i m m e d i -a t e ly . T h e m a s s e s t h a t s ti c k w i t h o u t m o d e d i m p e r a t i v ea n d o b j e c t - o r i e n t e d p r o g r a m m i n g d o s o o u t o f b li n d p r e j-u d i c e . T h e y j u s t d o n ' t g e t i t .

    T h e a b o v e p a r a g r a p h e c h o e s b e l i e f s d e e p l y h e ld b ym a n y r e s e a r c h e r s . B u t t h e l o n g l i s t i n th e p r e c e d i n g s e c -t i o n s h o u l d m a k e i t c l e a r t h a t i t m a y b e p o s s i b l e t o b ea t t r a c t e d b y f u n c t i o n a l p r o g r a m m i n g , b u t s t i ll f i nd i t u n -u sab l e .

    F o r i n s t a n c e , h e r e i s a p o s t i n g t o t h e H a s k e l l m a i l i n glist .

    I h a v e b e e n t r y i n g t o l e a r n H a s k e l l a n d h a v eb e e n i m p r e s s e d w i t h b o t h i t s e l e g a n c e a n d t h ew a y i t a l l o w s m e t o w r i t e c o d e t h a t w o r k s o nt h e f i rs t t r y ( o r t w o ) . H o w e v e r , I a m n o t a r e -s e a r c h e r. I d o c o m m e r c i a l s o f t w a r e d e v e l o p -m e n t a n d n e e d s o m e d o c u m e n t a t i o n a n d s t a b i l -ity . [9]

    M a i l i n g l i st s r e l a t e d t o f u n c t i o n a l l a n g u a g e s a r e r i f e w i thr e q u e s t s f o r f o r e i g n f u n c t i o n i n t e r f a c e s , l i b r a r i e s , a n dto o l s .

    D o u b t l e s s , t h e r e a r e p r e j u d i c e d i n d i vi d u a l s o u t t h e r e,a c c u s t o m e d t o C a n d i t s v a r i a n t s a n d d i s m i s s i v e o f al -t e r n a ti v e s . B u t m a n y o u t t h e r e d o " g e t it " , a n d e s c h e wf u n c t i o n a l p r o g r a m m i n g f o r o t h e r r e a so n s .

    3 L e s s o n sT o s u m m a r i z e , t h e r e a r e a l a r g e n u m b e r o f f a c t o r s t h a th i n d e r t h e w i d e s p r e a d a d o p t i o n o f f u n c t i o n a l l a n g ua g e s .T o b e w i d e l y u s e d , a l a n g u a g e s h o u l d s u p p o r t i n t e r l a n -g u a g e w o r k i n g , p o s s e s s e x t e n s i v e l i b r a r i e s , b e h i g h l yp o r t a b l e , h a v e a s t a b l e a n d e a s y t o i n s t a l l i m p l e m e n t a -t i o n , c o m e w i t h d e b u g g e r s a n d p r o fi l e r s , b e a c c o m p a n i e db y t r a i n i n g c o u r s e s , a n d h a v e a g o o d t r a c k r e c o r d o n p r e -v i o u s p r o j e c t s . I t h e l p s i f t h e i m p l e m e n t a t i o n i s e f f ic i e n t,b u t t h is i s n o t a n a b s o l u t e r e q u ir e m e n t . P o t e n t i a l u se r sm a y f i n d t h e l a n g u a g e a t t r a c ti v e , b u t r e j e c t i t b e c a u s e o fs o m e o r a l l o f t h e p r e c e d i n g f a c t o r s . H e r e a r e th e l e s s o n sI d r a w f r o m t h i s e x e r c i s e .

    K i l l e r A p p T h e f a c t o r s l i s te d c o n s t i t u t e a s i g n if i c a n tb a r r i e r t o u s e o f f u n c t i o n a l l a n g u a g e s , b u t n o t a n a b s o l u t eb a r r ie r . A u s e r w i l l f o r e g o m a n y c o n v e n i e n c e s i f g i v e n

    2 5

  • 8/12/2019 p23 Wadler

    4/5

    P r o g r amm i n ga c o m p e l l i n g r e a s o n to d o s o . T c l / T k a n d P e r l ro s e t op r o m i n e n c e w i t h o u t b e n e f i t o f d e b u g g e r s o r p r o f il e rs .

    S o m e r e s e a r c h e r s h o p e t h a t t h e h i g h - l e v e l n a t u r e o ff unc t i ona l l anguage s w i l l p r ove compe l l i ng on i ts own,bu t expe r i ence t o da t e sugges t s t h i s hope i s mi sp l aced .I ns t ead , exp e r i enc e shows t ha t use r s w i l l be d r awn t o al anguage i f i t l e t s t hem c onve n i en t l y do somet h i ng t ha to t he r wi se i s d i f f i cu lt t o ach i eve . L i ke o t he r new t echno l o-g i e s , f unc t i ona l l anguages mu s t s eek t he i r k i l l e r app .

    A p r e v i o u s c o l u m n l i s t e d a n u m b e r o f s u c h a p p l i c a -t i ons , s tr e s s i ng how each exp l o i t ed som e s t r eng t h o f f unc -t i ona l l anguages [ 1 ]. T e l ecom mun i ca t i ons deve l ope r s a r ed r a w n t o E r l a n g b y i ts s u p p o r t f o r c o n c u r r e n c y a n d d i s tr i-bu t i on ; t he l a t t e r i s t i ed d i r ec t l y t o t he f ac t t ha t f unc t i ona lda t a , be i ng i m mut ab l e , i s we l l su i t ed f o r t r ansmi s s i ona c r o s s a n e t w o r k . C r e a t o r s o f t h e o r e m p r o v e r s a r e d r a w nt o M L b y i t s s u p p o r t f o r s y m b o l i c c o m p u t a t io n s . G e n e t i -c i s t s a r e d r awn t o CP L / Kl e i s l i because i t s t ype sys t emsuppor t s acces s to he t e r oge neo us da t abases , and becauset he ma t hemat i ca l p r ope r t i e s o f f unc t i ona l l anguages canb e e x p l o i t e d i n q u e r y o p t i m i z a t io n . E x p e r t s y s t e m d e v e l -o p e r s a r e d r a w n t o N a t u r a l E x p e r t b e c a u s e l a z y e v a lu a -t io n r e s e m b l e s r e a s o n i n g b y b a c k w a r d c h a i n i n g , a n d b e -cause l azy eva l ua t i on enab l es a space - e f f i c i en t i n t e r f acet o da t abases .

    T o p - n o t c h f u n c t i o n a l p r o g r a m m i n g r e s e a r c h i s o f t e nt i ed to app l i ca ti ons . Ca r n eg i e - M el l on g r ounds i ts f unc -t io n a l p r o g r a m m i n g w o r k i n t h e F o x p r o j e c t, w h i c h a i m st o bu i l d ne t wor k d r i ve r s i n S M L . Cha l mer s r e sea r che r shave c l ose r e l a t i ons w i t h Car l s t ed t and L ogi kk onsu l t , andamo ng o t he r t h i ngs have a pp l i ed pa r t i a l eva l ua t i on to a i r -l i ne s chedu l i ng . G l asgo w t eame d up wi t h Yor k t o p r o -d u c e a w h o l e b o o k o f a p p l i ca t io n s . T h e O r e g o n G r a d u a t eI ns t i tu t e i s t eami ng up wi t h I n t e l t o l ook a t ha r dwar e de -s i gn . Ya l e r e sea r che r s have app l i ed f unc t i ona l p r ogr am-m i n g t o m u s i c p e r f o r m a n c e a n d n a t ur a l l a n g u a g e u n d e r -s t and i ng , and a r e t eami ng u p wi t h M i c r osof t t o l ook a ta n i m a t io n . H o w e v e r , m o s t o f t h is r e s e a r c h h a s n o t c e n -t e r ed a r ound app l i ca t i on l ib r a r i e s o r packa ges t ha t mi gh ta t t r ac t s ign i f i can t use r com mu ni t i e s .

    App l i ca t i ons have unexp l or e d dep t hs . Ju mp i n , t he wa-ter ' s f ineR e s e a r c h e m p h a s i s D e s p i t e t h e a p p l ic a t io n s w o r kl i st e d a b o v e , f u n c t io n a l p r o g r a m m i n g r e s e a r c h e rs p l a c ef a r m o r e e m p h a s i s o n d e v e l o p i n g s y s te m s t h a n o n a p p l y -i ng t hose sys t ems . F ur t he r , t he bu l k o f e f f o r t i s devo t ed t ol anguage des i gn , p r ogr am ana l ys i s , and t he cons t r uc t i onof op t i mi z i ng com pi l e r s , w i t h f a r le s s t o debugge r s , p r o -f i le r s , and so f t w ar e eng i nee r i ng t oo l s and me t ho do l og i es .

    S h i f t s in r e sea r ch em phas i s ma y r eq u i r e sh i f ts i n t he r e -war d s t r uc t u r e . As Kuhn no t ed i n The Structure o f Scien-ti f ic Revolutions t h e m a i n s t r e a m o f a c a d e m i c w o r k c o n -s i s t s o f i nc r ement a l con t r i bu t i ons t o ex i s t i ng pa r ad i gms .W i t h i n f u n c t i o n a l p r o g r a m m i n g , t h e m a i n s t r e a m i s p r o -g r a m a n a l y s i s a n d c o m p i l e r d e v e lo p m e n t . L e a d e r s i n t hef i e l d nee d t o mo ve i n t o t he new a r eas o f t oo l s and app l i-c a t io n s , a n d c o n f e r e n c e s a n d j o u r n a l s n e e d t o e x p l ic i tl ywe l com e con t r i bu t i ons i n t hese a reas . Gop a l Gu pt a i so r gan i z i ng t he P ADL 99 , t he F i r s t I n t e r na t i ona l Conf e r -enc e on P r ac t i ca l Asp ec t s o f Dec l a r a t i ve L anguag es [ 10].T o a i d a pa r ad i gm sh i f t , a f i e l d may se t ou t new c r i t e r i af o r j u d g i n g n e w w o r k . S i m o n P e y t o n J o n e s a n d m y s e l fh a v e j u s t c o m p l e t e d a n e d i t o r i a l f o r th e Journal o f Func-t iona l Programm ing t h a t w e l c o m e s p a p e r s o n f u n c t i o n a lp r o g r a m m i n g p r a c t i c e a n d e x p e r i e n c e , a n d s e t s o u t t h ec r i t e r i a we a pp l y t o j udg e t hem [ 11] .A m o d e s t p r o p o s a l E v e n a m o d e s t i m p l e m e n ta t io n o fa f u n c t i o n a l l a n g u a g e s h o u l d p r o v i d e a f o r e i g n f u n c t i o ni n t e r f ace , a debugger , and a p r o f il e r . B y t h i s measur e , Ik n o w o f o n l y a f e w m o d e s t i m p l e m e n t a t i o n s o f f u n c t io n a ll a n g u a g e s, i n c l u d i n g E r i c s s o n ' s E r l a n g , H a r l e q u i n ' s M LW o r k s , an d I N R I A ' s C A M L .

    A n d r e w T o l m a c h a n d A n d r e w A p p e l d e v i s e d a n i n -g e n i o u s d e b u g g e r f o r th e S M L / N J i m p l e m e n t a t i o n [ 1 2] ,b u t a s t h e i m p l e m e n t a t i o n e v o l v e d th e d e b u g g e r w a s n o tma i n t a i ned , and t he r e i s no deb ugge r ava i lab l e f o r t he cur -r e n t r e l e a s e o f S M L / N J .

    T he r e is a t ens i on be t ween bu i l d i ng use f u l sys t ems andex t end i ng t he f r on t i e r s o f r e sea r ch , and f unc t i ona l l an -g u a g e r e s e a r c h e r s c a n p r i d e t h e m s e l v e s o n h a v i n g f o u n dt h e r e s o u r c e s t o b u i ld s o m e e x c e l l e n t s y s te m s . W e n o wneed t o t ake t he nex t s t ep , and ensur e t hese sys t ems i n -c l ude e s sen t i a l in t e r f aces and t oo l s . W e shou l d no l ong e rse t tl e f o r i mpl eme nt a t i ons t ha t a r e no t even mode s t .

    H o p e T h i s lo n g l is t o f r e a s o n s w h y n o o n e u se s fu n c -t io n a l l a n g u a g e s m a y l o o k d e p r e s s i n g , b u t I p r e f e r t o l o o kon t he b r i gh t si de . P eo p l e do no t r e j ec t f unc t i ona l l an -g u a g e s b e c a u s e o f s t u p i d it y , r a th e r t h e y r e j e c t t h e m f o r ava r i e t y o f goo d r easons . S t up i d i t y i s f amo us l y re s i s t an tt o a t ta c k - - t h e s e o t h e r p r o b l e m s a r e s o m e t h in g w e c a ntackle .

    R e f e r e n c e s[ 1 ] P h i l i p W adl e r , An angr y ha l f - dozen , A C M S I G -

    PLAN No t i ces 33( 2) : 25- 30 , F ebr ua r y 1998 . [ NB.

    2 6

  • 8/12/2019 p23 Wadler

    5/5

    u n c t i o n a l r o g r a m m i nTable of contents on the cover of this issue iswrong.]

    [2] Philip Wadler . How to declare an imperative.ACM Comput ing Surveys 29(3):240-263, Septem-ber 1997.

    [3] Rinus Plasmeijer and Marko van Eekelen, Pureand efficient functional programming using theunique features of Clean. A C M S I G P L A N N o -tices to appear.

    [4] Simon Peyton Jones, Erik Meijer, and Daan Leijen.Scripting COM components in Haskell. I E E EF~f th In ternat ional C onference on S of tware ReuseVancouver, BC, June 1998.w ww . h a s k e l l , o r g / a c t i v e /a c t i v e h a s k e l i. h t m l

    [5] Lal George, MLRISC: Customizable and ReusableCode Generators, Bell Labs technical report, May1997.w w w . c s . b e l l - l a b s , c o m / c m / c s / w h a t /s m l n j / d o c / M L R I S C /

    [6] John Hughes, editor, Standard Haskell.w w w. c s . c h a l m e r s , s e / ~ r j m h / H a s k e l l /

    [7] J. Launchbury and S. L. Peyton Jones, Lazy func-tional state threads. In ACM Conference on Pro-gramming Language Des ign and Imp lemen ta t i onOrlando, Florida, 1994.

    [8] Nigel W. O. Hutchison, Ute Neuhaus, ManfredSchmidt-Schauss, and Cordy Hall. Natural Ex-pert: a commercial functional programming en-vironment. Journa l o f Funct i ona l Programming7(2): 163-182, March 1997.

    [9] S. Alexander Jacobson a l ex@i 2x , corn, letter toHaskell mailing list, 3 May 1998.[ 10] Gopal Gupta, chair, Firs t International Conferenceon Practical Aspects.

    w w w . c s . n s m s u , e d u / ~ c o m p l o g /c o n f e r e n c e s / p a d l 9 9 /

    [11] Simon Peyton Jones and Philip Wadler. Editorial:Practice and experience papers, Journa l o f Func-t ional Programming to appear.w w w . dc s . g l a s g o w , a c . u k / j f p /

    [12] Andrew Tolmach and Andrew Appel, A Debuggerfor Standard ML. Journa l o f Funct i ona l Program-ming 5(2): 155-200, April 1995.

    Phi l ip Wad ler works w i th t he U n ix and ML groups a t Be l lLabs. He m ust l ike working wi th o thers: he i s co-designero f t he Haske l l and G J languages co -au thor o f Introduc-tion to Functional Programming, and co-Edi tor- in-Chiefo f t he Journal of Functional Programming.

    27