That&#39;s interesting, have you ever worked on interfacing Erlang with Haskell?<br><br>BTW, Twitter switched to Scala, so obviously their initial choice of Ruby end up invalidated.<br><br><div class="gmail_quote">2011/10/21 Alex Kropivny <span dir="ltr">&lt;<a href="mailto:alex.kropivny@gmail.com">alex.kropivny@gmail.com</a>&gt;</span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Let&#39;s look at this from a high, project management level. Twitter ran on... Ruby initially? Facebook ran on PHP.<div>

<br></div><div>Immediately this tells me that programming language choice wasn&#39;t a factor in their success. One succeeded in building a large throughput system with a &quot;slow&quot; language, the other succeeded in building a massively popular website with a bad one.</div>


<div><br></div><div>What hard problems did they have to solve? </div><div><br></div><div>Twitter had to deal with scalability, distribution, and massive throughput. These are hard problems on their own, and are non-trivial even in languages tailor made to handle them. (Although using Erlang would make things a good deal easier.)</div>


<div><br></div><div>Facebook is not a technical problem at all. There are interesting challenges hidden within (ad targeting and friend feed optimization) but they&#39;re tiny, isolated components. Rapid development and prototyping of features help Facebook, but if the features are easy CRUD stuff it&#39;s perfectly cost effective to hire a pile of PHP developers to do them.</div>


<div><br></div><div><br></div><div>One has problems that are hard regardless of tool choice, the other has no hard problems at all. No Haskell needed, use whatever language you can outsource overseas.</div><div><br></div>


<div><br></div><div><br></div><div>With that in mind. Using Haskell gives you an edge, for most problems, even the ones with poor libraries. If you can get the programmer manpower you need, it is a clear advantage over your competition.</div>


<div><br></div><div>Your startup may not need that advantage - as Facebook retrospectively didn&#39;t - but you don&#39;t know that when just starting out. If Facebook went deep into user behaviour analysis and newsfeed optimization, the way OkCupid has with dating, Haskell would suddenly stand out.</div>


<div><br></div><div>If you need every advantage you can get, you use the best tools for the job. Haskell is one of the best and shiniest - I personally would use Erlang for any embarrassingly parallel parts of the service and do the rest in Haskell.</div>

<div><div></div><div class="h5">
<div><br><br><div class="gmail_quote">On Fri, Oct 21, 2011 at 1:00 AM, Matti Oinas <span dir="ltr">&lt;<a href="mailto:matti.oinas@gmail.com" target="_blank">matti.oinas@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


I don&#39;t think I&#39;m going to write next twitter or facebook but yes, it<br>
is on my TODO list. If such an applications can be written with<br>
languages like PHP then why not. Can&#39;t think of any language that is<br>
worse than PHP but still there are lots of web applications written<br>
with that. Even I have written many using PHP.<br>
<br>
Why I would use Haskell? To see if it is better option to that problem<br>
than other languages.<br>
<br>
I have allready installed Yesod but for now I don&#39;t have enough time<br>
to work on this project. After 6 months the situation should be<br>
different.<br>
<br>
2011/10/21 Michael Snoyman &lt;<a href="mailto:michael@snoyman.com" target="_blank">michael@snoyman.com</a>&gt;:<br>
<div><div></div><div>&gt; This is clearly a job for node.js and the /dev/null data store, since<br>
&gt; they are so web scale~<br>
&gt;<br>
&gt; Less sarcasm: I think any of the main Haskell web frameworks (Yesod,<br>
&gt; Happstack, Snap) could scale better than Ruby or PHP, and would use<br>
&gt; any of those in a heartbeat for such a venture. I&#39;d personally use<br>
&gt; Yesod.<br>
&gt;<br>
&gt; I think data store would be a trickier issue. I&#39;d likely use one of<br>
&gt; the key/value stores out there, possibly Redis, though I&#39;d really need<br>
&gt; to do more research to give a real answer.<br>
&gt;<br>
&gt; Michael<br>
&gt;<br>
&gt; On Fri, Oct 21, 2011 at 9:42 AM, Yves Parès &lt;<a href="mailto:limestrael@gmail.com" target="_blank">limestrael@gmail.com</a>&gt; wrote:<br>
&gt;&gt; Wow, controversial point I guess...<br>
&gt;&gt; I would add: and if yes, what would you use and why?<br>
&gt;&gt;<br>
&gt;&gt; 2011/10/21 Goutam Tmv &lt;<a href="mailto:vo1d_pointer@live.com" target="_blank">vo1d_pointer@live.com</a>&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Would you ever see yourself write a web application like Twitter or<br>
&gt;&gt;&gt; Facebook in Haskell?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; Haskell-Cafe mailing list<br>
&gt;&gt;&gt; <a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
&gt;&gt;&gt; <a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Haskell-Cafe mailing list<br>
&gt;&gt; <a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
&gt;&gt; <a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Haskell-Cafe mailing list<br>
&gt; <a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
&gt; <a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
&gt;<br>
<br>
<br>
<br>
</div></div>--<br>
/*******************************************************************/<br>
<br>
try {<br>
   log.trace(&quot;Id=&quot; + request.getUser().getId() + &quot; accesses &quot; +<br>
manager.getPage().getUrl().toString())<br>
} catch(NullPointerException e) {}<br>
<br>
/*******************************************************************/<br>
<br>
This is a real code, but please make the world a bit better place and<br>
don’t do it, ever.<br>
<br>
* <a href="http://www.javacodegeeks.com/2011/01/10-tips-proper-application-logging.html" target="_blank">http://www.javacodegeeks.com/2011/01/10-tips-proper-application-logging.html</a> *<br>
<div><div></div><div><br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br>