This document is also available in English. Dieses Dokument ist auch auf Deutsch erhältlich.
Käytän mieluiten vapaita ohjelmistoja. En niinkään rahaa säästääkseni vaan siksi, että minun ja muiden on mahdollista muokata ohjelmia paremmin tarpeisiini sopiviksi. Minäkin olen kirjoittanut joitakin vapaita ohjelmia, pääasiassa C-kielellä.
Kirjoittaessani omia C- tai C++-ohjelmia minulla oli tapana noudattaa Ellemtelin sääntöjä ja suosituksia (saatavilla myös PDF-muodossa) joitakin poikkeuksia lukuun ottamatta.
Nykyään lienee parasta noudattaa tuoreempia
suosituksia Google C++
Style Guide ja C++ Core
Guidelines sekä luottaa staattiseen analyysiin ja
kääntäjiin. Clang antaa hyödyllisiä varoituksia ja tarjoaa monenlaista
käännösaikaista instrumentointia virheiden löytämiseksi ajon
aikana: ASAN,
MSAN,
UBSAN ja
TSAN. Nämä työkalut yhdessä
regressiotestien ja koodipeittoanalyysin kanssa mahdollistavat tehokkaan
versionhallintatyökalujen käytön, kuten git bisect
.
Ammattimaisessa ohjelmistokehityksessä on usein tarpeen sopeutua ennalta määrättyyn ohjelmointityyliin tai työkaluihin. Vaikka olisi mukava käyttää aina uusimpia standardeja ja työkaluja, valitut kohdealustat voivat rajoittaa valintaa. 2000-luvulla kääntäjien ja käyttöjärjestelmien kirjo on onneksi ollut vähenemään päin ja jäljelle jääneet kääntäjäperheet (pääasiassa GCC, Clang, Microsoft) ovat mukana standardien kehityksessä. Vuonna 2016 ISO/IEC 14882:2011 eli C++11 todella on käyttökelpoinen valinta. Se on selkeä parannus vuoteen 2003, jolloin silloinen viisi vuotta vanha standardi C++98 ei edelleenkään toiminut useimmissa ympäristöissä. C++14:n ja tulevan C++17:n tulevaisuus näyttää lupaavalta.
Jatko-opiskelijana tein C++- ja C-kielisen saavutettavuusanalysaattorin ja mallintarkistimen korkean tason Petri-verkoille. Sillä voi paikantaa virheitä rinnakkaisista ja hajautetuista järjestelmistä. Ohjelma sisältyy Debian GNU/Linux -jakeluun.
Pidän kombinatorisista ongelmista, mutta minulla on tapana ratkaista ne raa’alla voimalla. Selvitin 6×10-kokoisen Pentomino-palapelin kaikki ratkaisut. Suunnittelin myös joitakin värikkäitä sängynpeitteitä C-ohjelmien avulla.
jpegcom
, jolla voi muokata kuvatiedostojen
selostuksia, exifiron
, joka kääntää ja tiivistää
digitaalikameralla otettuja kuvia, sekä jpegnail
, joka
liittää JPEG-kuviin pieniä esikatselukuvia tai poistaa niitä.Java-kielestä kohuttiin joskus vuonna 1995. Kerran käännetty ja testattu ohjelmisto toimisi kaikissa ympäristöissä. Niin ei kuitenkaan käynyt: etenkin graafisen käyttöliittymän ohjelmointiliitynnät ovat muuttuneet lähes jokaisessa Java-ajoympäristön versiossa. Lisäksi ajoympäristö on kasvanut hyvin suureksi, eikä siitä ole kattavaa vapaata toteutusta. Näistä syistä pyrin välttämään Java-kieltä, vaikka olen sillä joitakin kokeiluja tehnytkin.
Tutustu myös sekalaisiin apuohjelmiini, kytkentöihini ja vanhoille tietokoneille kirjoittamiini ohjelmiin.