Posts tonen met het label software industrie. Alle posts tonen
Posts tonen met het label software industrie. Alle posts tonen

maandag 5 december 2011

Meer over programmeren: De tien talen in de software industrie


“Engels en Duits zijn handiger in Europa dan Thais of Koreaans”
                                                                                                - Sam Rain
Programmeertalen zijn de middelen om een doel te bereiken; het is dan ook waardevol om te weten wat het verschil is tussen de hamer en een schroevendraaier. Daarom de 10 populairste talen van de software industrie op een rij met de reden waarom ze tot de top 10 behoren.
Ruby
Een ‘objectgeoriënteerde’ taal welke niet alleen goed leesbaar is, maar ook een ‘vrije’ stijl hanteert qua conventie. Het is een prima taal voor beginners als voor gevorderden zonder al te veel mystiek. Het is vooral populair dankzij het ‘Ruby on Rails’ framework (omgeving en architectuur voor specifieke platformen).
Java
Ook ‘objectgeoriënteerd’ en al jaren de baas in het kader van industriële software. Java is een ‘robuuste’ taal en is systeem onafhankelijk; programma’s in Java draaien op ieder systeem dat Java-technologie ondersteund (tegenwoordig wat minder bijzonder). Echter omdat de industrie al decennia werkt met Java zijn er zeer veel ‘bibliotheken’ van broncode beschikbaar, met als nadeel dat Java ‘pittig’ is voor beginners en relatief ouderwets is in vergelijking met andere talen (zoals Ruby).
PHP
Tegenwoordig een ‘objectgeoriënteerde’ taal, voornamelijk gericht op webapplicaties. Veel programmeurs krijgen deze taal onder de knie, omdat PHP het mogelijk maakt om Databases te koppelen aan websites. De taal wordt vaak een script-taal genoemd; echter dankt het dit aan het verleden.
C#
Uitgesproken als C-‘sharp’, ontwikkeld door Microsoft om in de eerste instantie te concurreren met ‘Java’. Deze taal die veel wegheeft van Java is volledig gericht op Microsoft systemen en beschikt over veel ‘bibliotheken’ om applicaties te bouwen met behulp van componenten.
JavaScript
Net als PHP, ooit begonnen als gereedschap voor het dynamischer te maken van websites, alleen voert JavaScript het uit op de computer van de bezoeker. Tegenwoordig gebruikt men JavaScript als programmeertaal voor ‘widgets’, smartphone applicaties of als ‘embedded’ taal in industriële software. Als dynamische taal werkt men vooral met ‘frameworks’ zoals JQuery of Zend.
Objective-C
Een programmeertaal voor Apple systemen; programma’s zoals ‘apps’, ‘widgets’ en toepassingen voor Apple systemen worden met Objective-C geschreven. De taal is vrij complex, maar biedt gelijk ook mogelijkheden om volledige applicaties te ontwerpen. Apple biedt de programmeeromgeving met alle toeters en bellen gratis aan – Xcode is van begin tot eind volledig. Objective-C is ‘object georiënteerd’ en een ‘super-set’ van C++
C++
Een programmeertaal voor mensen zonder hobby; de taal is echter in staat waar meeste programmeertalen ophouden verder te gaan. Het wordt veelvuldig gebruikt voor spellen die het uiterste van computers eisen, maar ook om besturingssystemen te programmeren. C++ vereist concentratie – fouten maken, betekent opsporen – en is dat is al ellende genoeg om er niet voor te kiezen als beginner (of gevorderde).
C
Een oude taal, zonder objecten en alle controle. C is een degelijke taal voor de purist en komt zonder toeters en bellen, en laat de rest van de fiets ook thuis. Vaak wordt C gebruikt voor kleine systemen zoals routers, apparaten zoals magnetrons e.d.
Python
Eigenlijk als Ruby, maar sneller. Python is wel echter een voorstander van opgedrongen conventie: wit ruimte heeft wel betekenis (in tegenstelling tot andere talen) en vaak zul je ‘oude’ gewoontes moeten opgeven bij de adoptie van deze taal. Python is vooral populair onder de UNIX/Linux programmeurs en vooral veel services in de industrie worden ‘gebakken’ met Python.
SQL
De taal voor databases, de complexiteit verandert per type database maar de taal is redelijk uniform. Essentieel is het niet objectgeoriënteerd maar dat hoeft ook niet. Databases zijn vlak gezegd tabellen en met SQL is het beheer een peulenschil. Hoewel veel talen ‘abstracte lagen’ hebben voor databases, blijft kennis van deze taal bijna essentieel.
Naast deze tien talen zijn er ontelbare varianten. In de industrie van nu zijn deze talen waarin oplossingen geleverd worden. Vaak worden ook combinaties gebruikt; PHP, SQL en JavaScript zijn bijvoorbeeld in vele webshops gebruikt als gezamenlijke oplossing.
©SamRain

