Under veckan kommer Facebook släppa nya React 16.
Den stora nyheten i React 16 är en komplett omskrivning av kärnan i React vilken går under namnet ‘Fiber’.
I nuvarande version måste React arbeta klart med en uppgift innan den kan rendera en frame men i och med Fiber ändras sättet React renderar applikationen vilket möjliggör delning av renderingsuppgifter mellan frames.

Andra funktioner i den nya versionen är möjligheten att pausa, avbryta och återanvända uppgifter allt eftersom nya uppdateringar kommer in till Fiber. Fiber gör det även möjligt att prioritera olika uppdateringar så de kommer ut på skärmen snabbare, och då vänta med lägre prioriterade uppdateringar. Allt detta är till största del interna ändringar och påverkar inte direkt hur utvecklare konsumerar React. Men resultatet är att React får en större prestanda förbättring.

För organisationer är den stora nyheten med React 16 att Facebook ändrar licensen, och nu släpper React under MIT-licensen. Det betyder att Facebook inte längre ‘tilldelar’ en patent license till organisationer som använder React utan ger användaren rätten att nyttja, kopiera, sprida och ändra programvara så länge MIT-licensen skickas med produkten. Licensen tillåter även att koden släpps i properietära licenser, så länge MIT-licensens text bifogas med koden (den properietära koden i sig behöver alltså inte släppas under MIT).

Gravt förenklat och omskrivet säger MIT-licensen: “Här är vår kod, använd den till vad du vill. Vi ger ingen garanti och kan inte hållas ansvariga för något. Licenstagare är ansvariga för eventuella ersättningskrav från slutanvändare.”

I första omgången av MIT-licenser ingår, utöver React; Jest, FlowType och Immutable.js. Facebook kommer även ändra licensen på äldre versioner av React via en framtida uppdatering (en så kallad backport). Tillsvidare kommer andra Facebook-projekt så som React-native och GraphQL att fortsätta använda den tidigare BSD+Patent-licensen.

Ändringen sker efter en lång period av kritik från andra organisationer och projekt inom Open Source, så som WordPress och Apache Foundation, där Apache Foundation tidigare i år förbjöd sina projekt att nyttja React på grund av den patentbaserade licensen. För konsulter som velat sälja in React på kundprojekt har tröskeln fram till nu varit hög. I och med React 16 och ändringen till MIT kommer reservationen försvinna och React kommer kunna utvärderas för projekt enbart på sina tekniska meriter.

De andra biblioteken och ramverken som ingår i licensändringen är också populära produkter från Facebook och används ofta tillsammans med React. Jest är ett enhetstestning ramverk som till exempel stödjer så kallade snapshot tester. FlowType är en så kallad ‘Statisk type testare’ och säkerställer att variabler etc inte ändras mellan olika typer (Sträng, Integral, Objekt etc). FlowType klarar av att gå igenom koden och räkna ut vad för typ en variabel ska vara baserat på vad man gör för operationer på den. Det gör att man snabbt kan täcka en stor del av applikationen med typsäkring. Immutable.js är ett bibliotek för att säkerställa att data inte muteras (ändras) utan att man istället ändrar till en ny kopia av datan och returnerar den i stället. Detta är en arkitektur som förbättrar prestanda och undviker oväntade problem i en applikation.

Noterbara företag och siter som använder React idag:
* Facebook (mobil app, messenger, adverts)
* AirBnB
* American Express
* Atlassian (bolaget bakom Jira, ett agile projektethanterings system)
* Billogram (Svensk faktureringstjänst)
* Fortnox
* Spotify

/ Mikael Pettersson, Frontend-utvecklare

 

Kommentera