Programmera i Ruby

Den hälsosamme ekonomisten, Saturday 9 March, 2019
Bild: 2017-09/dsc01062.jpg

Får ibland frågan varför jag programmerar i Ruby och inte något annat språk som Java eller Python eller C++. Det ena svaret är att man slipper skriva en massa text som egentligen inte behövs. Svaret är därmed detsamma som en Javaprogrammerare skulle ge om man frågade hen varför hen inte använder Cobol.

Det andra svaret är Sinatra. Ett ramverk som gör att du genom fyra rader kod kan skriva en fungerande webbapplikation. Ja, om man bortser från att man måste ange vissa grundvariabler och bibliotek förstås.

De fyra raderna är:

require 'sinatra'
get '/frank-says' do
  'Put this in your pipe & smoke it!'
end

Men Java är ju så mycket större och C++ är så mycket snabbare och Python är så bra på numeriska operationer.

Jo, allt detta stämmer. Men när du sitter där och skriver är det framför allt två saker som räknas:

1) Kan du snabbt läsa och förstå koden?

2) Behöver du skriva massor av onödiga tecken varje gång du ska skapa en ny funktion eller klass?

Ni undrar säkert hur Ruby kan bli kompaktare och samtidigt mer lättläst än andra språk. Svaret är att det i det närmaste är helt objektorienterat. I Java och C++ skapar man två funktioner för att tilldela en klass en egenskap, med en så kallad "setterfunktion":

s = new Sak(....)
s.setSakegenskap(höjd)

I Ruby blir motsvarande kod:

s = sak.new(...)
s.egenskap = höjd

Lättare att förstå, givet att man inte givit egenskapen något orimligt namn förstås.

Detta är bara ett exempel på hur Rubykoden blir mer kompakt och lättläst än andra språk. Det enda problemet är att Ruby (ännu) inte är det mest populära språket. Många arbetar alltjämt med PHP, trots att programmerare är överens om att det är synnerligen olämpligt för strukturerad programmering. Det är inte ens ett språk, men ligger ändå till grund för system som exempelvis Wordpress.

Men Python då? Jo, Python är väldigt explicit, men oftast krävs det mer kod för att åstadkomma samma sak.

I Python skriver man kanske

from datetime import datetime
from dateutil.relativedelta import relativedelta
new_time = datetime.now() + relativedelta(months=1)

om man vill ta fram en tidpunkt en månad fram i tiden. I Ruby använder man metoder som definierats i biblioteket "active_support/all" och skriver:

require 'active_support/all'
new_time = 1.month.from_now

Ni ser skillnaden. Vilken är då nackdelen med den senare metoden? Jo, det är att man måste vara explicit och namnge sina metoder så att det går att förstå vad de gör. I fallet ovan är det inga problem, men det går lätt att tänka sig situationer där den senare metoden bli ogenomtränglig och svår att följa.

Alltså, i bästa fall förstår en utomstående koden snabbare än i andra språk, men gör man fel kan det bli svårt att felsöka.

Ruby förknippas ofta med ramverket "Ruby on Rails". Personligen tycker jag språket mer kommer till sin rätt tillsammans med ramverket Sinatra som jag nämnde tidigare. Då drar man nytta av språkets kompakthet på ett bättre sätt och snabbar upp tiden från idé till färdig produkt.

Om det här har fått er lite intresserade av Ruby - vilket väl var syftet - återstår frågan om hur man börjar använda Ruby och Sinatra?

Först behöver man en utvecklingsmiljö av typ Visual Studio eller Cloud 9. Sedan börjar man lämpligen med att installera Ruby version manager för enkel uppgradering och versionshantering. Nästa steg är att installera Git. Det gör det enkelt att vid behov flytta koden och att följa förändringar som man gjort över tid. För att installera Sinatra använder man gem och skriver "gem install sinatra".

Ok, den här guiden är lite kortfattad. Mer detaljer finns på länkarna ovan. Men jag hoppas få fler kollegor som använder Ruby och Sinatra. Tror många skulle trivas med Ruby och förmodligen också spara en hel del tid som i dag används för att skriva kod man egentligen inte behöver skriva.

Varför söker alla på "Florida man"?

Den hälsosamme ekonomisten
Bild: 2017-09/dsc01062.jpg

Den senaste nördiga nättrenden är att söka på sitt eget födelsedatum och sedan termen "Florida man". Pröva gärna att göra det på Google , tror inte det fungerar lika bra på andra sökmotorer och jag kommer in på det nedan. Om du är född 16 augusti 1967 sök på "Florida man august 16". Sannolikheten är stor att det kommer upp något riktigt bisarrt. Och alla frågar sig givetvis om det är något speciellt med Florida - kanske klimatet och drogerna? Men så är det antagligen inte. Min teori …

Läs mer!

Jag erkänner - jag är köpt av nätjättarna

Den hälsosamme ekonomisten
Bild: 2017-09/dsc01062.jpg

Politiker i CDU och CSU - de främsta förespråkarna av uppladdningsfilter och citatförbud - menar att de som är motståndare till artikel 11 och 13 (numera har de fått byta namn) är köpta av Google och Microsoft. Och jag erkänner. Jag är köpt av nätjättarna. För jag vet att om förslagen går igenom kommer nätföretagen och publicisterna att komma överens om någonting. Och det vi vet är att detta "någonting" kommer att drabba alla datoranvändare som inte backas upp av nätföretagsmiljarder eller …

