[Forrige artikkel] [Indeks] [Neste artikkel] [CW hjemmeside]

Symantec tilbake i ringen

AV ROB WARD, INFOWORLD (US) OVERSATT AV MORTEN SOLLI

Symantec har reddet sitt utviklingsmiljø. Etter at Symantec C++ 6. skuffet i Infoworlds test av C++ utviklingsmiljøer i april 94, har dette integrerte miljøet for utvikling og programfeiloppretting (IDDE) blitt til et av de mest kapable og brukervennlige produktene vi har sett.

Versjon 7.0 viser en rekke forbedringer. Det støtter nå hele oppbudet av av Microsoft Corp. operativsystemer, Windows 3.x, Win32s, DOS (16-bits og 32-bits tilleggene), Windows NT samt Windows 95. Programmets støtte for Microsoft Foundation Class (MFC) gir dessuten større fart (Versjon 6.1 støttet MFC 2.0, som var ett nivå gammelt og manglet støtte for Open Database Connectivity [ODBC] og OLE); 7.0 tilbyr MFC 3.0 for 32-bits applikasjoner og MFC 2.5 for 16-bits applikasjoner, sammen med støtten for ODBC og OLE. Et MFC-portingsverktøy, utviklet i fellesskap av Symantec og Microsoft, hjelper med 16- til 32-bits MFC applikasjonsporting.

Men disse forbedringene blekner mot den langt bedre integreringen i versjon 7.0. I versjon 6.1 hadde Symantec satt sammen sin IDDE av deler hentet fra andre selskaper. Dette ga en lite smidig navigering. I 7.0 har Symantec droppet Blue Sky Software Corps visuelle programmeringsverktøy, som ikke var MFC-kompatibelt, til fordel for en ny kodegenerator, AppExpress. Denne er knapt forskjellig fra de Wizards and Experts (interaktive hjelpesystemer) som finnes i de integrerte utviklingsmiljøene, eller IDE-ene (IDE - integrated development environments), til Microsoft og Borland International Inc. I tillegg har Symantec ved å omskrive mange av de andre delene av IDE-en skapt en sammensetning av verktøyer gjør den innbyrdes navigeringen transparent.

"Expression parsing" er kjernen i den forbedrede integreringen. Symantec har flyttet expression parsing, som trekker ut symboler og forholdene mellom dem, fra kildekoden, ut av kompileringsfasen og inn i en bakgrunnsprosess som pågår mens du skriver kode. Dette innebærer at du til enhver tid er informert om hva som befinner seg i kildekoden og hvor det er lokalisert, hvilket er nyttig i nesten alle utviklingsaspekter. Selv om denne tilnærmingen koster betydelig, om enn tålelig, ytelse (noe vi forbinder mer med Windows 3.1 enn med Windows NT eller Windows 95), er resultatet et kraftig rammeverk for prosjektstyring og en lettere navigering gjennom kildekoden enn vi har sett tidligere.

I tillegg er automatiseringen svært forbedret, takket være settet av hjelpeverktøyer, som Classexpress for tilføying av kontrollkode til elementer i brukergrensesnittet, Class Editor for navigering og redigering av kildekode, Dialog Express for rask bygging av dialogbokser, og så videre. Generelt er 7.0 langt enklere å bruke enn 6.1. Symantec har sammen med Microsoft og Borland samlet seg om et felles funksjonssett - kodegeneratorer, hjelpeverktøy, Windows klassebiblioteker - som gir programmerere mer automatisering og kutter ned på strevet med Windows-programmering.

Vi testet Symantec C++ 7.0 etter testplanen for C++ IDE. Testplattformen besto av en Gateway 2000 Inc. 4DX2-66V med Intel Corp. 486DX2/66 CPU og 16MB RAM. Vi kjørte en fleroppstarts-konfigurasjon av MS-DOS 6.2, Windows 31 og Windows NT 3.1

Hastighet

Den største forskjellen mellom versjon 7.0 og versjon 6.1, er at førstnevnte fullfører alle våre benchmark-tester. Versjon 6.1 fikk fattige 17.36 poeng av 60 mulige i vår test i april 1994. Hovedgrunnen til dette var at fire av ni kategorier ga null poeng i uttelling. Versjon 6.1 hadde klare problemer med de 20KB store testfilene for inn-/utdata-testene og med flyttalls-testen vi kjørte med DOS.

Men det var da. Versjon 7.0 bøter for gamle synder ved å fullføre alle benchmark-testene, og det med respektable tider som ga 47.2 poeng av 60. Det ser ut til at Symantec i året som er gått mellom 6.1 og 7.0 på en vellykket måte har fokusert på alvorlige mangler i enkelte av run- time-bibliotekene.

I løpet av dette året har det også kommet nye IDE-slipp fra Borland og Microsoft. Det blir interessant å se hvordan Symantecs nye hastighetsytelse står seg mot hovedkonkurrentene.

Installering og konfigurasjon

