Պահպանե՛նք շրջակա միջավայրը


Photo by RawFilm on Unsplash

Ոչ, ոչ․․․ Խոսքը չի գնում Բնության պահպանման մասին։ Չնայած, որ Բնությունն էլ է պետք պահպանել։ Խոսքը գնում է ծրագրավորողի շրջակա միջավայրի մասին։ Իսկ գիտե՞ք, թե ովքեր են այն աղտոտում և ոչնչացնում։ Շուտով կիմանաք։

Սկզբում ամեն ինչ պարզ էր։ Ամեն ինչ հասկանալի էր։ Կա խնդիր, կա մի քանի ամիս ժամանակ, կա հետազոտելու և ուսումնասիրելու ժամանակ և ազատություն։ Կա մի քանի լեզու, որոնք մեկը մյուսից այնքան էլ չեն տարբերվում։ Պետք է նստել, մտածել, բզբզել, լիքը բան ինքնուրույն ստեղծել, կպցնել իրար և ստանալ լուծումը։ Լուծում ասածն էլ իրենից շատ բարդ բան չէր կարող ներկայացնել։ Հիմնականում տերմինալում մուտք ես անում ինչ-որ տվյալներ, ծրագիրն աշխատում է և ելքում տեսնում ենք արդյունքը։ Ընթացքում էլ օգտագործում ենք կոմպիլյատորի և էդ մի երկու գրադարանի տված հնարավորությունները։ Լեզվի առաջարկած գործիքներն էլ շատ չեն։ Պայմանի օպերատոր, ցիկլ, ֆունկցիա, ուղիղ աշխատանք հիշողության հետ։ Կարելի է մաքսիմալ արդյունավետ օգտագործել տեղից էլ այդքան քիչ և այդքան թանկ հիշողությունը։ Ամեն ինչ շատ պարզ և գեղեցիկ էր սկզբում։

Հետո սկսվեց զարգացումը։ Եկան լիքը նոր մարդիկ, պրոֆեսիոնալ ծրագրավորողներ, այսպես ասած, սկսեցին նոր լեզուներ և նոր պարադիգմաներ հորինել։ Առաջացան օբյեկտները և դեպի օբյեկտները կողմնորոշված ծրագրավորողները։ Առաջացան ցանցերը, վեբը և դեպի այդ ամենը կողմնորոշված ծրագրավորումը։ Առաջացան հարյուրավոր նոր լեզուներ, նոր մոտեցումներ, նույն բանն անելու տասնյակ իրարից միանգամայն տարբեր եղանակներ։ Մարդիկ սկսեցին նեղ մասնագիտական գիտելիք ձեռք բերել՝ ծրագրավորման ոլորտում։ Վերացավ ծրագրավորող ասածը, հայտնվեցին back-end, front-end, database, UI/UX, web, mobile և այլ ծրագրավորողները։ Մոտավորապես այնպես, ինչպես հիմա չկա բժիշկ մասնագիտությունը, այլ կա վիրաբույժ, մանկաբույժ, քիթ-կոկորդ-ականջի մասնագետ, աչքաբան, գեղձաբան, ուռուցքաբան, նյարդաբան․․․ Հասկացաք, չէ՞։ Բայց ոչի՞նչ, որ այդ բոլոր տեսակի բժիշկներն, ի վերջո, նույն մարմինն են բուժում։ Ոչի՞նչ, որ այդ բոլոր օրգաններ ու մարմնի մասերը կպած են իրար և կառավարվում ենք մեկ կենտրոնից․․․ Հմմ, լավ, չշեղվենք։

Ոչի՞նչ, որ այդ բոլոր տարատեսակ ծրագրային կոմպոնենտները՝ վեբ և մոբայլ ծրագրերը, front և back end-երը, տվյալների բազաները, բոլորը առանձին վերցրած հիմնականում անիմաստ են։ Ոչի՞նչ, որ կա ճարտարապետի միտք, որն այդ բոլորը կապում է իրար, և չի կարելի լինել միայն տվյալների բազաների մասնագետ և գաղափար չունենալ, թե այդ քո մատակարարած տվյալները որտեղ և ինչպես են օգտագործվելու։ Ի վերջո՝ ցանկացած կոմպոնենտ լավն է այնքանով, որքանոր այն հարմար է և որքանով այն ավելի արդյունավետ է կիրառության մեջ։ Եթե չգիտես, թե ինչպես են քո մատակարարած տվյալները երևալու վերջնական օգտագործողին, ապա դժվար թե կարողանաս իրոք լավ տվյալների բազա կառուցել։

