Profesinio žargono pliūpsnis

/Programuotoj[ao]ms/.

Šis įrašas anksčiau buvo skelbiamas kaip kito įrašo apie barjerines kompetencijas dalis.

Kodėl IDE auto-complete neieško nutolusiose repozitorijose?

Nuoširdus klausimas.

Kodėl kodo bibliotekų importavimas vis dar atrodo taip nykiai? Kodėl bent į kokias IDE nėra tiesiai integruota paieška bibliotekų repozitorijose tiesiai iš kodo auto-complete? Ta prasme, parašau sort, spaudžiu auto-complete klavišų kombinaciją, ir iškart matau visus rikiavimo algoritmus iš visų paketų, kurie tik guli PyPI, NuGet, Hackage ar kur. Pasirenku, fone parsiunčia, parašo importavimo sakinį, viskas ore.

Aišku, nuo utopijos iki tikrovės čia dar daug klausimų, ir tikėtina, kad juos jau kažkas apmąstė, o aš tik ieškoti nemoku. Reiktų geros full-text paieškos. Reiktų imtis pastangų, kad pavyktų suderinti duomenų reprezentacijas. Bet nemanau, kad unifikuota duomenų tipų ontologija yra kažkoks arkaninis tikslas.

Bet gal yra kokia rimta priežastis, kodėl tai nevyksta?

Code mining’as

Google paieška rodo, kad tai jau daugmaž tampa dalyku. Mintis aiški – programinis kodas irgi įeina į big data. Juk pilnas GitHub’as palankiai licencijuoto open-source kodo.

Mes pateikiame keletą input-output porų, turbopaieška perkapsto visą GitHub’ą ir randa funkciją, kuri produkuoja duotus output’us iš duotų input’ų. Programavimas netaptų redundantiškas ir neišnyktų, bet šitaip įgytų visiškai kitą prieskonį. Manau, kad atsirastų kur kas palankesnės sąlygos pradedantiesiems.

Žinoma, kažkas pamėtės matematinių įrodymų, kad Turingo mašina negali pati taip jau imti ir ieškoti dalykų Turing-complete erdvėje. Ir vis dėlto tyliai tikiu, kad bene visas žmonių rašomas kodas sukrenta į kažkokią natūralią Turing-complete erdvės subklasę. Tokią, kur ieškojimai jau sektųsi lengviau. Manyčiau, žmogiškoji programuotojų prigimtis uždeda nemažai netrivialių ribojimų ant to, koks kodas yra tikėtinas, koks – ne.

Ir čia aš prie istorijos dar netgi neprijungiau induktyviojo programavimo. Baisiai įdomu, kaip šitas dalykas derėtų su code mining’u. Beje, kiek suprantu, šitoje srityje jau naudojamos kažkokios euristikos yrimuisi per tą Turingo erdvę.

Paskelbta 2018-01-15