vrijdag 18 november 2011

De software industrie begrijpen: de steigers van een oplossing


“Een wijs man bouwt zijn huis op een rots”
                                                                        - Jezus
Wanneer de software industrie wordt bekeken denkt men in de eerste plaats aan consumentenproducten zoals de machines van Apple of diensten als Google. Echter is de grootste industrie die van de automatisering; bedrijven die het hun vakgebied maken om bedrijven te voorzien van software producten voor hun financien, telecommunicatie, informatie-uitwisseling en digitale archivering. In de automatisering zijn er distinctieve takken aanwezig; namelijk de voorstanders van platformen en de maatwerkleveranciers. De platform voorstanders richten zich op het leveren van oplossingen met behulp van een groot arsenaal technologieën die gezamenlijk een industrie standaard vormen. De maatwerk leveranciers maken, met de riemen die ze hebben, een afgestemde oplossing ‘op maat’ aan de wensen van hun opdrachtgever. Beide vervullen een belangrijke rol; platformen bieden betrouwbaarheid, maatwerk innovatie.
Wanneer praktische automatisering wordt toegepast ligt de voorkeur bij het gebruiken van een platform; de mogelijkheden en restricties zijn vooraf bekend, de gekozen technologieën zijn volwassen en dus minder gevoelig voor fouten zodat een oplossing een robuust fundament heeft. De kosten liggen wel hoger voor de aanschaf van een platform in vergelijking met maatwerk. Dit is echter een bedrog, omdat software altijd zal worden uitgebreid en groeit naarmate er meer complexiteit gewenst is. Maatwerk kost op de lange termijn bijna drie keer zo veel meer voor dezelfde functionaliteit als dat van een platform.
Vaak verwarren techneuten ondernemers vanwege het jargon dat het bedrijfsleven gebruikt met het IT-jargon. Hoewel ze nauw verband hebben zijn beide appels en peren in vergelijking; in de automatisering is een platform een abstract begrip voor een verzameling van technologieën, concreet is het in de IT-technische wereld voor het type besturingssysteem.
Wanneer een oplossing wordt gepresenteerd aan de opdrachtgever is het belangrijk om deze te staven met een bestaand platform. Sterker nog, een goede leverancier van automatiseringsoplossingen zal zich hebben gespecialiseerd in enkele platformen, die als basis dienen voor hun concepten. Goed functionerende concepten worden bij platformen ook veel ‘herbruikt’ waardoor de oplossing onder de kap in betrouwbaarheid toeneemt, kinderziektes worden sneller ontdekt en maken de oplossing volwassen.
Een nog groter voordeel is die van onderhoud; de leveranciers van platformen (‘de vendors’) geven ondersteuning aan de opdrachtgevers die het product hebben aangeschaft zodat incidenten snel en efficiënt worden opgelost. Daarnaast leveren zij nieuwe versies van het platform en leveren extensieve documentatie.
Voor het kiezen van een goed platform zijn er een aantal factoren om rekening mee te houden. Het belangrijkste zijn de mogelijkheden van het platform, gevolgd door de documentatie en ondersteuning. Daarnaast is het kiezen van een bekend platform belangrijk; een platform is namelijk populair vanwege de betrouwbaarheid. Een vaak gemiste factor is de vereiste kennis om het platform te gebruiken (‘learning curve’), dus ook de mogelijkheden om training te volgen en certificering. De prijs is ook een factor; wees echter bewust dat er altijd met de prijs te spelen is, wanneer er sprake is van grotere projecten. Veel platformen bieden een ‘probeerversie’, het is dan mogelijk om de meeste factoren te toetsen.
Net zoals andere grote investeringen is het wijs om eerst zelf goed op de hoogte te zijn van het platform; de leveranciers leveren deze informatie ook vrijblijvend via hun website of medewerkers. Neem geen genoegen met tweedehands informatie; praktijk is de beste leerschool.

Meer lezen over Informatie Technologie? Klik hier voor de inhoudsopgave voor alle artikelen!
©SamRain
Automatisering

