Microsoft Excel postaje programski jezik

To je možda najstariji softver koji je još uvek u širokoj upotrebi. Pre 34 godine, samo tri godine nakon što je kompanija „Epl“ predstavila svoje prve Mac računare, kompanija „Majkrosoft“ je objavila prvu verziju svoje poznate Excel tabele, koja je u početku bila tek gruba kopija VisiCalc-a Dena Briklina. U jednom novinskom članku koji se pojavio 2017. godine ističe se da izvršni direktor kompanije Satja Nadela naziva Excel najvažnijim proizvodom široke potrošnje „Majkrosofta“, pri čemu je istakao da ima preko 750 miliona korisnika. Čini nam se da prisustvujemo značajnom istorijskom događaju kada jedna od najvećih svetskih korporacija osnažuje ključnu komponentu svog softverskog paketa Office, jer je sasvim sigurno da Excel dobija nadogradnju u obliku nove i vrlo važne funkcije. Stručnjaci u kompaniji veruju da su konačno pretvorili Excel u punopravni programski jezik, zahvaljujući uvođenju nove funkcije pod nazivom LAMBDA . „Uz LAMBDA , Excel je postao kompletan u Tjuringovom smislu. Sada, u principu, možete da napišete bilo koje proračune na Excel jeziku za formule“, objavljeno je na blogu kompanije.

„Pošto je prošao Tjuringov test, možemo reći da je Excel postao punopravni programski jezik“, objavljeno je u jednom novinskom članku. Pri tom, reakcija stručne zajednice ohrabruje, a stručnjaci u kompaniji sa oduševljenjem zamišljaju vešte Excel korisnike kako kreiraju funkcije. Navešćemo promene, kao i kako će one uticati na dalji razvoja Excel a kao programskog jezika.

Programiranje pomoću programa Excel

Korisnici Excel a veći deo svog posla obavljaju pomoću formula – gde unos u ćeliju započinje znakom jednakosti praćenim nekom vrstom proračuna (“= A2 + B2”). „Majkrosoftov“ blog naziva formule najšire korišćenim programskim jezikom na svetu, koji je uvek bio ograničen na unapred definisani skup opcija. Da bi pokrenuli sopstvene prilagođene funkcije, korisnici su morali da koriste drugi „Majkrosoftov“ programski jezik zasnovan na makroima, Visual Basic za aplikacije. (Ili, počev od 2018. godine, JavaScript – i naravno „Majkrosoftov“ JavaScript-superset TypeScript .) U video-pojavljivanju na Simpozijumu o principima programskih jezika (POPL) 2021, dugogodišnji stručnjak iz „Majkrosofta“ Sajmon Pejton Džouns primetio je da su Excel ovi krajnji korisnici zaista implementirali funkcije koristeći JavaScript, što je ponovio u postu na blogu Microsoft Research stariji glavni stručnjak i viši glavni menadžer istraživanja. „Mnogo više korisnika je napisalo Excel formule nego što ima programera C, C ++, C #, Java i Python na svetu.“

Sada svi ti korisnici mogu da pišu prave programe, ali ne moraju da izađu iz sveta Excel formula. Preciznije, formule napisane u Excel u sada mogu da se „umotaju“ u navedenu funkciju LAMBDA, a zatim da se pozovu sa bilo kog mesta u proračunskoj tabeli. Pošto podržava rekurzivno programiranje, svoju imenovanu funkciju možete da pozovete iz svoje imenovane funkcije. Raspoloživi nazivi nalaze se u opciji Name Manager koja je smeštena na Excel ovoj traci sa alatkama Formulas. Korisnici mogu da unose komentar prilikom kreiranja svoje funkcije. „Majkrosoftov“ stručnjak Džek Vilijams je na Simpozijumu istakao: „U programu Excel sada je moguće stvoriti stvarna i potpuna programska iskustva … Sada možemo da počnemo da stvaramo nešto što izgleda kao pravi program.“

Na blogu je dat primer ćelije čija vrednost uključuje ime funkcije. Vrednost koja je na kraju prikazana u toj ćeliji je rezultat navedene funkcije, a argument te funkcije je adresa druge ćelije. Funkcija, takođe, može da prihvati niz (koji sadrži više vrednosti) kao svoj argument – otkako je Excel počeo da dodaje mogućnost definisanja nizova u programu Excel u septembru 2018. godine. Funkcija može da pošalje niz kao povratnu vrednost, pri čemu se njene vrednosti „prelivaju“ u više ćelija. U svojoj video-prezentaciji na Simpozijumu, Vilijams piše funkciju koja trenutno generiše kalendar. U objavi na blogu postoji obećanje da će u budućnosti biti dostupno više funkcija za nizove i da kompanija radi na „efikasnim primenama kombinatora za obradu niza, kao što su MAP i REDUCE “ koji će se koristiti na izlazu imenovanih funkcija. Stručnjaci se nadaju da će se razvoj nastaviti i da će se stvoriti integrisano razvojno okruženje u jednom trenutku.

San iz 2004. godine

Za Sajmona Pejtona Džounsa to predstavlja ispunjenje dugogodišnjeg sna. Govoreći na Simpozijumu, dugogodišnji stručnjak u kompaniji i zagovornik funkcionalnog programiranja ispričao je priču o poseti „Majkrosoftovom“ timu za razvoj Excel a još 2004. godine. Tada je saznao da je Excel kao supertanker. Ima vrlo visoku vrednost, ima vrlo veliku masu, a njime upravlja iznenađujuće mala i prezaposlena posada. Tako da nije lako promeniti kurs!“ Novu funkciju LAMBDA smatraju „kvalitativnim pomakom, a ne samo postepenom promenom“. Imenovane Lambda funkcije nude programerima visokokvalitetne jezičke atribute „modularnosti“ i „ponovne upotrebe“, poštujući jedan od dugogodišnjih principa dobrog kodiranja, odnosno neponavljanje rada. Imenovana funkcija može čak da postane deo druge imenovane funkcije negde drugde u tabeli, ali to je samo početak onog što bi moglo da bude još složenija konstrukcija. Konačno predviđaju da će postojati „funkcije definisane u tabelama“ gde se nekoliko različitih funkcija, svaka definisana u različitim ćelijama, zajednički koristi za definisanje veće funkcije.

6292-xa-microsoft-xa-xa-excel-xa-postaje-programski-jezik