Ohjelmointiympäristö

Ohjelmointiympäristö on ohjelma tai joukko ohjelmia, jolla ohjelmoija suunnittelee ja toteuttaa ohjelmistoa. Yksinkertaisimmillaan ohjelmointiympäristö sisältää tekstieditorin ja keinon käynnistää ja saada palautetta ohjelmointikielen kääntäjältä, joka on erillinen ohjelma.
Tekstieditorilla tuotetaan lähdekoodia ja kääntäjä muuttaa lähdekoodin ajettavaksi ohjelmatiedostoksi tai kirjastoksi.

Nykyisin samaan ympäristöön integroituvat myös muun muassa debuggeri, versionhallintatuki sekä profilointi. Muita työkaluja ovat visuaaliset käyttöliittymän muokkaamiseen käytettävät työkalut, dokumentaatiotyökalut ja niin edelleen.

Kehittyneet ohjelmointiympäristöt osaavat luoda suunnittelussa tehdystä UML-mallista suoraan lähdekoodin rungon (skeleton), jota suunnittelija/ohjelmoija voi täydentää. Esimerkiksi mallin tietoihin liittyvien toimenpiteiden (metodit) kutsut luodaan automaattisesti parametreineen.

Ohjelmointia voi tehdä ilmankin ohjelmointiympäristöä, mutta niiden tavoitteena on helpottaa ohjelmoijan työntekoa tuomalla eri työkalut yhteen.

Historiaa

Tietokoneiden alkuaikoina komentojen antaminen tietokoneelle oli hyvin vaivalloista. (kts. Käyttöliittymän historia) Tietokone saatettiin käynnistää suorittamaan yksi laskutoimitus, jonka arvoja oli kytkimillä syötetty bitti kerrallaan. Myöhemmin tietokoneet alkoivat ymmärtää komentosarjoja ja näiden syöttämiseen käytettiin vielä toisen maailmansodan aikaan isoa nippua reikäkortteja, mutta tiedot syötettiin edelleen bitti kerrallaan  konekielisiksi komennoiksi. Kun tietokoneisiin lopulta saatiin kehitettyä suhteellisen halvat  magneettiset massamuistit ja tietokoneet saatiin ymmärtämään merkkipohjaisia syötteitä, alkoi varsinaisten ohjelmointiympäristöjen ja ensimmäisten  konekieliseksi suoraan käännettävien pseudokielisten ohjelmointikielien kehittäminen. (kts. Assembly (ohjelmointikieli)) Tarvittiin jokin keino järjestää tietokoneita ohjaavat bitit nopeammin ja tiheämpään. Tällöin ohjelmointiympäristöt alkoivat ymmärtää heksoja ja myöhemmin kokonaisia sanoja, jotka sitten kirjoitettiin bitti kerrallaan halvalle uudelleenkirjoitettavalle massamuistille. Tämän bittijonon tietokone sitten käänsi konekielisiksi komennoiksi.

Samaan pakettiin integroitu ohjelmointiympäristö (IDE, integrated development environment) tuli ensimmäisenä Turbo Pascaliin.

Nykyään

Ohjelmointiympäristö parhaimmillaan nykypäivänä suorittaa koodin oikeellisuuden tarkistamista jo kirjoitusvaiheessa sekä kääntämisvaiheessa, ellei kyseessä ole tulkattava tai tavukoodin kautta tulkattava ohjelmointikieli. Ohjelmointiympäristöt osaavat myös neuvoa ohjelmoijaa syntaksin kanssa. Yleensä ohjelmointiympäristöt tarjoavat jo sinällään jonkin verran valmista koodia käsikirjan sivuilla tai ohjelmointiympäristöä voidaan pyytää luomaan jonkinlainen valmis pohja ohjelmalle ohjelmoijan antamien ohjeiden pohjalta. Joissakin tapauksissa valmista koodia saa muutamalla hiiren napin painalluksella satoja ellei tuhansia rivejä. On myös tehty ympäristöjä, joissa ohjelmoijan ei tarvitse osata sanaakaan lausekielistä ohjelmointia, vaan tietokone tekee valmiin ohjelman osittain ennalta määrätysti, mutta ottaen myös huomioon käyttäjän tai ohjelmoijan pyyntöjä. Näiden käyttäminen ei ole tehottomuutensa vuoksi suotavaa.

Ohjelmointiympäristön osia ja ominaisuuksia

Käyttöliittymä (joko graafinen tai konsolissa toimiva merkkipohjainen)
Sanojen värjääminen tyypin mukaan (syntaksikorostus)
Lauseen ennakoiminen ja esimerkin samalla näyttäminen
Koodin ulkoasun automaattista muotoilua
Ohjelman käyttöliittymän suunnittelu käyttämällä pelkkää hiirtä
Kääntäjä tai tulkki
Virhetilanteen paikantaminen ja korjausehdotuksen antaminen
Mahdollisuus ajaa koodi sellaisessa ympäristössä joka ei välttämättä suorita koodia vaan keskittyy virheiden löytämiseen. Myös mahdollisten muistivuotojen tarkistaminen

Ohjelmointiympäristöjä
 Android Studio - Virallinen ohjelmointiympäristö Android-sovellusten kehittämiseen
 Delphi
 Eclipse
 Gambas - Avoimen lähdekoodin kilpailija Visual Basicille
 Lazarus
 Qt Creator
 Turbo Pascal
 SQLWindows
 Visual Basic
 Visual Studio
 Xcode

Katso myös

 Käytettävyys
 Käyttäjäkeskeinen suunnittelu
 Käyttöliittymä
 Ohjelmistotuotanto
 Ohjelmistotekniikka
 Ohjelmointikieli
 Tavukoodi
 Tietokoneohjelma

Aiheesta muualla 

 Anjuta - C\C++ ohjelmointiympäristö UXeille
 DevC++  - C\C++ ohjelmointiympäristö windows alustalle joka käyttää MiniGW32:ta.
 Gambas - Visual Basic tyylinen avoimenkoodin ohjelmointiympäristö.
 MS Visual Studio - Ohjelmointiympäristö usealle eri kielelle. Microsoftin tuote.
 SPE - Stanis Python Editor, eli Stanin Python muokkaaja.
 SUN Studio - C\C++ kehitystyökalut solarikselle tai linuxille
 SUN Creator - Java-ohjelmointiympäristö usealle alustalle.
 Eclipse - Avoin javapohjainen ohjelmointiympäristö useille kielille.
 OpenGL-pohjainen 3D peliohjelmointipaketti

Ohjelmistotyypit