Borland Developer's Conferentie in Anaheim |
Ruim twee-derde van het aantal bezoekers zei voor Delphi te komen, alhoewel ook een hele hoop Java enthousiastelingen aanwezig waren in Anaheim. Behalve Delphi en Java, dingen de sessies natuurlijk ook over Borland C++, Paradox, Visual dBASE en bijbehorende produkten zoals InterBase, ReportSmith en zelfs over het tijdens de conferentie voor het eerst aangekondigde IntraBuilder (hierover later meer in dit verslag). In totaal waren er meer dan 200 technische sessies en zelfs een dozijn ad-hoc "birds-of-a-feather" sessies, waarin op verzoek van de bezoekers een spreker nog eens dieper inging op een bepaald onderwerp (onderstaande schrijver/spreker heeft bijvoorbeeld een extra sessie over Delphi Experts gegeven).
Keynotes
De Opening Keynote werd voorafgegaan door een semi-live Indiana Jones film met in de hoofdrollen Paul " indiana" Gross en David "jones" Intersimone.
Na deze indrukwekkende intro, werd voor een denkbeeldig bedrijfje met de naam "Stones & Bones" aandacht besteed aan de bedrijfstoepassingen die met Borland C++, Latté, IntraBuider en Delphi gerealiseerd zijn (opvallen was dat er geen aandacht was voor Paradox of Visual dBASE). Paul liet zien hoe ieder van de eerder genoemde Borland produkten gebruikt kon worden voor de implementatie van een database en (web)rapportages. Tijdens deze show werd de tool IntraBuilder voor het eerst vertoond; en het was erg indrukwekkend hoe makkelijk database-driven web pagina's gegenereerd en op het intranet gebruikt konden worden (we zagen onder andere hoe de kaartjes van de Olympische Spelen voor de wedstrijden van de week ervoor nu heel goedkoop waren geworden).
Delphi 97
Natuurlijk was de aandacht tijdens de BDC met name op Delphi gericht.
Delphi 2.01 was net uit, met internet tools (meer hierover later), maar toch slaagde Zack Urlocker en Anders Hejlsberg erin iedereen te verrassen met weer iets nieuws, voorlopig Delphi 97 genoemd.
Delphi 97 maakt gebruik van een nieuw concept, packages genaamd, waarmee we de VCL in DLLs kunnen stoppen.
Deze VCL DLLs hebben zowel design time (component library) als run-time (support DLL) mogelijkheden, dus niet alleen maar vergelijkbaar met VBRUNxxx.DLL.
Een package is een verzameling van components, net als een Component Library.
Het grote verschil met een "normale" Delphi component library is dat Delphi 97 in staat is om additionele packages (Component Libraries) te laden en weer te ontladen.
De demonstratie die Anders gaf, liet de indruk na dat het in Delphi 97 mogelijk is om iedere tab van de Component Library apart te associeren met een package, en dus apart te laden (terwijl de rest al in de lucht is).
Het is de vraag of je op deze manier ook meerdere versies van dezelfde componenten zou kunnen laden door ze in een aparte package en tab te stoppen, maar dat zal de tijd ons moeten leren.
Vooralsnog lijkt het dynamisch kunnen toevoegen van component packages een nuttige uitbreiding van de Delphi IDE.
Behalve tijdens het ontwerpen, zijn component packages ook zeer nuttig tijdens het draaien (de run-time) van een toepassing.
Doordat een hoop components in een component package DLL zitten, hoeft niet langer alle code in de executable te zitten.
De executables zullen dus veel kleiner kunnen worden, terwijl ze component package DLLs delen met elkaar.
Ter illustratie compileerde Anders de bekende FishFacts demo, en die ging van ruim 450 Kb (met Delphi 2.01) naar amper 13 Kb met Delphi 97.
En ze zijn aan het werk om dat nog kleiner te maken, grapte Anders.
Met name in de internet en intranet wereld is het concept van component packages natuurlijk erg belangrijk.
Ga maar na: als een toepassing slechts een tiental kilobytes in omvang is, dan is deze snel te downloaden via het net en uit te voeren.
De enige voorwaarde is dat de component package DLLs aanwezig zijn, maar die kunnen - net als netscape plug-ins - on demand gedownload worden, en zijn vanaf dat moment beschikbaar (en hoeven dus niet meer voor versie 1.1 of een andere toepassing die ze nodig heeft weer gedownload te worden).
Een beetje als de OCX-benadering van Microsoft.
Daarnaast zal Delphi 97 automatisch COM (Common Object Model) support bevatten.
COM is noodzakelijk om Delphi classes te kunnen delen en laten communiceren met andere (COM) omgevingen zoals Borland C++.
We kunnen straks dus Delphi COM classes schrijven en die direkt in C++ gebruiken, en andersom.
Waar op sommige punten de omgevingen uit elkaar drijven komen ze op andere punten dus juist weer dichter bijelkaar.
Delphi 2.01
Maar naast de toekomst van Delphi in de vorm van Delphi 97, werd er ook veel aandacht besteed aan de huidige 32-bits versie 2.01 van Delphi die onder andere is uitgebreid met het Internet Solution Pack; een verzameling van internet components, en DeltaPoint's QuickSite; waarmee websites te maken en beheren zijn.
Met de ActiveX components uit het solution pack voor Delphi 2.01 kunnen op eenvoudige wijze internet toepassingen gemaakt worden, zoals een Web Browser, een internet e-mail programma, file transfer protocal (ftp), etc.
Maak je eigen Internet Browser
Diane Rogers liet in een korte sessie zien hoe je zelf een internet browser kan maken met behulp van deze componenten en slechts een regel code.
Het gaat als volgt: start een nieuw form, drop een TPanel op dit form, zet alignment naar Top (zodat het panel alleen het bovenste deel van je form beslaat), en drop een TComboBox en TButton op deze panel.
Drop vervolgens een HTML control uit de nieuwe internet component tab onder de panel, en zet de alignment hiervan op Client (zodat de HTML control alle ruimte onder de panel beslaat).
Klik nu op de TButton en voeg de enige regel code aan de OnClick event toe als volgt:
HTML1.RequestDoc(Combobox1.Text);De zelfgeschreven web-browser is nu al vrijwel af. Het gebruik is heel eenvoudig als volgt: tik in de combobox het http adres in dat je wilt bezoeken, en klik op de button om hier inderdaad naartoe te gaan. Uiteraard moet er dan wel een tcp/ip verbinding bestaan met uw internet provider, maar dat terzijde.
Label1.caption := 'Contacting ' +URL;De HTML control is vrij compleet, maar ondersteunt nog geen HTML level 3.0 (geen frames dus). Het is nog niet bekend wanneer dit wel ondersteund zal worden, maar de ActiveX controls zullen zeker nog updates krijgen.
Delphi, Databases en Web Browsers
Een toepassing op het web is natuurlijk pas echt nuttig als er ook databases aan homepages gekoppeld kunnen worden, of wanneer we dynamisch queries kunnen stellen aan databases.
Normaal gesproken gebruiken we hier CGI voor om de query van de homepage naar de web server te sturen, waarna de web server de query uitvoert op de database, en het resultaat weer terugstuurt naar de browser.
Het is echter ook mogelijk om met Delphi 32-bits DLLs te schrijven die communiceren via ISAPI, NSAPI of CGI met de web server.
Dit is een soort Client/Server arcitectuur, maar dan op het internet en intranet.
De Delphi DLL wordt op de web server geladen in het geheugen, en blijft in principe geladen, waardoor de snelheid toeneemt ten opzicht van een CGI query waarbij voor elke query bijvoorbeeld opnieuw de BDE geladen moet worden.
Daarnaast hebben we nu natuurlijk veel meer vrijheid op de Delphi DLL op de web server wat extra processing te laten doen, wat het eindresultaat weer ten goede kan komen (bijvoorbeeld in de layout or een summary).
In beide gevallen wordt het resultaat van de query als een dynamisch gegenereerde HTML pagina terug gestuurd naar de web browser, die hem vervolgens aan de client vertoont.
Op deze manier raken de Client/Server en internet/intranet architecturen en concepten elkaar, en kunnen we zelfs onze bestaande Client/Server kennis gebruiken (herbruiken) voor het internet.
Delphi 1.5
Na al het 32-bits geweld lijkt het een overbodige vraag of er ooit nog een nieuwe 16-bits Delphi voor Windows 3.1x zal uitkomen.
Toch werd door het Delphi Team opvallend veel aandacht besteed aan het uithoren van de aanwezige conferentiebezoekers omtrend de bruibaarheid van een "Delphi 1.5" (zoals die voorlopig gedoopt is); welke features zou men absoluut willen zien, en hoeveel is men bereid ervoor te betalen? Het gaat zelfs zo ver dat Borland inmiddels een heuse enquete op het world-wide web gezet hebben voor vergelijkbare feedback.
Hij is te vinden op http://www.borland.com/delphi/survey.html en ik kan elke lezer die nog belang heeft bij een mogelijke Delphi 1.5 zeker aanraden om deze vragenlijst in te vullen.
Zodra ik meer weet over de daadwerkelijke haalbaarheid van Delphi 1.5 kom ik hier zeker nog op terug!
Latté
De Java ontwikkelomgeving van Borland, met codenaam Latte, is nog steeds zwaar in beta.
Latté zal een RAD tool worden voor het internet, qua IDE sterk vergelijkbaar met Delphi, alleen wordt er nu Java gegenereerd en geen ObjectPascal.
Er werden enkele demos van Latté gegeven, en het valt op dat de IDE zelfs ietsje geavanceerder lijkt dan die van Delphi momenteel is.
Zo komt er bijvoorbeeld een speciaal censter met daarin de geschreven methoden, en door op een van deze namen te klikken kom je in het code venster automatisch op de juiste plaats - een soort outliner of hierarchie van je code dus.
Een andere opvallende gebeurtenis is dat JavaSoft van SUN heeft aangekondigd dat zij Borland's BAJA component event model voor Java gaan gebruiken in het JavaSoft Java Beans component model.
Dit zal uiteindelijk (moeten) leiden tot een platform-onafhankelijke Java standaard.
Borland liet op de BDC al zien hoe het BAJA property/method/even (PME) model nu al helemaal in Latté is ingebouwd.
IntraBuilder
Zoals gezegd werd tijdens de Conferentie in Anaheim ook de nieuwe intranet ontwerptool IntraBuilder (voor wat minder technische eindgebruikers) aangekondigd.
IntraBuilder is eveneens uitsluitend 32-bits en geschikt voor Windows 95 of NT.
Er komen waarschijnlijk enkele verschillende versies van IntraBuilder uit, en op dit moment is er een gratis pre-release te downloaded van het www op http://www.borland.com/intrabuilder (zeker de moeite waard voor wie zich met lokale intranetten bezighoudt).
IntraBuilder bestaat in feite uit een verzameling hulpmiddelen voor webmasters, waaronder visuele report builders, dynamische HTML, JavaScript, forms designers, web servers, herbruikbare components en database toegang middels de BDE.
De support voor Java applets, JavaScript en ActiveX controls zorgt ervoor dat IntraBuilder zowel met de Netscape als met de Microsoft internet browsers uit de voeten kan.
Het enige dat nodig is, is een intranet (desnoods een enkele machine) en een tcp/ip stack.
Aan de web server kant wordt een speciale intrabuilder driver geinstalleerd, waardoor de clients (met web browsers) de web toepassingen direkt kunnen draaien.
Het installeren van de driver op de server kost nog het meeste moeite (als er over moeite gesproken kan worden), en ondersteunt momenteel Netscape FastTrack 2.0 (NSAPI), Microsoft Internet Information Server (ISAPI) en WebSite 1.1e (WinCGI) van O'Reilly.
De uiteindelijke versie van IntraBuilder zal zelfs geleverd worden met een web server (handig indien deze nog niet aanwezig is), alhoewel het nog niet bekend is welke van de drie dat uiteindelijk zal/zullen zijn.
Als web browsers kunnen momenteel zowel de Netscape and Microsoft browsers gebruikt worden.
Met behulp van IntraBuilder kan een webmaster op eenvoudige wijze data-entry formulieren of dynamische rapportages maken voor het web, zonder daarbij zelf JavaScript of HTML te hoeven leren.
IntraBuilder schermt de ontwikkelaar volledig af van deze zaken, maar biedt wel de mogelijkheid om de gegenereerde JavaScript source code te bekijken en te wijzigen.
Ook kan IntraBuilder dynamische HTML pagina's genereren.
Door de sterke koppeling met de BDE bevat IntraBuilder de native mogelijkheid om een ruim aanbod aan database formaten te kunnen verwerken, inclusief natuurlijk native support voor Visual dBASE, Paradox, ODBC, InterBase, en middels SQL Links ook MS SQL Server, Oracle, Sybase, Informix, DB2 en alle anderen die ook met Delphi te benaderen zijn.
De definitieve versie van IntraBuilder wordt voor het eind van dit jaar verwacht (nog voor Latté zelfs denk ik); en we zullen er dan nog zeker uitgebreid op terug komen.
De prijs van de verschillende versies van IntraBuilder is op dit moment nog niet bekend.
Open Environment
Tot slot werd er op de persconferentie nog wat aandacht besteeds aan de overname van Open Environment door Borland (of liever gezegd het samengaan van beide bedrijven).
Er zijn verschillende punten waarop Borland en Open Environment elkaar raken.
Borland probeert een aantal hoofddoelen te bereiken met het samengaan met Open Environment, waaronder het gebruik van het OE distributiekanaal, het gebruik van de Client/Server expertise die bij OE aanwezig is, de synergy tussen de Borland en de OE produkten en de mensen.
Vooral voor de ontwikkelingen op het gebied van 3-tier Client/Server (en impliciet ook internet en intranet ontwikkelingen waar die C/S technology raken) ziet Borland hier belangrijke mogelijkheden.
Het samengaan van Borland met Open Environment en de nieuwe produkten Latté en IntraBuilder passen in het nieuwe Golden Gate initiatief dat Borland presenteerde.
Dit wil zeggen dat Borland van plan is om het gat tussen de "traditionele" Client/Server architectuur en de nieuwere internet/intranet te dichten met open tools die kunnen zorgen voor een vloeiende overgang.
Vandaar dat - volgens dit Golden Gate model van Borland - de grens tussen Client/Server en internet/intranet ook langzaam aan het vervagen is.
CD-ROM
Er was een minpuntje aan de conferentie, en dat was de CD-ROM waarop de artikelen, code en slides van de sprekers zou moeten hebben gestaan.
Het was uiteraard niet te verwachten dat de inhoud van de keynotes al op de CD-ROM te vinden was, maar dat 22 van de 56 Delphi sessies en bijvoorbeeld 15 van de 23 Java sessies niet op de CD-ROM terug te vinden waren was bedroevend.
Ook al was het in sommige gevallen te wijten aan de snelle technologische ontwikkelingen, en zijn sommige van de papers nu op het www terug te vinden, toch is het niet echt fijn (aangezien er tientallen sessies parallel waren, was het vaak kiezen welke je wilde zien, en alsje verkeerd koos en je alternatief niet op de CD-ROM stond dan heb je dus helemaal pech gehad).
Conclusie
Na vier winstgevende kwartalen en een vijfde kwartaal waarin verlies werd geleden, heeft Borland toch de ontwikkelaars weer kunnen overtuigen van een gezonde visie op de toekomst.
De aandelen zijn na de conferentie dan ook weer gestegen van US$ 7 tot ruim boven de 8 dollar per aandeel.
Gezien de ontwikkelingen op het internet en intranet, en de ontwikkelingen rond Delphi 97, Latté en IntraBuilder geeft dit weer een vertrouwd gevoel.