donderdag 17 november 2011

De software industrie begrijpen: de levensloop van een oplossing


Om iets te bouwen heb je bouwstenen nodig en een idee wat dat iets zou moeten zijn”                                                                                                                                      - SamRain
Een oplossing is het antwoord in de vorm van een software constructie; het is de vertaling van de wensen van de opdrachtgever door middel van technologie. Oplossingen kunnen van alles omvatten vanwege hun natuur omdat ze altijd beginnen in een abstracte vorm. Naarmate ze gerealiseerd worden, (om uiteindelijk te belanden in de fase waar de oplossing ook echt deel gaat uitmaken van de kernactiviteiten) groeien ze steeds meer naar een concrete volwassen oplossing totdat ze aan vervanging toe zijn.
Er zijn vijf fases in de levensloop van een oplossing: concept, realisatie, implementatie, testen en productie. Iedere fase is een op zichzelf staan traject waarbij elke fase voorbouwt op het succes van zijn voorloper.
Het concept is de eerste stap van een oplossing. Nadat alle wensen van de opdrachtgever zijn geïnventariseerd moeten deze vorm krijgen in een demonstratie, beter bekend als een ‘PoC’ (proof-of-concept); dit kan een presentatie zijn of een interactief programma waarin functionaliteit verwerkt is dat voldoet aan voornaamste wensen. Het concept is tevens de belangrijkste fase omdat hierin de verwachtingen van de opdrachtgever worden geschept; de kunde van de dienstverlener, de mogelijkheden van technologie en de primaire voordelen die de oplossing biedt voor de opdrachtgever. Ook worden de kosten en benodigde tijd van het ontwikkelen van de oplossing bepaald.
Wanneer het concept wordt geaccepteerd door de opdrachtgever behoort deze gerealiseerd te worden. Ieder detail zal uitgewerkt moeten worden, zoals het samenstellen van een team van uitvoerders, de ontwikkelingsstrategie en voorlopige projectplanning, de opties qua leveranciers voor technische faciliteiten en de budgetten per subfase (‘milestone’); de realisatie brengt het project document voort.
Nadat het project document voltooid is, kan deze worden overgedragen naar de uitvoerders; de fase van implementatie kan gaan plaatsvinden. Tijdens de realisatie wordt de architectuur uitgewerkt. De implementatie is als het ware de start van de daadwerkelijke constructie van de oplossing.
Wanneer een deel tijdens het implementeren is afgerond, is er sprake van een ‘nieuwe’ functionaliteit welke uiteraard getest zal moeten worden of het opgeleverde voldoet aan de verwachtingen. De test fase ligt daarom deels in een grijs gebied, waar functionaliteit in drievoud wordt getest; eerst door de implementerende partij, vervolgens door de bewakers van het concept om vervolgens gepland te worden voor een test door de opdrachtgever. In de testfase worden ook een groep testgebruikers geselecteerd van de opdrachtgever, welke ook behoren tot de groep van daadwerkelijke gebruikers. Het is een cruciale, drukke fase; technische fouten of onverwachte situaties en gevolgen komen hier aan het licht. Als de testfase voltooid is, is er sprake van een geslaagde implementatie en is de software klaar voor industrieel gebruik.
De productiefase is de volwassen periode van de oplossing. Het dient te werken zoals de verwachting die geschept is voor een nieuw ‘apparaat’; snelheid, verwerking, goede documentatie en een positieve gebruikerservaring. Op het moment dat de productiefase ingaat wordt de oplossing ‘cruciaal’ genoemd; als de oplossing stil ligt, kan er niet worden gewerkt, wat dus verlies betekent voor de opdrachtgever. De productiefase staat dan ook in het kader van klachtafhandeling en de procedures van technische ondersteuning, welke al wezenlijk zijn afgestemd tijdens de concept fase.
Hoewel veel dienstverleners graag een cyclus voorspiegelen, blijft de ware levensloop altijd lineair; functionaliteit wordt vooraf bepaald, waarna deze wordt opgeleverd. Opdrachtgevers zullen altijd nieuwe functionaliteit wensen omdat technologie en wensen met tijd veranderen. Al bouwt men voort op bestaande oplossingen, begint men altijd weer aan de tekentafel; kleine oplossingen of groot, ze beginnen altijd met een idee.
Meer lezen over Informatie Technologie? Klik hier voor de inhoudsopgave voor alle artikelen!
©SamRain
oplossing