Installeringen med CD er ukomplisert, og gir denne kategorien karakteren Perfekt. Vi fant de forventede installeringsvalgene "typical" og "custom", og i "typical" kunne vi spesifisere mål som 16- 32-bits, eller begge deler. Med en kombinert CD/hard disk-installering minimeres diskplassen på bekostning av en saktere ytelse.

Versjon 7.0s konfigurasjonsverktøy for kompilerer og koblinger gir god mulighet for å finjustere miljøets innstillinger, og tilbyr samtidig et utvalg av forhåndsdefinerte kombinasjoner for forskjellige typer prosjekter, i tilfelle du skulle kvie deg for individualistiske løsninger. Vi hadde dessuten mulighet til å innstille valg for feilsøker- og ressurskompilereren på samme sted, samt dem for eksterne make-filer og bibliotekfasiliteten.

En ny godbit i 7.0 er allerede kjent for brukere av Borland C++, nemlig muligheten til å stoppe individuelle kompilerer-advarsler. Tiltalende var også kapasiteten til å utvide feilleting til prolog og epilog, samt til å spesifisere koblinger av objekt- og bibliotekfiler.

Brukergrensesnitt

Symantec C++'s kodegenerator er fullt på høyde med konkurrentenes, og fortjener dermed karakteren Veldig bra. Symantec har gått over fra den svært visuelle pek-og-klikk-pregede Visual Programmer i Version 6.1 til den dialog-baserte Appexpress i 7.0. Vi hadde ingen problemer med å lage vårt standard grensesnitt og modifisere det betraktelig.

Når det gjelder OLE-funksjonalitet, hadde vi på dette trinnet valget mellom server, container eller begge deler, men ikke miniserver eller automatisering. Det var heller ikke mulig å programmere i ODBC gjennom Appexpress. Dette måtte dermed gjøres manuelt. Appexpress ga oss ingen virkelig kontroll over grunnleggende aspekter ved applikasjonens utseende eller uttrykk, slik det er mulig med Borland C++. Bortsett fra disse forskjellene, er den resulterende koden nær sagt identisk med hva vi ville fått til med Microsofts Visual C++ 2.0s kodegenerator.

En gledelig overraskelse var at vi ved hjelp av Appexpress kunne opprette en OLE custom control (som krevde at vi installerte OLE -kontroll utviklingspakken). Vi kunne da beskytte oss mot de uskjønne og ubehagelige detaljene ved OLE-koding ved å benytte en kombinasjon av MFC og verktøy som Class Editor.

Før du setter igang med faktisk koderedigering, kan 7.0 kjøre en prøvevisning av en applikasjon, hvilket gjør at det er mulig å rette opp programfeil i grensesnittet ditt. Som konkurrentene, begrenser 7.0 applikasjonene til en gangs koderedigering. Ikke regn med å kunne besøke Appexpress på nytt for å gjøre endringer i grensesnittet.

Ressursoppretting

Resource Studio, versjon 7.0s ressursredigeringsverktøy, er tettere integrert i utviklingsmiljøet enn tilfellet var med 6.1. Vi opprettet den ene

dialogen i vår applikasjon ved bruk av hjelpeverktøyet Dialog Express. Verktøyet tok bort mye av strevet med å opprette dialoger, og fortjener derfor karakteren Veldig bra.

Resource Studio gjør en bra jobb med å styre ID-er automatisk. Vi kunne angi både inclusion og exclusion ranges av ressurs-ID-ene. Særlig ønsket vi velkommen tab-display-valget som viser tab-rekkefølgen for dialogens kontroller. Å fikle med tab-ene er noe av det minst tiltalende med dialog-konstruksjon.

Resource Studios bruksvennlighet skyldes i stor grad skjerm-layouten. Grensesnittet består i et tredelt vindu, der ressurstypene befinner seg i den øverste ruten, de spesifikke ressursene til den valgte typen i nedre rute, og et arbeidsområde til høyre i skjermbildet. I verktøylinjer og paletter registreres endringer under redigeringen av ressursen. En fin detalj ved Resource Studio er kapasiteten til å åpne en eksisterende.EXE-fil og vise filens komponentressurser som er redigeringsklare.

Resource Studio koordinerer med andre deler av IDE gjennom OLE 2. Dessverre er Resource Express ikke en OLE-container, så du kan ikke innarbeide en OLE custom control i din dialog på samme måte som med en VBX. Visual C++ 2s Appstudio har samme mangel, men man skal heller ikke overdrive hensynet til Microsoft-kompatibilitet.

Hendelseshåndtering

I denne kategorien står Symantec C++ til Veldig bra, igjen fordi den forbedrede integreringen i produktet som helhet gjør det langt enklere å knytte kontrollere til kode.

Grunnmetoden var å velge en kontroll og kjøre Classexpress (som mystisk nok er lokalisert under filmenyen). Classexpress ba oss oppgi et klassenavn første gang det så så en ny kontroll, og viste oss deretter hvilke Windows-meldinger kontroll kunne gi respons på. Vi valgte en melding og trykket på Add Handler-knappen.

