{"id":5301,"date":"2019-10-30T17:27:37","date_gmt":"2019-10-30T14:27:37","guid":{"rendered":"http:\/\/spektrum.fi\/spektraklet\/?p=5301"},"modified":"2020-08-27T19:19:04","modified_gmt":"2020-08-27T16:19:04","slug":"programmeringssprak-under-tidens-lopp","status":"publish","type":"post","link":"http:\/\/spektrum.fi\/spektraklet\/programmeringssprak-under-tidens-lopp\/","title":{"rendered":"Programmeringsspr\u00e5k under tidens lopp"},"content":{"rendered":"\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/d2u3dcdbebyaiu.cloudfront.net\/uploads\/atch_img\/688\/0ee80bc413f372c9c6ed32136031ac58.jpeg\" alt=\"Image result for programming memes\"\/><figcaption>Programmeringsmeme, tillsatt som clickbait.<\/figcaption><\/figure>\n\n\n\n<p>Jag hade en tr\u00e5kig sommardag i \u00e5r och jag besl\u00f6t mig att unders\u00f6ka vilka programmeringsspr\u00e5k och -koncept som uppfanns under vilken tidspunkt och hur popul\u00e4ra de blev p\u00e5 sin h\u00f6jd. Fr\u00e5n min <del>extremt grundliga<\/del> unders\u00f6kning har jag plockat fram vissa betydelsefulla spr\u00e5k, i kronologisk ordning:<\/p>\n\n\n\n<ul><li>I begynnelsen, slutet p\u00e5 50-talet: <em>Fortran <\/em>och<em>&nbsp;LISP<\/em><ul><li>Det kan argumenteras att <em>Fortran<\/em> var den f\u00f6rsta &#8221;h\u00f6gre niv\u00e5ns&#8221; spr\u00e5k. P\u00e5 50-talet innebar detta begrepp att koden inte var skriven i ettor och nollor. Fortran introducerade ocks\u00e5 huvudv\u00e4rken man f\u00e5r d\u00e5 man l\u00e4ser andras kod. Nuf\u00f6rtiden anv\u00e4nds <em>Fortran<\/em> fr\u00e4mst av envisa fysiker som v\u00e4grar att flytta sig \u00f6ver till b\u00e4ttre designade spr\u00e5k som <em>Rust<\/em>, <em>Erlang <\/em>eller \u00e4ven <em>C++<\/em>.<\/li><li><em>LISP <\/em>\u00e4r den b\u00e4sta spr\u00e5kfamiljen enligt vissa (\u00f6)k\u00e4nda spektrumiter. <em>LISP<\/em>-kodare k\u00e4nnetecknas med bortslitna Shift-, 8- och 9-tangenter p\u00e5 tangetbordet. <a href=\"http:\/\/www.paulgraham.com\/diff.html\">Alla viktiga koncept<\/a> som t.ex. if-then-else lyftes upp av <em>LISP<\/em>.<\/li><\/ul><\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"700\" height=\"513\" src=\"https:\/\/spektrum.fi\/spektraklet\/wp-content\/uploads\/2019\/10\/Untitled-1.png\" alt=\"\" class=\"wp-image-5320\" srcset=\"http:\/\/spektrum.fi\/spektraklet\/wp-content\/uploads\/2019\/10\/Untitled-1.png 700w, http:\/\/spektrum.fi\/spektraklet\/wp-content\/uploads\/2019\/10\/Untitled-1-300x220.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><figcaption>Kodblock introducerades av ALGOL.<\/figcaption><\/figure>\n\n\n\n<ul><li>60-talet: <em>ALGOL&nbsp;<\/em>och<em>&nbsp;Simula<\/em><ul><li><em>ALGOL<\/em> \u00e4r grand-daddy till <em>C<\/em> och med moderna standarder verkar n\u00e4stan vettigt&#8230; n\u00e4stan.<\/li><li><em>Simula <\/em>introducerade bekanta koncept som klass, objekt, \u00e4rvandet av egenskaper samt dynamisk bindande av funktioner, whatever that means. Skapat av norrm\u00e4n, heja Norge!<\/li><\/ul><\/li><li>I b\u00f6rjan av 70-talet, programmeringsspr\u00e5kens glansperiod: <em>Prolog<\/em>, <em>C<\/em>, <em>Smalltalk <\/em>och <em>ML<\/em><ul><li><em>Prolog<\/em>, som namnet intyder, \u00e4r ett spr\u00e5k f\u00f6r PROfessionella LOGiker f\u00f6r att klura ut livssanningar som t.ex.<em><br>?- help(life).<br>No help available for life<br>true.<\/em><\/li><li><em>C<\/em>, ett helgat spr\u00e5k. Enligt ursprungsmyten visar <em>C<\/em> v\u00e4gen till programmerarnas Nirvana. Predikas p\u00e5 kursen <em>C-programmering<\/em> d\u00e4r de f\u00e5 utvalda f\u00e5r de f\u00e4rdigt lagade testerna kompilerade utan problem.<\/li><li><em>Smalltalk <\/em>introducerade metoder (dvs. funktioner som tillh\u00f6r klasser av objekt) och var en stor inspiration f\u00f6r framtida objektorienterade spr\u00e5k. Men jo, detta betyder s\u00e4kert inget \u00e5t en icke-datavetare. Jepp jepp&#8230; fint v\u00e4der idag, inte sant?<\/li><li><em>ML <\/em>\u00e4r <em>LISP<\/em>s extroverta syster; <em>ML<\/em> har inte en fetish f\u00f6r parenteser men har en massa typer.<\/li><\/ul><\/li><li>I mitten av 90-talet: <em>Java <\/em>och <em>JavaScript<\/em><ul><li><em>Java <\/em>\u00e4r varken vackert eller innovativt. Sj\u00e4lva ryggraden, <em>Java Virtual Machine<\/em>, har dock revolutionerat plattformsoberoende k\u00f6rning. Man kan med andra ord k\u00f6ra sin <em>Java<\/em> kod p\u00e5 vad man vill, fr\u00e5n hemmadatorer till telefoner till Nestes bensapump. (Givet att du har tillr\u00e4ckligt RAM s\u00e5klart.)<\/li><li><em>JavaScript <\/em>m\u00f6jligg\u00f6r interraktiva n\u00e4tsidor och \u00e4r grunden till viktiga applikationer som <a href=\"https:\/\/agar.io\/\">agar.io<\/a>, <a href=\"https:\/\/play2048.co\/\">2048<\/a> och <a href=\"https:\/\/www.decisionproblem.com\/paperclips\/\">Universal Paperclips<\/a>.<\/li><\/ul><\/li><\/ul>\n\n\n\n<p>P.S. <em>Data Is Beautiful<\/em> presenterar de popul\u00e4raste programmeringsspr\u00e5ken baserat p\u00e5 flera olika k\u00e4llor. Intressant \u00e4r att man kan f\u00f6rutsp\u00e5 <em>Java<\/em>s kommande underg\u00e5ng. (Det l\u00f6nar sig att s\u00e4tta p\u00e5 2x hastighet om man har b\u00e4ttre saker att g\u00f6ra med sitt liv).<\/p>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" width=\"474\" height=\"267\" src=\"https:\/\/www.youtube.com\/embed\/Og847HVwRSI?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Jag hade en tr\u00e5kig sommardag i \u00e5r och jag besl\u00f6t mig att unders\u00f6ka vilka programmeringsspr\u00e5k och -koncept som uppfanns under vilken tidspunkt och hur popul\u00e4ra de blev p\u00e5 sin h\u00f6jd. Fr\u00e5n min extremt grundliga unders\u00f6kning har jag plockat fram vissa betydelsefulla spr\u00e5k, i kronologisk ordning: I begynnelsen, slutet p\u00e5 50-talet: Fortran och&nbsp;LISP Det kan argumenteras &hellip; <a href=\"http:\/\/spektrum.fi\/spektraklet\/programmeringssprak-under-tidens-lopp\/\" class=\"more-link\">Forts\u00e4tt l\u00e4sa <span class=\"screen-reader-text\">Programmeringsspr\u00e5k under tidens lopp<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":13,"featured_media":5320,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[142,42],"tags":[53,67,126],"_links":{"self":[{"href":"http:\/\/spektrum.fi\/spektraklet\/wp-json\/wp\/v2\/posts\/5301"}],"collection":[{"href":"http:\/\/spektrum.fi\/spektraklet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/spektrum.fi\/spektraklet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/spektrum.fi\/spektraklet\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"http:\/\/spektrum.fi\/spektraklet\/wp-json\/wp\/v2\/comments?post=5301"}],"version-history":[{"count":19,"href":"http:\/\/spektrum.fi\/spektraklet\/wp-json\/wp\/v2\/posts\/5301\/revisions"}],"predecessor-version":[{"id":5331,"href":"http:\/\/spektrum.fi\/spektraklet\/wp-json\/wp\/v2\/posts\/5301\/revisions\/5331"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/spektrum.fi\/spektraklet\/wp-json\/wp\/v2\/media\/5320"}],"wp:attachment":[{"href":"http:\/\/spektrum.fi\/spektraklet\/wp-json\/wp\/v2\/media?parent=5301"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/spektrum.fi\/spektraklet\/wp-json\/wp\/v2\/categories?post=5301"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/spektrum.fi\/spektraklet\/wp-json\/wp\/v2\/tags?post=5301"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}