Meteor, GitHub, JavaScript och hackathons: IT-entreprenörens dilemma
Posted Under: Silicon Valley
I sin klassiska bok om programmering på 1970-talet, boken publicerades 1975, The Mythical Man-Month skrev Frederick Brooks att programmerare oberoende av vilket datorspråk dom skrev i, i snitt skrev tio kodrader per dag.
Det är högst tvivelaktigt att speciellt många, om ens någon av dagens programmerare här i Silicon Valley ens har hört talas om Brooks. Och om dom gör det så skulle dom i alla fall inte förstå vad han menade, för idag använder programmerare ramverk som Ruby on Rails, Django, Sinatra eller den senaste JavaScript-baserade sensationen Meteor, se videon ovan. Som riskkapitalföretaget Andreessen Horowitz just har investerat hela $11,2 miljoner i
Med såna här ramverk plus kodarkivet GitHub i vilket samma Andreessen Horowitz just har investerat den ofattbara summan av $100 miljoner, plus datormolnen och molntjänster som det jättepopulära PaaS-tjänsten Heroku så kan ett par tre programmerare skriva ihop helt användbara program på 24-48 timmar som omedelbart ligger ute på webben, redo att användas.
Men i den tsunami av nya ramverk, nya utvecklingsverktyg och nya infrastrukturtjänster som fullkomligt väller fram så ställs IT-entreprenören inför ett allt mer svårlöst dilemma.
Det är en sak att skriva ihop ännu en social nätverkssajts-app, ännu ett Instagram, med det senaste ramverket, något som man idag visserligen kan göra på några veckor, men som sen kanske kommer att bli marginellt populärt i max några månader, för att sen försvinna in i närmaste digitala papperskorg.
Ramverk kan göra dig högproduktiv på ett sätt som är nästan ofattbart. Men du blir samtidigt beroendexte så snabbt. av ramverket, och de som utvecklar det. Så om dina användare hittar buggar i din kod så kan det mycket väl bero på ramverket och alla de komponenter som ingår i det.
I den mycket imponerande demon ovan så använder man t.ex. Meteor, JavaScript, NoSQL-databasen MongoDB och schablonverktyget handlebars.
Nu är de här ramverken alla öppen kod, och dom är skrivna på ett sätt som gör dom enkla att förstå och debugga, i alla fall för dagens programmerare. Men smaker förändras.
Idag skulle inget startupföretag i sina sinnens fulla bruk t.ex. använda datorspråket PHP. Men det är vad Mark Zuckerberg gjorde år 2004 när han grundade Facebook. Något som sen har lett till allvarliga problem för företaget när det kom att växa så snabbt.
Det leder oss till ämnet IT-arkitektur, som bl.la. säger att man inte ska lägga alla sina ägg i samma korg. Man ska t.ex. använda ett gränssnitt mot databasen så att man kan byta ut den om så behövs. Samma med andra komponenter. Man ska vara noggrann med att dokumentera Use Cases, f.ö. uppfunna av svensken Ivar Jacobson. Och man ska helst också använda designspråket UML och ha koll på om ens app kan gå från att hantera 100 användare per dag till 100 000.
Idag är arkitektkoncept som MVC och REST ofta inbyggda i själva ramverken, men det ligger alltså ändå en fara med att förlita sig av det allra senaste ramverket, om man inte är beredd att sätta sig in i själva källkoden. Något som inte är så svårt och tidsödande som man kanske skulle tro. Eftersom de här ramverken ofta är förvånansvärt små.
Medan Rails t.ex. består av nära 100 000 kodrader så består Sinatra endast av 1 500 kodrader, vilket gör det mycket lätt att lära sig hela ramverket mer eller mindre utantill. Men trots sin storlek så är Rails moget och har ett världsomspännande socialt nätverk som använder Rails. Så det är lätt att få hjälp. Det är inte nödvändigtvis fallet med nya ramverk, hur snabbt det än är att skriva ihop en cool app i dom.
Och för den som skriver appar för industrin så är Java och Microsofts C# fortfarande favoriterna. Även om Andreessen Horowitz nu hoppas kunna introducera JavaScript-baserad teknologi även där.
Pressklipp:
NyTeknik – Senaste nytt,NyTeknik – Senaste nytt, Computer Sweden 20 senaste nyhet, Computer Sweden 20 senaste nyhet, Computer Sweden 20 senaste nyhet, Computer Sweden 20 senaste nyhet, Computer Sweden 20 senaste nyhet
Svenska bloggar om: Meteor, Meteor JavaScript, Ruby on Rails, Öppen Kod, Open Source Frameworks, Django, Sinatra Framework







