Preskoči na sadržaj

Razvoj slobodnog softvera otvorenog koda kao znanstvenoistraživački poduhvat – motivacija, izvedba i utjecaj

Vedran Miletic, HPC application expert, MPCDF, MPG; docent i voditelj grupe (na dopustu), FIDIT, UniRi

MPG MPCDF logos

Centar za otvorenu znanost, Open Science Café, 26. lipnja 2024.


Dr. Vedran Miletic


"Je li razvoj softvera za mene ili moju grupu? To je više za informatičare."

bg right:25%


Sadržaj predavanja

  • Vlasnički i slobodni softver
  • Znanstveni softver
  • Licence znanstvenog softvera: komercijalne, akademske, slobodne/otvorene
  • Motivacija, izvedba i utjecaj
  • Zaključak i idući koraci

bg left


Pogled u povijest

  • u počecima softvera: otvoren kao i formule u fizici ili matematici
  • komercijalizacija: prodaja hardvera i softvera u paketu
    • kao Apple macOS danas
    • nastanak i grananje Unixa
    • npr. grafika samo SGI
    • Berkeley Software Distribution (BSD)
  • Microsoftova vizija: Windowsi kao univerzalno sučelje između različitog hardvera i različitog softvera

bg right:40%


Slobodni softver i otvoreni kod

  • softver koji možete prilagođavati svojim potrebama i dijeliti prilagođene verzije (!= besplatan softver)
    • slično kao znanstvene rezultate
  • Richard M. Stallman
    • radi u MIT AI Labu; priča o printeru
    • 1983. osniva projekt GNU, kratica za GNU's Not Unix (GNU zaista nije Unix jer je neovisno razvijen kao slobodni softver, a Unix je neslobodni softver)
    • 1985. osniva Free Software Foundation (FSF) kako bi financirao razvoj slobodnog softvera
  • Netscape/Mozilla 1998., preteča Firefoxa
    • otvoreni kod (engl. open source)

bg left:25%


Linus Torvalds, autor Linuxa

I often compare open source to science. To where science took this whole notion of developing ideas in the open and improving on other peoples' ideas and making it into what science is today and the incredible advances that we have had. And I compare that to witchcraft and alchemy, where openness was something you didn't do.

bg right:40%

Video: Truth Happens Remix


Koliko vrijedi slobodni softver otvorenog koda?

  • 2018. godine Microsoft je dao 7,5 milijardi američkih dolara kako bi preuzeo GitHub, najveću svjetsku platformu za razvoj i dijeljenje otvorenog koda
    • ~= Facebook/Instagram/TikTok za programere
    • zbog toga danas može ponuditi umjetnu inteligenciju Copilot koja pomaže programerima u razvoju softvera
    • kroz Archive Program radi na očuvanju otvorenog koda za buduće generacije
  • godinu kasnije IBM je za 34 milijarde dolara kupio Red Hat, tada vodeću kompaniju za razvoj slobodnog operacijskog sustava za poslovne korisnike temeljenog na jezgri Linux

bg right:20%


Mentimeter: Što je za vas znanstveni softver?

menti.com i kod 1522 0077


Znanstveni softver

  • vrsta izvršnog softvera (kao web preglednik ili kasa u Konzumu)
  • razvija se kako bi riješio neki problem u nekoj grani znanosti
    • automatizacija repetitivnih postupaka
      • roboti u stvarnom svijetu
      • obrada podataka u računalu
    • modeliranje i simulacija stvarnih sustava u računalu
  • može se dijeliti među znanstvenicima kao znanstveni rezultati ili komercijalizirati

bg left:40%


Licence znanstvenog softvera

  • komercijalne licence
    • deseci različitih modela uvjeta i obračuna troškova (proporcionalno veličini superračunala, broju ljudi u grupi, broju eksperimenata/simulacija na godinu, ...)
  • akademske licence
    • besplatno ili simbolično niska cijena za nekomercijalno korištenje u akademske istraživačke i nastavne svrhe
    • kompetitivna cijena za komercijalno korištenje u industriji
  • slobodne, odnosno otvorene licence

bg right:35%


Slobodne, odnosno otvorene licence znanstvenog softvera

bg left:35%


Motivacija: Hrvatska je periferija zapadnog prostora znanosti

  • realnost je da su Kina, Rusija, Iran i s njima povezane manje države van zapadnog prostora znanosti
    • nažalost je sve izraženija tendencija da objavljuju kod sebe na svom jeziku
  • kaskamo u usporedbi sa zapadnijim državama: Nature metrike, ARWU, QS, THE, ...
    • razlozi su dobro poznati: financiranje, organizacija, povijesni razlozi (prof. Ivan Đikić, prof. Gordan Lauc i brojni drugi)
  • kroz razvoj znanstvenog softvera moguće je jače se povezati sa zapadnim kolegama i manje ovisiti o financiranju od strane MZO RH (HrZZ)

bg right:20%


Motivacija: softver kao digitalni robot

  • automatizacija repetitivnih radnji u stvarnom svijetu -> robot
  • automatizacija repetitivne obrade podataka -> softver
    • naravno, softver može i više od toga (!)

bg left:55%


Motivacija: software is eating the world

  • softver oko nas: pametni telefoni, televizije, auti, kućanski aparati, ...
  • modeliranje i simulacije umjesto teško dostupnih, sporih ili skupih eksperimenata u procesu istraživanja
    • većina objavljenih radova kombinira eksperimentalne i simulacijske metode, prilagođava ih po potrebi

bg right


Motivacija: stajanje na ramenima divova

if I have seen further [than others], it is by standing on the shoulders of giants.

