‘Hoe beter je je applicaties kunt beschrijven in modellen, hoe minder code je hoeft te schrijven en hoe meer transparantie je biedt aan ontwikkelaars en anderen.’ Computable sprak met Chris Sells. De programmamanager van de Connected Systems Divisie van Microsoft was in Nederland voor een Hot-or-Not lezing, georganiseerd door Sioux.
Wat is Oslo?
Allereerst is het een stad in Noorwegen, maar verder is het het nieuwe platform voor modelgebaseerde ontwikkeling van Microsoft. Bedrijven kiezen al langer voor model-gebaseerd ontwerpen, maar maken vaak gebruik van adhoc-oplossingen. Met Oslo hopen we niet alleen de productiviteit van de ontwikkelaar te verhogen, maar het bovendien mogelijk maken voor andere mensen in de organisatie om de beschrijving van die software te lezen. Domeinexperts kunnen zo bijvoorbeeld begrijpen wat de software zou moeten doen en ze kunnen het zelfs controleren, ook al zijn het geen programmeurs.
Oslo bestaat uit drie delen: modelleertaal M, visualisatie-omgeving Quadrant en een repository. Voor wie zijn die onderdelen bedoeld?
M zal primair door ontwikkelaars gebruikt worden. Quadrant is een datavisualisatie- en manipulatie-omgeving. We verwachten dat niet alleen ontwikkelaars maar ook ict-professionals en domeinexperts het gaan gebruiken. De repository is de opslag voor modellen.
De repository is een databank voor metadata?
Ja, precies. Als je informatie opschrijft over je systeem, gebruikmakend van modellen, zijn repositories de opslag voor die informatie. Dus je bouwt applicaties met M, je visualiseert en manipuleert modellen rechtstreeks via Quadrant, en Quadrant draait weer bovenop de repository. De repository is de databank waar je de beschrijving van je applicaties bewaart. In plaats van dat applicaties vooral code zijn, zijn het binnen Oslo vooral modellen. Ondernemingen die een bepaalde grootte hebben bereikt, net als hun applicaties, maken bijna altijd gebruik van repositories om dit soort data op te slaan. Omdat dat de enige manier is om het efficiënt te doen. Hoe beter je je applicaties kunt beschrijven in modellen, hoe minder code je hoeft te schrijven en hoe meer transparantie je biedt aan ontwikkelaars en anderen.
Waarom bouwt Microsoft een nieuwe taal, namelijk M?
We hebben een aantal bestaande talen uitgeprobeerd, zoals SQL (Structured Query Language), XML (Extensible Markup Language), UML (Unified Modeling Language) en zelfs C# (C Sharp). We ontdekten dat elke taal die we probeerden op zijn minst één fout had die ons ervan weerhield die taal te gebruiken op een manier die wij wilden. We hadden een heel praktische en ook schaalbare oplossing nodig. Die onze traditionele modellenmakers toestond om hun werk te doen, maar ook toegankelijk was voor softwareontwerpers die geen achtergrond hebben in modelleren. Dus besloten we dat het bouwen van een nieuwe taal toch de enige mogelijkheid was, vanwege de productiviteits en transparantievoordelen die we wilden bereiken in een modelleerplatform. Ook al begrijpen we dat een nieuwe taal een nieuwe leercurve oplevert binnen de gemeenschap, en er voor zorgt dat we een hoop basisinfrasctructuur moeten leveren.
Wanneer is Oslo beschikbaar?
Wanneer het af is.
Wat zal het kosten?
Een groot deel ervan zal gratis zijn. Ik weet niet of we voor sommige high-end tools wel geld gaan vragen. Daarover zijn nog geen besluiten gevallen.
Hoe kunnen bedrijven zich alvast voorbereiden op Oslo?
Naar de community-website voor Oslo gaan. Daar kun je de SDK, samples, tools en artikelen downloaden, video's bekijken, bugs rapporteren en vragen stellen.
Werkt Oslo met andere databases dan SQL Server en op andere besturingssystemen dan Windows?
De eerste versie van Oslo is gericht op Windows en SQLServer 2008. Maar onder de Open Specification Promise maken we de specificaties van M beschikbaar voor iedereen die het op andere besturingssystemen wil implementeren. En dat moedigen we ook aan.
Chris Sells
Chris Sells is Program Manager bij de Connected Systems Divisie van Microsoft. Hij heeft meerdere boeken geschreven, publiceert regelmatig in het MSDN magazine en is een veelgevraagd spreker op conferenties.
Hot-or-not
Chris Sells sprak op maandagavond 20 april voor een zaal met 120 softwarespecialisten over Microsoft Oslo. Na afloop beoordeelde 98 procent van de aanwezigen Oslo als ‘Hot'en 2 procent als ‘Not'.
Hot-or-Not is een informatieve presentatiereeks voor embedded software specialisten, georganiseerd door Sioux Embedded Systems. Een paar keer per jaar haalt dit bedrijf een toonaangevende spreker naar Eindhoven, die vertelt over de laatste ontwikkelingen op het gebied van softwareontwikkeling. Een belangrijk aandachtspunt hierbij is of deze ontwikkelingen de productiviteit van embedded software professionals kunnen verbeteren.
“Hoe beter je je applicaties kunt beschrijven in modellen, hoe minder code je hoeft te schrijven en hoe meer transparantie je biedt aan ontwikkelaars en anderen.”
Is wat voor te zeggen aan twee kanten:
1. Aan de ene kant is “het de hand programmeercode inkloppen” voor sommige vormen van applicaties eigen niet meer nodig. Voor de veel betreden paden in applactiedevelopment zijn er voldoende standaard bouwblokken beschikbaar, die met “the click of a button” samen compileerd kunnen worden tot een werkende applicatie.
2. Aan de andere kant, kunnen niet alle applicaties gemodelleerd worden – via kant en klaren bouwblokken.
Voor sommige applicatie uitdagingen zijn er eenvoudigweg nog geen “standaard software bouwblokken” beschikbaar.
Dan kom het toch (weer) neer op
– eigen creativiteit
– oplossings gerichtheid
– vakkundigheid
– inhoudelijke kennis
van een programmeur, software developer van vlees en bloed. “Den Coderende Mensch” in het ict landschap, de levende schakel tussen uw business idee en het realm van de processoren, registers, bits and bytes.
VOORDELEN:
Het werken volgens de “modeleer methode” heeft ook zijn voordelen want als je model klopt, doet een software codegenerator – automatisch – de rest. Dit scheelt ontwikkeltijd voor nieuwe applicaties, en mogelijke (programmeer) fouten die opkunnen treden in de nieuwe applicatie. Voorwaarde is wel dat alle TOOLS 100% foutloos moeten werken, goed gedocumenteerd zijn en feilloos moeten werken.
– Iedereen die kan modeleren kan dus nu ook applicaties bouwen
NADELEN:
– Aan de andere kant, VERARMT de modeleer methode” het diepte inzicht van de mens achter den computer
Echt diepte inzicht in HOE je programeeruitdaging – onder de motorkap – word opgelost krijg je hierdoor niet.
– Je steekt er ook niets codeer-technisch meer van op. Soort klik-klak-klaar applicatiebouwen.
– Daarnaast stel je je als developer weer AFHANKELIJK op van de tools die Microsoft je ter beschikking stelt. Ga je werken met “B2-blokken”, “Prefad muren” qua software, creeer je een overkill aan software codevolume doordat niet alle functionaliteit van alle blokken gebruikt word
Voorbeeld: VB6 of Dot Net applicaties:
Je schrijft zelf een (zeer) kleine executable
Je hebt echter wel een relatief grote runtime omgeving nodig op je pc, om die (zeer) kleine applicatie te kunnen draaien. Tenzij je je compiler zo in kunt stellen dat is “alles in een executables (code + runtime in een) gaat opleveren.
– Als het FOUT gaat, hoe ga je dan foutzoeken?
Is je gemodeleerde code goed gegenereerd door de tool?
Vertrouw je de standaard bibloheek bouwblokken?
Allemaal onduidelijkheden voor je weer AFHANKELIJK bent en blijft van de leverancier van je tooling
– Als je je applicatie (handmatig) zelf wilt optimaliseren, voor bijv performance, lager geheugen gebruik, kleinere installatie foot-print… zal dat moelijker gaan omdat je weer AFHANKELIJK bent van de geleverde tooling en haar mogelijkheden.
Daarom blijft mijn voorkeur: Open Source.(tools en code)
Dan kun je zelf als developer ten allertijde nagaan wat en hoe het fout is, heb je de volledige controle in eigen hand, en kan je het eind resultaat 100% naar eigen hand zetten en je kunt jezelf blijven ontwikkelen en leren. Met of zonder gebruik van modeleer en codegenerating tools.
Wie weet komt Microsoft met de volgende generatie tools tot the best of both worlds…
Ontwikkelomgeving “O”…
100% Open Source Tooling, Modelering, Compiling, Debugging van het windows platform. Dan kan de gehele “windows wereld” leren van de microsoft software development technologie en kan Microsoft zelf ook wat opsteken van alle creative developers in haar eigen development community
“Open Source.. we all benefit”