Sivusto on suunniteltu XHTML & CSS-yhteensopiville selaimille. Suosittelemme selaimen päivittämistä uudempaan versioon.

Suoraan sisältöön.
Tulosta sivu

Avoin lähdekoodi

13.11.2006

Parhaat avoimen lähdekoodin ohjelmistot ovat laadussa ja toimivuudessa usein monta askelta kaupallisia sovelluksia edellä.

Joni Freeman, pääarkkitehti

Avoimen lähdekoodin eli open source -ohjelmistot ovat viimeisen kymmenen vuoden aikana muuttaneet ohjelmistoalaa enemmän kuin yksikään toinen ilmiö.

Avoimen lähdekoodin ratkaisut muovaavat jo esimerkiksi Javan standardointiprosessia. Tästä hyvänä esimerkkinä on uusi EJB3-määritys, johon Spring- ja Hibernate- ratkaisut vaikuttivat merkittävästi. Avoimen lähdekoodin käyttäjillä uuden standardin mukaiset ominaisuudet olivat hyödynnettävissä jo vuosia aikaisemmin.

Miksi kannattaa valita avoimen lähdekoodin ohjelmisto?

Avoimen lähdekoodin ratkaisut ovat saavuttaneet asemansa laadun ja edistyksellisyyden ansiosta.

Syitä valita avoimen lähdekoodin ratkaisu ovat muun muassa:

  • Avoimen lähdekoodin tuotteiden ominaisuudet ovat usein edistyksellisempiä kuin kaupallisten tuotteiden
  • Ohjelmiston läpinäkyvyys auttaa ymmärtämään kokonaisuutta ja ratkaisemaan ongelmia
  • Kehittäjätuki on usein hyvää, parhaimmillaan erinomaista
  • Koodin avoimuus takaa paremman laadun
  • Mahdollisuus osallistua teknologian kehittämiseen, jolloin omien ratkaisujen tekeminen helpottuu
  • Kaupallisten tuotteiden lisenssikustannukset

Nykyaikaisissa yritysratkaisuissa on yleistä, että käytetään sekä avoimen lähdekoodin että kaupallisia tuotteita yhdessä. Usein sovelluskehykset ovat avoimen lähdekoodin tuotteita (esimerkiksi Spring ja ORM-tuote Hibernate) ja sovelluspalvelin ja tietokannat kaupallisia ohjelmistoja (esimerkiksi BEA WebLogic ja Oracle).

Spring ja Hibernate muodostavat vahvan ytimen useissa Reaktorin projekteissa. Molemmat edustavat back-end-sovelluskehysten aatelia. Komponenttipohjaisista web-sovelluskehyksistä tällä hetkellä kiinnostavin on Wicket, jolla olemme tehneet interaktiivisia web-käyttöliittymiä. Sen avulla voi tehdä yksikkötestattavia, olio-orientoituneita käyttöliittymiä, jossa komponentteja voidaan helposti käyttää uudelleen.

Avoimen lähdekoodin hyödyntäminen vaatii asiantuntija-apua

Avoimen lähdekoodin tuotteita ja kaupallisia tuotteita valitessa arviointiperusteet ovat erilaiset. Avoimen lähdekoodin arvioiminen vaatii alan tuntemusta ja aktiivista seuraamista. Tärkeimpiä valintakriteereitä ovat esimerkiksi levinneisyys, käytön yleisyys, toimiva kehittäjäyhteisö ja koodin laatu.

Avoimen lähdekoodin ohjelmistojen heikkouksia on se, että vanhojen versioiden tuki on usein lyhytaikaista ja tuki- ja koulutuspalvelut ovat usein heikompia kuin kaupallisilla toimittajilla. Kehittäjiltä ja käyttäjäyhteisöltä saatava tuki on kuitenkin asemansa vakiinnuttaneilla avoimen lähdekoodin tuotteilla hyvää, ja saatavilla oleva tieto on objektiivisempaa.

Avoimen lähdekoodin käytössä on huomioitava, että

  • Avoimen lähdekoodin käyttö vaatii syvempää osaamista talon sisällä (mikä olisi aina suotavaa muutenkin) ja henkilön, joka seuraa alaa aktiivisesti.
  • Avoin lähdekoodi on tällä hetkellä vahvimmillaan alusta- ja sovelluskehysratkaisuissa. Esimerkiksi toimivia taloushallinnon sovelluksia ei ole.
  • Harvemmin käytettävien avoimen lähdekoodin tuotteiden elinkaari saattaa olla melko lyhyt. Teknologiavalintoja mietittäessä asioita pitää tarkastella pitkällä aikavälillä.
  • Ohjelmakoodia käytettäessä on huomioitava lisenssiehdot, jotka säätelevät sitä, miten muokattua ohjelmistoa pitää jaella eteenpäin.

Toisaalta kaupallisten tuotteidenkaan kohdalla elämä ei ole ongelmatonta. Versiopäivitykset saattavat vaatia paljon työtä, tuotetuki saatetaan lopettaa tai lähdekoodeja ei ole saatavilla. Avoimen lähdekoodin tuotteilla on se etu, että lähdekoodi on aina saatavilla, joten pulaan ei jää, kävi miten kävi.

Joni Freeman, pääarkkitehti

 

Joni Freeman on toteuttanut Java-sovelluksia vuodesta 1995 lähtien. Hän on erikoistunut avoimen lähdekoodin ohjelmistoihin ja osallistuu aktiivisesti muun muassa Wicket-kehittäjäyhteisön toimintaan.


Lisenssi säätelee avoimen koodin käyttöä

Avoimen lähdekoodin tuotteita käytettäessä on huomioitava lisenssiehdot, jotka säätelevät sitä, miten muunneltuja ohjelmia on jaettava eteenpäin.

Lisenssityypit:

  • GNU GPL (General Public License): ohjelmakoodin muokatut eli johdannaiset versiot ovat GPL-lisenssin alaisia, jolloin lähdekoodi on annettava kaikille, joille tuotetta jaellaan. Käytännössä lisenssi koskee siis koko tuotetta, jossa lisensoitua koodia käytetään. Ei voida käyttää muun kuin GPL-lisensoidun koodin kanssa, ellei ole mahdollisuutta kaksoislisensointiin.
  • GNU LGPL (Lesser General Public License): Johdannaiset versiot LGPL-lisenssin alaisia, mikä tarkoittaa, että muutokset vain alkuperäiseen lähdekoodiin annettava muille. Ei koske koko tuotetta, eli voidaan yhdistää muun ei-LGPL-lisensoidun koodin kanssa.
  • BSD (Berkeley Software Distribution) ja Apache-lisenssi: Johdannaisten versioiden muutoksia ei tarvitse jakaa muille. Alkuperäisissä lähdekoodissa säilytettävä lisenssimaininta sekä tekijänoikeudet.

Lisenssiehtojen soveltuvuus on selvitettävä tapauskohtaisesti. Lisenssien käytöstä ei toistaiseksi ole erityisiä laintasoisia säännöksiä tai oikeustapauksia.

Monissa GPL:n alla lisensoiduissa tuotteissa (esimerkiksi MySQL) on käytössä kaksoislisensointi, jolloin tuotteelle voidaan ostaa vaihtoehtoinen lisenssi, eivätkä GPL:n ehdot näin rajoita oman tuotteen levitystä.