Digitalisering

En blogg om utmaningar och möjligheter med digitaliseringen inom samhällsplanering och samhällsbyggnad.

Dags att hantera ”millenniebuggens kusin”

17 maj 2019

Inför millennieskiftet (Y2K) så ”censurerade” jag mitt CV. Jag strök nyckelordet COBOL. Finansmarknaden skrek efter COBOL -programmerare. Min drivkraft var dock inom Geografisk IT och jag ville hellre utveckla kartor för internet än leta millenniebuggar i bank-världen….

Jag anlitades senare i projekt för att ”Y2K-säkra” GIS och CAD-system inom energisektorn. Oron för den möjliga katastrofen, orsakad av för korta årtals-fält, motiverade grundlig genomgång av befintlig IT-infrastruktur.

Det var ett gyllene läge att ta tag i andra problem, ”surdegar” som gammal kod och omoderna komponenter. Med andra ord: ”Never waste a good crisis!”

Y2K-kusinen: Python 2.7 support upphör 2020

Python är ett av de mest spridda programmeringsspråken och anses vara det snabbast växande. En bidragande faktor är dess popularitet inom Machine Learning och AI.

Det är också ett populärt ”Script-språk” för otaliga plattformar som ArcGIS, FME, QGIS mm. Här tillför Python ofta ”något lite extra”. När det saknas en standardkomponent så kan man skräddarsy funktioner som sedan nyttjas av plattformen. Detta är mycket vanligt, förmodligen vanligare än många organisationer känner till omfattningen av.

Genom åren har detta sällan inneburit några nackdelar men en intressant situation uppstår 1:e Januari 2020. Då upphör den officiella supporten av Python 2.7 och i stället supportas bara Python 3 och högre.

Det unika med denna uppdatering är att Python 2.7 kod inte kommer att fungera i Python 3. Inte utan grundläggande justeringar och mycket är skrivet i just 2.7.

Det innebär INTE att allt bara slutar fungera den 1:e Januari 2020 – därav kallar jag det bara ”Y2K-kusinen”.  Det innebär dock praktiska utmaningar, speciellt i förhållande till plattformar där Python används som Script-språk.

Vad innebär det att Python 2.7 upphör att supportas?

Främst innebär det att själva motorn för språket ”interpretatorn” kommer att sluta utvecklas officiellt för 2.7.

Det innebär att eventuella brister ej kommer att rättas men framförallt innebär det att nya varianter av OS (Windows, Linux, Mac etc…) så småningom kommer att få problem att köra Python 2.7.

Det innebär också, att en hel del bibliotek som många använder, kommer att utvecklas vidare i bara Python 3.x

Förr eller senare så måste alltså Python 2.7 kod uppgraderas. (Ingen dum ide’ ändå. Python 3.x har många nya bra funktioner).

Hur svårt kan det vara?

Enskilda Python 2.7 moduler är i regel rimligt enkla att uppgradera för en van Python-programmerare. Kollegor som Kristian Bergstrand och Björn Nilsson har nyligen gjort detta i projekt relaterat till både QGIS och FME så det finns en hel del kunskap om skillnaderna i själva språksyntaxen. (Observera dock att det finns några extra kluriga skillnader som har med avrundning att göra. Något som kan ge helt olika beräkningsresultat om man ej är vaksam!)

De största utmaningarna ligger i att hantera hela infrastrukturer där mycket kod finns spridd i plattformarna. Många organisationer kanske inte ens vet att Python 2.7 kod körs i vissa delar. Kod som kan kunna komma att sluta fungera vid OS-uppdateringar.

Hur hanterar FME detta?

Hittills så har FME distribueras med Python-motor för både 2.7 och 3.x. Så har man kunnat välja motor – men detta kommer snart att upphöra. Om man då vill fortsätta köra Python 2.7 får man installera den motorn och ta ansvar för det själv.

Safe Software har planerat länge för detta och du kan få hjälp och råd av oss med hur du ska hantera detta.

Inventera Er Python-kod och skapa en strategi!

Detta är mitt absoluta råd. Skaffa snarast en överblick över var eventuell Python 2.7 kod används i Er infrastruktur och skapa en strategi där aktiva val görs om hanteringen för fortsättningen. Vi hjälper gärna till med erfarenheter för den typen av kartläggning.

Och som alltid när genomgång av system görs: Vad finns det för andra saker som är lämpade att justera när kod ändå ska skrivas om?

– Never waste a good crisis!

 

PS – 17:e Maj

I dag är det inte bara Norges Nationaldag och Stora bededagen i Danmark. Idag ordnas också det tredje SWECO-stoppet för FME WorldTour i Utrecht med över 150 deltagare.

Profilbild
Författare
Ulf Månsson, digitaliseringsexpert E-post: ulf.mansson@sweco.se

På sweco.se använder vi cookies för att webbplatsen ska fungera på ett bra sätt för dig. Vi lagrar ingen personlig data. Om du inte accepterar cookies kan du stänga av det via din webbläsare.