Dilbert on Big Data:
http://www.dilbert.com/dyn/str_strip/000000000/00000000/0000000/100000/60000/2000/700/162783/162783.strip.sunday.gif
“Idag skulle inget startupföretag i sina sinnens fulla bruk t.ex. använda datorsprÃ¥ket PHP. ”
Varför inte det? Det är svårt att hitta någon stabilare, mer skalbar eller bättre presterande serverstack för webbapplikationer än LAMP.
//Fredrik
Fredrik: Jag tror kanske inte att det beror så mycket på själva PHP, som vad jag vet dock ännu inte är 100% objektorienterat, utan på att alla språk förr eller senare dalar i popularitet, mest för att det är enklare att skapa nya språk och ramverk än att modernisera äldre språk.
http://techcrunch.com/2012/07/28/not-that-kind-of-filthy-get-your-mind-out-of-the-gutter/
Idag är det Rails i olika schatteringar, Django, Ruby, Python och nu senast JavaScript i olika former som gäller.
En annan orsak till att PHP har dalat i popularitet är just att LAMP-stacken nu också har dalat i popularitet. M-et i LAMP, dvs MySQL, har idag alltmer ersatts of NoSQL-databaser som MongoDB.
Så du har helt rätt i att man kan skriva bra och spännande program i PHP och även att PHP är högst stabilt och även har ett stort socialt nätverk och support, precis som som Perl, f.ö. Men ändå skulle folk här i Silicon Valley, och jag med dom, höja på ögonbrynen om något hett startupföretag skulle säga att dom använder PHP och MySQL, just för produktivitetens skull.
Har du nÃ¥gon statistik pÃ¥ PHP:s dalande popularitet? Enligt följande diagram http://w3techs.com/technologies/history_overview/programming_language/ms/y, ser PHP ut att vara ganska ohotad etta för webapplikationer. Python och Ruby har ganska blygsamma andelar. Fast det finns förstÃ¥s ingen särredovisning för “heta startupföretag”. Länken du angav innehöll ju mest skällsord och vad jag kunde se inte ett enda konkret argument.
På vilket sätt är Ruby eller Python mer produktiva än PHP? Personligen tycker jag att Python är världens bästa programmeringsspråk, men jag kan inte se att det finns någon signifikant skillnad mellan Python och PHP när det gäller produktivitet. Java däremot ligger ljusår efter. När man läser om kritik mot PHP brukar ett av huvudargumenten vara att det är för enkelt, vilket gör att även dåligt utbildade programmerare kan använda det och därmed skapa dåliga applikationer. Men jag har inte någonstans sett någon argumentera för att PHP skulle vara improduktivt.
//Fredrik
Fredrik: Jo jag har statistik. Men först, tack för bra frågor!
Jag brukar följa Github som du själv säkert gör, och där ligger PHP långt ner på listan över dagens populära språk: https://github.com/languages.
Som du ser leder JavaScript följt av Ruby och Python, och det är vad jag ocksÃ¥ observerar “pÃ¥ marken” här i Silicon Valley.
Både Ruby och Python har välutvecklade ramverk, Rails och Django, som gör det enkelt att vara oerhört produktiv.
Men produktiviteten har stegrats ytterligare av Heroku, (och inte att förglömma VMWares http://www.cloudfoundry.com/ )en Platform as a Service som är oerhört populärt. Med Heroku kan man skriva kod direkt i molnen om man så säger. Heroku började med Rails och har nu även stöd för Python och på senare tid även PHP.
Även PHP utvecklas och har nu som du säkert vet ramverk som CakePHP.
Men det viktigaste är just att JavaScript leder. orsaken är all den innovation i form av Node.js och nu senast Meteor, plus http://coffeescript.org/ och andra produkter, det är svårt att riktigt hänga med i utvecklingen, som har gjort det möjligt att stegra produktiviteten genom att inte enbart köra JavaScript på klienten utan även på servern.
Så min uppfattning från de Meetups som jag går på här i Silicon Valley är att just Javascript-verktygen nu utvecklas oerhört snabbt just för att man kan vara så produktiv i den miljön.
En annan faktor här är Big Data och NoSql-rörelsen som har gjort MySQL mindre populärt. För några år sen var LAMP-stacken helt dominerande, men det är inte längre fallet.
Sen är PHP inte lika objektorienterat som Ruby är, och det ligger det i fatet.
Vad jag ser är just nu är en nästan manisk fokusering på produktivitet, driven av tillgången till riskkapital och möjligheterna att på kort tid skriva ihop produkter som kan slå i datormolnen.
Det är absolut inget fel med PHP, men det är inte bland de populäraste datorspråken i dagens Silicon Valley.
I alla fall inte i de kretsar som jag rör mig. Säg gärna till om du inte håller med eller har några andra synpunkter. Det är alltid intressant när man tvingas försvara sina åsikter.
Berätta litet om din egen bakgrund, gärna per e-post.
Jag tycker TIOBEs index är intressant i sammanhanget. All programmering sker inte i webbmiljö och förljande tabell visar klart att det fortfarande är C som gäller för den som vill ha en bra bas i programmering. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
C-baserade språk håller alltjämt de fem främsta platserna i listan.
Erik: MYCKET intressant, tack, kände inte till den listan. Verkar helt osannolikt, men det beror givetvis på hur och vad man mäter.
Hmm att C-baserade och C-liknande sprÃ¥k ligger i topp förvÃ¥nar mig egentligen inte eftersom mÃ¥nga former av programmering baseras pÃ¥ just dessa sprÃ¥k. Det som däremot förvÃ¥nar mig stort är att “gamla” C, som inte ens är objektorienterat, ligger före mer moderna och objektorienterade C-varianter som C++ och Java! har visserligen bara tagit en hastig titt pÃ¥ listan och kanske inte kollat exakt vad den mäter, men nog ser det märkligt ut. Att Objective-C är pÃ¥ stark frammarsch är inte förvÃ¥nande med tanke pÃ¥ Apples framgÃ¥ngar och app-hysterin.
Idag skulle inget startupföretag i sina sinnens fulla bruk t.ex. använda datorspråket PHP. Men det är vad Mark Zuckerberg gjorde år 2004 när han grundade Facebook. Något som sen har lett till allvarliga problem för företaget när det kom att växa så snabbt.
Joda men kanske inte i USA där utbudet på mera moderna hosting-lösningar är lite bättre än i Sverige. Varför många fortfarande väljer PHP är för det stora stödet bland webbservrar.
Victor: Tack, du tar fram en intressant poäng, nämligen att det är tillgången till hosting-lösningar som avgör vilka utvecklingsspråk man väljer. Jag hade kanske trott att det hade varit så att man först lär sig ett programmeringsspråk, som t.ex. Python eller Ruby, och sen letar efter ett webbhotell som har stöd för den miljön. Men så kanske det inte är i Sverige,
Lennart: Victor har rätt. PHP och LAMP-stacken är fortfarande utvecklingsplattformen nr 1, åtminstone här. De flesta hostinglösningar och även fria publiceringssystem bygger på just PHP och Linuxmodellen.
Ruby t.ex. må vara hur coolt som helst men jag känner ingen som använder det språket. Python? Tja ett fåtal. PHP är överlägset störst och därefter kommer nog de som använder någon Windowsbaserad hostinglösning och kör med ASP.NET. Så är det här, och vill man använda någon annan lösning får man betala dyrt för sin hosting, eller köra med egna servrar och hosta själv vilket inte blir billigare.
Bosse: Mycket intressant, då är skillnaderna mellan Silicon Valley och Sverige större än jag trodde. Vilket också skulle påverka vilken slags produkter man skriver. Här är det Rails och Django som gäller, plus givetvis Javascript i alla dess former. Allt i datormolnen. Det är i varje fall vad jag ser.