Forritunarumhverfi (e: Integrated Development Environment, IDE), eru hugbúnaðarkerfi hönnuð til að aðstoða forritara við að skrifa, aflúsa og halda utan um forritstexta. Ætli fyrsta slíka umhverfið sem undirritaður komst í tæri við hafi ekki verið Turbo Pascal 3.3. Á sínum tíma var það umhverfi framúrskarandi tól fyrir forritara, eitt af þeim fyrstu sem bauð upp á innbyggðan aflúsara og hafði einnig mjög hraðvirkan þýðanda sem gerði þetta að afkastamiklu tóli.

Síðar meir fór ég meira yfir í C++, notaði Borland C++ 3.1 mikið í skóla og líkaði nokkuð vel. Þó fór alltaf í taugarnar á mér hversu þýðing tók alltaf langan tíma, enda vanur hraða Pascal þýðandans frá Borland. Á þeim tíma var Windoze að koma æ meira inn, og með því fór Microsoft að koma æ sterkara inn á IDE markaðinn. Visual C++ 1.51 var mjög fínt umhverfi á mælikvarða þess tíma, og voru nokkur forrit skrifuð í því í HÍ. Helsti styrkur þess var klasasafnið MFC, sem þá var að stíga sín fyrstu skref og var í harðri samkeppni við OWL frá Borland, sem MFC vann síðan eins og flestum er kunnugt (hver kannast við OWL í dag?).

Á svipuðum tíma kom Microsoft fram með Visual Basic, sem var í raun byltingarkennd nýjung. Þar var hugmyndin með sjónræna íhluti (visual components) fyrst útfærð í IDE í almennri sölu svo ég viti. Þessi hugmynd er ennþá mjög útbreidd, enda mjög öflug til að auka endurnýtingu og fá forritara til að hugsa um tengsl forritahluta (e. dependencies). Hins vegar var það Borland sem tók hugmyndina og útfærði hana almennilega með Delphi. Ég hef ávallt verið mikill aðdáandi og trúr og dyggur notandi Delphi, hef notað það frá því nokkrum mánuðum eftir að Delphi 1 kom út 1994. Sem IDE og tól til að gera notendaviðmót þá er ekkert annað IDE sem kemst nálægt í þægindum. Hins vegar þá líður Delphi fyrir það í dag að málið er komið til ára sinna, það er búið að útvíkka það svo oft að það er búið að tapa hreinleika sínum.

Lengi vel var ég þeirrar skoðunar að næsta bylting í forritunarumhverfum yrðu kerfi þar sem hlutbundin hönnunartól væru orðin samofin þeim kerfum sem í dag finnast í forritunarumhverfum. TogetherJ eru líklega þeir sem hafa komist lengst í þá átt, en undirritaður hefur því miður ekki komist nægilega mikið í tæri við það til að segja til um hversu byltingarkennt það er, en segja má að þeir hafi verðlagt sig frá því að valda þeirri byltingu ef sögur af þeim eru réttar.

Það er önnur bylting í gangi í IDE kerfum sem byrjaði með svokölluðum Refactoring Browser í SmallTalk. Þetta eru IDE sem ganga mun lengra en fyrri kerfi í því að þekkja uppbyggingu málsins sem þeir eru að vinna með og aðstoða forritara við að meðhöndla forritið. Í java eru ýmis IDE komin með stuðning við þessa hugmynd sem hefur gengið undir nafninu “refactoring” og á uppruna sinn að rekja til hugmyndasmiða XP. Af þeim tólum sem ég hef séð þá er IntelliJ IDEA komið sýnu lengst. Undirritaður er orðinn einlægur aðdáandi þessa kerfis, enda er alger unun að vinna í því. Reyndar svo komið að Delphi er ekki lengur uppáhalds IDE mitt, og skiptir þá engu máli að í IntelliJ er enginn stuðningur við “Drag og Drop” GUI uppsetningu eins og Delphi er þekktast fyrir.

Með því að þekkja uppbyggingu máls sem IDE eru að meðhöndla (e. syntax tree), verða þau smám saman betur í stakk búin að geta boðið upp á sanna “round trip engineering”. Refactoring tól eru smám saman að byggja upp safn á aðgerðum á málið, sem síðar má nýta til að meðhöndla forrit á grafískan hátt. Það er því ekki langt að bíða þess að til verði IDE sem eru öflug í að hjálpa forriturum við að meðhöndla forritstexta og bjóða einnig upp á að meðhöndla klasarit, þar sem t.d. verður hægt að velja aðgerðir úr einum klasa og draga yfir í annan, og tólið sér um afganginn. Þá fyrst verður hægt að tala um RAD þróunartól, þar sem breyting á hönnun er komin í framkvæmd á örskömmum tíma.

Þróun í IDE heimum er að gerast með meiri hraða þessa dagana heldur en í mörg ár. Ef þú ætlar að forrita í Java þá er orðið um býsna mörg umhverfi að velja, og sum þeirra eru ókeypis. Sum ókeypis kerfanna eru meira að segja býsna öflug, eins og t.d. Eclipse frá IBM og NetBeans frá Sun.

Ég tel að innan skamms verði forritunarumhverfi ekki samkeppnishæf nema þau bjóði upp á góðan refactoring stuðning við viðkomandi mál, og þá er hætt við að gömlu málin eins og Pascal og C++ muni eiga undir högg að sækja, þar sem refactoring stuðningur ku vera mjög erfiður í útfærslu fyrir mál sem leyfa benda og veika tögun.

Kveðja

Guðlaugur S. Egilsson
-Gulli