Կարծես թե էլի շեղվեցինք։ Այսպիսով՝ սկիզբը լավն էր։ Մարդիկ քիչ էին, գործիքները՝ խելքին մոտիկ, մասնագիտությունը՝ ծրագրավորող։ Հիմա՝ մարդիկ հարյուրավոր միլիոնների են հասնում, մասնագիտությունները՝ պոկեմոնների պես բազմազան։ Բայց ամենացավոտը գործիքներն են։ Ստեղծված հարյուրավոր լեզուներից յուրաքանչյուրն ունի մի քանի կոմպիլյատոր։ Ամեն մի կոմպիլյատոր ունի տասնյակ վերսիաներ։ Ամեն լեզու ունի ստանդարտ և ոչ ստանդարտ տասնյակ գրադարաններ։ Դա քիչ էր՝ սկսեցին ստեղծվել կոմպիլյատորը աշխատացնող գործիքներ, որոնք օգնում են մեծ համակարգերը կառուցել՝ build tools։ Դրանք գործիքներ են, որոնց կարելի է բացատրել, թե ինչ կառուցվածք ունի մեր համակարգը և արդեն նա որոշի, թե որը որից հետո է պետք կոմպիլյացիա անել, որպեսզի ճիշտ կպնեն իրար և արդյունքում ստանանք մեր ուզածը։ Հետո առաջացան գործիքներ, որոնք այդ ամենը տանում տեղ են հասցնում են՝ deployment tools:

Հասկանո՞ւմ եք, այդ բոլոր խնդիրները հին ժամանակներում էլ կայինև լուծվել էին։ Կար GCC կոմպիլյատորը և կար make համակարգը, որը և build tool էր, և անում էր deployment-ը։ Եվ այդ բոլոր գործիքները տրամադրվում էին մեկ հիմնադրամի կողմից, որը նույնիսկ շահույթ չէր հետապնդում։ Ամեն ինչ շատ գեղեցիկ էր սկզբում։

Հետո առաջացան մայքրոսոֆթները, սաները, էփփլներն ու գուգլները։ Եվ նրանք անվերադարձ փոխեցին մեր հին ու բարի աշխարհը։ Աղտոտեցին այն․․․ Աղտի ամենաառաջնային դրսևորումներից է շեղումը ստանդարտներից։ Երբ ամեն մի տեղից վեր կացողը սկսում է իրեն ավելի կարևոր համարել, քան բոլոր այն մարդիկ, ովքեր տարիներ շարունակ մտածել, տանջվել են ու ստանդարտներ են մշակել։ Հասկանո՞ւմ եք, ստանդարտներն ինքնանպատակ, կամ սեփական էգոն բավարարելու համար չեն ստեղծվում։ Ստանդարտները պարզեցնում են բոլորի գործը, միատիպ են սարքում, ինչը հնարավոր է դարձնում ծրագրերի տեղափոխելիությունը։ Իսկ շեղումը ստանդարտից հիմնավորվում է միայն սեփական կարևորությունը շեշտելու մղումով։ Եվ այս բոլոր նորաստեղծ ընկերությունները, հավաքելով մասսա, սկսեցին շեղվել ստանդարտներից՝ ամեն մեկը հորինելով իր սեփական լեզուները, իր սեփական գործիքները, իհարկե, մի գրամ անգամ չանհանգստանալով համատեղելիության մասին։

Առաջացան տարատեսակ ջավաներ և սիշարփեր, սվիֆթներ և կոտլիններ: Ամեն մեկն իր գործիքակազմով՝ մեկը մյուսից վախենալու անուններով։ Ամեն մեկն իր IDE-ներով և սիմուլյատորներով, որոնք միացնելու համար պահանջվում է ունենալ աշխարհի ամենահզոր գերհամակարգիչը։ Եվ մի հասարակ համակարգ մշակելու համար պետք է լինում նախապես մոտ 40000 հատ տարատեսակ ծրագիր և գործիքներ տեղադրել համակարգչի վրա։ Այս սա՛ է իրական աղտոտումը։ Այժմ ծրագրավորողներն ապրում են բացարձակ թունավոր միջավայրում՝ յուրաքանչյուրն իր հակագազով և անհատական պաշտպանության այլ միջոցներով։ Ամեն մեկը կատաղի կերպով պաշտպանում է իր ունեցվածքը, և նաև պաշտպանում է այդ միջավայրի ստեղծողին և նրա գաղափարախոսությունը։ Այս աղտոտվածությունը բերել է նրան, որ էլ չկան ծրագրավորողներ, կան միայն սրա-նրա գործիքները սիրող և պաշտպանող կոդ գրողներ։ Հիմա մոդայիկ չէ լինել ազատ ծրագրավորող։

Մենք այս համատարած աղտի մեջ կորցրել ենք ծրագրավորումը։

Հեղինակ՝ Վահրամ Մարտիրոսյան

Կարդալ ավելին

Լինում է, չի լինում՝ մի Ուսանող է լինում։

Հարգելի մեծապատիվ ավագ և փորձառու ծրագրավորողներ։

Հիշում ե՞ք, թե ինչպես եք ձեռք բերել այդ փորձն ու պաշտոնը։ Եկեք մի փոքրիկ ճամփորդություն կատարենք դեպի ձեր պատմության խորքը։

Շատերը կարծում են, թե ծրագրավորող դառնում են ծրագրավորման լեզու սովորելով։ Դա նման է նրան, որ պնդենք, թե մարդ են դառնում լեզու սովորելով։ Քանի լեզու գիտես՝ այնքան մարդ ես, չէ՞։ Բայց արդյո՞ք քանի ծրագրավորման լեզու գիտես՝ այնքան ծրագրավորող ես։