Un hackathon (în română scris și hackaton, cunoscut și ca hack day, hackfest sau codefest), un „maraton de programare” este un eveniment în care mai mulți programatori, dar și alte persoane ce participă la dezvoltarea de software (designeri, manageri de proiect etc.), colaborează pentru dezvoltarea unui proiect software.[1] Unele proiecte implică și o componentă hardware. Durata unui hackathon este de obicei între o zi și o săptămână. Unele hackathoane au doar un scop educațional sau social, pe când în alte cazuri scopul final este crearea unui program funcțional. Hackathoanele au de obicei un subiect anume, care poate fi limbajul de programare folosit, sistemul de operare, o aplicație, un API, sau chiar grupul demografic al programatorilor implicați. În alte cazuri, nu există restricții asupra softwareului care poate fi creat.
Începuturi și istorie
Cuvântul "hackathon" este un portmanteau din cuvintele "hack" și "maraton", unde "hack" este folosit în sensul de explorarea unor idei prin programare, nu de pătrundere neautorizată într-un sistem informatic. Termenul pare să fi fost inventat independent[necesită citare] de dezvoltatorii OpenBSD și de echipa de la marketing de la Sun, ambii în 1999. În limba română, "hackathon" se traduce „maraton de programare.”
OpenBSD pare să fi folosit pentru prima oară termenul în cadrul unei întâlniri din Calgary, pe 4 iunie 1999,[2] în care 10 dezvoltatori s-au întâlnit pentru a dezvolta software criptografic care să evite problemele legate de regulile de exporta al software-ului criptografic din Statele Unite. De atunci au loc cam 3-5 asemenea evenimente pe an de jur împrejurul lumii, majoritate în cadrul unor campusuri universitare.
Sun a folosit termenul pentru un eveniment din cadrul conferinței JavaOne ținută între 15-19 iunie același ani; acolo John Gage a provocat audiența să scrie un program în Java pentru nou-apărutul Palm V care să folosească portul infraroșu al dispozitivului pentru a comunica cu alți utilizatori și pentru a se înregistra pe Internet.
Începând cu mijlocul anilor 2000, hackathoanele au devenit mult mai răspândite și au început să fie văzute de companii și investitori ca metode de dezvoltare rapidă a unor tehnologii software noi și de identificare a unor noi zone de finanțare.[1] Anumite companii importante au fost create în urma unor hackathoane, ca de exemplu GroupMe, care a început ca proiect în cadrul hackathonului de la conferința TechCrunch Disrupt 2010; în 2011 a fost cumpărată de Skype pentru 85 de milioane de dolari.[1] Softwareul PhoneGap a început ca un proiect în cadrul iPhoneDevCamp (ulterior iOSDevCamp) în 2008;[3]Nitobi, compania care a creat PhoneGap s-a reorganizat complet în jurul acestui produs, fiind cumpărată în 2011 de Adobe pentru o sumă necomunicată.[4] Totuși, mulți văd hackathoanele ca o metodă de socializare și explorare a unui domeniu anume, în loc de un eveniment în care să se realizeze un proiect de calitate.
Structură
Hackathoanele încep de obicei cu una sau mai multe prezentări despre eveniment si despre temă, dacă există. Apoi participanții propun idei și formează echipe pe baza intereselor și talentelor fiecăruia. Apoi începe lucrul la produs, care poate dura câteva ore sau câteva zile. Pentru evenimente care durează mai multe zile, mesele sunt deseori rapide (pizza și băuturi energizante), la fel ca și somnul.[1]
La sfârșitul hackathonului există de obicei o serie de demonstrații în care fiecare grup își prezintă rezultatele. Dacă hackathonul a fost sub formă de concurs, judecătorii aleg echipa câștigătoare și sunt decernate premiile. La multe hackathoane, judecători sunt organizatorii și reprezentanții sponsorilor. În cazul hackathoanelor de tip BarCamp, organizare de o comunitate de dezvoltatori, juriul este format din colegi din domeniu. Premiile pot fi uneori substanțiale: un hackathon despre social gaming în cadrul conferinței TechCrunch Disrupt a oferit o finanțare de $250.000 câștigatorilor,[1] în timp ce un hackathon controversat[5] organizat în 2013 de Salesforce.com avea un premiu de 1 milion de dolari.[6]
Tipuri de hackathon
În funcție de scopul următori, hackathoanele pot fi de mai multe tipuri:
pentru un tip de aplicații
dedicate unui anumit limbaj de programare, API, framework sau aplicație
dedicate unui anumit grup demografic (femei, minorități naționale sau rasiale etc.)
dedicate începătorilor
interne în cadrul unei companii/grup
generale
Controverse
Unele echipe ce participă la hackathoane dotate cu premii vin cu aplicații deja dezvoltate. În cadrul unui hackathon din noiembrie 2013 organizat de Salesforce.com, cunoscut datorită marelui premiu de 1 milion de dolari, echipa câștigătoare, un startup numit Upshot, a fost acuzată că dezvolta tehnologia cu care au câștigat de peste un an, iar unul din membrii echipei fusese anterior angajat la Salesforce.[5]