Blogikirjoitus -

Paras ohjelmointikieli, osa 3: Pitkät merkkijonot

Tämän blogisarjan kahdessa ensimmäisessä osassa käsittelin koodareille oleellisia kieliä sekä niiden suosiota arvioivia tutkimuksia. Joudun itsekin usein tilanteeseen, jossa joudun valitsemaan usean kielen välillä. 

Viimeisin henkilökohtainen esimerkki ohjelmointikielen valinnasta on viime viikonlopulta. Minun piti generoida merkkijonoja, useita, ja tehdä kullakin niillä tietty operaatio. 

Ensimmäinen vaihtoehto oli Java, sillä siihen löysin valmiin toteutuksen vaadittavaan operaatioon. Java on kuitenkin suorituskyvyltään erityisen huono useiden merkkijonojen kanssa. Tässä tapauksessa "usea" tarkoitti maksimissaan 62 potenssiin 8, eli 218340105584896 erilaista merkkijonoa. 

Jostain syystä päädyin sulkemaan Netbeansin ja avaamaan Visual Studion. Kieleksi vaihtui C++. Jouduin toteuttamaan operaation uusiksi, mutta sainpahan tuloksen tämän vuoden puolella. 

Kun maanantaina oli alkamassa Python-kurssi, niin päätin hieman kokeilla sillä. Pienensin maksimimerkkijonon pituutta ja mahdollisia merkkejä tietäen, että Pythonin merkkijonot toimivat pitkälti samalla tavalla kuin Javan. Tiedossa oli siis hieman hitautta. Käytin sitten esimerkkinä viiden merkin mittaisia merkkijonoja. Näiden generointi ensimmäisellä versiolla kesti lähes minuutin (pelkkä generointi, ei mitään operaatioita). Kuuden merkin mittaisten merkkijonojen generointi kestikin sitten jo lähes kaksikymmentä minuuttia. Parin tunnin optimoinnin jälkeen sain viiden merkin mittaiset merkkijonot generoitua jo 23 sekunnissa, tähän olin sitten tyytyväinen. 

Muistin kuitenkin, että C++ toteutukseni generoi kuuden merkin mittaiset merkkijonot noin kolmessa sekunnissa. Olin silti tyytyväinen siihen, mitä Pythonilla sain aikaiseksi vaikka kuuden mittaisten merkkijonojen generointi kestikin 11 minuuttia. 

Kun voin valita ohjelmointikielen, niin eri tarkoituksiin tulee valittua eri kieli. Nyt kun tämä blogisarja alkaa olla valmis, alan testailemaan 3D-grafiikan kanssa. Tällä kertaa kieliä on kaksi:

Python ja OpenGL. Tällä kertaa ei C++-kieltä, sillä haluan saada projektin valmiiksi siedettävässä ajassa. Tosin otan pohjan OpenGL osuudelle C++-kielellä tekemästäni ohjelmasta. Ja taas lisähuomautus: todennäköisesti saisin saman asian tehtyä murto-osassa jos ottaisin Unity3D:n kauniiseen käteen, silloin kielenä olisi C#.

Tommi Teräsvirta, Training Consultant

Aiheet

  • Yritysvalmennus

Kategoriat

  • koodaaminen
  • ohjelmointi
  • ohjelmointikielet

Liittyvä sisältö

  • Paras ohjelmointikieli, osa 2: Tutkitusti paras?

    Eri tilastojen järjestys ohjelmointikielten suosiosta vaihtelee suuresti. Olennaisinta kuitenkin lienee, että itse kielellä ei juurikaan ole väliä kun käytetyn sovelluskehyksen vaihtaminen saattaa olla lähes suurempi ponnistus kuin kielen vaihtaminen. Ainakin silloin, kun yleinen ohjelmointiosaaminen on vahvalla pohjalla.

  • Paras ohjelmointikieli, osa 1: Koodarin peruspaletti

    Pyhä sota. Senhän siitä helposti saa jos yrittää kertoa mikä on paras ohjelmointikieli, käyttöjärjestelmä, työkalu tai automerkki. Silti päätin kirjoittaa blogisarjan siitä, mikä on paras ohjelmointikieli. Tässä ensimmäisessä osassa esittelen kaikki ne kielet, jotka kaikkien koodareiden olisi hyvä edes jollain tasolla osata.

  • Testaus 2014: Testaajien panostettava dialogiin ja itsensä kehittämiseen

    Tieturissa kevät on koittanut ja sen tunnistaa vuotuisesta virstapylväästä: Testaus-seminaarista. Seminaarin tarkoituksena on koota alan ammattilaiset yhteen pohtimaan testausalan trendejä sekä jännittämään, kuka julistetaan Vuoden Testaajaksi. Tänä vuonna puheenvuoroissa korostui meneillään oleva murros, joka pakottaa testaajan luoviin ratkaisuihin ja oman roolin uudelleenmäärittelyyn.