PicoLisp ARadicalApproachtoApplicationDevelopment
SoftwareLab.AlexanderBurger Bahnhofstr.24a,D-86462Langweid abu@software-lab.de(www.software-lab.de) +49-(0)821-9907090 June22,2006
Abstract
Criteriaforproductiveapplicationdevelopmentareconsidered(yetagain),and apointismadewhyweregardLispasthe
only
languagesuitedforthattask.Pico Lispispresentedasasuccessfulexample,usedincommercialapplicationsformany years,andadaptedtothistask(arguably)betterthananyotherLisp.
1Introduction
Iamworkingasaconsultantandfreesoftwaredeveloper.Duringthepasttwentyyears mypartnersandIworkedonprojectsasdiverseaspre-pressimageprocessing,computer aideddesign,simulations,andvariousnancialandbusinessapplications. ForalmostalltheseprojectsweusedLisp. Mydailyjobistolistentocustomerrequests,toanalyzebusinessprocesses,anddevelop softwareaccordingtothoseneeds. Typically{inbusinessapplicationslikeERPorCRM{thisisaprocessofpermanent change.Atthebeginningofanewproject,neitherthedevelopernorthecustomerknow forsurewhatisneeded,norhowexactlythenalproductshouldlook. Itwillbefoundbyaniterativeprocess(somecallit\extremeprogramming"):Thecus- tomerevaluateseachnewversion,thenwediscussfurtherstrategies.Itisnotuncommon thatunanticipatedrequirementsmaycauselargepartsoftheprojecttoberewritten. Thisdoesnotnecessarilyimplybadplanning,becausetheprocessIdescribehere
is
the planning.Inanidealworld,softwaredevelopmentis
only
planning{thetimespentfor actuallywritingcodeshouldconvergetowardszero. Weneedaprogramminglanguagewhichletsusdirectlyexpresswhatwewanttheprogram todo,inapragmaticandexibleway.Andwebelievethateverythingshouldbeassimple aspossible,sothattheprogrammerisabletounderstandatanytimewhatisgoingon underthehood. Overtheyears,thePicoLisp[1]systemevolvedfromaminimalistLispimplementationto adedicatedapplicationserver.Pleasenotethatwearenottalkingofarapidprototyping tool.Ateachdevelopmentstep,theresultisalwaysafullyfunctionalprogram,nota prototype,growingtowardsthe(possiblynal)productionversion.Instead,youmay callitapowertoolfortheprofessionalprogrammer,wholikestokeepincontrolofhis evironment,andwantstoexpresshisapplicationlogicanddatastructuresinaconcise notation. 1
Leave a Comment