Alternativene var å godta det Classexpress-genererte funksjonsnavnet eller bytte det ut med et navn etter eget valg, slik valgene var for kontrollklassens implementeringsfilnavn. Dersom vi nå bestemte oss for å skrive håndteringskoden, var det bare å klikke på edit-code-knappen.

For utviklere vant med Visual C++s Class Wizard, vil det foregående gi et aldri så lite deja vu. Faktisk er funksjonene for kontroll-til-kode mellom de to IDE-ene helt identiske. Symantec går likevel et skritt lenger med VBXExpress, som ved hjelp av en C++ klasse-skall for VBX muliggjør direkte programmatisk tilgang til VBX-en.

En liten, men nyttig sunnhetstest er kapasiteten til å få tak i grunnleggende informasjon om alle klassene i prosjektet ditt. Classexpress viser header og implementeringsfilnavnene, base-klassen og alle tilknyttede ressurs-IDer.

Funksjonalitet

Tekstredigering, tegneverktøy samt databasetilgang til applikasjonen, var langt lettere å tilføye nå enn da vi jobbet med 6.1. Mht. databasetilgang ble dette nå rett og slett mulig. På grunn av den bedrede funksjonaliteten for klassene og den forenklede bruken av klassene i en applikasjon, får IDE-en karakteren Perfekt.

En grunn til at klassene nå var enklere å bruke, er at Classexpress gjorde oss en siste tjeneste da vi klikket på edit-code-knappen: Istedenfor for å komme til et tekstredigeringsvindu, ble vi flyttet direkte til en klasseredigerer.

Class Editor bruker et tre-ruters format som viser en liste over klasser brukt i applikasjonen ved siden av en komprimerbar/utvidbar liste over medlems-variabler og funksjoner. Redigeringsruten under gir god oppdatert oversikt alle de viktige delene av klassen. Class Editor er parser-orientert, og bruker altså ikke filsystemet direkte. Med store prosjekter er det derfor ikke nødvendig å bry seg om fillokalisering eller katalogstruktur.

Vil tilføyde databasestøtte til applikasjonen via ODBC-skall som inngår i MFC. Det er en skuffelse at Appexpress genererer OLE-kode, men ikke ODBC-kode. Forhåpentligvis vil neste versjon av Appexpress ta i bruk MFCs ODBC-funksjon.

Feilsøking

Feilsøkeren Multiscope har bestandig vært en av de beste grafiske feilsøkerne på markedet, og den er blitt enda bedre i versjon 7.0.

Symantec C++ 7.0 får samme karakter for feilsøking som 6.1 - Veldig bra. Den lille minusen skyldes to stygge utelatelser, nemlig post-mortem feilsøking og "just-in-time"-feilsøking. Begge disse funksjonene var en del av produktet tidligere, men er nå fjernet. Ifølge Symantec bir de gjeninnført i en senere versjon.

Men det finnes berdringer også. Den nye feilsøkeren inneholder støtte for NT 3.5 og betaversjonen av Windows 95, og tilbyr dessuten noen nye visninger: Inspector gir en kjapp data/objekt-visning som tillater flere visninger av blandede datatyper, mens Thread gjør det mulig å svitsje mellom de forskjellige trådene i en flertrådsapplikasjon.

Multiscope henter data og viser dem på en måte som faller i smak. Antallet forskjellige visningsmuligheter er imponerende. Den palettbaserte organiseringen og dra-og-slipp-funksjonene gjør det enkelt å flytte rundt inne i koden, og minsker samtidig antallet vinduer. Grensenittet er kanskje den mest modne delen av versjon 7.0. Om lite er endret fra tidligere utgaver, er det fortsatt en glede å bruke det.

Dokumentasjon

Som med versjon 6.1, er online-dokumentasjonen bra, mens håndbøkene mangler. Et par installeringsveiledninger følger med, men ellers vil dokumentasjonen i bokform koste dyrt, og med den omfattende online-dokumentasjonen klarer du deg egentlig uten papirversjonen.

Online-dokumentasjonen omfatter en ny fremviser som likner Microsofts Books Online - et stort framskritt fra 6.1. Den kontekstrelaterte hjelpen er særlig grundig når det gjelder kompliserte dialoger. Det finnes ellers hjelp til begge MFC-nivåer - 2.5 og 3.0 -- og begge API-er -- Windows 3.1 og Win32. En rekke andre standard hjelpefiler forklarer hvordan man arbeider med OLE 2, multimedia, penn-computere, Windows Sockets API og C++. Uforklarlig nok, mangler online-hjelp for kompilerer- og koblings-feil. Om nødvendig må brukeren da konsultere en separat fil.

[Forrige artikkel] [Indeks] [Neste artikkel]


[Image map not available]
Artikkel automatisk generert, 10/08-95, kl. 18.30 cw@oslonett.no