Microsoft Excel постаје програмски језик

То је можда најстарији софтвер који је још увек у широкој употреби. Пре 34 године, само три године након што је компанија „Епл“ представила своје прве Мац рачунаре, компанија „Мајкрософт“ је објавила прву верзију своје познате Excel табеле, која је у почетку била тек груба копија ВисиЦалц-а Дена Бриклина. У једном новинском чланку који се појавио 2017. године истиче се да извршни директор компаније Сатја Надела назива Excel најважнијим производом широке потрошње „Мајкрософта“, при чему је истакао да има преко 750 милиона корисника. Чини нам се да присуствујемо значајном историјском догађају када једна од највећих светских корпорација оснажује кључну компоненту свог софтверског пакета Оффице, јер је сасвим сигурно да Excel добија надоградњу у облику нове и врло важне функције. Стручњаци у компанији верују да су коначно претворили Excel у пуноправни програмски језик, захваљујући увођењу нове функције под називом LAMBDA. „Uz LAMBDA, Excel је постао комплетан у Тјуринговом смислу. Сада, у принципу, можете да напишете било које прорачуне на Excel језику за формуле“, објављено је на блогу компаније.

„Пошто је прошао Тјурингов тест, можемо рећи да је Excel постао пуноправни програмски језик“, објављено је у једном новинском чланку. При том, реакција стручне заједнице охрабрује, а стручњаци у компанији са одушевљењем замишљају веште Excel кориснике како креирају функције. Навешћемо промене, као и како ће оне утицати на даљи развоја Excelа као програмског језика.

Програмирање помоћу програма Excel

Корисници Excelа већи део свог посла обављају помоћу формула – где унос у ћелију започиње знаком једнакости праћеним неком врстом прорачуна (“= А2 + Б2”). „Мајкрософтов“ блог назива формуле најшире коришћеним програмским језиком на свету, који је увек био ограничен на унапред дефинисани скуп опција. Да би покренули сопствене прилагођене функције, корисници су морали да користе други „Мајкрософтов“ програмски језик заснован на макроима, Висуал Басиц за апликације. (Или, почев од 2018. године, JavaScript – и наравно „Мајкрософтов“ JavaScript-superset TypeScript.) У видео-појављивању на Симпозијуму о принципима програмских језика (ПОПЛ) 2021, дугогодишњи стручњак из „Мајкрософта“ Сајмон Пејтон Џоунс приметио је да су Excelови крајњи корисници заиста имплементирали функције користећи ЈаваСцрипт, што је поновио у посту на блогу Microsoft Ресеарцх старији главни стручњак и виши главни менаџер истраживања. „Много више корисника је написало Excel формуле него што има програмера C, C ++, C #, Java и Python на свету.“

Сада сви ти корисници могу да пишу праве програме, али не морају да изађу из света Excel формула. Прецизније, формуле написане у Excelу сада могу да се „умотају“ у наведену функцију ЛАМБДА, а затим да се позову са било ког места у прорачунској табели. Пошто подржава рекурзивно програмирање, своју именовану функцију можете да позовете из своје именоване функције. Расположиви називи налазе се у опцији Наме Манагер која је смештена на Excelовој траци са алаткама Формулас. Корисници могу да уносе коментар приликом креирања своје функције. „Мајкрософтов“ стручњак Џек Вилијамс је на Симпозијуму истакао: „У програму Excel сада је могуће створити стварна и потпуна програмска искуства ... Сада можемо да почнемо да стварамо нешто што изгледа као прави програм.“

На блогу је дат пример ћелије чија вредност укључује име функције. Вредност која је на крају приказана у тој ћелији је резултат наведене функције, а аргумент те функције је адреса друге ћелије. Функција, такође, може да прихвати низ (који садржи више вредности) као свој аргумент – откако је Excel почео да додаје могућност дефинисања низова у програму Excel у септембру 2018. године. Функција може да пошаље низ као повратну вредност, при чему се њене вредности „преливају“ у више ћелија. У својој видео-презентацији на Симпозијуму, Вилијамс пише функцију која тренутно генерише календар. У објави на блогу постоји обећање да ће у будућности бити доступно више функција за низове и да компанија ради на „ефикасним применама комбинатора за обраду низа, као што су MAP и REDUCE“ који ће се користити на излазу именованих функција. Стручњаци се надају да ће се развој наставити и да ће се створити интегрисано развојно окружење у једном тренутку.

Сан из 2004. године

За Сајмона Пејтона Џоунса то представља испуњење дугогодишњег сна. Говорећи на Симпозијуму, дугогодишњи стручњак у компанији и заговорник функционалног програмирања испричао је причу о посети „Мајкрософтовом“ тиму за развој Excelа још 2004. године. Тада је сазнао да је Excel као супертанкер. Има врло високу вредност, има врло велику масу, а њиме управља изненађујуће мала и презапослена посада. Тако да није лако променити курс!“ Нову функцију LAMBDA сматрају „квалитативним помаком, а не само постепеном променом“. Именоване Ламбда функције нуде програмерима висококвалитетне језичке атрибуте „модуларности“ и „поновне употребе“, поштујући један од дугогодишњих принципа доброг кодирања, односно непонављање рада. Именована функција може чак да постане део друге именоване функције негде другде у табели, али то је само почетак оног што би могло да буде још сложенија конструкција. Коначно предвиђају да ће постојати „функције дефинисане у табелама“ где се неколико различитих функција, свака дефинисана у различитим ћелијама, заједнички користи за дефинисање веће функције.