Кіріспе

Бір рет жазыңыз, кез келген жерде компиляциялаңыз (WOCA) – компилятор мен оған қоса берілген бағдарламалық кітапханалардың немесе бағдарламалық кітапхана/бағдарламалық құралдардың қолданатын философиясы. Ол кез келген платформада бастапқы кодын өзгертпестен компиляцияланатын компьютерлік бағдарламаны жазу мүмкіндігін білдіреді. Sun компаниясының "бір рет жазыңыз, кез келген жерде орындаңыз" деген ұранынан айырмашылығы, платформааралық үйлесімділік тек бастапқы код деңгейінде ғана іске асырылады, компиляцияланған екілік код деңгейінде емес.

Кіріспе

WOCA философиясын ұстанатын көптеген тілдер бар, мысалы C++, Pascal (Free Pascal қараңыз), Ada, Cobol немесе C, егер олар стандартты кітапханадан басқа функцияларды қолданбаса. Go сияқты тілдер одан да әрі барып, жүйеге қатысты ешқандай нәрсе қолданбайды, ол жай ғана жұмыс істеуі керек, ал жүйеге қатысты элементтер үшін платформаға арналған файлдар жүйесі қолданылады. Компьютерлік бағдарлама платформааралық кітапханаларды да пайдалана алады, олар әртүрлі платформалар арасындағы айырмашылықтарды жасыратын абстракция қабатын ұсынады, мысалы сокеттер мен GUI, жазба кодтың тасымалдануын қамтамасыз етеді. Бұған мысал ретінде Qt (C++) немесе Lazarus (Pascal) IDE-нің LCL және сәйкес виджеттері келтіріледі. Бүгінде бізде өте қуатты үстел компьютерлері де, телефондардағы компьютерлер де бар, олар көбінесе мәтін өңдеу, деректер базасын басқару және электрондық кестелер сияқты күрделі қосымшалармен жабдықталған. Бұл бағдарламалау тәжірибесі жоқ адамдарға өз деректерін сұрыптап, іздеп алып, өңдеуге, сондай-ақ ұйымдастырылған ақпаратын көрсететін (мысалы, PDF файлдары) құжаттар жасауға немесе оларды басып шығаруға мүмкіндік береді. 2000 жылға дейін мұның кейбіреулері қол жетімді болмады, ал 1980 жылға дейін олардың көпшілігі болмады. Компьютерлік автоматтандыру 1960 жылдардың басында пайда болғаннан бері, егер сізде деректерден есеп алу немесе шот-фактураларды, жалақы тізімдерін, сатып алу тапсырыстарын және басқа да бизнес, мектептер мен үкіметтер жасайтын құжаттарды басып шығару қажет болса, оларды физикалық теріс машинада, мүмкін алдын ала басылған нысандарды пайдалана отырып, жазуға тура келді. Егер сізде компьютерде сақталған ақпарат болса және оны сұрыптап, өңдеп немесе басып шығару қажет болса, біреуге бағдарлама жазу қажет еді. Кейде адамға кәсіби бағдарламашылардың түсіне алмайтын немесе орындауға уақытты қажет ететін немесе оларды пайдаланатын бағдарламашылардың болмауы себепті, қажетті бағдарламаны жасау мүмкін болмады, сондықтан бағдарламалау білімі жоқ мамандар өздеріне қажетті ақпаратты өңдеу және басып шығару үшін бағдарламалау дағдыларын үйренуге мәжбүр болды. Жұмысты кәсіби бағдарламашы жасаса да, немесе өзіне ақпарат алу үшін бағдарлама жазған пайдаланушы жасаса да, оны жасау құралдары бірдей. Бағдарламаны жазып, компиляторға (басқа бағдарлама) жіберіңіз, ол компьютер түсінетін нұсқауларға айналдырады, қателерді түзетіп, бағдарлама жұмыс істейінше қайталаңыз. Бұл мәселенің бір бөлігін шешуге көмектессе де, жаңа мәселені тудырды. Бағдарлама жазған немесе жазу үшін біреуді жалдаған адамдар (программалық қамтамасыз етуді сатып алу 1970 немесе 1980 жылдары ғана мүмкін болды) жұмыс берушілері немесе мектептері жаңа компьютер сатып алғанда олардың бағдарламалары жұмыс істемейтінін байқады.

Стандарттау

1960 жылдардың соңы мен 1970 жылдардың басында кез келген өндірушінің компиляторларын қолдана отырып, машинаға тәуелсіз бағдарламаларды қалай жазуға болатынын анықтау үшін стандарттар мен талаптар жасауға күш-жігер жұмсалды. Халықаралық стандарттар ұйымы (ISO), ANSI және басқа да стандарттау ұйымдары, үкіметтер, қаржы институттары, өндірушілер сияқты компьютерлер мен бағдарламалық жасақтаманың ірі қолданушыларымен, сондай-ақ компьютер өндірушілерімен бірлесіп, әрбір нақты тілдің қалай жүзеге асырылуын сипаттайтын стандартталған талаптарды жасады. Компьютер өндірушілері бағдарламалау тіліне өзіндік кеңейтімдер енгізе алатын болды, бірақ егер олар стандартқа сәйкес екенін мәлімдегісі келсе, анықтамалық нұсқаулықта осы айырмашылықтарды көрсететін болды. Осылайша, стандартқа сәйкес жазылған бағдарлама олардың машинасына компиляцияланып, жұмыс істейтін болса, басқа өндірушінің компьютерінде де, егер оның компиляторы да стандартты сақтаса, өзгеріссіз жұмыс істейтін еді. Стандарттың талаптарын әскери, мемлекеттік және өндіріс компаниялары сияқты ірі бағдарламалық жасақтама сатып алушылар қатаң сақтады, егер жеткізуші қолданатын бағдарламалау тілдері үшін стандартқа сәйкес келмейтін компиляторды ғана ұсынса, онда олар мұндай компьютерлік жабдықты сатып алудан бас тартатын.

Нәтижелер

Қазіргі уақытта, Ada, APL, BASIC, C++, COBOL, ECMAScript (JavaScript-тің жалпы атауы), Forth, FORTRAN, Pascal, PL/I, Ruby және SQL сияқты бағдарламалардың қалай жазылуы керектігін анықтайтын стандарттары бар оннан астам бағдарламалау тілі бар. Олардың көптегені әлі де қолданыста, кейбір жағдайларда клиенттер өздерінің бастапқы кодын басқа өндірушінің компьютеріне көшіріп, тілдердің стандарты сақталғандықтан, оны өзгеріссіз қайта құрастыра алғандықтан. Стандарттар көмектессе де, WOCA философиясы компилятор жасаушылары стандартты мұқият сақтаған жағдайда ғана тиімді болады.