Politik

Från LAMP till MEAN, datormolnen förändrar programutvecklingen

MEAN

IT-världen utvecklas just nu i rasande fart, och drivkraften är de globala datormolnen och den virtuella miljö som de erbjudet programutvecklare världen över.

En av de ikoniska programmeringsmodeller som har dominerat IT-världen sen millennieskiftet är den s.k. LAMP-stacken som myntades av Michael Kunze i den tyska tidskriften c’t år 1998. Och som består av operativsystemet Linux, webbservern Apache, databasen MySQL och datorspråket PHP, alla öppna kod-produkter. Något som var revolutionerande för den tiden.

Det har funnits mindre variationer på de fyra öppna kod-komponenterna i LAMP-stacken, men som koncept så har LAMP-stacken möjliggjort oräkneliga webbaserade produkter som har förändrat samhället och hur vi alla lever. För den som vill ha exempel så räcker det kanske med att nämna Facebook, som är byggt just på LAMP-stacken.

Men datormolnen utvecklas som sagt och idag håller en ny programmeringsmodell på att ersätta LAMP-stacken, och det är den s.k. MEAN-stacken, som också den består a fyra komponenter.

Till skillnad från LAMP-stacken så erbjuder MEAN-stacken inget operativsystem, för operativsystemet har virtualiserats och finns nu i de s.k. PaaS-systemen i datormolnen. Så det behöver vi inte längre oroa oss över.

Vi kan, om vi vill, se det som ett exempel på hur hela yrkesgrupper nu ersätts av datorsystem. För tillfrågan på operativsystemoperatörer håller definitivt på att dala i skuggan av PaaS-systemen och datormolnen.

Om vi tittat närmare på MEAN-stacken så börjar vi med databasen som har gått från MySQL till MongoDB. Och där ser vi förändringen i ett nötskal. För svenska MySQL, som idag ägs av Oracle, är en relationsdatabas baserad på SQL-språket. Medan MongoDB är en s.k. NoSQL-database som sparar data i det betydligt enklare JSON-formatet, dvs i JavaScript Object Notation-format.Nu är det inte ett allt eller inget med NoSQL. Många NoSQL-databaser har också stöd för SQL-sökningar.

“E”:et står för Express.js, och ersätter Apache. Express är i stort en supersnabb och skalbar webbserver skrivet i JavaScript.

Viktig introduktion till Node.js

“A”:et representerar Angular, som är ett ramverk för att skapa användargränssnitt och som också det har stöd för data i JSON-format.

Och “N”:et slutligen är Ryan Dahls Node.js, JavaScript som inte längre körs i webbläsaren utan på servern och som, som svenska Wikipedian skriver, använder sig av händelsedrivet, asynkront I/O för att minimera overhead och maximera skalbarhet.

Och just skalbarhet är vad allt handlar om i datormolnen, som består av hundratusentals billiga Intel-servrar där man inte längre kan skala vertikalt med allt kraftigare servrar utan horizontellt med allt fler servrar. Vilker har gett upphov till s.k. Map Reduce och Big Data.

MEAN-stacken följer den norske datavetaren Trygve Reenskaugs Model View Controller eller MVC-mönster.

Idag har vattenfallsmodellen för programutveckling hamnat på historiens skräphög.Vattenfallsmodellen handlade om stora programmeringsteam som tog ett eller ibland t.o.m. flera år på sig för att bygga en produkt som sen ofta kunde vara föråldrad när den släpptes.

Idag används istället något som kallas DevOps där man snabbt skriver ihop en s.k. Minimum Viable Product, dvs en prototyp som erbjudet användare minimal användbar funktionalitet med den högsta avkastningen på investeringen kontra risk, vad som är känt i investeringskretsar som Sharpe Ratio.

Sen om man möter gehör på marknaden så vidareutvecklar man produkten.
Här handlar allt om ett idag populärt koncept: Fail Fast. Dvs att investerare inte vill fortsätta att punga ut stora summor för en produkt som inte vinner gehör. Vilket i sin tur leder till ett annat koncept, s.k. Growth Hacking, dvs. att med olika mindre etiska knep försöker ge sken av att skaffa sig så många användare som möjligt. Som Venture Beat har rapporterat: How $96,000 can buy you a top 10 ranking in the U.S. app store

Nya programmeringsverktyg för en ny värld. En mycket spännande utveckling för den som är intresserad av programmering.

[tags]LAMP, MEAN, Datormoln, Programutveckling med MEAN, Datorspråk, MEAN PaaS [/tags]