Հաքաթոն

Հաքաթոն (,  (հաքեր) և  - մարաթոն բառերից), ծրագրավորողների ֆորում, որի ընթացքում ծրագրային ապահովման տարբեր ոլորտների փորձագետներ (ծրագրավորողներ, դիզայներներ, մենեջերներ) համատեղ աշխատում են որևէ խնդրի լուծման ուղղությամբ։ Ներկայում հաքաթոնները այլևս չեն վերաբերում հաքերությանը, այլ պարզապես ծրագրավորման մարաթոններ են։ Սովորաբար հաքաթոնները տևում են մեկ օրից մինչև մեկ շաբաթ։

Որոշ հաքաթոններ ուղղված են կրթական կամ սոցիալական նպատակների, բայց ավելի հաճախ հաքաթոնի նպատակն է ստեղծել լիարժեք ծրագրային ապահովում։ Յուրաքանչյուր հաքաթոն կենտրոնանում է որոշակի ոլորտի վրա, օրինակ՝ ծրագրավորման լեզու, օպերացիոն համակարգ, հավելված, ծրագրային ինտերֆեյս (API):

Պատմություն 
Տերմինը հայտնվել է 1999 թվականին։ Այն իրարից անկախ սկսել են օգտագործել OpenBSD-ի և Sun Microsystems-ի մշակողները։

OpenBSD ազատ բազմապլատֆորմ օպերացիոն համակարգի մշակողներն առաջին անգամ տերմինն օգտագործել են 1999 թվականի հունիսի 4-ին Կալգարիում (Կանադա) կայացած հանդիպման վերաբերյալ, որ նվիրված էր ծածկագրմանը։ Այդ հանդիպմանը ժամանել էին 10 ծրագրավորողներ, որպեսզի գրեն ծրագրեր, որոնք չեն ենթարկվի գաղտնագրման ծրագրային ապահովման համար ԱՄՆ-ի կողմից սահմանված արտահանման խիստ սահմանափակումներին։

Sun Microsystems ծրագրային և ապարատային ապահովում արտադրող ընկերությունը «the Hackathon» անվանումն օգտագործել է JavaOne կոնֆերանսի ժամանակ, որը տեղի է ունեցել 1999 թվականի հունիսի 15-19-ը։ JavaOne-ի կազմակերպիչներից Ջոն Գեյջն առաջարկել է ծրագիր գրել Java ծրագրավորման լեզվով նոր Palm V անձնական թվային օգնականի համար։

2000-ական թվականների կեսերից հաքաթոններն ավելի են տարածվել և ընկերությունների ու ներդրողների կողմից դիտարկվել են որպես տեխնոլոգիական ծրագրերի ու ներդրումների ոլորտների արագ մշակման միջոց։ Որոշ խոշոր ընկերություններ ստեղծվել են հաքաթոններում, օրինակ՝ GroupMe բջջային խմբակային հաղորդագրությունների հավելվածը, որը ստեղծվել է որպես նախագիծ TechCrunch Disrupt 2010 կոնֆերանսի հաքաթոնում, իսկ 2011 թվականին այն գնվել է Skype-ի կողմից 85 միլիոն դոլարով։

Է. Կազննաչեևան առանձնացնում է հաքաթոնների հետևյալ հիմնական նպատակները.
 Որքան հնարավոր է շատ մարդկանց մոտ հետաքրքրություն առաջացնել սեփական լուծումները գտնելու համար,
 Փորձառու մասնագետների և սկսնակների համար ապահովել միմյանց հետ շփվելու հնարավորություն,
 Ծրագրավորման ժողովրդականացում։

Հաqաթոնների տեսակներ

Պլատֆորմների մշակման համար 
Որոշ հաքաթոններ նվիրված են որոշակի պլատֆորմի վրա աշխատելուն, օրինակ, օպերացիոն համակարգի կամ հավելվածներ ստեղծելու համար։

Բջջային պլատֆորմների համար հավելվածների մշակման հաքաթոններ, օրինակ, Բլետչի Պարկում (Անգլիա) անցկացվող Over the Air հաքաթոնում, որը գրավել է բավականաչափ հովանավորչական ներդրումներ։ Անցկացվում են նաև հաքաթոններ վիդիո- և համակարգչային խաղերի մշակման համար։

Music Hack Day հաքաթոնը նվիրված է երաժշտական ծրագրերի ու սարքավորումների ապահովմանը։ 2009 թվականից ի վեր այն անցկացվել է ավելի քան 20 անգամ տարբեր վայրերում։

1999 թվականից սկսած՝ ամեն տարի անցկացվում է OpenBSD օպերացիոն համակարգի մշակողների հաքաթոն։

Գոյություն ունեն հաքաթոններ Android, iOS և Tizen սմարթֆոնների համար հավելվածներ ստեղծելու համար։ Նախկինում նմանատիպ հաքաթոններ են անցկացվել Maemo 5 (Nokia N900) և MeeGo (Nokia N9) համար։

Ծրագրավորման լեզուներ, API, ֆրեյմվորքներ 
2007 թվականից ի վեր անցկացվում են Perl հաքաթոններ, որոնց նպատակն է բարելավել լեզուն։ Haskell-ի և Scala-ի մշակողներն անցկացնում են նմանատիպ միջոցառումներ՝ Haskell Hackathon և Scalathon:

Հաքաթոններ անցկացվել են նաև HTML5  և Ruby on Rails հավելվածների մշակման նպատակով։

Որոշ հաքաթոններ ընկերությունների կողմից անցկացվում են ընդհանուր API օգտագործող ծրագրեր ստեղծելու համար։ Այնպես, Yahoo!-ն 2006 թվականից անցկացնում է «Open Hack Day» (սկզբում Hack Day») հաքաթոնը, որոնց ընթացքում օգտագործվում են Yahoo! API և API, որ պատկանում են Yahoo! կայքին, օրինակ՝ Flickr: Google-ը նույնպես կազմակերպում է նման հաքաթոնն իր API-ների համար։

Foursquare կայքն անցկացրել է գլոբալ հաքաթոն 2011 թվականին, երբ ավելի քան 500 ծրագրավորողներ 30 վայրերում մշակել են այնպիսի ծրագրեր, որոնք օգտագործում են Foursquare API:

Ծանոթագրություն 

Համակարգչային մշակույթ
Հաքերություն
Միջոցառումներ
Ազատ ծրագրային ապահովում
Տեղեկատվական տեխնոլոգիաներ
Համացանց
Ծրագրավորման մրցույթներ
Համացանցային տերմինաբանություն
Աշխատանքի կազմակերպում