<?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"
	>
<channel>
	<title>Comments on: Full pudel och varför jag ogillar PHP</title>
	<atom:link href="http://pawal.blipp.com/creeper/full-pudel-och-varfor-jag-ogillar-php/feed" rel="self" type="application/rss+xml" />
	<link>http://pawal.blipp.com/creeper/full-pudel-och-varfor-jag-ogillar-php</link>
	<description>Patrik Wallström svamlar om datorer och musik</description>
	<pubDate>Fri, 04 Jul 2008 17:45:08 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: A B</title>
		<link>http://pawal.blipp.com/creeper/full-pudel-och-varfor-jag-ogillar-php#comment-18951</link>
		<dc:creator>A B</dc:creator>
		<pubDate>Fri, 13 Jun 2008 18:11:04 +0000</pubDate>
		<guid isPermaLink="false">http://pawal.blipp.com/?p=107#comment-18951</guid>
		<description>php har inte unsigned integers. Stora heltal konverteras till flyttal, se http://www.php.net/manual/en/language.types.integer.php
Det i sin tur leder naturligtvis till funderingar över likhetsjämförelser. 

Jag tycker det är lite väl hårt att beskylla php för ett dokumenterat beteende vad gäller storleken på heltal och hur de behandlas. Informationen går att hitta på mindre än 1 minut på phps hemsida, och hanteras stora heltal i närheten av jämna bytegränser, som tex 4 byte för ett ip-nummer, är det väl rimligt att man kollar den typen av saker. Speciellt som just 32 bitar inte sällan brukar vara en gräns för ordinära heltal på 32-bitars-arkitkturer, och heltal också har en tendens att vara beskrivna med 2-komplement. Problemet är också tydligt beskrivet på manualsidan för ip2long().
Jag kan inte se någon avgörande skillnad mot tex C eller Java därvidlag. Jag förväntar mig tex inte att heltal av typen char i C ska fungera för att hålla stora tal. 

Vad gäller olika p-språk och körtider finns här:
http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&#38;lang=all
en rolig jämförelse. Denna gäller naturligtvis inte webapplikationer, men kan väl ändå tjäna som någon form av vägledandning.

Själv tycker jag att java är trevligt.

