<br><br><div class="gmail_quote">On Fri, Oct 21, 2011 at 8:02 AM, Yves Parès <span dir="ltr">&lt;<a href="mailto:limestrael@gmail.com">limestrael@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;">
That&#39;s interesting, have you ever worked on interfacing Erlang with Haskell?<br></blockquote><div><br></div><div>I have interfaced Erlang and Haskell... And delivered it as a product.  I just came up with a dead-simple text based communication syntax from Erlang to Haskell that was very easily testable.  It allowed for complete isolation of components and them to be developed and debugged in parallel.  The Haskell code was an Erlang &quot;pipe driver&quot;, which, in turn was connected to a C program to drive a polling interface, controlled by Haskell with the fancy IO done in C.  All of this was on a relatively small linux &quot;appliance&quot;.</div>
<div><br></div><div>I&#39;m pretty proud of that little system.  It was quickly done, and I was able to mock out various pieces of it very quickly as well.  When the hardware it was meant to control finally arrived I think I only spent a few extra hours turning the screws to make it work for real.... and then we discovered wiring problems :-)</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><br>BTW, Twitter switched to Scala, so obviously their initial choice of Ruby end up invalidated.<div><div>
</div><div class="h5"><br></div></div></blockquote><div><br></div><div>I believe they have Java, Clojure and Scala actually.  I know of a guy doing a start up using only Go, and that language is not even fully released yet.  They&#39;re most definitely using Clojure in their Storm &quot;realtime&quot; event processing framework anyway, and it&#39;s freely available.</div>
<div><br></div><div>Other than finding people who can come work for you writing good Haskell code, I don&#39;t see any reason to avoid doing a startup using that language as a code base.  The Haskell Platform makes things a little nicer, but needs to have more regular releases.  Go comes with a lot of &quot;batteries&quot; already making it slightly more attractive.</div>
<div><br></div><div>Dave</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div><div class="h5"><br><div class="gmail_quote">2011/10/21 Alex Kropivny <span dir="ltr">&lt;<a href="mailto:alex.kropivny@gmail.com" target="_blank">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>
<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" 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>
<br></blockquote></div><br>
</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>