-- Isaac Newton

  • ~= daljnji razvoj postojećih (slobodnih) znanstvenih softvera
  • slobodni softver je zbog toga posebno prikladan za razvoj znanstvenog softvera

bg left:50%


Izvedba: osnovne potrepštine

  • problem -> postupak rješavanja
  • programski jezik: Python, Julia, R, Perl; C++, C, Fortran
    • Python je danas lingua franca
    • gotove biblioteke treće strane koje se mogu iskoristiti su lakše za pronaći u popularnijim programskim jezicima
  • razvojno okruženje: Microsoft Visual Studio (VS) Code, JetBrains PyCharm ili sl.

bg right:40%


Izvedba: odnos programera i korisnika softvera

  • korisnik ima domensko znanje => problem, potreba
  • programer ima tehničko znanje => razvoj, rješenje
  • ista osoba može biti i korisnik i programer: jezici kao Python drastično su smanjili razinu potrebnih znanja za započeti razvoj softvera
  • zajedno ulažu vrijeme i trud => softver usklađen s potrebama

bg left


Izvedba: alati za suradnički razvoj softvera

  • platforme GitHub i GitLab omogućuju čuvanje promjena i dijeljenje razvijenog softvera:
    • softver može steći zvjezdice ~= lajkovi na Facebooku, Instagramu i TikToku
    • automatsko testiranje kod dodavanja promjena
    • mogućnost praćenja prijavljenih problema, planova razvoja, ...

bg right


Izvedba: imamo li dovoljno računalnog hardvera?

bg left


Treba li razvijati softver u skladu sa svojim znanstveno-istraživačkim potrebama?

bg


Ako već postoji gotov, vjerojatno ne

  • iz znanstvene perspektive, upitan doprinos
  • iz praktične perspektive, gubitak vremena i pogrešno uloženi trud

bg left:60%


Ako postoji sličan ("skoro gotov"), bolje je doraditi

  • uključivanje u razvoj postaje "penjanje na ramena divova"
  • odlična prilika za povezivanje i suradnju sa znanstvenicima koji razvijaju i koriste taj softver

bg right:60%


Ako ne postoji, da

  • (anegdotalno) znanstvenici u HR općenito koriste bitno manje automatizacije repetitivnih radnji u procesu istraživanja u odnosu na znanstvenike u zapadnijim državama
  • odabrati jezik i licencu, iskoristiti što više gotovih biblioteka treće strane
  • moguće je uključiti suradnike i podijeliti posao (i zasluge)

bg left


Utjecaj: javno dostupne metrike

  • softveri se distribuiraju putem različitih repozitorija, npr. conda-forge, PyPI
    • imaju javne metrike broja preuzimanja
  • GitHub/GitLab zvjezdice -> kao lajkovi na društvenim mrežama, pomažu rangiranju u pretragama
  • arhiva verzija softvera na Zenodu pomaže nalažljivosti softvera povezanim s radovima
    • ima javne metrike broja pogleda
    • može se citirati pomoću DOI

bg right:40%


Utjecaj: vidljivost na tražilicama

  • dokumentacija (ili web sjedište) znanstvenog softvera navodi autore, grupe i sveučilišta te može imati poveznice na njihova web sjedišta
    • rast posjećenosti dokumentacije i rast broja poveznica na nju utječe na rast važnosti web sjedišta autora, grupa i sveučilišta
    • spontani nalaznici mogu doprinijeti softveru i postaju potencijalni suradnici u znanstvenim projektima

bg left:40%


Utjecaj: objavljeni radovi i citati

  • u mnogim područjima moguće je objaviti znanstveni rad u časopisu koji opisuje razvijeni znanstveni softver
    • ponekad bude dio rada koji opisuje istraživanje u kojem je taj softver prvi put iskorišten
  • korisnici rado citiraju softver koji koriste iz zahvalnosti što im je besplatno dostupan i što ga mogu prilagoditi svojim potrebama
    • rad koji opisuje softver može lako imati 10x ili 100x više citata od prosječnog rada neke grupe

bg right:40%


Uspješni primjeri

bg left


Promjene u pravnom okviru akademske zajednice

  • u akademskoj zajednici u UK, uz mjesta doktoranda, predavača, profesora i dr., već više od 10 godina postoji radno mjesto inženjer znanstvenog softvera (engl. research software engineer, RSE)
    • u DE/FR se ljude zapošljava na radna mjesta za poslijedoktorande, istraživače i znanstvenike koji su članovi osoblja, ali nisu voditelji grupa
    • kako RH slijedi zapadne trendove, realno je očekivati da će se pravni okvir na neki način kretati u tom smjeru

bg right:35%


Zaključak i idući koraci

  • grupe koje razvijaju znanstveni znanstveni softver često surađuju i s industrijom
  • grupe koje razvijaju znanstveni slobodni softver otvorenog koda često budu jake i međunarodno poznate, iako nisu nužno uvijek dio najjačih sveučilišta
    • mogućnost za pozicioniranje grupa s hrvatskih sveučilišta (pa i UniRi)
  • danas je razvoj znanstvenog softvera istovremeno kompetitivan i kolaborativan
    • razvojni alati sve bolji => kvaliteta razvijenog softvera je sve bolja
    • teško je biti bolji od nekog postojećeg rješenja na kojem više grupa radi desetljećima i koje ima velik broj korisnika
    • bolje je ući u nišu koja nije bila pokrivena ili se otvorila napretkom u znanosti (npr. šira primjena umjetne inteligencije)

bg


Open Playground

bg right


Hvala na pažnji!

Prezentacija: miletic.net/otvorenaznanost2024

Osobna stranica: https://vedran.miletic.net/

Kontakt e-mail: vedran@miletic.net

Author: Vedran Miletić