/A</description>
		<content:encoded><![CDATA[<p>php har inte unsigned integers. Stora heltal konverteras till flyttal, se <a href="http://www.php.net/manual/en/language.types.integer.php" rel="nofollow">http://www.php.net/manual/en/language.types.integer.php</a><br />
Det i sin tur leder naturligtvis till funderingar över likhetsjämförelser. </p>
<p>Jag tycker det är lite väl hårt att beskylla php för ett dokumenterat beteende vad gäller storleken på heltal och hur de behandlas. Informationen går att hitta på mindre än 1 minut på phps hemsida, och hanteras stora heltal i närheten av jämna bytegränser, som tex 4 byte för ett ip-nummer, är det väl rimligt att man kollar den typen av saker. Speciellt som just 32 bitar inte sällan brukar vara en gräns för ordinära heltal på 32-bitars-arkitkturer, och heltal också har en tendens att vara beskrivna med 2-komplement. Problemet är också tydligt beskrivet på manualsidan för ip2long().<br />
Jag kan inte se någon avgörande skillnad mot tex C eller Java därvidlag. Jag förväntar mig tex inte att heltal av typen char i C ska fungera för att hålla stora tal. </p>
<p>Vad gäller olika p-språk och körtider finns här:<br />
<a href="http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&amp;lang=all" rel="nofollow">http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&amp;lang=all</a><br />
en rolig jämförelse. Denna gäller naturligtvis inte webapplikationer, men kan väl ändå tjäna som någon form av vägledandning.</p>
<p>Själv tycker jag att java är trevligt.</p>
<p>/A</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andreas Ehn</title>
		<link>http://pawal.blipp.com/creeper/full-pudel-och-varfor-jag-ogillar-php#comment-18136</link>
		<dc:creator>Andreas Ehn</dc:creator>
		<pubDate>Tue, 29 Apr 2008 12:26:35 +0000</pubDate>
		<guid isPermaLink="false">http://pawal.blipp.com/?p=107#comment-18136</guid>
		<description>Flera har tagit upp typning i Python, men få verkar ha greppat hur det egentligen fungerar. Det finns (för att hålla det enkelt) två ortogonala egenskaper som programmeringsspråk kan ha med avseende på typning: starkt–svagt och statiskt–dynamiskt.

Python är starkt och dynamiskt typat. C är svagt och statiskt typat. Java är starkt och statiskt typat. PHP och JavaScript är svagt och dynamiskt typade.

Wikipedia har en bra artikel om typsystem: http://en.wikipedia.org/wiki/Type_system</description>
		<content:encoded><![CDATA[<p>Flera har tagit upp typning i Python, men få verkar ha greppat hur det egentligen fungerar. Det finns (för att hålla det enkelt) två ortogonala egenskaper som programmeringsspråk kan ha med avseende på typning: starkt–svagt och statiskt–dynamiskt.</p>
<p>Python är starkt och dynamiskt typat. C är svagt och statiskt typat. Java är starkt och statiskt typat. PHP och JavaScript är svagt och dynamiskt typade.</p>
<p>Wikipedia har en bra artikel om typsystem: <a href="http://en.wikipedia.org/wiki/Type_system" rel="nofollow">http://en.wikipedia.org/wiki/Type_system</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Django, ett Rails-linande ramverk för Python</title>
		<link>http://pawal.blipp.com/creeper/full-pudel-och-varfor-jag-ogillar-php#comment-18119</link>
		<dc:creator>Django, ett Rails-linande ramverk för Python</dc:creator>
		<pubDate>Mon, 28 Apr 2008 17:04:01 +0000</pubDate>
		<guid isPermaLink="false">http://pawal.blipp.com/?p=107#comment-18119</guid>
		<description>Django är ett web-ramverk för Python. Det är inte MVC-baserat, men om man kan MVC lär man sig snabbt att bli produktiv med MTV.  Jag är imponerad av hur snygg och ren koden blir..... ibland känns det, som i fallet med Rails, som att det är magi .... det bara funkar. Automagiskt.</description>
		<content:encoded><![CDATA[<p>Django är ett web-ramverk för Python. Det är inte MVC-baserat, men om man kan MVC lär man sig snabbt att bli produktiv med MTV.  Jag är imponerad av hur snygg och ren koden blir&#8230;.. ibland känns det, som i fallet med Rails, som att det är magi &#8230;. det bara funkar. Automagiskt.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Björn Persson</title>
		<link>http://pawal.blipp.com/creeper/full-pudel-och-varfor-jag-ogillar-php#comment-18116</link>
		<dc:creator>Björn Persson</dc:creator>
		<pubDate>Mon, 28 Apr 2008 12:37:53 +0000</pubDate>
		<guid isPermaLink="false">http://pawal.blipp.com/?p=107#comment-18116</guid>
		<description>När det gäller att ha full koll på datatyper och namnrymder är ada oöverträffat så vitt jag vet. Ada konstruerades för att göra det möjligt att skriva program med mycket hög kvalitet, och typsystemet är en av språkets starkaste sidor. Det behöver aldrig råda något tvivel om vilken typ ett objekt har.

Tyvärr är det nog ont om ramverk för vävgränssnitt för ada. Det finns ett antal CGI-bibliotek, men om belastningen är hög så vill du kanske inte använda CGI. FastCGI är ju en möjlighet, och det bör vara fullt möjligt att skriva Apachemoduler i ada, men i båda fallen skulle du nog bli något av en pionjär så det torde ta ett tag att komma igång. Det enda avancerade ramverket jag känner till är Ada Web Server. Det gör ditt program till en fristående HTTP-server som du kör i stället för Apache.

Ada kompilerar man till maskinkod, så själva språket medför inga prestandaproblem. Däremot är det naturligtvis möjligt att skriva ineffektiva bibliotek.

PS: Din bloggserver påstår felaktigt att min epostadress är ogiltig.</description>
		<content:encoded><![CDATA[<p>När det gäller att ha full koll på datatyper och namnrymder är ada oöverträffat så vitt jag vet. Ada konstruerades för att göra det möjligt att skriva program med mycket hög kvalitet, och typsystemet är en av språkets starkaste sidor. Det behöver aldrig råda något tvivel om vilken typ ett objekt har.</p>
<p>Tyvärr är det nog ont om ramverk för vävgränssnitt för ada. Det finns ett antal CGI-bibliotek, men om belastningen är hög så vill du kanske inte använda CGI. FastCGI är ju en möjlighet, och det bör vara fullt möjligt att skriva Apachemoduler i ada, men i båda fallen skulle du nog bli något av en pionjär så det torde ta ett tag att komma igång. Det enda avancerade ramverket jag känner till är Ada Web Server. Det gör ditt program till en fristående HTTP-server som du kör i stället för Apache.</p>
<p>Ada kompilerar man till maskinkod, så själva språket medför inga prestandaproblem. Däremot är det naturligtvis möjligt att skriva ineffektiva bibliotek.</p>
<p>PS: Din bloggserver påstår felaktigt att min epostadress är ogiltig.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert</title>
		<link>http://pawal.blipp.com/creeper/full-pudel-och-varfor-jag-ogillar-php#comment-18115</link>
		<dc:creator>Robert</dc:creator>
		<pubDate>Mon, 28 Apr 2008 11:26:32 +0000</pubDate>
		<guid isPermaLink="false">http://pawal.blipp.com/?p=107#comment-18115</guid>
		<description>Ruby FTW!

@pawal: Ruby on Rails eventuella prestandaproblem går mycket väl att lösa med rätt deployment. I dagsläget skulle jag rekommendera en deployment med Apache och mod_rails ("Passanger"), hostat på Amazons EC2. Kolla här: https://es.cohesiveft.com/site/rails2
Då får du i princip den prestanda du betalar för.</description>
		<content:encoded><![CDATA[<p>Ruby FTW!</p>
<p>@pawal: Ruby on Rails eventuella prestandaproblem går mycket väl att lösa med rätt deployment. I dagsläget skulle jag rekommendera en deployment med Apache och mod_rails (&#8221;Passanger&#8221;), hostat på Amazons EC2. Kolla här: <a href="https://es.cohesiveft.com/site/rails2" rel="nofollow">https://es.cohesiveft.com/site/rails2</a><br />
Då får du i princip den prestanda du betalar för.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: pawal</title>
		<link>http://pawal.blipp.com/creeper/full-pudel-och-varfor-jag-ogillar-php#comment-18109</link>
		<dc:creator>pawal</dc:creator>
		<pubDate>Mon, 28 Apr 2008 07:23:01 +0000</pubDate>
		<guid isPermaLink="false">http://pawal.blipp.com/?p=107#comment-18109</guid>
		<description>Ni som förespråkar Ruby (on Rails), har ni någon erfarenhet av prestandan också? Det jag har hört om prestandan är inte direkt skönmålande.</description>
		<content:encoded><![CDATA[<p>Ni som förespråkar Ruby (on Rails), har ni någon erfarenhet av prestandan också? Det jag har hört om prestandan är inte direkt skönmålande.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Martin</title>
		<link>http://pawal.blipp.com/creeper/full-pudel-och-varfor-jag-ogillar-php#comment-18108</link>
		<dc:creator>Martin</dc:creator>
		<pubDate>Mon, 28 Apr 2008 07:03:11 +0000</pubDate>
		<guid isPermaLink="false">http://pawal.blipp.com/?p=107#comment-18108</guid>
		<description>Som alternativ till PHP (som jag f.ö. också starkt ogillar) rekommenderar jag Ruby on Rails.

Det har en mycket bra struktur, dels för att bygga sajterna (med hjälp av MVC) samt även testmetodik (det finns stöd för unit, functional &#38; integration testing)</description>
		<content:encoded><![CDATA[<p>Som alternativ till PHP (som jag f.ö. också starkt ogillar) rekommenderar jag Ruby on Rails.</p>
<p>Det har en mycket bra struktur, dels för att bygga sajterna (med hjälp av MVC) samt även testmetodik (det finns stöd för unit, functional &amp; integration testing)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kryptoblog &#187; Blog Archive &#187; Pawal pudlar, och jag också.</title>
		<link>http://pawal.blipp.com/creeper/full-pudel-och-varfor-jag-ogillar-php#comment-18100</link>
		<dc:creator>Kryptoblog &#187; Blog Archive &#187; Pawal pudlar, och jag också.</dc:creator>
		<pubDate>Sun, 27 Apr 2008 20:55:21 +0000</pubDate>
		<guid isPermaLink="false">http://pawal.blipp.com/?p=107#comment-18100</guid>
		<description>[...] Men nu visar det sig att det var PHP som var boven. Pawal ber om ursäkt och det gör jag också. [...]</description>
		<content:encoded><![CDATA[<p>[...] Men nu visar det sig att det var PHP som var boven. Pawal ber om ursäkt och det gör jag också. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: pawal</title>
		<link>http://pawal.blipp.com/creeper/full-pudel-och-varfor-jag-ogillar-php#comment-18018</link>
		<dc:creator>pawal</dc:creator>
		<pubDate>Thu, 24 Apr 2008 07:34:14 +0000</pubDate>
		<guid isPermaLink="false">http://pawal.blipp.com/?p=107#comment-18018</guid>
		<description>Daniel, nej, jag har inte sett någon skillnad i prestanda alls faktiskt (inte synlig i några grafer åtminstone). Jag har tidigare varit med om att några av PHP:s funktioner har varit helt omotiverat slöa, så det var skönt att det inte var så i det här fallet. (Ja, så pass slöa att de har blivit snabbare av att skriva en helt egen variant i PHP.)</description>
		<content:encoded><![CDATA[<p>Daniel, nej, jag har inte sett någon skillnad i prestanda alls faktiskt (inte synlig i några grafer åtminstone). Jag har tidigare varit med om att några av PHP:s funktioner har varit helt omotiverat slöa, så det var skönt att det inte var så i det här fallet. (Ja, så pass slöa att de har blivit snabbare av att skriva en helt egen variant i PHP.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel N</title>
		<link>http://pawal.blipp.com/creeper/full-pudel-och-varfor-jag-ogillar-php#comment-18017</link>
		<dc:creator>Daniel N</dc:creator>
		<pubDate>Thu, 24 Apr 2008 07:25:50 +0000</pubDate>
		<guid isPermaLink="false">http://pawal.blipp.com/?p=107#comment-18017</guid>
		<description>Måste hålla med om Python. Har fördjupat mig en del i Django senaste tiden och är helt fascinerad. Kommer från mestadels ren C i de flesta miljöer, men att typa variabler är inte allt. ;)

En sidofråga; kunde du se någon märkbar skillnad när du tog bort ip2long? Den funktionen låter som en ren wrapper till libc's inet_addr som ju är rätt optimerad och borde inte ta nämnvärt många klockcykler.</description>
		<content:encoded><![CDATA[<p>Måste hålla med om Python. Har fördjupat mig en del i Django senaste tiden och är helt fascinerad. Kommer från mestadels ren C i de flesta miljöer, men att typa variabler är inte allt. ;)</p>
<p>En sidofråga; kunde du se någon märkbar skillnad när du tog bort ip2long? Den funktionen låter som en ren wrapper till libc&#8217;s inet_addr som ju är rätt optimerad och borde inte ta nämnvärt många klockcykler.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Henrik Sandklef</title>
		<link>http://pawal.blipp.com/creeper/full-pudel-och-varfor-jag-ogillar-php#comment-18016</link>
		<dc:creator>Henrik Sandklef</dc:creator>
		<pubDate>Thu, 24 Apr 2008 06:41:37 +0000</pubDate>
		<guid isPermaLink="false">http://pawal.blipp.com/?p=107#comment-18016</guid>
		<description>Python är ett nytt Javascript? Python (~1991) kom före Javascript (1996). 

Men visst saknar man (som C-programmerare) möjligheten att säga att 'detta är ett 32-bitars heltal och skall inte vara ngt annat'.</description>
		<content:encoded><![CDATA[<p>Python är ett nytt Javascript? Python (~1991) kom före Javascript (1996). </p>
<p>Men visst saknar man (som C-programmerare) möjligheten att säga att &#8216;detta är ett 32-bitars heltal och skall inte vara ngt annat&#8217;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rikard</title>
		<link>http://pawal.blipp.com/creeper/full-pudel-och-varfor-jag-ogillar-php#comment-18015</link>
		<dc:creator>rikard</dc:creator>
		<pubDate>Thu, 24 Apr 2008 05:45:08 +0000</pubDate>
		<guid isPermaLink="false">http://pawal.blipp.com/?p=107#comment-18015</guid>
		<description>pawal:

Man kan sätta upp det så att Tomcat kör Java bara för vissa URL:er och att apache tar allt statiskt material. mod_jk2 kan man t ex använda för det och mappa vissa url-mönster i apache att skicka vidare via jk till Tomcat (servlet container med stöd för JSP).

Vi kör det där jag jobbar men jag vet inte om jag kan rekommendera det för "enkla små webbapplikationer" dock ;-)</description>
		<content:encoded><![CDATA[<p>pawal:</p>
<p>Man kan sätta upp det så att Tomcat kör Java bara för vissa URL:er och att apache tar allt statiskt material. mod_jk2 kan man t ex använda för det och mappa vissa url-mönster i apache att skicka vidare via jk till Tomcat (servlet container med stöd för JSP).</p>
<p>Vi kör det där jag jobbar men jag vet inte om jag kan rekommendera det för &#8220;enkla små webbapplikationer&#8221; dock ;-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: daniel</title>
		<link>http://pawal.blipp.com/creeper/full-pudel-och-varfor-jag-ogillar-php#comment-18002</link>
		<dc:creator>daniel</dc:creator>
		<pubDate>Wed, 23 Apr 2008 19:45:33 +0000</pubDate>
		<guid isPermaLink="false">http://pawal.blipp.com/?p=107#comment-18002</guid>
		<description>Här kommer en liten sammanfattning:
perl genererar svårförståerlig kod som man inte kommer förstå om 3 månader.
python är ett nytt javascript där alla variabler inte är typade och man kan skriva över objekt hur som helst = mycket dåligt.
php har förändrats ett antal gånger vilket har lett till flera olika olyckliga konsekvenser.
.NET utvecklas av Microsoft och kan ändras hur som helst när som helst, kommer aldrig fungera till 100% i en annan miljö än windows.
Java har blivit bättre med java 5 men är fortfarande ganska slött prestandamässigt.

pawal: När man kör Java använder man oftast inte apache, då använder man istället tomcat eller jboss.</description>
		<content:encoded><![CDATA[<p>Här kommer en liten sammanfattning:<br />
perl genererar svårförståerlig kod som man inte kommer förstå om 3 månader.<br />
python är ett nytt javascript där alla variabler inte är typade och man kan skriva över objekt hur som helst = mycket dåligt.<br />
php har förändrats ett antal gånger vilket har lett till flera olika olyckliga konsekvenser.<br />
.NET utvecklas av Microsoft och kan ändras hur som helst när som helst, kommer aldrig fungera till 100% i en annan miljö än windows.<br />
Java har blivit bättre med java 5 men är fortfarande ganska slött prestandamässigt.</p>
<p>pawal: När man kör Java använder man oftast inte apache, då använder man istället tomcat eller jboss.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: pawal</title>
		<link>http://pawal.blipp.com/creeper/full-pudel-och-varfor-jag-ogillar-php#comment-18001</link>
		<dc:creator>pawal</dc:creator>
		<pubDate>Wed, 23 Apr 2008 18:31:08 +0000</pubDate>
		<guid isPermaLink="false">http://pawal.blipp.com/?p=107#comment-18001</guid>
		<description>Jag har goda erfarenheter av Perl för webben, både med ramverket Catalyst och med Mason. Jag har till och med lyckats få igång tre olika webbplatser baserade på Catalyst i en och samma Apache-instans. Fast jag är orolig för namnrymden som Perl tar upp i en sådan mod_perl-installation, jag litar helt enkelt inte på att saker och ting kolliderar, i synnerhet inte med moduler som är av tvivelaktig kvalitet. Och för fler en två sajter hostade på samma server skrivna av flera människor litar jag inte alls på det.

Vad gäller Java och Mono har jag för liten erfarenhet av dessa språk för att veta hur man hostar flera såna sajter i samma Apache-instans, men det finns säkert någon som har en bra pekare åt mig.</description>
		<content:encoded><![CDATA[<p>Jag har goda erfarenheter av Perl för webben, både med ramverket Catalyst och med Mason. Jag har till och med lyckats få igång tre olika webbplatser baserade på Catalyst i en och samma Apache-instans. Fast jag är orolig för namnrymden som Perl tar upp i en sådan mod_perl-installation, jag litar helt enkelt inte på att saker och ting kolliderar, i synnerhet inte med moduler som är av tvivelaktig kvalitet. Och för fler en två sajter hostade på samma server skrivna av flera människor litar jag inte alls på det.</p>
<p>Vad gäller Java och Mono har jag för liten erfarenhet av dessa språk för att veta hur man hostar flera såna sajter i samma Apache-instans, men det finns säkert någon som har en bra pekare åt mig.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Henrik Sandklef</title>
		<link>http://pawal.blipp.com/creeper/full-pudel-och-varfor-jag-ogillar-php#comment-17997</link>
		<dc:creator>Henrik Sandklef</dc:creator>
		<pubDate>Wed, 23 Apr 2008 16:06:06 +0000</pubDate>
		<guid isPermaLink="false">http://pawal.blipp.com/?p=107#comment-17997</guid>
		<description>Python!!!</description>
		<content:encoded><![CDATA[<p>Python!!!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
