perusteluja. Mikä olisi paras Linux noin ohjelmointia ja tieteellistä laskentaa ajatellen?
Kaipaisin
mielipiteitä ja
8427
0Äänestä
Muut lukivat myös
Ketjusta on poistettu 2 sääntöjenvastaista viestiä.
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 8
Vanhimmat
Lazaruksen perusteet on ainakin helppo oppia jos haluaa graafisen käyttöliittymän. Sen taustalla toimiva kääntäjä FreePascal kuuluu nopeampien kääntäjien joukkoon mitä linuxiin saa/ on tähän mennessä tehty.
http://linux.fi/index.php/Lazarus
Sieltä kannattanee katsoa esim. tähtikartta sovellusta
Mahdatko olla tosissasi, vai onko tuon Lazaruksen toistuva mainostaminen vain refleksi?
Ohjelmointikieli tukee "tieteellistä laskentaa" mielestäni sitä paremmin, mitä useamman asian se seuraavasta listasta toteuttaa (kohdat eivät ole tärkeysjärjestyksessä):
1. kieli tukee suoraan monipuolisia lukutyyppejä (mm. kompleksiluvut, vektorit ja matriisit sekä rajoittamattoman tarkkuuden luvut)
2. kieleen on saatavana laajat ja laadukkaat tieteellistä tehtävää tukevat kirjastot (esim. lineaarialgebraa, tilastoja, optimointialgoritmeja,... mitä nyt sattuu kaipaamaan)
3. kielen abstraktiotaso on korkea, esim. joukot ja taulukot ovat kielen tyyppejä --- näin ohjelmointi on nopeaa ja vähemmän altista virheille
4. ohjelmakoodin suorittaminen on nopeaa
5. ohjelmien ajon erilaisin parametrein voi automatisoida helposti ja laskennan hajauttaminen monille tietokoneille onnistuu järkevällä vaivalla.
Luulen, että Lazarus on tehty täysin erilaista käyttöä ajatellen.
Itse olen "tieteellisessä laskennassani" suosinut Pythonia, vaikkei se lähellekään kaikissa mainitsemissani kohdissa ylläkään parhaiden kielten joukkoon. Kuitenkin minun kannaltani olennaisimmissa kohdissa se on loistanut.
---
Sitten vastaus alkuperäiseen kysymykseen, jossa kysyttiin ennemminkin Linux-distribuutiota kuin ohjelmointiympäristöä. Suosittelen sellaista distroa, johon voi näppärästi asentaa eksoottisiakin ohjelmointikieliä, -työkaluja ja ohjelmakirjastoja. Olen itse käytellyt tyytyväisenä Debiania ja Ubuntua --- kutakuinkin sama, erittäin laaja pakettivalikoima molemmissa ja sopivien pakettien etsiminen ja asentaminen on helppoa eikä kestä kauaa.
Mihin luokkaan laitat tämän ohjelman esimerkiksi ?
http://www.sph.sc.edu/comd/rorden/mricron/
Oletko itse katsonut lähettämäsi ohjelman lähdekoodia? Koodin perusteella päättelen, että joko kyseisen ohjelman tekijät eivät ole osanneet hyödyntää Lazaruksen kirjastoja, tai sitten Lazarus ei todellakaan tarjoa juuri mitään valmista tieteelliseen laskentaan.
Ensimmäinen vaihtoehto on luultavasti väärä, koska lähdekoodin lataussivullakin sanotaan: "This software requires some recent patches that are not available on the current stable release. To get the latest developmental snapshot of Lazarus, click here." Eli tuon ohjelman tekemiseksi ei "perusversio" Lazaruksesta riitä, vaan kehittäjät ovat joutuneet käyttämään jotain epästabiilia versiota kääntäjästä, kirjastosta tai kehitysympäristöstä. Se _ei_ ole herkkua kehittäjälle.
Mikä sitten koodissa näyttää siltä, että Lazaruksesta ei löydy järkevää tukea.
Edellä mainitsemani kohta 1 (vektorit, matriisit): mainitsemasi ohjelman tekijät ovat joutuneet itse toteuttamaan matriisit ja luonnollisesti muutaman aivan perus rutiinin niille (GraphicsMathLibrary, 738 riviä).
Kohta 2 (laajat kirjastot): ohjelman tekijät ovat joutuneet koodaamaan itse mm. tilastomatematiikan (stat, 472 riviä; distr, 588 riviä) ja gzipin (gzio2, 1703 riviä; gzio20, 1426 riviä).
Kohta 3 (korkea abstraktio): staattisen kokoiset taulukot tulevat kohtuullisen helposti kielen syntaksilla, mutta dynaamisissa taulukoissa päästään varailemaan muistia aivan samalla tasolla kuin C:ssä (getmem). Kieli ei taida tukea edes roskienkeruuta, joten muistin vapauttaminen jää ohjelmoijan vastuulle (freemem).
Kaikki yllä mainitsemani asiat viittaavat siihen, että yhtään monimutkaisempien ohjelmien tekeminen Lazaruksella vaatii hirvittävän määrän sellaista rutiinityötä, johon ei nykyaikaisemmilla kielillä tarvitsisi liata käsiään. Tieteelliseen laskentaan koodia kirjoittaessani jätän tuollaiset työkalut pois laskuista heti kättelyssä. Tutkimustyössä mm. gzipin toteuttaminen itse ei todellakaan ole järkevä tapa käyttää rajallisia resursseja.
(ps. Pythonissa voi sanoa: "import gzip")
"Koodin perusteella päättelen, että joko kyseisen ohjelman tekijät eivät ole osanneet hyödyntää Lazaruksen kirjastoja"
Lazarus/ pascal on niin laaja kieli että vain harva tuntee sen kaikkia mahdollisuuksia.
Ota huomioon että tuo koodi toiminee myös Delphissä.
"Eli tuon ohjelman tekemiseksi ei "perusversio" Lazaruksesta riitä"
Veikkaisin että tuota www-sivua ei ole päivitetty version 0.9.18 jälkeen (versio 0.9.18 on julkaistu 19.syyskuuta 2006)
Lazarukseen/pascaliin löytyy monenlaisia kirjastoja (vanhimmat 1970-luvulta)
http://wiki.mureakuha.com/wiki/Lazarus
Grafiikkaan esim.
GLSCene
http://wiki.mureakuha.com/wiki/GLScene
tai LEAF2
http://wiki.mureakuha.com/wiki/LEAF2
ja paljon muitakin on hyödynnetty
Esim. http://www.rthree.org/
"staattisen kokoiset taulukot tulevat kohtuullisen helposti kielen syntaksilla, mutta dynaamisissa taulukoissa päästään varailemaan muistia aivan samalla tasolla kuin C:ssä (getmem)."
Pascal tukee nykyään myös dynaamisia taulukoita. Ota huomioon että Pascalilla voidaan tehdä myös matalan tason ohjelmia (esim Lazarus-kehitysympäristö on kokonaan tehty Pascalilla)
"Kaikki yllä mainitsemani asiat viittaavat siihen, että yhtään monimutkaisempien ohjelmien tekeminen Lazaruksella vaatii hirvittävän määrän sellaista rutiinityötä, johon ei nykyaikaisemmilla kielillä tarvitsisi liata käsiään."
Mielestäni johtopäätöksesi on väärä. Pascalin edut tulevat esille vasta sitten kuin muissa loppuu teho.
Mielestäni pakattujen tiedostojen teko on aika helppoa myös pascalissa:
http://wiki.lazarus.freepascal.org/Zlibar
Lisää lukemista:
http://www.oreilly.com/catalog/delphi/chapter/ch02.html
"Mikä olisi paras Linux noin ohjelmointia ja tieteellistä laskentaa ajatellen?"
Koitapa selvittää itsellesi, mikä on Linux.
Linux-jakelut ovat Linux-kernelin ympärille koottuja vapaita ohjelmistoja.
Ohjelmointityökalut on vakiona kaikissa Linux-jakeluissa. "Tieteelliseen" laskentaa tarvitset sovellutusohjelman, joka toimii Linux-käyttöjärjestelmässä.
ei mikään linux ole hyvä, vaihda vinkkariin
fiksumpi tyyppi taas liikkeellä.