1. Uvod

1.1. Python vs. Jupyter vs. Sage

  • Python je računalni jezik opće namjene. Zahvaljujući, s jedne strane, dobroj čitljivosti koda, a s druge brojnim kvalitetnim bibliotekama za numeriku, simboliku, crtanje itd., Python se često koristi u istraživanjima i edukaciji iz fizike i srodnih područja znanosti i tehnike.
  • Jupyter je sučelje za Python (i brojne druge računalne jezike) namjenjeno interaktivnom radu. Postoje inačice za terminalski rad, grafičko sučelje i, najpopularnije, sučelje putem WWW preglednika tzv. Jupyter notebook.
  • Anaconda je besplatna distribucija Pythona koja uključuje Jupyter i sve pakete koji se koriste u ovom dokumentu, pa je tako najjednostavniji put k instalaciji svega što nam je potrebno.
  • Sage je besplatni matematički softver otvorenog koda koji udružuje niz postojećih matematičkih (i drugih) biblioteka u zajedničko sučelje zasnovano na Pythonu, s ciljem kreiranja alternative komercijalnim softverima poput Mathematice, Maplea ili Matlaba. Također omogućuje izvršavanje svog koda iz ovog dokumenta. Ne postoji verzija za Microsoft Windows, ali je na tom operacijskom sustavu moguća relativno bezbolna upotreba putem virtualnog Linuxa. SageMathCloud je besplatni WWW servis koji omogućuje online korištenje Sage ili Jupyter okruženja. Starija verzija ovog dokumenta koristila je Sage i dostupna je ovdje.

1.2. Zašto Python?

  1. Python je izrazito elegantan za upotrebu. Popularan je u znanstvenoj zajednici, pa postoji velik broj korisnih Python biblioteka od općih pa do vrlo specijaliziranih znanstvenih namjena.
  2. Znanost mora biti reproducibilna i u načelu vječna. Računalni kod koji ovisi o softveru “zatvorenog” koda to onemogućuje.
  3. Sage je najrazvijeniji sustav za računalnu algebru (CAS - Compute Algebra System) otvorenog koda (open source). Ukoliko zahtjevi korisnika za složenijim matematičkim i simboličkim strukturama nisu preveliki, čisti Python u kombinaciji s nekoliko važnih dodatnih Python paketa (numpy, scipy, matplotlib, sympy) predstavlja dovoljnu, a značajno univerzalniju i portabilniju alternativu Sage-u.

Za detaljniju diskusiju o izboru softvera za računanje u znanosti, vidi Johansson, Introduction to scientific computing with Python, te, također, Koepke, 10 Reasons Python Rocks for Research (And a Few Reasons it Doesn’t).