Squeak : Un Smalltalk libre Multimé .Steve Jobs admet avoir été fortement influencé par une démonstration

  • View
    212

  • Download
    0

Embed Size (px)

Text of Squeak : Un Smalltalk libre Multimé .Steve Jobs admet avoir été fortement influencé par une...

  • Squeak : Un Smalltalk libre Multimdia

    S.DucasseH.Fernandes

    Squeak : Le futur en marcheSqueak(www.squeak.org) est leSmalltalk libredvelopp chezApple,DisneyetplusrcemmentchezHPLabspar unepartie de lquipeoriginale deXerox qui inventa audbut desannes80 : le multifentrage,lebytecode,lesenvironnementsdeprogrammation,lamanipulationdebitmapsetfinalementlaprogrammationobjets.SteveJobsadmetavoirtfortementinfluencparunedmonstrationdeSmalltalkvuechezXerox.Ilditqu'aprs10minutesdedmonstrationilavaitcomprisquelefuturtaituneinterfacegraphiqueavecmultifentrageetutilisationdelasouris(cequeleLisaallaitavoir)etquemalheureusementilaratSmalltalk.Cettemmequipeaaussitpionniredanslutilisationdcranbitmaps,lutilisationdesouris, la dfinition des machines virtuelles, de ramassesmiettes, de code multiplateformes et deconception objet de bibliothques ... Bref de beaucoup daspects que lon pense novateur en Javaaujourdhuimaisquiexistentdepuis1980.

    MaisSqueakneselimitepasrefairelepass,Squeakestdfinitivementtournverslefutur.Ilpermetdedvelopperdesapplicationsmultimdia,ducativesouwebtotalementmultiplatformes.IlsertdebaseSeaside(www.seaside.st)unpoustouflantframeworkdedveloppementd'applicationswebdynamiquesdont nous reparlerons dans unesrie d'articles pour ceux qui seraient curieux: Seasidepermet deconstruiredesapplicationswebcommeonconstruitdesapplicationsdesktopc'estdire.enassemblantdescomposantset leurs flots logiquessanssesoucierduprotocoleHTTP.SqueaksertaussidebaseunnouvelenvironnementmultimdiaopensourcenommSophie/Tk4(www.futureofthebook.org/tool/tk4)quiserapublicd'iciuneanneetCroquetunenvironnementdistribupeertopeer3D(www.opencroquet.org).Squealk est aussi utilis par Papert l'inventeur de logo et dans le projet Scratch des inventeurs delegomindstorm au MIT (llk.media.mit.edu/projects/scratch/). Squeak est utilis dans le projet ducatifespagnolSmallLand(www.smallland.org ) o il est installsurles80000Pcsdescolesdelargiond'extremadure.SqueakcontientenautresScamperunmininavigateurweb,Clesteun lecteurdemail,plusieurs serveurs webs (Comancheet Swazoo), un lecteur/joueur deFlash 3, denouvelles interfacesgraphiquespermettantdelamanipulationdirecte,unlecteur/joueurdeMIDI,WAV,undigitaliseurdesons,Gnieuntrspuissantanalyseurdegestes,unsystmedesynthsevocale,Balloonunmoteur2D/3D,unenvironnement deprogrammationpour novices (www.squeakland.org), unemachinevirtuelle crite enSqueak puis traduite en C et donc extrmement portable... En bref squeak est un environnementextrmementricheoffrantdesoutilsdedveloppementtrspuissants.

    CommeTOUT,tout,...absolumenttoutestobjetenSqueak(lasouris,lecompilateur,lesfentres,lessons,lesbitmaps, lesentiers, ...) et quetout lecodeest disposition(commec'est toujours lecasavec lesSmalltalksdepuis1980),vouspouvezlireetchangernimportequelaspectdusystme. Cetarticlevouspropose un rapide tour en Squeak en esprant vous donnez envie dessayer. Nous vous proposonsd'interagirdirectementavecSqueak.Dansdeprochainsarticles,nousvousmontreronscommentcriredepetitsscriptsoudesprogrammesenSqueak.Leprochainarticlemontreralesaspectsquenousnavonspasletempsdedcriredanscetarticle.Notezqu'ilexisteunlivreenfranaissurSqueakcritparX.Briffault.Chacundesaspects prsentsainsi que lasyntaxeet lasmantiquedeSqueakferont lobjet darticlesdtaills. Squeak vous propose quelques exemples : les mondes de Squeak que nous allons explorerensemble.MaisavantdecommencerjusteunmotsurlesmotivationsquihabitentlacommunautSqueak.

    Amplificateurs d'ides et support ducatifLavisionquiguideledveloppementdeSqueakestquildoittreuneplateformepermettantlexplorationetlavalidationdidesnouvellesdansledomainedesinterfacesgraphiques,desenvironnementsducatifsetdenouveauxmodlesdeprogrammation.DaprsAlanKay,lepredeSmalltalketSqueak,lesordinateursdoiventjouerlerledunamplificateurdides.AlanKayapensleDynabook,unenvironnementducatif

    http://www.squeak.org/http://www.small-land.org/http://www.small-land.org/http://www.opencroquet.org/http://www.futureofthebook.org/tool/tk4http://www.seaside.st/

  • portablepourenfantspermettantlamanipulationdesdiffrentsmdias,alorsquelesordinateurspersonnelsetlescransbitmapsetsourisn'existaientpasencore!Smalltalkestlelangage/modledevantpermettrelacrationdecetenvironnement.AlanKayareuen2004l'quivalentdedeuxprixNobelspoursonoeuvrescientifiqueetsonimpactsurnotrevie.

    Smalltalkestndelarecherchedel'quipedeKayautourdeladfinitiondelangagedeprogrammationpourlesenfants.C'estpourcelaqueSmalltalkestsimple,uniformeetextrmementpuissant.LemodleobjetdeSmalltalksersumedelamaniresuivante:toutestobjet,lesobjetscommuniquentparenvoidemessages,lesclassessontaussidesobjets.Lesmthodessontpubliques,lesattributsprotgsetilyadel'hritagesimple.C'esttout,pasdemotsclscommefinal,static,const....

    CestaveclavisionqueSqueakestunmdiumpourexprimenteretimplmenterlefuturquevousdevezlaborder.Eneffet,l'objectifdeSqueakn'estpasdeconcurrencerdesapplicationsexistantes.CependantcertainesapplicationscommeScamper(leWebbrowser)ouCeleste(lelecteurdeemails)montrentquetouslesprotocoles rseaux (HTTP, Pop...) pour faire unbrowseursont disponibles et quevouspourriez enconstruire un nouveau comme la fait une quipe de Interval dans un projet de NetPadhttp://www.huv.com/smalltalk/browser.html.

    SqueakcontientEToyunenvironnementdeprogrammationpourenfantsquiestutilisdansdesclassespilotes en Californie avec des enfants de 6 11 ans. Certains projets et livres sont disponibles surhttp://www.squeakland.org/.

    Obtenir SqueakPourpleinementapprciercetarticle,essayezdirectementenSqueaklesmanipulationsproposes.Squeakfonctionnesurpratiquementtouteslesplateformes,OS,certainsPDAetquelquesprocesseursdontvoiciune liste en vrac : Windows 2000, NT, 95, DOS, Acorn, Linux, LinuxPPC, Solaris, Digital Unix/Alpha,WindowsCe(CassiopeiaandHP320LX),MacOS9,MacOSX,SCOSystemV,NetBSD/Sparc,Psion5,OS/2,SunOS,Zaurus,StrongArm,M32R/D,...Squeakestdisponiblesurlesiteofficiel www.squeak.org.Dautressitescommelesitecollaboratifminnow.cc.gatech.educontiennentdenombreusesinformations.Lesitedelacommunautfrancophoneest:www.iutc3.unicaen.fr/smalltalkfr/pmwiki.php/Main/HomePage.

    Ladernireversionofficielleestlaversion3.7.Sivousvouleztrelapointevouspouvezprendrelaversion3.8gammaquiintroduitl'internationalisationdeSqueaketuneversionfrancise.Dautrepart,ilestpossibledaccderentempsrelauxnouveautsetfixes(menuhelp...udpatecodefromserver).

    LorsquevoustlchargezSqueak,prenezuneversionditecomplte(Full). Cesversionscontiennenttouslesfichiersncessaires.Unefoislefichierdcompressvousdevezavoirauminimum:unexcutable(lamachinevirtuelle),uneimage(contenantdubytecodeetlesobjets)ainsiqueplusieursautresfichiersetpluggins.Sivoussouhaitezpouvoirlirelecode,assurezvousdavoirunfichiernommSqueakV3.0.sourcesquireprsentetouslessourcesducodecompilprsentdanslimage.Prenezlesilnestpasfournidanslefichier zipp. Attention le fichier image (zzzz.image) et change (zzzz.change) doivent toujours tresynchronissetvousnedevezjamaislesditerdirectement.

    Premires interactionsL'interfacedeSqueakncessitentquel'utilisateurinteragissesuivanttroismodalits.Suivantl'architecturematrielle,cesmodalitssont"mappes"surdestouchesdiffrentesdelasouris:

    PC/Linux PC2Boutons/Windows Mac Signification

    Gauche Gauche Click Slection

    Milieu Droit Option+Click Menu

    Droit Alt+Gauche Commande+Click Poignes

    PoursoninterfacegraphiqueSqueakutilisedesmoprhs.Lesmoprhsonttinitialementdveloppespourle langage Self par Sun Labs puis portes sur Squeak. Les moprhs sont des lments dinterfacespermettantunemanipulationuniformeetdirecte.Unemoprhpeuttreunsimplerectangleouellipsemais

    file:///home/hilaire/tmp/www.squeak.orghttp://www.squeakland.org/http://www.huv.com/smalltalk/browser.html

  • aussiunobjetbienpluscomplexecommeunehorlogeouunclavierdepiano.Elleestaussicapabledegrerlesinteractionsavecl'utilisateuretlesanimations.

    Squeakcontientenfaitdeuxframeworksgraphiques,lancienetclbreMVC(ModelViewController)etlesmoprhsquisontmaintenantlinterfaceprivilgie(TweakestunercrituretotaleduframeworkgraphiquequidevraitarriverdanslesprochainesversionsdeSqueak).EntrezdansleprojetMondesdeSqueak(theWorldsofSqueak),plusieurssousprojetsvoussontproposs,cliquezsurleprojetnommGraphics.Ceprojetcontientquelquesexemplesdemorphs.Parexemplecliquezsurlesbordsdemorphrondecontenantdutexte.Lorsquevousl'agrandissez,letextecontenudansletuyauetlerectangleestaspirdanslamorph.Vouspouvezditerletexte,mmedansletuyau.Encliquantsurlestrianglesvertsquisontsurlepourtourdelamorphrondevouspouvezmodifiersaforme.

    Sivouscliquezsurl'ellipsejauneetfaitesapparatrelespoignesetslectionnezlapoignejaunevouspouvezchangerlatailledel'ellipseetletexteautourvasereplacerautomatiquement.Sivouslaissezlasourissurunepoigneunpetitballondaidevousindiquesaraisond'tre.

    Lespoignes,aussiappeleshalos,sontdepetitesicnesquis'affichentautourd'unmorph.Chacuned'elleaunefonctionbiendfinie,elless'affichentparclick-droitsurl'objet([Alt]+click-gaucheou[Pomme]+clicksouslesenvironnementsWindowsetMacintosh).Lespoignespeuventvarierd'unobjetunautre.Maisletableausuivantdcritlespoignescommunes.

    pivoterl'objet afficherunetuileaveclenomdel'objet

    ouvrirunvisualiseurpourl'objet

    minimiserl'objet

    dtruirel'objet montrerlemenudel'objet

    attraperunobjetendehorsdesonconteneur

    dplacerunobjetdanssonconteneur

    crerunecopiedel'objet

    afficherlesoutilsdedboguage

    repeindrel'objet

    choisirunecouleurpourl'objet

    changerlatailledel'objet

    Ceciestunexempledecequel'onpeutfaireavecdutexteenSqueak.Biensuronpeutchangerdetaille,depolices,dejustificationaussisimplementenutilisantlespoignes.Ilestaussipossibled'ajoutern'importequelsobjetsgraphiques(images,films)dansdutexteainsiqued'associerdesactionsdespartiesdutextequifonctionnentalorscommedeshyperliens.Maintenantlesmoprhssontaussitrspuissantes