Interview med Jack Doyle, grunnlegger av GreenSock
Del
Del
Del
Del
Dette Cyber Monday Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av.
Dette innlegget er en del av en serie som heter GreenSock Tweening Platform.Build en Slider Mikro med GreenSock Tidslinje Lite Blås et bilde Bort med en Custom Wind Effect
Jack Doyle, grunnlegger av GreenSock og skaperen av TweenLite, bruker litt tid på å snakke til ActiveTuts + om hvordan han kom i gang, fremtiden for TweenLite /Max, og hva han har lært om kode optimalisering & lisensiering.
Hei Jack, fortell oss litt om hvordan du begynte med Flash. Var du en selvlært utvikler eller kommer du fra et annet språk? Hvis det er aktuelt, hvordan gjorde din fortid erfaring hjelpe deg som Flash Developer?
All min formell opplæring var i grafisk design faktisk. Jeg gikk på college på et design stipend og jeg hadde aldri trodd at jeg skulle ende opp med å skrive kode som dette. Tok aldri en informatikk eller programmering klasse i mitt liv. Jeg var alltid ganske god i matte og tegning. Jeg jobbet på en reklamefirma tidlig i min karriere, og ble interessert i å designe nettsider, så jeg gikk til eierne og slo tanken meg å kjøre en "digital" divisjon. Til min overraskelse, de enige om, og ga meg en sjanse. Jeg vil gjøre design og andre firmaer til å skrive at gobbledy-Gook kalt "HTML" og server-side skript som gjorde alt arbeidet. Jeg ble skuffet over hva leverandørene levert og det var et stort problem å holde det gående frem og tilbake, så jeg kjøpte et par bøker og lært HTML og Coldfusion. Jeg kunne ikke tro det var så gøy. Jeg begynte å se alle slags muligheter. Så kom Flash. Wow. Det kunne levere visuelt rike opplevelser (designeren i meg likte at) samt kompleks interaktivitet (den spirende utvikler i meg fikk sugd inn umiddelbart). Jeg ble hektet.
Nesten all min læring kom fra prøving og feiling, Google-søk, og gjør massevis av feil. Jeg er en veldig sta fyr, så jeg skal prøve og prøve og prøve helt til jeg finne ut hvordan å lage en ide arbeid. Jeg skal ligge på gulvet med ansiktet ned i flere timer noen ganger, bare tenker. Så skal jeg hoppe opp og prøve en idé. Og straks mislykkes. Da vil jeg tempoet og tilbake, få en annen idé, og prøve, feile, og så videre inntil jeg finne ut av det. Vi har alle opplevd disse "aha!" øyeblikk når vi endelig får det riktig - den følelsen er ganske vanedannende for meg tror jeg.
Så vidt min tidligere erfaring med å hjelpe meg, jeg tror designet var en enorm hjelp av to grunner. Først lærte det meg til å tenke på ting fra betrakterens perspektiv. Spør deg selv dette spørsmålet: Hvis du kunne designe en bil slik du ville, hva ville det være? Hva irriterer deg om de fleste biler i dag? Det samme konseptet gjelder å skape et API for en Action klasse. Som bruker, hvordan ville du vil at det skal fungere? For mange utviklere bli fanget opp i tekniske detaljer og ikke klarer å legge mye omtanke i å skape en elegant, intuitiv API. Jeg hører ofte fra utviklere som sier de elsker å jobbe med TweenLite /Max fordi det er så enkelt; det bare er fornuftig. Det betyr mye for meg.
Den andre tingen grafisk design hjalp meg med var å kunne kommunisere. Jeg er overrasket over hvor forferdelig mye av kommunikasjonen er fra utviklere der ute som utgir koden sin. Det kan være utrolig kode, men hvis ingen forstår dens verdi eller hvordan du bruker det, er det en fiasko.
TweenLite er en av de mest populære tween bibliotekene der ute. Hva tror du er noen av nøklene til suksess med det og hvorfor folk velger det fremfor konkurrentene
Jeg skylder mye av suksessen til brukerbasen? - De har vært så snill og lojal, og de skryter om det til sine venner. Og jeg tror folk skryte om det fordi det har en ganske unik blanding av kraft, brukervennlighet, hastighet og pålitelighet pakket inn i en liten pakke. De fleste andre motorer jeg vet om har dvelende bugs, de mangler viktige funksjoner, er rett og slett stygg og klumpete syntaksen, er ytelsen treg eller de er altfor oppblåst. Jeg har prøvd hardt for å unngå disse problemene. Feilen ting er en ganske stor avtale for profesjonelle utviklere fordi en tweening motoren er så grunnlegg i de fleste prosjekter i disse dager - du ikke ønsker å bygge på et vaklende fundament som har dvelende bugs eller en forfatter som ikke er forpliktet til omgå squashing dem når de dukker opp. Den GreenSock plattformen ser ut til å ha opparbeidet seg et rykte for pålitelighet og raske feilrettinger som utviklerne setter pris på. Pluss jeg prøver å kontinuerlig forbedre det, legge til funksjoner, optimalisere, avgrense, etc. Det har virkelig modnet med årene, mens mange open source alternativer stagnert. Det er en masse ting du kan gjøre med det GreenSock plattform som du bare ikke kan gjøre med noen annen motor. Men til syvende og sist er det sannsynligvis brukervennlighet som får folk hekta. Jeg hører fra utviklere hele tiden som sier ting som "hver gang jeg snubler over noe annet jeg trenger motoren å gjøre, oppdager jeg at du allerede har tenkt på det, og verktøyene er rett på min unna."
< p>
Nå som du har sluppet versjon 11 av Tween plattformen hva er noen av de nye funksjonene du er mest stolt av i denne versjonen? Hva ser du i butikken for versjon 12?
Jeg må innrømme at jeg aldri har vært så begeistret for en utgivelse. Versjon 11 er et stort skritt fremover på så mange måter. Ikke bare har TweenLite og TweenMax fått en haug med funksjoner, men det er helt nye sekvenseringsverktøy (TimelineLite og TimelineMax) som har et enormt potensial for å endre din animasjon arbeidsflyt. Jeg har hørt fra ganske mange utviklere si ting som "Jeg hadde ingen anelse om hvor kraftig tidslinje klassene er - jeg er hekta" De fleste vet ikke helt realisere potensialet før de bruke litt tid sparker dekkene. Jeg laget en video som går over det grunnleggende ved blog.greensock.com og jeg skal legge inn en som dekker mer avanserte emner snart. Designere synes å like den nye motionBlur plugin som automatisk gjelder en retnings bevegelsesuskarphet basert på en Displayobject vinkel bevegelse og dens hastighet (ja, det blur være diagonalt). physics2D er en hit også - det kan du tween ting basert på hastighet, akselerasjon, friksjon, gravitasjon, accelerationAngle, etc. TweenLite får nå full blåst kontroller som pause (), CV (), omvendt (), spille () og restart (). Hvis du ikke har sett det allerede, sjekk ut den 60-sekunders promo swf på hjemmesiden på blog.greensock.com. Det er store forbedringer i konstruksjonen av koden også, og det er fullt ASDoc dokumentasjon. Såvidt v12, jeg har ikke noe konkret å dele, men det er noen ideer spretter rundt hodet mitt at jeg har eksperimentert med. Akkurat nå, men jeg er fortsatt veldig mye fokusert på v11 og hjelpe folk til å forstå sitt potensial.
GreenSock prosjekter er sjeldne i at de ikke er åpen kildekode. Hva gjorde du bestemmer deg for å gå ned den veien og gjør at du føler det har fungert bedre på denne måten?
Absolutt. Det er ingen måte den GreenSock Tweening Platform ville være så robust, pålitelig og optimalisert som det er i dag hvis det ikke var for den unike lisensieringsmodell. Jeg tror ikke det er hensiktsmessig for alle typer prosjekt, men det er ideelt for den tweening plattformen. Og for de som ikke er kjent med det, gjør den standard "gratis" lisens koden helt gratis for nesten alle typer bruk, inkludert de fleste kommersielle prosjekter. Det er en veldig spesiell, sjelden type bruk (kanskje 1% av de kommersielle bruk tilfeller) som krever en spesiell lisens som kommer med bedriftens Club GreenSock medlemskap. Og noen av de ikke-essensielle plugins er medlemsfordeler av Club GreenSock (det er en måte jeg sier "takk" til de som støtter prosjektet).
Club GreenSock serverer en avgjørende rolle ved å gi en kontantstrøm mekanisme at midlene fortsatt utvikling og support. Alle nyter godt av det, selv om en ekstremt liten del av brukerbasen deltar. Noen utviklere har vanskelig for å forstå den først, skru opp sine nesen så snart de ser noen indikasjon på en finansieringsordning uansett hvor rettferdig det kan være, men folk flest forstår sin verdi og kjenne hvor mye det gagner alle. Faktisk, mange ser lisensieringsmodellen som en funksjon, ikke en forpliktelse fordi det viser en viss grad av engasjement og utholdenhet som gir dem tillit til at det vil fortsette å bli støttet og styrket. Se på track record og du vil se at ingen andre motoren som aktivt utviklet og oppdatert som GreenSock man over tid, og lisensieringsmodellen er det som gjør dette mulig. Jeg vil hevde at det er svært kortsynt å tro at en MIT (eller lignende) lisens er alltid overlegen og jeg forklare hvorfor i min "" Free "! = Better" artikkelen på blog.greensock.com. Jeg valgte den unike modellen fordi jeg mener bestemt det til syvende og sist tjener samfunnet bedre, leverer en overlegen sluttprodukt og beskytter mot noen vanlige frailties av åpen kildekode
En stor rope ut til klubbens medlemmer leser dette -. Du gjør dette mulig, og jeg er så takknemlig for støtten.
Director hadde et livskraftig samfunn basert rundt selge plugins og kode moduler imidlertid Flash har ikke vært i stand til å skape det samme markedet . Føler du at utviklere kan faktisk tjene penger /gevinst ved å selge sin kode og i så fall har du noen tips for å komme i gang?
Sure. Jeg er ikke kjent med direktør fellesskap av år siden, men jeg ser mange folk som selger sine Actionscript-kode i disse dager. Jeg kunne ikke snakke til hvor lønnsomme de alle er, men det faktum at det er så mange forteller meg at noe må jobbe. Forskjellen med Shockwave samfunnet år siden kan ha mye å gjøre med innholdet av internett på den tiden. Blogger og fora har blitt så gjennomgripende i disse dager og de viser masse kode eksempler og ideer for gratis. Dette er en fantastisk ting, men det gjør det også litt mer utfordrende for folk som ønsker å selge sin kode. De konkurrerer med gratis kode og la oss innse det -. De fleste av oss utviklere som å finne ting ut og bygge våre egne løsninger, så det er fristende å bare se etter gratis kode og prøve å sette sammen det vi trenger uten plunking ned noen kontanter
Jeg tror imidlertid over tid landskapet vil modnes som utviklere få brent av forlatte åpen kildekode-prosjekter og bug-fylt gratis kode. Det vil være et økende behov for høy kvalitet, raffinerte løsninger som utviklere kan stole på, spesielt for mer komplekse ting. TransformManager er et eksempel på et nisjeprodukt som er relativt kompleks som kunnskapsrike utviklere er glade for å betale for fordi det sparer dem en enorm mengde tid og krefter. Vil du heller brenne uker (eller måneder) prøver å finne ut hvordan du kan bygge et lignende verktøy eller betale en pålitelig kilde $ 299 og har det i dag komplett med dokumentasjon, eksempler og et dedikert forum til andre brukere?
Stol på meg - det er et marked der ute. Du trenger bare å demonstrere tydelig verdigrunnlag og tjene deres tillit
Som for tips, her er noen:.
Hvis du ikke kan gjøre det unikt, ikke gjør det i det hele tatt. Hvis det er 300 slideshow løsninger på markedet allerede, ikke gjør det 301 med mindre din løsning blåser alt annet ut av vannet. Se etter et problem at ingen løst også. Jo mer kompleks problem, jo bedre - gjør det enkelt
Forbered deg på mange spørsmål.. Du tror kanskje noe er opplagt, men du vil bli overrasket over hvor mange "dumme" spørsmål du får. Venter det. Ikke bli frustrert. Betjene kundene godt og de vil være lojale.
Dokument koden din. ASDocs er standard - bruk dem. Gi eksempler også. Sett deg i kundenes sko - de må være i stand til å komme i gang så raskt som mulig
Ikke bli for fancy med å prøve å beskytte koden din.. Jeg er generelt tilhenger av å gi kundene den rå kildekoden i stedet for SWC-filer eller MXP filer, etc. Som en kunde, jeg ønsker å være i stand til å feilsøke og grave i koden hvis jeg må. La meg gjøre det. Når du setter mange hindringer i veien for meg, du forteller meg at du ikke stoler på meg, og du gjør det vanskeligere å bruke produktet, så jeg skal være mindre sannsynlig å kjøpe fra deg igjen.
Hvis du kan, sette opp et forum der kunder kan legge inn sine spørsmål. Det ikke bare kutter ned på å måtte svare på det samme spørsmålet om og om igjen (siden de kan søke på forumet før du poster), men også inviterer kundene til å hjelpe hverandre, lettelser byrden på deg. Bare sørg for at du er oppmerksom og ikke stole for mye på andre til å gjøre din teknisk support.
Optimization er et hett tema nå i Flash samfunnet, spesielt med Flash på mobil i horisonten. Hvilke tiltak har dere tatt for å forsikre din Tween motoren er så effektiv som mulig? Har du noen tips til utbygger fra det du har lært?
Wow, det er en bred spørsmålet (men en god en). Jeg har lært mye om optimalisering gjennom årene, og hvis jeg listet opp alt her, vel, ville svaret bli altfor lang. Jeg skal nok legge inn noe på bloggen min etter hvert med ulike tips, men her er noen:
Funksjons samtaler er dyre. Unngå dem hvis du kan ved å utføre operasjoner inline i stedet. Det er mulig å gå over med dette og gjøre din kode altfor lang, kompleks, og repeterende, så det er en balansegang. Målrette de mest brukte biter av kode
AS3 fordeler fra streng data å skrive, så gjør det uansett hvor du kan
//treg: var num:.. Int = Math.round (n); //4x raskere: var num: int = (n > 0)? int (n + 0,5): int (n - 0,5); //treg: for (var i: int = 0; i < myArray.length; i ++) {} //raskere: var l: uint = myArray.length; for (var i: int = 0; i < l; i ++) {} //treg: for (var i: int = myArray.length - 1; i > 1; I--) {} //raskere: var i: int = myArray.length; while (I--) {}
Tilgang til offentlige eiendommer er mye raskere enn å få tilgang Getters /settere (fordi igjen, funksjoner er treg)
//treg: offentlig. funksjonen får myProp (): Antall {return _myProp;} //raskere: public Var myProp: Number;
Så vidt optimalisere tweening motor, har jeg tilbrakt utallige timer å optimalisere det, spesielt i high-bruk områder. Du kan se hvordan det stabler opp mot noen andre motorer på blog.greensock.com
Kan du fortelle litt om seg sammen med Grant Skinner og hva samarbeidet var? Er det planer om å slippe flere prosjekter sammen basert av det arbeidet dere begge har gjort med Tween plattform?
Grant er en kul fyr og en stor utbygger. Det var en ære å jobbe med ham. Han kommer fra en mye mer tradisjonell /strukturert bakgrunn når det gjelder å skrive kode, så han ga meg verdifulle tips og forklarte hvor viktig det var å følge bransjestandarder for ting som det motsatte domene pakken navnestrukturen, miste "$" foran parameternavn osv Han var forsiktig med å være dogmatisk om noe, og han var ikke slitsom i det minste. Grant tidsplan er strenge med alle flyr rundt han gjør for konferanser og han har en bedrift å kjøre også, men han var snill nok til å skjære ut tid til å prate med meg som jeg setter stor pris på.
Såvidt fremtidige planer går, håper vi å fortsette samarbeidet som tidsplaner tillatelse. Jeg er spent på å se hvor ting går herfra.
Hvis du kunne velge én ting, hva ville du vurdere din favoritt del av Actionscript 3? ? På samme måte, hva ville du forandre eller ønsker implementert
Det er ikke en bestemt del av AS3 at jeg ville vurdere min favoritt - Jeg bare elsker hvordan det gir meg muligheten til å lage nesten hva som helst jeg kan forestille seg. Den er rask, fleksibel, og latterlig stand. Hva ville jeg endre? Hm. Vel, jeg har aldri vært en fan av den innebygde Flash-komponenter. De trenger en seriøs overhaling. Og det er noen virkelig irriterende bugs spesielt på Mac som jeg håper Adobe fikser på kort tid. PixelBender har utrolig potensial, men virker som en ettertanke og språket bør være AS3-aktig. Måten noen av sikkerhet sandkasse restriksjoner implementeres slår meg som rett og slett dumt og tungvint. Men egentlig har vi må gi kreditt til Adobe team for å skape en fantastisk teknologi som har vært ansvarlig for noen av de rikeste interaktive opplevelser noensinne.
jeg fortsetter å bli overrasket over hva som er mulig med Flash.