<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Du m&#229; beherske et dynamisk spr&#229;k</title>
	<atom:link href="http://blog.kjempekjekt.com/2010/03/03/du-m-beherske-et-dynamisk-sprk/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.kjempekjekt.com/2010/03/03/du-m-beherske-et-dynamisk-sprk/</link>
	<description>om livet som .net utvikler</description>
	<lastBuildDate>Wed, 08 Feb 2012 09:53:01 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Torbjørn</title>
		<link>http://blog.kjempekjekt.com/2010/03/03/du-m-beherske-et-dynamisk-sprk/#comment-113895</link>
		<dc:creator>Torbjørn</dc:creator>
		<pubDate>Thu, 08 Dec 2011 12:24:07 +0000</pubDate>
		<guid isPermaLink="false">http://blog.kjempekjekt.com/2010/03/03/du-m-beherske-et-dynamisk-sprk/#comment-113895</guid>
		<description>Haakon, Lisp har vel strengt påvirket alle språk som har kommet til siden. Lisps innflytelse er uten sidestykke etter min oppfattelse. Men det er selvsagt mange andre språk som også har vært med på å &quot;skape&quot; Perl. F.eks. burde det kanskje ha gått en pil ned fra Smalltalk til Perl også...

Får en 404 på linken din. Men det samme finner du f.eks. i Clojure (&lt;a href=&quot;http://clojure.org/java_interop#Java Interop-Type Hints&quot; rel=&quot;nofollow&quot;&gt;type hints&lt;/a&gt;), hvor man normalt ikke spesifiserer type, men har mulighet til det - typisk for å øke performance.</description>
		<content:encoded><![CDATA[<p>Haakon, Lisp har vel strengt påvirket alle språk som har kommet til siden. Lisps innflytelse er uten sidestykke etter min oppfattelse. Men det er selvsagt mange andre språk som også har vært med på å &#8220;skape&#8221; Perl. F.eks. burde det kanskje ha gått en pil ned fra Smalltalk til Perl også&#8230;</p>
<p>Får en 404 på linken din. Men det samme finner du f.eks. i Clojure (<a href="http://clojure.org/java_interop#Java Interop-Type Hints" rel="nofollow">type hints</a>), hvor man normalt ikke spesifiserer type, men har mulighet til det &#8211; typisk for å øke performance.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Haakon Løtveit</title>
		<link>http://blog.kjempekjekt.com/2010/03/03/du-m-beherske-et-dynamisk-sprk/#comment-113894</link>
		<dc:creator>Haakon Løtveit</dc:creator>
		<pubDate>Thu, 08 Dec 2011 12:04:47 +0000</pubDate>
		<guid isPermaLink="false">http://blog.kjempekjekt.com/2010/03/03/du-m-beherske-et-dynamisk-sprk/#comment-113894</guid>
		<description>Vent litt... Ga Lisp opphav til PERL?

De er jo litt... Forskjellige skal man si?

Uansett, ville bare nevne at selv om C# lar deg bruke dynamisk typing finnes det også språk som går andre veien. Common Lisp lar deg for eksempel type variablene.

Fant bare en kjapp pdf som viser eksempler på dette, og jeg advarer at filen inneholder spor av parenteser. :)
www.iaeng.org/IJCS/issues.../IJCS_32_4_19.pdf</description>
		<content:encoded><![CDATA[<p>Vent litt&#8230; Ga Lisp opphav til PERL?</p>
<p>De er jo litt&#8230; Forskjellige skal man si?</p>
<p>Uansett, ville bare nevne at selv om C# lar deg bruke dynamisk typing finnes det også språk som går andre veien. Common Lisp lar deg for eksempel type variablene.</p>
<p>Fant bare en kjapp pdf som viser eksempler på dette, og jeg advarer at filen inneholder spor av parenteser. :)<br />
<a href="http://www.iaeng.org/IJCS/issues.../IJCS_32_4_19.pdf" rel="nofollow">http://www.iaeng.org/IJCS/issues&#8230;/IJCS_32_4_19.pdf</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonas Follesø</title>
		<link>http://blog.kjempekjekt.com/2010/03/03/du-m-beherske-et-dynamisk-sprk/#comment-82612</link>
		<dc:creator>Jonas Follesø</dc:creator>
		<pubDate>Fri, 05 Mar 2010 08:51:11 +0000</pubDate>
		<guid isPermaLink="false">http://blog.kjempekjekt.com/2010/03/03/du-m-beherske-et-dynamisk-sprk/#comment-82612</guid>
		<description>Nok en flott blog post!

Ang. embedding av dynamiske språk for å legge til støtte for skripting/rask endring av forretningsregler så syns jeg dette er en veldig god use-case. Alt for ofte vil papirarkitekter kjøpe dyre løsninger som BizTalk og regelmotorer for å løse noe som enkelt kunne vært gjort ved hjelp av dynamisk lasting av skript. I organisasjonen jeg jobber i nå er dessverre ikke tiden det tar å endre reglene som er utfordringen, men tiden det tar å få akseptsansetestet og rullet ut endringene. Men det er et problem med organisasjonen, ikke teknikken.

Pga. enkelheten til å endre, og enkelheten til å implementere DSL&#039;er gjør og at dynamiske språk er mye brukt i finansverden (aksjetrading), og jeg at blant annet JP Morgan kjører systemer for automatisk kjøp/slag basert på Python kode.

Når det gjelder sikkerhet er ikke utfordringene her særlig annerledes enn generelle sikkerhetsutfordringer. Har du en regelmotor må du sikre hvem som har tilgang til å laste opp nye regler. Leser du konfigurasjon av logikk fra databasen må databasen sikres. Brukes du BizTalk må BizTalk serveren sikres. Dessuten gir .NET deg en &quot;falsk sikkerhet&quot; om du tror .NET assemblies ikke kan endres. Dersom du ikke signerer koden din (strong naming) kan du enkelt dekompilere en .NET assembly, endre koden, rekompilere, legge DLL&#039;en tilbake i BIN mappa og vips vil den lastes under kjøring av applikasjonen. Så er du bekymret for dette så må du huske å signere koden din!

Ang &quot;Det kan hevdes at dynamiske språk oppfordrer deg som utvikler til å skrive bedre kode&quot;, og &quot;I “de dynamske miljøene” er man også mer opptatt av eleganse og enkel kode.&quot; er nok en sannhet med modifikasjoner. Det avhenger helt hvilken del av miljøet du følger med på, og hvem du snakker med. I det siste har mange begynt å snuse på dynamiske språk pga. elegansen til Ruby og rammeverk som Rails, og pga. mange &quot;superstjerner&quot; som Robert Martin anbefaler språk som Ruby på det sterkeste. Men som du selv poengterer finnes der mange språk. Tar du f.eks PHP finnes der enorme mengder kode som vil få mang en programmerer til å gråte, og det samme gjelder JavaScript. Et godtordtak er at &quot;du trenger ikke sterk typing, du trenger sterk testing&quot;, og at &quot;kompilatoren er bare en av mange enhetstester&quot;. Så fokus på TDD gjør det mulig å skrive større kodebaser i dynamiske språk uten å samtidig introdusere mer feil enn i en statisk kodebase. Så i det henseende er det et gyldig poeng at du blir en bedre utvikler, siden du nesten blir &quot;tvunget&quot; til å gjøre TDD (den kanskje viktigste praksisen vi har som utviklere).

En annen utfordring med dynamiske språk er navigering i store kodebaser. Dette gjelder ikke alle språk, men f.eks JavaScript er notorisk vanskelig når du får stort volum. Av den grunn skriver f.eks både Microsoft og Google kode i Script# (C#) og Google Web Toolkit (Java) hvor du skriver koden din i statisk Java/C# (pga. oversikt, TDD, refaktorering) og så kompilerer koden ned til JavaScript.</description>
		<content:encoded><![CDATA[<p>Nok en flott blog post!</p>
<p>Ang. embedding av dynamiske språk for å legge til støtte for skripting/rask endring av forretningsregler så syns jeg dette er en veldig god use-case. Alt for ofte vil papirarkitekter kjøpe dyre løsninger som BizTalk og regelmotorer for å løse noe som enkelt kunne vært gjort ved hjelp av dynamisk lasting av skript. I organisasjonen jeg jobber i nå er dessverre ikke tiden det tar å endre reglene som er utfordringen, men tiden det tar å få akseptsansetestet og rullet ut endringene. Men det er et problem med organisasjonen, ikke teknikken.</p>
<p>Pga. enkelheten til å endre, og enkelheten til å implementere DSL&#8217;er gjør og at dynamiske språk er mye brukt i finansverden (aksjetrading), og jeg at blant annet JP Morgan kjører systemer for automatisk kjøp/slag basert på Python kode.</p>
<p>Når det gjelder sikkerhet er ikke utfordringene her særlig annerledes enn generelle sikkerhetsutfordringer. Har du en regelmotor må du sikre hvem som har tilgang til å laste opp nye regler. Leser du konfigurasjon av logikk fra databasen må databasen sikres. Brukes du BizTalk må BizTalk serveren sikres. Dessuten gir .NET deg en &#8220;falsk sikkerhet&#8221; om du tror .NET assemblies ikke kan endres. Dersom du ikke signerer koden din (strong naming) kan du enkelt dekompilere en .NET assembly, endre koden, rekompilere, legge DLL&#8217;en tilbake i BIN mappa og vips vil den lastes under kjøring av applikasjonen. Så er du bekymret for dette så må du huske å signere koden din!</p>
<p>Ang &#8220;Det kan hevdes at dynamiske språk oppfordrer deg som utvikler til å skrive bedre kode&#8221;, og &#8220;I “de dynamske miljøene” er man også mer opptatt av eleganse og enkel kode.&#8221; er nok en sannhet med modifikasjoner. Det avhenger helt hvilken del av miljøet du følger med på, og hvem du snakker med. I det siste har mange begynt å snuse på dynamiske språk pga. elegansen til Ruby og rammeverk som Rails, og pga. mange &#8220;superstjerner&#8221; som Robert Martin anbefaler språk som Ruby på det sterkeste. Men som du selv poengterer finnes der mange språk. Tar du f.eks PHP finnes der enorme mengder kode som vil få mang en programmerer til å gråte, og det samme gjelder JavaScript. Et godtordtak er at &#8220;du trenger ikke sterk typing, du trenger sterk testing&#8221;, og at &#8220;kompilatoren er bare en av mange enhetstester&#8221;. Så fokus på TDD gjør det mulig å skrive større kodebaser i dynamiske språk uten å samtidig introdusere mer feil enn i en statisk kodebase. Så i det henseende er det et gyldig poeng at du blir en bedre utvikler, siden du nesten blir &#8220;tvunget&#8221; til å gjøre TDD (den kanskje viktigste praksisen vi har som utviklere).</p>
<p>En annen utfordring med dynamiske språk er navigering i store kodebaser. Dette gjelder ikke alle språk, men f.eks JavaScript er notorisk vanskelig når du får stort volum. Av den grunn skriver f.eks både Microsoft og Google kode i Script# (C#) og Google Web Toolkit (Java) hvor du skriver koden din i statisk Java/C# (pga. oversikt, TDD, refaktorering) og så kompilerer koden ned til JavaScript.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hvilket dynamiske programmeringspr&#229;k du skal l&#230;re deg</title>
		<link>http://blog.kjempekjekt.com/2010/03/03/du-m-beherske-et-dynamisk-sprk/#comment-82610</link>
		<dc:creator>Hvilket dynamiske programmeringspr&#229;k du skal l&#230;re deg</dc:creator>
		<pubDate>Fri, 05 Mar 2010 08:36:22 +0000</pubDate>
		<guid isPermaLink="false">http://blog.kjempekjekt.com/2010/03/03/du-m-beherske-et-dynamisk-sprk/#comment-82610</guid>
		<description>[...] Sett at jeg har overtalt deg til å lære dynamisk programmering, f.eks. da du leste artikkelen om at du MÅ beherkse et dynamisk språk. Spørsmålet du stiller deg da er: Hvilket språk skal jeg velge? Og jeg hjelper deg gjerne med det også. [...]</description>
		<content:encoded><![CDATA[<p>[...] Sett at jeg har overtalt deg til å lære dynamisk programmering, f.eks. da du leste artikkelen om at du MÅ beherkse et dynamisk språk. Spørsmålet du stiller deg da er: Hvilket språk skal jeg velge? Og jeg hjelper deg gjerne med det også. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Torbjørn</title>
		<link>http://blog.kjempekjekt.com/2010/03/03/du-m-beherske-et-dynamisk-sprk/#comment-82272</link>
		<dc:creator>Torbjørn</dc:creator>
		<pubDate>Wed, 03 Mar 2010 09:13:17 +0000</pubDate>
		<guid isPermaLink="false">http://blog.kjempekjekt.com/2010/03/03/du-m-beherske-et-dynamisk-sprk/#comment-82272</guid>
		<description>&quot;MAO et rent alternativ til det du skriver at dynamiske språk kan gjøre&quot;

Tja, eller BPM er et eksempel på et dynamisk system - som kan la seg implementere i språk som er mer eller mindre dynamiske, og hvor det vil være enklest å bruke et mer dynamisk.

Som jeg forsøkte å påpeke er det ingen harde definisjoner her, men glidende overganger. Vi skiller f.eks. ofte mellom kompilerte språk og tolkede (interpreted) språk, men heller ikke her er det så svart/hvitt. C# f.eks. kompileres først til CIL-kode, som så tolkes (JIT-kompileres) i den virtuelle maskinen (som i praksis er en interpreter). 

På samme måte kan man betrakte et statisk program som tolker forretningsregler i form av konfigurasjon/data som en interpreter for det &quot;språket&quot; som konfigurasjonen utgjør.</description>
		<content:encoded><![CDATA[<p>&#8220;MAO et rent alternativ til det du skriver at dynamiske språk kan gjøre&#8221;</p>
<p>Tja, eller BPM er et eksempel på et dynamisk system &#8211; som kan la seg implementere i språk som er mer eller mindre dynamiske, og hvor det vil være enklest å bruke et mer dynamisk.</p>
<p>Som jeg forsøkte å påpeke er det ingen harde definisjoner her, men glidende overganger. Vi skiller f.eks. ofte mellom kompilerte språk og tolkede (interpreted) språk, men heller ikke her er det så svart/hvitt. C# f.eks. kompileres først til CIL-kode, som så tolkes (JIT-kompileres) i den virtuelle maskinen (som i praksis er en interpreter). </p>
<p>På samme måte kan man betrakte et statisk program som tolker forretningsregler i form av konfigurasjon/data som en interpreter for det &#8220;språket&#8221; som konfigurasjonen utgjør.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bård Strøm</title>
		<link>http://blog.kjempekjekt.com/2010/03/03/du-m-beherske-et-dynamisk-sprk/#comment-82266</link>
		<dc:creator>Bård Strøm</dc:creator>
		<pubDate>Wed, 03 Mar 2010 08:57:41 +0000</pubDate>
		<guid isPermaLink="false">http://blog.kjempekjekt.com/2010/03/03/du-m-beherske-et-dynamisk-sprk/#comment-82266</guid>
		<description>Veldig bra og lærerik blog, T-man! Skal videreformidle budskapet her.

DOG: Interessant nok er den gode gamle debatten om &quot;separere forretningsreglene fra applikasjonen&quot; debatten fortsatt sterkt levende. I management consulting bransjen skal dette løses med BPM (Business Process Management), hvor verktøy tillater forretningsutviklere å dra opp forretningsreglene. når forretningsreglene er lagret, kan utviklere koble seg til de forretningsreglene som er laget og integrere forretningsreglene til resten av applikasjonen. MAO et rent alternativ til det du skriver at dynamiske språk kan gjøre.

Jeg liker veldig godt tanken, spesielt i store produksjonsmiljøer, og ha evnen til raskt kunne endre viktige forretningsregler eller forretningsparametre, gjerne som en del av en læringsprosess (&quot;hvor mye selger vi hvis vi tilbyr DETTE sammen med DETTE&quot;?) uten å måtte gå gjennom store produksjonssettinger umiddelbart.

Men hold et øye åpent på at flere sider i IT bransjen vil prøve å løse samme utfordring på vidt forskjellige måter, og utviklerne og prosjektlederne vil nok en gang havne i kryssilden fordi en uviten ekstern konsulent har anbefalt ledelsen å gå en helt annen vei ;)</description>
		<content:encoded><![CDATA[<p>Veldig bra og lærerik blog, T-man! Skal videreformidle budskapet her.</p>
<p>DOG: Interessant nok er den gode gamle debatten om &#8220;separere forretningsreglene fra applikasjonen&#8221; debatten fortsatt sterkt levende. I management consulting bransjen skal dette løses med BPM (Business Process Management), hvor verktøy tillater forretningsutviklere å dra opp forretningsreglene. når forretningsreglene er lagret, kan utviklere koble seg til de forretningsreglene som er laget og integrere forretningsreglene til resten av applikasjonen. MAO et rent alternativ til det du skriver at dynamiske språk kan gjøre.</p>
<p>Jeg liker veldig godt tanken, spesielt i store produksjonsmiljøer, og ha evnen til raskt kunne endre viktige forretningsregler eller forretningsparametre, gjerne som en del av en læringsprosess (&#8220;hvor mye selger vi hvis vi tilbyr DETTE sammen med DETTE&#8221;?) uten å måtte gå gjennom store produksjonssettinger umiddelbart.</p>
<p>Men hold et øye åpent på at flere sider i IT bransjen vil prøve å løse samme utfordring på vidt forskjellige måter, og utviklerne og prosjektlederne vil nok en gang havne i kryssilden fordi en uviten ekstern konsulent har anbefalt ledelsen å gå en helt annen vei ;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Torbjørn</title>
		<link>http://blog.kjempekjekt.com/2010/03/03/du-m-beherske-et-dynamisk-sprk/#comment-82265</link>
		<dc:creator>Torbjørn</dc:creator>
		<pubDate>Wed, 03 Mar 2010 08:52:59 +0000</pubDate>
		<guid isPermaLink="false">http://blog.kjempekjekt.com/2010/03/03/du-m-beherske-et-dynamisk-sprk/#comment-82265</guid>
		<description>Muligheter == Mulighet for missbruk. Ta f.eks. Excel, som er en scriptbar applikasjon. De fleste vet at man ikke skal åpne regneark som inneholder scripts fra kilder som man ikke stoler på - det kan få følger..

Mye av arbeidet man normal gjør når man skal embedde scipting-mulighet i en app er å begrense hva scriptene får lov til å gjøre. Man definerer opp et begrenset API, og lar sciptene leve i en sandbox, slik at de ikke kan gjøre for mye galt. Scriptene kan også parses og valideres. Men om systemet skal være fleksibelt må man heller ikke begrense for mye.

Poenget er at man gir kvalifisert personell, og ikke hvem som helst, tilgang til å omdefinere forretningsreglene. Hvem det er avhenger av hva det er for en app.</description>
		<content:encoded><![CDATA[<p>Muligheter == Mulighet for missbruk. Ta f.eks. Excel, som er en scriptbar applikasjon. De fleste vet at man ikke skal åpne regneark som inneholder scripts fra kilder som man ikke stoler på &#8211; det kan få følger..</p>
<p>Mye av arbeidet man normal gjør når man skal embedde scipting-mulighet i en app er å begrense hva scriptene får lov til å gjøre. Man definerer opp et begrenset API, og lar sciptene leve i en sandbox, slik at de ikke kan gjøre for mye galt. Scriptene kan også parses og valideres. Men om systemet skal være fleksibelt må man heller ikke begrense for mye.</p>
<p>Poenget er at man gir kvalifisert personell, og ikke hvem som helst, tilgang til å omdefinere forretningsreglene. Hvem det er avhenger av hva det er for en app.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pål Fossmo</title>
		<link>http://blog.kjempekjekt.com/2010/03/03/du-m-beherske-et-dynamisk-sprk/#comment-82256</link>
		<dc:creator>Pål Fossmo</dc:creator>
		<pubDate>Wed, 03 Mar 2010 08:28:08 +0000</pubDate>
		<guid isPermaLink="false">http://blog.kjempekjekt.com/2010/03/03/du-m-beherske-et-dynamisk-sprk/#comment-82256</guid>
		<description>En kommentar til dette: &quot;...behov for å kunne endre visse forretningsregler etter at systemet er tatt i bruk.&quot;

Du vil ha et problem med sikkerhet når du legger forretningsregler i et dynamisk språk. Det er ingenting som stopper en som vil &quot;hacke&quot; forretningsreglene!?</description>
		<content:encoded><![CDATA[<p>En kommentar til dette: &#8220;&#8230;behov for å kunne endre visse forretningsregler etter at systemet er tatt i bruk.&#8221;</p>
<p>Du vil ha et problem med sikkerhet når du legger forretningsregler i et dynamisk språk. Det er ingenting som stopper en som vil &#8220;hacke&#8221; forretningsreglene!?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

