Uusia ohjelmointikieliä tulee nykyään tasaiseen tahtiin. Valtaosa niistä ei tuo mitään mullistavaa uutta pöydälle. Hiljattain Mozillan suojista pinnalle noussut Rust on kuitenkin kerännyt mielenkiintoa varsin paljon. Vaikka Rust ei tuo mukanaan mitään mullistavaa uutuutta ominaisuuksien puolesta, kerää se monia nykyaikaisia ominaisuuksia varsin toimivaksi kokonaisuudeksi. Mikä erityisesti tekee tästä kielestä mielenkiintoisen on sen käyttökohde. Nykysuuntauksesta poiketen, Rust on virtuaalikoneeton tehokas järjestelmätason kieli, joka pyrkii haastamaan C:n ja C++:n valta-asemaa. Lue lisää

Aloittaessasi uudessa projektissa tulee usein jo ensimetreillä vastaan tyypillinen ongelma: arvokasta työaikaa tuhlaantuu kehitysympäristön pystyttämiseen. Sama tilanne on edessä esimerkiksi uuden koneen kanssa. Jos hyvin käy, on tarvittavat ohjelmistot versioineen ja konfiguraatioineen dokumentoitu jonnekin. Hyvässä lykyssä tämä dokumentaatio on myös ajan tasalla. Silti tarvittavien ohjelmistojen etsimiseen, asentamiseen ja konfigurointiin saattaa mennä yllättävän paljon aikaa. Huonoimmassa tilanteessa, eli dokumentaation puuttuessa kokonaan, pitää vielä lisäksi ensimmäisenä selvittää tarvittavat ohjelmistot esimerkiksi työkavereita haastattelemalla tai yrityksen ja erehdyksen kautta. Lue lisää

Tässä kirjoitussarjassa käsittelen C++:aan liittyvää tietoutta, joka mielestäni kuuluu ammattimaisen C++-ohjelmoijan yleissivistykseen. Näin pystyy hyödyntämään kielen ominaisuuksia ylläpidettävän, luettavan ja vähän virheitä sisältävän ohjelmiston tuottamiseen, sekä pystyy lukemaan ja ylläpitämään näihin ominaisuuksiin pyrkivää C++-koodia. Käsittelen kielen ominaisuuksia, standardikirjaston osia sekä idiomeja ja muita sääntöjä ja käsitteitä.

Osan tietoudesta luulen olevan laajastikin tunnettua C++-ohjelmoijien keskuudessa; osa voi olla vieraampaa, mutta kaikista näistä tekniikoista on niin paljon etua, että ne mielestäni kuuluvat C++-ohjelmoijan sivistykseen. Lue lisää

Jo esikoulussa lapsille opetetaan, kuinka yhteiselo muiden kanssa on välillä hankalaa – varsinkin, kun tapellaan samoista leluista. Samalla kantapään kautta opitaan, että kannattaa olla joko itsekäs tai, vastapuolen koosta riippuen, antaa suosiolla lelu sitä pyytävälle. Lopputuloksena on, että pienimmät ja heikoimmat sortuvat elon tiellä ja jäävät aina ilman leluja, ellei täti tai setä ole auttamassa. Fiksuimmat tosin huomasivat, että yhdessäkin on mahdollista leikkiä samalla lelulla. Lue lisää

Reaktiiviset laajennukset (Reactive Extensions, rx) ovat kirjastoperhe asynkroniseen ohjelmointiin. Siitä on kirjastototeutuksia käytännössä kaikille kielille ja alustoille, esimerkiksi JavaScript, Java, C#, C++ ja Swift. Rx:n voi toteuttaa mille tahansa kielelle, mutta sen helppo käyttö edellyttää kieleltä tukea lambdoille ja korkeamman kertaluvun funktioille. Tässä käsitellään ohjelmointikieliagnostisesti rx:n käsitteitä ja toimintaa.

Rx laajentaa tarkkailijasuunnittelumallin yksittäisistä toisistaan irrallisista tapahtumista tapahtumasekvenssiksi. Tämä sekvenssi voi olla loogisesti loputon, keskeytyä virheeseen tai päättyä. Lue lisää

Responsiivisuus on termi, joka on viime vuosien aikana noussut erilaisten web-sivustojen ja -sovellusten toteutuksen avainsanaksi. Erityisesti webin voimakkaasti lisääntynyt käyttö mobiililaitteilla on korostanut sitä aiempaa enemmän. Käyttöliittymäsuunnittelun kannalta yleisenä määritelmänä responsiivisuudelle voidaan pitää sivuston mukautumista käytetylle päätelaitteelle. Käytännössä responsiivisuuteen liittyy kuitenkin useita eri näkökulmia ja lähtökohtia, joista responsiivisuutta voidaan lähestyä.

Responsiivisuuden pohjana on sivun rakenne, jonka tulee mukautua eri kokoisten laitteiden näytöille. Lue lisää