Läs mer!

Källsortering är skräp

Den hälsosamme ekonomisten

New York Times noterar att allt fler amerikanska delstater slutar med återvinning av skräp . Det visar sig att kostnaden och miljövinsterna inte kan motivera den komplicerade process som det ofta är att återvinna produkter. Somliga väljer i stället att använda skräpet som utfyllnadsmassor, medan andra bränner upp det. Amerikanska trender … Läs mer!

Brotten som inte går att beivra

Den hälsosamme ekonomisten

Läser att en man i USA fällts för bedrägerier via nätet . Falska varningsrutor har uppmanat användarna att ringa ett supportnummer. De som gjorde det riskerade att förlora mellan 2 000 och 20 000 kronor på falska supporttjänster. Det speciella med nätet är att en del av de brott som begås där är väldigt svåra att beivra. Om brottslingen … Läs mer!

Löneskillnaderna ökar inte

Den hälsosamme ekonomisten

Jesper Roine på Ekonomistas går igenom statistiken om inkomstklyftorna och konstaterar att det inte är ökade löneklyftor som orsakar det vi i statistiken observerar som ökande inkomstklyftor. Det finns däremot några andra kandidater. Kapitalinkomster droppar ofta in relativt slumpmässigt och vi kan tänka oss att bostadsmarknaden spelar en … Läs mer!

Avkastningskurvan inverterad

Den hälsosamme ekonomisten

Avkastningskurvan för amerikanska statspapper inverterades i dag, vilket innebär att räntan på tioåriga obligationer var lägre än för tremånaders statsskuldsväxlar. Det är en onormal situation och brukar vara ett omen för lågkonjunktur. Det kan innebära att Federal reserve börjar sänka räntan från och med i höst för att stimulera ekonomin. … Läs mer!

Theresa May borde skälla ut folket

Den hälsosamme ekonomisten

Underhållande när Theresa May skäller ut parlamentet. Hon har ju rätt - ledamöterna har inte realistiska förväntningar. Fast är det ledamöternas förväntningar det är fel på - egentligen? Problemet är i grunden att ledamöterna har mandat från väljarna och att inte heller väljarna har realistiska förväntningar. De bara tycker saker som är … Läs mer!

Arbetsförmedlingens rapport ett argument för arbetskraftsinvandring

Den hälsosamme ekonomisten

Arbetsförmedlingen presenterade i dag en ny rapport där man pekar på att Sverige behöver invandring för att möta ett ökande demografiskt behov. Men innan vi tar det som intäkt för att Sverige bör bedriva en mer generös flyktingpolitik är det några saker man bör begrunda. Det första är att personer i arbetsför ålder från länder med låg HDI, … Läs mer!

Datorattack mot Norsk Hydro

Den hälsosamme ekonomisten

Norsk Hydro har utsatts för sabotage, vilket driver upp aluminiumpriset. Det är måhända inte första gången företag utpressas på detta sätt, men det är på en helt ny nivå när råvarupriset påverkas signifikant. Onödigt att påpeka att det finns mycket pengar att tjäna - alldeles oavsett om utpressarna lyckas få något från företaget eller om de … Läs mer!

Om bloggen

Den hälsosamme ekonomisten är en blogg som handlar om sjukvårdens organisation, incitament och klassisk liberalism - allt skrivet ur ett ekonomistiskt perspektiv. Webbplatsen använder tredjepartskakor (cookies) från Disqus, Piwik, Facebook, Google och Twitter för att anpassa innehållet och annonserna till användarna, tillhandahålla funktioner för sociala medier och analysera vår trafik. Vi vidarebefordrar information om din användning av vår webbplats till de sociala medier och annons- och analysföretag som vi samarbetar med. Du kan läsa mer om webbplatsens kakpolicy här. Denna sida drivs med webbverktyget Bolt. Av Mattias Lundbäck.

VR och Vårdvalssidan

Den hälsosamme ekonomisten finns även tillgänglig i VR. Har man HTC Vive eller Occulus Rift når man hifi://ekonomism genom att först installera appen High Fidelity som ger tillgång till en stor mängd olika virtuella världar. Sedan skriver man bara "ekonomism" i Goto-fältet i HiFi. Fältet motsvarar adressraden i en vanlig webbläsare.

Besök gärna www.vårdval.se - det enklaste sättet att hitta och jämföra vårdgivare.

Läs bloggkollegor

Anybodys Place Carl-Johan Westholm Cornucopia Danne Nordling Eskil Ullberg Fnordspottning Fredrik Malm Fredrik Segerfeldt Gustav Nipe Henrik Alexandersson Janerik Larsson Jonas Grafström Lennart Grundel Maria Abrahamsson Markus Uvell Mina Moderata Karameller Mattias Svensson Niclas Berggren Opassande Per Gudmundson Sjätte Mannen Tanja Bergkvist The Market Monetarist


Creative Commons-licens
Den hälsosamme ekonomisten av Mattias Lundbäck är licensierad under en Creative Commons Erkännande 4.0 Internationell licens.
Based on a work at https://www.ekonomism.us.

Sociala medier

Den hälsosamme ekonomisten är en blogg för dig som är intresserad av ekonomi, politik och teknik. Följ mig på Twitter för regelbundna uppdateringar. Läs mer om Den hälsosamme ekonomisten och Mattias Lundbäck här.


Linkonomism
Googelkonomism
Feedkonomism