Letnik 2005
To, da se tudi v svetu programske opreme dogaja svojevrstna "globalizacija" in "konsolidacija", je več kot očitno. Nekoč je bilo npr. za osebne računalnike na voljo skoraj sto znanih urejevalnikov besedil. Včasih je bilo tudi ponudnikov priljubljenih razvojnih orodij nekaj deset. Stony-Brook, Oregon, JPI, Zortech, Watcom so vsi del zgodovine. Razviti uspešen posel med Scilo in Karibdo Microsofta ter brezplačno in/ali odprtokodno ponudbo je vse prej kot enostavno. Podjetja s širšo ponudbo programske ali strojne opreme lahko razdajajo razvojna ogrodja in orodja, kot očitno počneta Sun z javo in Microsoft z .net, čeprav slednji svoje najzmogljivejše razvojno okolje prodaja po precej zasoljeni ceni.
Zvezda stalnica med "neodvisnimi" programerskimi hišami je prav gotovo Borland. Že desetletja vztraja v prvi ligi ponudnikov razvojnih orodij, ki ponujajo inovativen pristop in bliskovito hitrost. V Borlandu so pravzaprav izumili združeno razvojno okolje, s katerim je programerju delo znatno olajšano, saj mu za prevajanje in preizkušanje nastajajočega programa ni treba zapustiti delovnega okolja.
Borland je blestel na tehničnem področju, poslovno pa je zagrešil kopico napak in komaj preživel. Vendar bo Borland v zgodovino računalništva vsekakor zapisan kot zelo vplivno podjetje, ki je bistveno prispevalo k razvoju tako jave, kot ogrodja .net, ki se kažeta kot prihodnost programiranja. S svojim inovativnim pristopom k predmetnemu programiranju, komponentizaciji in vizualnemu modeliranju, je soustvarjal ključne tehnologije jave, Microsoft pa je iz ogrodja .net naredil uspešnico prav zato, ker je za njegovega vodilnega razvijalca - s ponudbo, ki je ni mogel zavrniti - angažiral tvorca Delphija.
Nedavno je Borland predstavil prenovljeni in dopolnjeni različici svojih najpomembnejših izdelkov: združenih razvojnih okolij Delphi in JBuilder. Novi različici sta prinesli tudi novo označevalno shemo, letnik v oznaki predstavlja Delphijev 9., za JBuilder pa že 11. rod.
Delphi 2005
Delphi je orodje, ki je navdušilo že ob nastanku in mu uspeva zadržati razvijalce tudi danes. Čeprav ga poganja ne preveč priljubljeni pascal. Borland ga je znatno izpopolnil v svoji različici object pascala, je eden najbolj priljubljenih orodij programerjev sploh. Predvsem je priljubljen v Evropi, še posebej v njenem osrednjem in vzhodnem delu. Delphi je seveda veliko več kot orodje za programiranje v pascalu. Uporabnike navduši predvsem z izjemno povezanostjo pripomočkov, s katerim gradimo aplikacijo.
Borlandu je Delphi vedno uspelo pripraviti na nove izzive in je danes ena najboljših poti za preskok iz programiranja podlage win32 v ogrodje .net. Pravzaprav je poglavitna novost Delphija 2005 njegova večličnost. Podpira namreč razvoj za dve podlagi in z dvema jezikoma, skupaj v treh kombinacijah. Object pascal lahko uporabimo za pisanje "klasičnih" okenskih programov, ki izkoriščajo vmesnik win32, ali pa za programe ogrodja .net. Za slednjega pa lahko v Delphiju pišemo kodo tudi v cisu (C#), ki je standardni jezik ogrodja. To je dobra novica za številne programerje. Tisti, ki jim win32 še vedno ponuja udobno okolje, se lahko zanesejo na to, da bodo lahko še vrsto let uporabljali zelo kakovostna orodja. Drugi, ki jih vleče v .net, imajo v Delphiju 2005 izjemnega pomočnika, ki jim omogoča migracijo v tempu, ki si ga lahko postavijo sami.
Razvojno okolje Delphija 2005 lahko posnema videz Visual Studia.net, z eno samo nastavitvijo in vnovičnim zagonom pa ga lahko preobrazimo v klasično podobo, s številnimi prekrivajočimi se okni. Na sliki je vidno usklajeno urejanje označenega bloka kode.
Okolje
Kot izumitelj združenih razvojnih okolij se Borland trudi še naprej in vnaša vanje nove pripomočke. Nekakšna stalnica sodobnih orodij je pozdravna stran s seznamom najnovejših projektov in povezavami na pomočnike. Borland jih nadgrajuje s seznamom svežih novic, pobranih iz spleta, bodisi iz lastnega omrežja razvijalcev (BDN, Borland Developer Network) ali iz različnih virov RSS (Really Simple Syndication, narečje XML za izmenjavo novic).
Delphi 8 je vpeljal nov videz razvojnega okolja BDS (Borland Development Studio), ki se zgleduje po Microsoftovem Visual Studiu.net. Ta sicer pregledneje uredi delovno površino, vendar onemogoči sočasen pogled na več oken projekta ali na hkratno spremljanje tako kode kot načrta uporabniškega vmesnika. Delphi 2005 uvaja novost, ki omogoča videz po želji. Če nam bolj ugaja množica oken, ki jih prosto razporejamo po delovni površini, se lahko z nastavitvijo delovnega okolja vrnemo h klasičnemu videzu, ki so ga poznali Delphiji do vštevši 7. različice.
Omenili smo večličnost okolja (multiple personalities). Da ne pride do zmede, okolje spreminja svojo ikono v orodni vrstici Oken in lastni naslovni vrstici, ki sproti ponazarja izbrano delovno okolje (Delphi za win32, Delphi za .net ali C# za .net), ali Delphijevo osebnost. Delphi s projekti žonglira mojstrsko. Izboljšano orodje za njihovo upravljanje nam omogoča podroben vpogled v drobovje, seznam vseh vključenih datotek, združevanje projektov v skupino in celo preklop njihove osebnosti. Upravnik projektov (Project Manager) je celo povezan z inšpektorjem (Object Inspector), ki prikazuje vse lastnosti ravnokar izbrane datoteke. Nekatere, kot je npr. njeno ime, lahko v Inšpektorju celo spremenimo. Upravnik projektov se znajte tudi v povezavi z orodjem za skupinski razvoj StarTeam, ki je priložen boljšim različicam Delphija.
Neprecenljiva pomoč je tudi strukturni pogled (Structure View), ki sproti razčlenjeno prikazuje vsebino okna, ki ga urejamo, bodisi da smo v pisanju kode, urejanju vmesnika ali izgradnji dinamične spletne strani. Klik po elementu v strukturnem pogledu nam izbere isti element v oknu urejevalnika. Če se ukvarjamo s kodiranjem, bodo v strukturnem pogledu prikazane tudi skladenjske napake, ki jih urejevalnik odkrije med samim vnosom.
Po zgledu JBuilderja tudi Delphi izboljša podporo shranjevanju različic v krajevnem računalniku, tudi če ne uporabljamo posebnih orodij za sočasen in skupinski razvoj. Stare različice datotek so po novem shranjene v ločeni, skriti podmapi in ne več v datotekah s popačenimi imeni (oz. podaljški). V podmapi se po privzeti nastavitvi shrani do deset različic datoteke, nastavitev pa je mogoče spremeniti, tudi povečati. Urejevalnik zato ponuja poseben pregled zgodovine. Pod jezičkom History bomo našli seznam shranjenih različic, omogočeno pa je tudi njihovo medsebojno primerjanje.
Še ena novost, ki je v Delphi prišla iz JBuilderja, je usklajeno urejanje (sync-edit). To je ena od zmožnosti, za katero se lahko le vprašamo, kako smo lahko do zdaj živeli brez nje, ko pa je tako preprosta, a hkrati izredno učinkovita. Če namreč označimo poljuben blok kode, vklopimo usklajeno urejanje in spremenimo en sam simbol v kodi, se bodo spremenili tudi vsi drugi v označenem bloku. Tako lahko z eno potezo spremenimo npr. podatkovni tip kopice spremenljivk, npr. iz integer v word, ali pa preimenujemo vse pojavitve določene spremenljivke. S tem smo že načeli priljubljeno zmožnost predelovanja kode (refactoring), ki pa je v Delphiju še veliko bolj zmogljiva, in jo bomo podrobneje spoznali malo pozneje.
Pozdravna stran obsega celo seznam novic, vir zanje pa lahko izbiramo.
V urejevalniku nas čaka še več poslastic, prenesenih iz drugih sodobnih razvojnih orodij. Sprotno iskanje napak (Error Insight) označuje skladenjske napake že med vnosom kode. Pripomoček opozarja tudi na uporabo simbolov zunaj dosega (symbol out of scope), kar je pri pascalu zelo pomembno. Zelo koristen je pripomoček za iskanje sklicev (Find Reference). Za vsako simbolično ime v kodi lahko prikličemo drevesno upodobitev krajevnih (v trenutni datoteki) ali globalnih sklicev nanj (v vseh datotekah projekta). Iz drevesa sklicev se lahko z enim samim klikom prestavimo na dotično vrstico kode.
Pomoč pri kodiranju (Help Insight) je znatno razširjena. Zdaj ne dobimo le seznama parametrov ali členov razreda, marsikje je na voljo tudi kratka razlaga, kar nam olajša izbiranje med ponujenimi možnostmi.
Prevajalnik, jezik, razhroščevalnik
Z Delphijem 2005 se je nekoliko izboljšal tudi že tako izjemen prevajalnik, ki je še hitrejši. Po novem podpira tudi datoteke unicode, tudi v zapisu UTF-8, znake svetovnih abeced pa lahko uporabljamo tudi za simbolična imena.
Object pascal je pridobil novo obliko zanke for ... in ... do, ki omogoča sprehod po celotnem naboru vrednosti, podoben stavku foreach. Jezik je pridobil tudi možnost vstavljanja podprogramov (function inlining), s katerim lahko izboljšamo zmogljivost kode. Z vstavljanjem se koda podprograma prenese na vsa mesta klica, kar prihrani klicanje podprograma, upravljanje parametrov na skladu in povratek. Vstavljanje se še posebej izplača za kratke podprograme, toliko bolj, če imajo številne parametre. Vstavljanje lahko opravimo ročno ali pa prevajalniku naložimo, da sam presoja o smiselnosti vstavljanja.
Zanimiva izboljšava je tudi razširjanje imenskih prostorov (namespaces). Prejšnja različica Delphija za .net je omogočala preslikavo enote v en imenski prostor. Delphi 2005 omogoča sestavljanje imenskega prostora in imena enote. Ime Podjetje.Skupina.Enota.pas tako predstavlja enoto kode Enota.pas, ki pripada imenskemu prostoru Podjetje.Skupina. Tako lahko enostavno razvijemo več enot, ki spadajo v isti imenski prostor.
Posledica spremembe pri rabi imenskih prostorov je možnost razširjanja obstoječih. Z enoto System.Web.MojaEnota.pas lahko razširimo imenski prostor System.Web, razširitev pa bo postala sestavni del vseh programov in zbirk, ki vključijo enoto System.Web.MojaEnota.pas.
Delphi 2005 je izboljšal tudi vgrajeni razhroščevalnik. Najbolj dobrodošla novost je obravnava izjem, ki se pripetijo med razhroščevanjem. Posebno pogovorno okno nam omogoča, da zanemarimo pojavitve tovrstnih izjem ali pa jih podrobneje raziščemo. Razhroščevalnik ponuja tudi več pogledov (novi so CPU, FPU, krajevne spremenljivke in moduli) in olajša urejanje prekinitvenih točk.
Pogled procesorja (CPU) prikazuje izvirno kodo, operacijske kode vmesnega jezika (IL) in končno strojno kodo.
Pogled modula prikaže programske domene, ki jih lahko podrobno raziskujemo. Odpremo lahko njegove imenske prostore ter zbirke v njih.
Razvojno okolje nam omogoča celo sočasno razhroščevanja programov za win32 in .net. Oba razhroščevalnika lahko tečeta drug ob drugem, med projekti (in osebnostmi) pa izbiramo v upravniku.
Predelovanje kode
Predelovanje kode (refactoring) je pomembno orodje za pisanje učinkovite kode, ki je del večjih projektov. Večkrat je namreč treba med delom spremeniti že narejeno. S predelovanjem lahko kodo spremenimo strukturno, ne pa tudi pomensko, kar pomeni, da bo delovala enako kot prej, le da bo preglednejša in pogosto tudi učinkovitejša. Delphi 2005 ima za predelavo kar poseben glavni menu, ki vključuje šest metod predelave.
Omenili smo že usklajeno popravljanje in iskanje sklicev. Obe zmožnosti lahko uporabimo v razširjeni obliki za predelavo kode celotnega projekta. Z metodo predelave, poimenovano preimenovanje simbolov (Rename Symbols), lahko učinkovito spremenimo ime poljubnega člena razreda skozi vse datoteke izvorne kode projekta. Predelava ni zgolj slepa zamenjava besedila, saj pozna tudi pomen kode. Preimenovanje elementa razreda tako ne bo vplivaloa na druge, enako imenovane simbole (npr. krajevne spremenljivke). Preimenovanje deluje v object pascalu in C#.
Uvoz imenskega prostora (Import Namespace) je druga uporabna možnost predelave. Za izbrani simbol v kodi lahko hitro odkrijemo izvir in v stavek uses dodamo sklic na zahtevano enoto, kar nam prihrani precej časa, ki bi ga sicer porabili za iskanje izvira. Predelava deluje tudi za jezik C#, kjer doda ustrezni člen v stavek using.
Naslednje štiri predelave so na voljo le za kodo v object pascalu. Najavi spremenljivko (Declare Variable) je za programiranje v pascalu izjemno dobrodošla metoda predelovanja. Zbrano se lahko posvetimo kodiranju logike podprograma in ob uporabi nove spremenljivke hitro dodamo ustrezno napoved v njegovo glavo, brez zamudnega skakanja po izvirni kodi. Najavi predmetni člen (Declare Field) naredi podobno za predmetne člene (class members). Dodajanje novega člena razreda ne pomeni zamudnega skakanja po programski kodi, saj se ustrezne napovedi lahko vstavijo samodejno. Delphi pri tem skrbi za razreševanje morebitnih imenskih konfliktov.
Izvleci metodo (Extract Method) je način predelave kode, s katerim lahko označene programske stavke hitro prenesemo v novi podprogram. Izvlečena metoda samodejno pridobi seznam parametrov in ustrezne napovedi krajevnih simbolov. S tem pripomočkom lahko hitro razbijemo preobsežne, monolitne podprograme, ki otežkočajo vzdrževanje kode.
Izvleci niz (Extract Resource String) pa je pripomoček, neprecenljiv pri lokalizaciji kode. Z njim lahko vse pojavitve konstantnih nizov v označenem bloku kode zamenjamo s simboli iz zunanje datoteke sredstev (resource file), ki jo seveda lahko pripravimo za vsak želeni jezik posebej.
Preizkušanje
Želja po učinkoviti in trdoživi kodi je prinesla številne recepte za izboljšavo kakovosti dela programerjev. Čas je pokazal, da brez ustreznega nadzora ni mogoče doseči kakovosti. Da bi programerji lahko že v čim zgodnejši fazi odkrili napake in jih pozneje ne bi več vnašali v kodo z nadgradnjami in vzdrževalnimi posegi, so se razvile številne metode preizkušanja.
Preizkušanje enot (unit testing) je metodologija zagotavljanja kakovosti programske kode, ki ji dodamo zadostno število vgrajenih preizkusov, ki jih je moč kadarkoli pognati in s tem preveriti pravilnost delovanja. Nekateri celo menijo, da morajo programerji najprej napisati preizkuse in se šele zatem lotiti "koristnega" kodiranja, saj so le tako lahko prepričani, da so delo opravili dobro.
Delphi 2005 podpira številne osebnosti (personalities). Razvoj je mogoč v object pascalu za win32 in .net, dodatna izbira pa je še C# za .net.
Z zadostnim številom preizkusov si lahko zagotovimo, da bo koda delovala pravilno tudi po vnosu sprememb in popravkov vanjo, kar je še posebej pomembno, kadar razvijamo kos večjega projekta, ki se mora pravilno in brez napak vklopiti v celoto. Preizkušanje enot je zelo pomembno tudi po opravljenih posegih predelave kode.
Delphi 2005 ima vgrajeni dve ogrodji za preizkušanje kode, DUnit (za object pascal v win32 ali .net) in NUnit (za poljuben jezik podlage .net). Obe nastajata kot odprtokodna projekta zunaj Borlanda, vendar sta v razvojno okolje zelo lepo spojeni. Delphi 2005 pozna več čarovnikov, s katerimi se lahko lotimo novega projekta testiranja in vanj dodajamo različne testne zglede, povezane z zgradbo našega programa. Pripravljene preizkuse lahko poganjamo v posebnem okolju (Test Runner), ki nam sporoči morebitne logične napake in se poveže z ustreznimi mesti v kodi, ki so jih povzročili.
Podatki
Večličnost Delphija 2005 pomeni tudi bogat nabor različnih tehnologij za povezovanje s podatkovnimi viri. Poleg uporabe podatkovnih predmetov iz knjižice VCL imamo na voljo tudi ADO.net, če želimo, pa je tudi v okolju .net omogočena uporaba znanih predmetov, saj Delphi ponuja še VCL.net.
Borland je izboljšal podporo priklopu zmogljivih podatkovnih virov skozi ADO.net. V boljših različicah Delphija najdemo gonilnike za Interbase 7.5, Oracle 10g, IBM DB2 8, MS SQL 2000 ter Sybase 12.5. Dopolnjeni so tudi pripomočki za delo s podatkovnimi viri. Dodano je npr. orodje za preizkušanje shranjenih postopkov (stored procedure testing) v podatkovnih strežnikih, inšpektor pa vsebuje urejevalnik povezovalnih nizov (connection strings) za podatkovne ponudnike ADO.net.
Novi Delphi nam omogoča napredno preslikovanje podatkov iz podatkovnega vira v pomnilniško sliko, ki ji lahko dodajamo ali odstranjujemo stolpce.
Omogočen je razmeroma preprost razvoj večslojnih programov s pomočjo gradnikov RamoteServer in RemoteConnection, ki ju urejamo vizualno. Nova gradnika palete ADO.net sta DataHub in DataSync, ki ponujata možnost sestavljanja različnih podatkovnih virov v navidezno celoto. Vse štiri gradnike lahko povežemo v razslojeno arhitekturo, v kateri RemoteServer in DataSync nastopata na strani strežnika, RemoteConnection in DataHub pa na strani lahkega odjemalca.
Bogat izbor na paleti orodij.
Delphi olajša tudi prenos podatkov med podatkovnimi viri, saj nam gradnik BdpCopyTable omogoča prenos podatkov in strukture iz enega podatkovnega vira v drugega. To se pozna tudi na pripomočku Database Explorer, ki prav tako ponuja enostavno migriranje podatkov, zgolj z operacijo "izreži in prilepi". Poleg tega nam ponuja tudi preprosto spreminjanje načrta zbirke podatkov (database schema), saj lahko dodajamo tabele ter spreminjamo ali odstranjujemo obstoječe.
Iz raziskovalca podatkovnih virov lahko celo odvlečemo shranjeni postopek v okno uporabniškega vmesnika, Delphi pa bo vanj namestil ustrezno prilagojena gradnika BdpConnection in BdpCommand, pripravljena za takojšnjo rabo.
Pri delu s podatki lahko uporabljamo tudi prej znane tehnologije, kot so BDE, dbExpress, dbGO in InterBase Express. Ker so na voljo tako za gradnike VCL kot za njihovo različico VCL.net, jih lahko izkoriščamo za "klasične" programe za Okna ali za programiranje ogrodja. net. Delphi s tem še utrjuje vodilno mesto na trgu kot najpreprostejše vizualno razvojno orodje za prehod iz sveta win32 v ogrodje .net.
Splet
Preobrazba programske opreme v različne storitve v spletu je v polnem teku, zato ne preseneča, da je Delphi 2005 še izboljšal podporo razvoju spletnih programov, ki jih lahko razvijamo s pomočjo gradnikov VCL oz. VLC.net ali z novimi gradniki ogrodja .net, zbranih v knjižnici ASP.net.
Nov pripomoček je upravnik spletnih objav (Web Deployment Manager), ki omogoča objavo celotnega spletnega projekta z enim samim klikom. Pri tem se lahko poveže s strežnikom prek datotečnega sistema (če imamo to možnost) ali s pomočjo povezave FTP. Z upravnikom lahko objavljamo projekte vrste ASP.net Web Form in Web Service in VCL / VCL.net IntraWeb, mogoče pa ga je razširiti, da podpira tudi druge oblike spletnih rešitev. Nastavitve objave se shranijo skupaj s projektom in jih lahko prikličemo in znova uporabimo, kadarkoli jih potrebujemo.
Delphi 2005 je še obogatil izbor gradnikov DB Web, s katerimi lahko hitro zgradimo podatkovno ozaveščeno spletno aplikacijo. Novi gradniki so npr. DBWebSound in DBWebVideo za prikaz večpredstavne vsebine iz podatkovnega vira (ki je lahko tudi spletni naslov URL). Za prikaz povzetkov iz podatkovnih virov (min, max, average...) je nared gradnik DBWebAggregateControl. Gradnik DBWebNavigationExtender omogoča neposredno pošiljanje posodobitev podatkovnemu viru v ozadju, brez vmešavanja gradnika DBWebNavigation (predvsem njegovega gumba ApplyToServer). Tako lahko sestavimo lasten mehanizem premikanja in posodabljanja podatkov.
Kot pri podatkovnih virih tudi pri spletnih programih Delphi ohranja vez s preteklostjo in knjižnico VCL. Na pomoč nam priskočijo gradniki IntraWeb, s katerimi lahko vizualno gradimo spletne programe, podobno kot omogoča ASP.net, vendar z nekaterimi pomembnimi izboljšavami, predvsem v ohranjanju stanja seje. Gradnike IntraWeb lahko povezujemo z nevizualnimi gradniki VCL, npr. s podatkovnimi tehnologijami, kot sta BDE ali dbExpress.
Poslovni programi
Prejšnji rod Borlandovih orodij je predstavil arhitekturo gradnikov Enterprise Core Objects (ECO). Borland C# Builder in Delphi 8 sta se zlila in znatno izboljšala v Delphiju 2005, skupaj z njima pa tudi ECO. Drugi rod gradnikov ECO (ECO II) prinaša podporo za razvoj porazdeljenih, stopnjevanih spletnih aplikacij.
ECO prvega rodu je bil še dvoslojen (odjemalec/strežnik), zdaj pa Borland ponuja resnično porazdeljeno rešitev. ECO II lahko še vedno uporabimo v dvoslojnem režimu, možne pa so tudi drugačne razslojitve. S tem seveda pridobimo možnost stopnjevanega povečevanja zmogljivosti celotne aplikacije.
ECO II se povezuje s knjižnico ASP.net v spletnih programih Web Forms in storitvah Web Services. Podatkovni gradnike DB Web lahko povežemo z gradnikom EcoDataSource in jih tako izpostavimo kot podatkovni prostor EcoSpace, njegove podatke pa vizualiziramo z gradniki Web Forms. Gradniki ASP.net delujejo brez ohranjanja stanja, EcoSpace pa vzdržuje stanje na ravni uporabniške seje ali celotne aplikacije.
ECO II uporablja optimistično zaklepanje in razreševanje morebitnih konfliktov. Če npr. EcoSpace zazna neskladje med podatki v lastnem stanju in podatkovnem viru v ozadju, označi konflikt na notranjem seznamu. Programer lahko prikliče vse spremembe, ki so vplivale na stanje podatka v EcoSpace, in specifične spremembe, ki so pripeljale do konflikta. Z njihovo selektivno uporabo se konflikti lahko razrešijo in podatki pripeljejo v celovito stanje. Ohranjanje stanja predmetov (object persistence) je mogoče v obstoječih podatkovnih virih skozi mehanizem objektno-relacijske preslikave, ki ga krmilijo sheme XML.
Podatkovnih prostore EcoSpace nadziramo s pomočjo zmogljivega vizualnega urejevalnika, ki omogoča migracijo podatkov iz zbirk za ECO I v ECO II in ovijanje obstoječih zbirk podatkov v prostor EcoSpace.
Za vsakogar nekaj
Delphi 2005 je posvojil C# Builder in pridobil praktično vse izboljšave drugih Borlandovih orodij, ki so jih uporabniki Delphija doslej pogrešali. Najbolj navdušujejo izboljšave urejevalnika kode, skupaj s pregledom zgodovine različic, predelovanje kode in nadvse zmogljive priložene knjižnice. Programerji imajo skoraj preveč izbire. Še vedno lahko programirajo klasične programe za "čista" Okna ali pa v skladu z lastnimi potrebami počasi ali hitro prestopijo v .net. Ta je z Delphijem pridobil še en zmogljiv programski jezik, object pascal, Delphi pa omogoča celo razvoj za .net v "domorodnem" jeziku C#.
Obstoječi uporabniki bodo Delphi 2005 verjetno z navdušenjem pograbili, saj je nedvomno najboljši Delphi do danes, svoje želje bo le treba uskladiti z denarnico, saj so najboljše različice še vedno pregrešno drage, a s številnimi vizualnimi modelirniki omogočajo hiter razvoj najbolj zapletenih poslovnih programov.
Vprašanje pa je, ali bo Delphiju uspelo navdušiti tudi nove uporabnike. Borlandove specifične tehnologije ponujajo pravo konkurenčno prednost predvsem z gradniki ECO II, ki ogrodju .net dodajajo zmogljivo arhitekturo porazdeljenosti in ohranjanja stanja. Žal tudi to pomeni nakup najdražjih različic. V časih, ko se čedalje zmogljivejša orodja naravnost podarjajo, bo Delphiju precej težko.
Borland Delphi 2005
Kaj: Vizualno razvojno orodje za Okna in ogrodje .net.
Na voljo za: Okna.
Zahteve: Procesor zmogljivosti PII, 450 MHz; 512 MB RAM in 800 MB diska.
Izdeluje: Borland, http://www.borland.com/delphi/.
Prodaja: Marand, http://www.marand.si/.
Za: Zelo primerno za migracijo iz win32 v .net, gradniki ECO II.
Proti: Cena najzmogljivejše različice.
JBuilder 2005
Borland je predstavil novi rod enega najboljših razvojnih orodij za javo nekako hkrati z uradnim izidom precej prenovljene standardne različice jave, ki je tržno označena kot J2SE 5, inženirsko pa gre za različico 1.5. Novi JBuilder bi bil sicer lahko po minuli desetki (X) označen z naslednjo številko, vendar so se v Borlandu odločili za letnico, tako da je izdelek novega rodu označen skladno z Delphijem. JBuilder 2005 (JB) prinaša precej novosti, najbolj pa je napredoval pri izgradnji spletnih uporabniških vmesnikov, ki postajajo čedalje pomembnejši, saj se vse več programske opreme, predvsem na področju poslovnih programov, seli v internet.
JBuilder postaja vse bolj zaokroženo okolje. V povezavi z drugimi pripomočki omogoča nadzor celotnega življenjskega cikla kode. Odvisno od različice bomo v paketu našli cel kup dodatnih orodij, od pripomočka za iskanje razpok v varnosti kode Fortify do upravnika skupinskega razvoja StarTeam.
Okolje
To, kar najprej opazimo na škatli JB, so povečane pomnilniške zahteve. Priporočljivo je imeti vsaj 768 MB pomnilnika, to pa praktično pomeni, da z manj kakor gigabajtom ne bomo prišli daleč. Razvojna okolja, ki so v celoti razvita v javi, nikoli niso preveč dobro delovala v pomnilniško utesnjenih napravah, tako da je za udoben razvoj vsekakor smiselno investirati denar v pomnilniške module. Z dovolj pomnilnika in dovolj sodobnim procesorjem je delo v JB povsem primerljivo z delom v optimiziranih, v strojno kodo prevedenih orodjih. JB seveda ohranja prednost prenosljivosti in deluje na katerikoli podlagi, ki zna poganjati standardne javanske programe, med drugim v sistemih z Okni, Linuxom, Solarisom in Mac OS X. No, da pri samodejnem upravljanju pomnilnika kljub temu škriplje, ponazarja nova pridobitev, gumb za ročni priklic smetarja (Garbage Collector), ki ga najdemo v desnem spodnjem vogalu okna. Z njegovo pomočjo lahko upamo, da bomo popravili odzivnost, ki se po dolgotrajnem nepretrganem delu lahko precej poslabša zaradi preobremenjenosti pomnilnika.
Razvojno okolje JBuilderja 2005 je dobro znano, a kljub temu prinaša kup drobnih izboljšav.
Razvojno okolje je polno drobnih dopolnitev, vendar - pohvalno - ostaja osredotočeno na kodiranje in ne zakriva preveč podrobnosti za vsemogočnimi čarovniki, čeprav jih seveda vsebuje lepo mero, predvsem za zamudna opravila, ki jih lahko računalnik z nekaj podanimi parametri opravi bolje. Zakrivanje blokov kode, sprotno odkrivanje napak in pomoč pri pisanju kode so izboljšani z bolj zgovornimi namigi.
Bolj očitne novosti prinaša predelava kode. JB je seznanjen z izboljšavami jave 5, ki jih izkorišča na dva načina: nekatere izboljšave skladnje jave 5 lahko uporabimo v kodi, JB pa jo bo prevedel tako, da bo združljiva s prejšnjo različico podlage (skladno JDK 1.4); druga možnost je predelava kode. Nova orodja za predelavo omogočajo napol samodejno izkoriščanje novosti, ki jih prinaša nova skladnja jave 5. Staro kodo lahko predelamo tako, da bo poznala izboljšano zanko for za sprehod čez polja ali sezname. Lahko izkoristimo samodejno pretvorbo med primitivnimi tipi in ovojnimi predmeti (auto boxing/unboxing). S predelavo lahko izkoristimo tudi generično programiranje, s katerim izkoristimo prevajalnik za preverjanje tipov, ki jih hranimo v zbirke (collections).
Pri predelavi gre JB še naprej, saj ponuja celo možnost porazdeljene predelave kode (distributed refactoring), ki je primerna za delo v skupini. Prvi korak je vodenje zgodovine vseh posegov predelave v kodi. Lastne spremembe lahko delimo s kolegi tako, da jih shranimo v arhiv projekta; s tem postanejo dostopni drugim, brž ko bodo skupni projekt znova odprli. Po tem se lahko odločijo, ali bodo shranjeno zgodovino predelav sprejeli in uveljavili tudi na lastni kodi.
Splet
Spletno pročelje je priljubljena aplikacija javanske tehnologije, saj se uspešno povezuje z mogočnimi sistemi v ozadju, ki ne izgubljajo svoje vloge v informacijski tehnologiji. JB je pridobil precej novih pripomočkov za ustvarjanje spletnih programov. Na strani odjemalca je tu nov vizualni modelirnik uporabniških vmesnikov JSF 1.1 (Java Server Faces). JSF je naslednik ogrodja Struts, ki je tudi podprto v JB. Z JSF se predstavitveni sloj loči od spodaj ležeče poslovne logike, kar omogoča lažji razvoj in poznejše vzdrževanje kode. JB zajema načrtovalec toka (JSF Flow designer) s katerim vizualno urejamo navigacijska pravila, in zglede rabe dejavnih strani JSP (Java Server Pages), ki določajo uporabniški vmesnik. Drugi vizualni urejevalnik omogoča urejanje konfiguracijske datoteke za objavo (faces-config.xml). Nekateri gradniki vmesnika JSF ponujajo tudi čarovnike, npr. ukazni gumb (Command Button), kjer čarovnik ponudi pomoč pri povezavi gumba z akcijo, ki jo povzroči.
S samodejnim upravljanjem pomnilnika morda le ni vse v najlepšem redu, ko pa imamo na voljo gumb za njegov ročno zagon?
Seveda so pomemben del spletne podpore tudi storitve. Za delo z njimi JB ponuja nekaj čarovnikov. S čarovnikom Web Services Server Configuration imamo popoln nadzor nad storitvami, ki jih lahko ponudimo ali uvozimo. Web Services Client Configuration omogoča zgolj uvoz obstoječih spletnih storitev. Čarovnik Module Chooser pa omogoča ustvarjanje ali izbiro modula spletnih storitev, ki ga pozneje nadziramo iz projektnega okvirja in vanj uvažamo ali iz njega izpostavljamo storitve s pomočjo priročnega menuja. Čarovnik Module Chooser nam priskoči na pomoč tudi pri uvozu storitve prek pripomočka Web Services Explorer, ki zna prebrskati vire UDDI.
JB ponudi pomoč tudi pri zagotavljanju združljivosti s standardi WS-I, ki so ključni za uspešno (so)delovanje naše spletne storitve. JB podpira dve orodji WS-I za preverjanje skladnosti s specifikacijami: WS-I Monitor in WS-I Analyzer. Prvi pošilja sporočila na drugi konec in pri tem ohranja celovitost komunikacije, ob tem pa zapisuje dnevnik izmenjave sporočil. Drugo orodje preverja sporočila, ki so poslana v spletno storitev in iz nje, pri čemer upošteva določila v opisu WSDL in podatkovne tipe iz sheme XML.
Prenosne naprave
JB je tudi eno izmed bolj priljubljenih orodij za razvoj programske opreme, ki se izvaja v prilagojenih javanskih navideznih strojih, ki jih najdemo v prenosnih napravah, predvsem mobilnih telefonih. V novi različici je izboljšav kar nekaj. V okolje je vključen J2ME Wireless Toolkit 2.1, ki prinaša podporo standardnima profiloma MIDP 2.0 in 1.0. ter CLDC 1.1 in 1.0. JB prinaša tudi podporo načrtovanju uporabniških vmesnikov za mobilne naprave DoJa 3.0.
Čarovnik MIDlet Archive Builder, s katerim izdelamo končno različico programa, primerno za distribucijo, zdaj omogoča tudi digitalno podpisovanje paketa.
Načrtovalec toka JSF (flow designer) je novost JBuilderja 2005.
Dodana sta tudi čarovnika za pripravo testnih zgledov. Čarovnik Micro Test Case izdela ogrodje testnega razreda za preverjanje enot, Micro Test Builder pa testne primere poveže v testno skupino, ki jo lahko poženemo naenkrat.
Boljša kakovost, učinkovitost in varnost
Največje poudarke pri novostih v JB pa najdemo na področjih, ki so kritična za uspešen nadaljnji razvoj programske industrije. Zahtev po večji kakovosti, učinkovitosti in varnosti programske kode je vsak dan več, navsezadnje je sama java nastala prav v želji po izboljšanju natančno teh lastnosti programske kode, ki so žal še vedno ponekod pod vsako kritiko.
Borland je za začetek v JBuilder dodal orodje OptimizeIt za profiliranje kode. Najboljša različica, Enterprise, ponuja različico orodja, ki omogoča profiliranje skozi celoten sklop slojev aplikacije J2EE. Tako je mogoče najti ozka grla tudi v slojih JDBC, JMS, JNDI, JSP ali EJB, pri čemer lahko kodo raziskujemo do vrstice natančno. Napredni profiler zna najti tudi puščanje pomnilnika (memory leak).
Pripomoček OptimizeIt omogoča iskanje ozkih grl na vseh slojih programskega sklada J2EE. S tem je JBuilder dohitel konkurenco iz konkurenčnega tabora .net, ki podobno zmožnost ponuja že dlje časa.
Odkrivanje ozkih grl je sicer pomemben, a droben korak k vsesplošnemu izboljševanju kode. Borland si precej obeta od pregledovanja kode (code audits). Skozi pregledovanje je mogoče predvideti problematične odseke kode, ki bi v prihodnosti lahko povzročali težave. Te težave pa so tako za uporabnika kot za razvijalca najdražje, saj kot po pravilu nastopijo ravno ob najbolj neprimernem času. JB zato vključuje orodje Fortify, ki preverja celotno programsko kodo in odkriva potencialne problematične odseke, kot je npr. preveliko izpostavljenost stavkov SQL (možen napad z vstavljanjem škodljivih ukazov, SQL injection). Orodje je silno zmogljivo in zna opozoriti na marsikatero spregledano podrobnost v programski kodi. Žal je v JB na voljo le z omejenim naborom pravil. Naročnina na dodatna pravila je žal precej zasoljena.
Je nadgradnja nujna?
Novi JB je vsekakor nujna nadgradnja za obstoječe uporabnike, ki želijo izkoristiti JDK 1.5 (javo 5) ali zgraditi spletna pročelja z JSF. Tudi za nove uporabnike je JB še vedno ena najboljših izbir, še posebej zaradi precejšnje "agnostičnosti", saj se brez težav povezuje z vsemi priljubljenimi programskimi in podatkovni strežniki, poleg tega pa ima odprta vrata tudi za sodelovanje z drugimi dopolnilnimi orodji, ki sodijo na delovno mizo naprednega razvijalca. Kot sicer pa tudi tokrat velja, da najboljše dobimo le po razmeroma visoki ceni.
Borland JBuilder 2005
Kaj: vizualno razvojno orodje za javo.
Na voljo za: Okna, Linux, Solaris, Mac OS X (ker je razvit v javi, načeloma deluje na vseh podlagah, ki imajo sodoben JRE).
Zahteve: Procesor zmogljivosti PIII, 800 MHz; 768 MB RAM in 650 MB diska.
Izdeluje: Borland, http://www.borland.com/jbuilder/.
Prodaja: Marand, http://www.marand.si/.
Za: Bogat nabor orodij za celoten življenjski cikel programske kode.
Proti: Cena najzmogljivejše različice, za optimalno delo potrebujemo zelo zmogljiv računalnik.