jjari kirjoitti:Sleepperi kirjoitti:Mielestäni ... kannattaa aloittaa yhdellä siistillä ja tuottavalla kielellä, johon on riittävä kirjastotuki. Suosittelen yleisesti Pythonia, kehotan välttämään Javaa ja C++:ta
Miksi?
Laajensin vähän tekemääsi lainausta, että perustelut tulevat näkyviin. Python on harrastajan työkaluna kertaluokkaa siistimpi ja tuottavampi kuin esimerkiksi nuo kaksi. Se ei ole tehokas suorituskykymielessä, mutta siihenkin voi vaikuttaa tarvittaessa, eikä asialla ole harrastajalle suuren osan ajasta mitään merkitystä. Koska on kyse skriptikielestä, Pythonilla tehtyä softaa on todella helppo laajentaa. Se on hyvä ns. liimakieli, eli hyvä yhteistyössä muilla kielillä koodattujen palojen kanssa (tältä osalta minulla ei tosin ole omakätistä kokemusta).
C++ on parhaimmillaan hyvin ilmaisuvoimainen, mutta sen kanssa sulavasti työskentely vaatii hyvää työkalujen hallintaa, sekä sitä että tuntee kielen ja kirjastot hyvinkin perinpohjaisesti, ettei ammu itseään jalkaan. Jos ei tunne kieltä tarpeeksi hyvin käyttääkseen sen edistyneitä ominaisuuksia, niin ampuu itseään jalkaan, mutta lisäksi kielen ilmaisuvoima on silloin huonompi ja koodaaminen kankeampaa kuin Javan. Standardikirjasto on pieni ja kaiken korkean tason toiminnallisuuden perässä pitää mennä muihin kirjastoihin. Sittenkin niiden kirjastojen etsiminen ja hyödyntäminen on huomattavasti hankalampaa kuin Pythonissa.
Javassa muistinhallinta ei itketä, mutta se on syntaksiltaan ja ajatusmalleiltaan jäyhä eikä kovin ilmaisuvoimainen kieli. Sillä on siis hidasta, ei-tuottavaa koodata. Javan vahvuudet, niinkuin älyttömän laajat standardikirjastot, infrastruktuurit, oheistilpehöörit ja tietyntyyppinen luotettavuus, tulevat esiin lähinnä isoissa kaupallisissa jutuissa. Huonoille (palkatuille) koodareille Javan jäyhyys on ehkä hyvä, kun eivät pysty rikkomaan mitään niin nopeasti kuin muilla kielillä. Eri kysymys on, kannattaako heitä siltikään palkata.
Todettakoon, että koodaan itse C++:lla ja saan palkkaa, olen koodannut Javalla ja saanut palkkaa, ja kosketuspohjani Pythoniin rajoittuu koulukurssiin ja vähän päälle. Sekin vähä riitti johtopäätöksen muodostamiseen.