<?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: Erlang Web Server Benchmarking</title>
	<atom:link href="http://steve.vinoski.net/blog/2011/05/09/erlang-web-server-benchmarking/feed/" rel="self" type="application/rss+xml" />
	<link>http://steve.vinoski.net/blog/2011/05/09/erlang-web-server-benchmarking/</link>
	<description>Ask forgiveness, not permission.</description>
	<lastBuildDate>Sat, 19 May 2012 14:32:40 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
	<item>
		<title>By: betareduction</title>
		<link>http://steve.vinoski.net/blog/2011/05/09/erlang-web-server-benchmarking/comment-page-1/#comment-1640</link>
		<dc:creator>betareduction</dc:creator>
		<pubDate>Mon, 16 May 2011 14:07:31 +0000</pubDate>
		<guid isPermaLink="false">http://steve.vinoski.net/blog/?p=780#comment-1640</guid>
		<description><![CDATA[I had to read this post. I always thought someone has to write it. I had been wandering around all the erlang webservers just because of all the benchmarks that are published on the cyberspace, and could not decide for myself what to use for my project. But somehow, after studying the yaws source code over and over again, i think the community should stick to yaws and support it. Its not only a masterpiece, but you can learn a lot from it.]]></description>
		<content:encoded><![CDATA[<p>I had to read this post. I always thought someone has to write it. I had been wandering around all the erlang webservers just because of all the benchmarks that are published on the cyberspace, and could not decide for myself what to use for my project. But somehow, after studying the yaws source code over and over again, i think the community should stick to yaws and support it. Its not only a masterpiece, but you can learn a lot from it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Loïc Hoguin</title>
		<link>http://steve.vinoski.net/blog/2011/05/09/erlang-web-server-benchmarking/comment-page-1/#comment-1637</link>
		<dc:creator>Loïc Hoguin</dc:creator>
		<pubDate>Wed, 11 May 2011 23:53:03 +0000</pubDate>
		<guid isPermaLink="false">http://steve.vinoski.net/blog/?p=780#comment-1637</guid>
		<description><![CDATA[&quot;The problem with lightweight systems is that they gain weight quickly as they succeed.&quot;

I know about that issue and can assure you that once my todo list is done, Cowboy will not get any new feature unless HTTP gets a new version; HTTP gets replaced by something better (Google is experimenting with that); some new kind of long-polling appears that does it better than previously. Everything else will be minor improvements, supporting r15+ Erlang versions, and fixing bugs. So unless something changes a lot in the web landscape, Cowboy will remain the same.

Once Cowboy is done it&#039;ll be a good basis for the rest of the environment I&#039;m building and I don&#039;t plan to add features to Cowboy but rather build other applications taking advantage of it. To give an example, if I ever need RSS, SOAP, XML-RPC, they won&#039;t be part of Cowboy, but rather separate reusable applications that won&#039;t depend on it. Kind of like ex_fcgi does now. That&#039;s the biggest difference in philosophy between Cowboy and Yaws, and I sure don&#039;t want feature creep in anything I make, simplicity is always better IMHO. Where other lightweight servers become more like Yaws, Cowboy won&#039;t, it&#039;ll stay as is until a tech revolution happens.

Oh and don&#039;t worry, if I need SOAP I&#039;ll probably just use Yaws as I can&#039;t care less about SOAP and wouldn&#039;t want to reimplement it even if I was paid to do it. ;)

About the not posting on the ML, yeah I don&#039;t do that unless I use something for a long time. Took me more than a year before talking on Erlang IRC channels or on the ML, and I gave up on Yaws long before reaching that stage. Although I did plan on using it initially before looking at WebMachine.

Great talks by the way, been enjoying the chat.]]></description>
		<content:encoded><![CDATA[<p>&#8220;The problem with lightweight systems is that they gain weight quickly as they succeed.&#8221;</p>
<p>I know about that issue and can assure you that once my todo list is done, Cowboy will not get any new feature unless HTTP gets a new version; HTTP gets replaced by something better (Google is experimenting with that); some new kind of long-polling appears that does it better than previously. Everything else will be minor improvements, supporting r15+ Erlang versions, and fixing bugs. So unless something changes a lot in the web landscape, Cowboy will remain the same.</p>
<p>Once Cowboy is done it&#8217;ll be a good basis for the rest of the environment I&#8217;m building and I don&#8217;t plan to add features to Cowboy but rather build other applications taking advantage of it. To give an example, if I ever need RSS, SOAP, XML-RPC, they won&#8217;t be part of Cowboy, but rather separate reusable applications that won&#8217;t depend on it. Kind of like ex_fcgi does now. That&#8217;s the biggest difference in philosophy between Cowboy and Yaws, and I sure don&#8217;t want feature creep in anything I make, simplicity is always better IMHO. Where other lightweight servers become more like Yaws, Cowboy won&#8217;t, it&#8217;ll stay as is until a tech revolution happens.</p>
<p>Oh and don&#8217;t worry, if I need SOAP I&#8217;ll probably just use Yaws as I can&#8217;t care less about SOAP and wouldn&#8217;t want to reimplement it even if I was paid to do it. ;)</p>
<p>About the not posting on the ML, yeah I don&#8217;t do that unless I use something for a long time. Took me more than a year before talking on Erlang IRC channels or on the ML, and I gave up on Yaws long before reaching that stage. Although I did plan on using it initially before looking at WebMachine.</p>
<p>Great talks by the way, been enjoying the chat.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: steve</title>
		<link>http://steve.vinoski.net/blog/2011/05/09/erlang-web-server-benchmarking/comment-page-1/#comment-1635</link>
		<dc:creator>steve</dc:creator>
		<pubDate>Wed, 11 May 2011 13:56:33 +0000</pubDate>
		<guid isPermaLink="false">http://steve.vinoski.net/blog/?p=780#comment-1635</guid>
		<description><![CDATA[@Loïc: I think you make a good point about drawing new users to Erlang. I&#039;m not entirely convinced you need new projects to do that, though; projects like Yaws could certainly try to make themselves sexier and more visible and &quot;in your face,&quot; but a lot of that depends on the personalities involved and frankly that&#039;s just not how Klacke is.

New users should not be afraid to try to contribute to Yaws. I was a new user a few years ago, and I certainly wasn&#039;t afraid. I liked the stability Yaws gave my project from the start, and yet I could also see where I could add to it. I was then fortunate enough to have Klacke add me as a committer, and I&#039;ve learned a lot from him and from all the Yaws users as a result. Had I instead gone out on my own, I&#039;d have fewer users, assuming whatever I worked on ever saw the light of day at all, and would have missed out on working with one of the greatest Erlang programmers of all time. And that was back when Yaws was in svn &#8212; in this day and age of github, there&#039;s really no barrier to contributing to existing projects.

Thanks again for your comments, and I hope we can meet in London and have time to discuss all this some more.]]></description>
		<content:encoded><![CDATA[<p>@Loïc: I think you make a good point about drawing new users to Erlang. I&#8217;m not entirely convinced you need new projects to do that, though; projects like Yaws could certainly try to make themselves sexier and more visible and &#8220;in your face,&#8221; but a lot of that depends on the personalities involved and frankly that&#8217;s just not how Klacke is.</p>
<p>New users should not be afraid to try to contribute to Yaws. I was a new user a few years ago, and I certainly wasn&#8217;t afraid. I liked the stability Yaws gave my project from the start, and yet I could also see where I could add to it. I was then fortunate enough to have Klacke add me as a committer, and I&#8217;ve learned a lot from him and from all the Yaws users as a result. Had I instead gone out on my own, I&#8217;d have fewer users, assuming whatever I worked on ever saw the light of day at all, and would have missed out on working with one of the greatest Erlang programmers of all time. And that was back when Yaws was in svn &mdash; in this day and age of github, there&#8217;s really no barrier to contributing to existing projects.</p>
<p>Thanks again for your comments, and I hope we can meet in London and have time to discuss all this some more.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: steve</title>
		<link>http://steve.vinoski.net/blog/2011/05/09/erlang-web-server-benchmarking/comment-page-1/#comment-1634</link>
		<dc:creator>steve</dc:creator>
		<pubDate>Wed, 11 May 2011 13:42:58 +0000</pubDate>
		<guid isPermaLink="false">http://steve.vinoski.net/blog/?p=780#comment-1634</guid>
		<description><![CDATA[@Yurii: sadly, often the reasons new things get created are NIH syndrome along with unfounded assumptions and perceptions.

The problem with lightweight systems is that they gain weight quickly as they succeed. This isn&#039;t a technical issue but rather is simply how markets work, and it&#039;s unavoidable. If the software is successful, users demand new features as they discover that &quot;heavyweight&quot; feature supplied by other frameworks viewed unfairly as &quot;too heavy&quot; actually exists for a good reason and is needed for real-world solutions. I think you need only look at the recent history of misultin to see this effect (and that&#039;s not at all a knock against misultin, but is rather simply a product of its success).

You seem to use the term &quot;legacy&quot; as derogatory, yet for many it means &quot;stable,&quot; &quot;reliable,&quot; &quot;mature,&quot; and &quot;something that just works.&quot; &quot;Legacy&quot; implies &quot;successful&quot; since if there are no users, there is no legacy. Anything you release that garners users who deploy your code in production is legacy. It&#039;s a nice problem to have.

I don&#039;t understand the Yaws reputation you claim, since considering all of what Yaws can do, it&#039;s actually not complex at all. For example, if you look at the code in my blog entry above, it&#039;s no more complicated than any of the examples Roberto posted for the other frameworks. Running it in a deployed server requires one extra line of configuration; alternatively, running it embedded requires a few extra lines of Erlang config code, certainly no more than Roberto&#039;s Cowboy example and probably fewer. Have you ever actually written real applications in Yaws? If so, can you provide me details on exactly where the complexity is?

I think a critical point you&#039;re either missing or unintentionally ignoring is one I tried to make clear in my posting: since HTTP handling and socket handling are essentially built into Erlang/OTP, there&#039;s not a whole lot of room for drastic performance differences between different Erlang web frameworks. You say you can build Yaws-like functionality on top of small and fast libraries, which is true but guess what? The end result will naturally include extra overhead due to the additional code, thus negating any slight performance advantages, and it will likely end up reinventing much of what a more complete solution like Yaws already provides. So what would you rather do, use a proven solution that already exists, or just rewrite and then have to debug and maintain the very same code solutions like Yaws already provide? And if you&#039;re going to do that, why not contribute your efforts to an existing project instead of writing a new one?

I&#039;m pretty certain that most of Yaws&#039; detractors have never actually used it or even looked at it much. I think if they had, they would have been on the &lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/erlyaws-list&quot; rel=&quot;nofollow&quot;&gt;Yaws mailing list&lt;/a&gt; asking pertinent questions, perhaps challenging some of the current design and implementation, and supplying patches, and I don&#039;t recall seeing that sort of traffic there in recent memory from anyone involved in these newer frameworks. Which is a real shame, because then the reasons for the new stuff end up appearing as nothing more than NIH syndrome, which, as I&#039;ve already hinted repeatedly, leads to community fragmentation and a stagnation of progress in Erlang web development practices &#8212; ironically, likely the very opposite of the effects actually being sought.]]></description>
		<content:encoded><![CDATA[<p>@Yurii: sadly, often the reasons new things get created are NIH syndrome along with unfounded assumptions and perceptions.</p>
<p>The problem with lightweight systems is that they gain weight quickly as they succeed. This isn&#8217;t a technical issue but rather is simply how markets work, and it&#8217;s unavoidable. If the software is successful, users demand new features as they discover that &#8220;heavyweight&#8221; feature supplied by other frameworks viewed unfairly as &#8220;too heavy&#8221; actually exists for a good reason and is needed for real-world solutions. I think you need only look at the recent history of misultin to see this effect (and that&#8217;s not at all a knock against misultin, but is rather simply a product of its success).</p>
<p>You seem to use the term &#8220;legacy&#8221; as derogatory, yet for many it means &#8220;stable,&#8221; &#8220;reliable,&#8221; &#8220;mature,&#8221; and &#8220;something that just works.&#8221; &#8220;Legacy&#8221; implies &#8220;successful&#8221; since if there are no users, there is no legacy. Anything you release that garners users who deploy your code in production is legacy. It&#8217;s a nice problem to have.</p>
<p>I don&#8217;t understand the Yaws reputation you claim, since considering all of what Yaws can do, it&#8217;s actually not complex at all. For example, if you look at the code in my blog entry above, it&#8217;s no more complicated than any of the examples Roberto posted for the other frameworks. Running it in a deployed server requires one extra line of configuration; alternatively, running it embedded requires a few extra lines of Erlang config code, certainly no more than Roberto&#8217;s Cowboy example and probably fewer. Have you ever actually written real applications in Yaws? If so, can you provide me details on exactly where the complexity is?</p>
<p>I think a critical point you&#8217;re either missing or unintentionally ignoring is one I tried to make clear in my posting: since HTTP handling and socket handling are essentially built into Erlang/OTP, there&#8217;s not a whole lot of room for drastic performance differences between different Erlang web frameworks. You say you can build Yaws-like functionality on top of small and fast libraries, which is true but guess what? The end result will naturally include extra overhead due to the additional code, thus negating any slight performance advantages, and it will likely end up reinventing much of what a more complete solution like Yaws already provides. So what would you rather do, use a proven solution that already exists, or just rewrite and then have to debug and maintain the very same code solutions like Yaws already provide? And if you&#8217;re going to do that, why not contribute your efforts to an existing project instead of writing a new one?</p>
<p>I&#8217;m pretty certain that most of Yaws&#8217; detractors have never actually used it or even looked at it much. I think if they had, they would have been on the <a href="https://lists.sourceforge.net/lists/listinfo/erlyaws-list" rel="nofollow">Yaws mailing list</a> asking pertinent questions, perhaps challenging some of the current design and implementation, and supplying patches, and I don&#8217;t recall seeing that sort of traffic there in recent memory from anyone involved in these newer frameworks. Which is a real shame, because then the reasons for the new stuff end up appearing as nothing more than NIH syndrome, which, as I&#8217;ve already hinted repeatedly, leads to community fragmentation and a stagnation of progress in Erlang web development practices &mdash; ironically, likely the very opposite of the effects actually being sought.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Loïc Hoguin</title>
		<link>http://steve.vinoski.net/blog/2011/05/09/erlang-web-server-benchmarking/comment-page-1/#comment-1631</link>
		<dc:creator>Loïc Hoguin</dc:creator>
		<pubDate>Tue, 10 May 2011 22:26:55 +0000</pubDate>
		<guid isPermaLink="false">http://steve.vinoski.net/blog/?p=780#comment-1631</guid>
		<description><![CDATA[There&#039;s another issue I forgot, which is one of moving forward. The more established the project, the longest to take patches in, especially if they&#039;re big changes. Not saying it&#039;d happen with Yaws, it&#039;s just a generality.

Speaking of fragmentation, I don&#039;t think any language is really united to begin with. Except the ones with a central and easy to use repository of projects, maybe. And even then, I&#039;m not even sure. It&#039;s normal that people want to start from scratch and reinvent new things to make them &quot;better&quot; (this is often subjective). At worst we learn something. The important thing I think is that new people come to Erlang. The gen_server2 project doesn&#039;t make people stop using the gen_server or refrain them from using Erlang. ;)

About the Rails comment: Rails people were united under Rails. Not Ruby people. The people who thought they needed Rails were pushing for it. Three years later they went on into separate ways, some staying with Rails, others trying to make new Ruby frameworks, and others presumably moved to NodeJS. That&#039;s how long you can keep people united before it completely breaks. I don&#039;t think we can do anything about it. :)

Anyway I will probably try to share all my experiments with Cowboy in Stockholm later this year, and I&#039;ll also be in London next month as a visitor, hope we can get in touch and share some more thoughts there.]]></description>
		<content:encoded><![CDATA[<p>There&#8217;s another issue I forgot, which is one of moving forward. The more established the project, the longest to take patches in, especially if they&#8217;re big changes. Not saying it&#8217;d happen with Yaws, it&#8217;s just a generality.</p>
<p>Speaking of fragmentation, I don&#8217;t think any language is really united to begin with. Except the ones with a central and easy to use repository of projects, maybe. And even then, I&#8217;m not even sure. It&#8217;s normal that people want to start from scratch and reinvent new things to make them &#8220;better&#8221; (this is often subjective). At worst we learn something. The important thing I think is that new people come to Erlang. The gen_server2 project doesn&#8217;t make people stop using the gen_server or refrain them from using Erlang. ;)</p>
<p>About the Rails comment: Rails people were united under Rails. Not Ruby people. The people who thought they needed Rails were pushing for it. Three years later they went on into separate ways, some staying with Rails, others trying to make new Ruby frameworks, and others presumably moved to NodeJS. That&#8217;s how long you can keep people united before it completely breaks. I don&#8217;t think we can do anything about it. :)</p>
<p>Anyway I will probably try to share all my experiments with Cowboy in Stockholm later this year, and I&#8217;ll also be in London next month as a visitor, hope we can get in touch and share some more thoughts there.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
