Tänker du som en dator eller som ett objekt?

I dagens kolumn frågar vi oss varför så många system som utger sig för att vara objekt-orienterade inte genomsyras av de fundamentala principerna, och ifall ett procedurellt tänkande är lämpligt för modern programvaruutveckling. “He’s more machine now than man; twisted and evil”, säger Ben Kenobi i Return of the Jedi och uttrycker därmed i klartext sagans sensmoral. Denna uppfattning är ett vanligt återkommande tema i våra litterära verk, samhällen och livsåskådningar. Så även inom programmering, vilket David West gör en genomgående redogörelse för i boken Objekt Thinking som inspirerat detta blogginlägg. Bokens röda tråd är att de tankemönster som utgör grunden för objekt-orienterad programmering (objekttänk) är vitt skilda från dem som återfinns i procedurell programmering (datortänk). Här är det viktigt att inse att ens egen programmering inte blir objekt-orienterad enbart för att man kodar i ett språk som marknadsför sig på det viset. Våra konventionella språk har av politiska och affärsmässiga anledningar valt att inte tvinga användaren till objekttänk. Därför är det fullt möjligt att, t.ex., skriva COBOL-kod i Java-syntax. Varför bry sig? Det funkar ju! Det är många decennier sedan vår profession kom till insikten att “det funkar” är en väldigt låg ribba. För låg, även i dess fulländade form: “Vi kan inte hitta några buggar”, för dagens system. Vår programvara är en lösning på ett problem som befinner sig i en ständigt föränderlig värld och behöver således kunna följa med och anpassa sig med låg extra kostnad. Detta problem, maintainability, var den ursprungliga orsaken till att objekt-orienterade idéer föddes. Programvara skriven på traditionellt vis, mer fokuserad på lösningsdomänen (maskinen) än problemdomänen (människan), var helt enkelt för dyr eller riskfylld att uppdatera och gick därför tyst en obeveklig undergång till mötes. All den samhällsnytta som gick förlorad på grund av försämrad product-market fit eller för att få nya innovationer kunde implementeras, är dock kanske den mer tragiska historien. Okej, så vad är huvudinnehållet? Kort och gott handlar övergången från datortänk till objekttänk att sluta tänka i datorns termer och istället utgå från världen omkring oss. Ett objekt, t.ex., är inte en datastruktur med ett par mer eller mindre relevanta metoder påklistrade. Det är definitivt inte en anemisk datahållare som via getters och setters manipuleras av hjälpare och hanterare. Våra objekt är representationer av verkliga (potentiellt icke-levande) föremål som vi ger liv och autonomi i en virtuell miljö, i vilken de kan kommunicera, samarbeta och visa upp beteenden gentemot andra självständiga objekt. När ens system börjar anamma den här typen av tankemönster är det många programmerare som blir förvånade över hur mycket närmare vi kommer de ideal vi alla känner till: Inkapsling, hög kohesion, låg koppling, SOLID och dussintals andra. Vidare läsningar Detta blogginlägg inspirerades av Object Thinking, som diskuterar programmering genom en antropologisk lins. Boken redogör för vår kontext – filosofisk, historisk och kulturell – med ett särskilt fokus på skillnaden mellan att försöka skapa bättre programvara genom bättre verktyg och processer i kontrast till genom att förbättra individerna. Boken har inspirerat en rörelse som har visionen att utveckla programvara fri från procedurella tankemönster. De kallar detta paradigm för Elegant Objects och har, förutom att formulera konkreta principer, utvecklat ett ansenligt antal ramverk och bibliotek samt även ett nytt programmeringsspråk. Avslutningsvis bör Peopleware nämnas. Vad som lagts ut i detta blogginlägg är, kanske föga förvånande, i sin natur mer sociologiskt än teknologiskt. Enligt boken stämmer detta för majoriteten av vårt fälts problem, vilket betyder att effektiva angreppssätt skiljer sig mot vad vi kanske är vana vid. Av Jesper Olsson

projít na článek

Rok 2020

1.2.2020 Objekt místnost 3 montáž jižních dveří. (30 hod) Louka se studnou shrabání listí. (5 hod) 3.2.2020 Objekt místnost zapravení zdiva kolem futer. (8 hod) 18.2.2020 Objekt místnost zapravení zdiva kolem futer. (6 hod) Objekt severní vchod

projít na článek

Teknisk skuld - fem vanliga problem som uppstår

Ända sedan vi startade för 13 år sedan har vi hjälpt företag i olika storlekar och faser med deras mjukvara, arkitektur och val av teknik. Något som många av våra kunder har gemensamt är att de bär på en teknisk skuld och behöver hjälp. Du kanske har hört

projít na článek

Rok 2021

12.1.2021 Přístřešek rozšíření montáž střešních trámků (14 hod) 14.1.2021 Přístřešek rozšíření montáž střešních trámků (14 hod) 26.1.2021 Přístřešek rozšíření montáž půdních trámků (12,5 hod) 2.2.2021 Přístřešek rozšíření montáž půdních trámků, rá

projít na článek

Průmyslový objekt České Budějovice

průmyslová podlaha protiskluzová Barrikade EP Multi, 1400 m2, léto 2019 Článek Průmyslový objekt České Budějovice se nejdříve objevil na Capro ČB.

projít na článek

Edument + Mindpark = Kunskapspartner!

Plötsligt händer det, ja lite så känns det för oss Helsingborgsföretag som levt parallellt i över 10 år och nu hittat ett riktigt spännande partnerskap! Ett Partnerskap vars mål är att dela mjukvaru-kunskap inom Mindparks community och tillsammans driva k

projít na článek