
Would you ever see yourself write a web application like Twitter or Facebook in Haskell?

Wow, controversial point I guess...
I would add: and if yes, what would you use and why?
2011/10/21 Goutam Tmv
Would you ever see yourself write a web application like Twitter or Facebook in Haskell?
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

This is clearly a job for node.js and the /dev/null data store, since
they are so web scale~
Less sarcasm: I think any of the main Haskell web frameworks (Yesod,
Happstack, Snap) could scale better than Ruby or PHP, and would use
any of those in a heartbeat for such a venture. I'd personally use
Yesod.
I think data store would be a trickier issue. I'd likely use one of
the key/value stores out there, possibly Redis, though I'd really need
to do more research to give a real answer.
Michael
On Fri, Oct 21, 2011 at 9:42 AM, Yves Parès
Wow, controversial point I guess... I would add: and if yes, what would you use and why?
2011/10/21 Goutam Tmv
Would you ever see yourself write a web application like Twitter or Facebook in Haskell?
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

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

Let's look at this from a high, project management level. Twitter ran on...
Ruby initially? Facebook ran on PHP.
Immediately this tells me that programming language choice wasn't a factor
in their success. One succeeded in building a large throughput system with a
"slow" language, the other succeeded in building a massively popular website
with a bad one.
What hard problems did they have to solve?
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.)
Facebook is not a technical problem at all. There are interesting challenges
hidden within (ad targeting and friend feed optimization) but they're tiny,
isolated components. Rapid development and prototyping of features help
Facebook, but if the features are easy CRUD stuff it's perfectly cost
effective to hire a pile of PHP developers to do them.
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.
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.
Your startup may not need that advantage - as Facebook retrospectively
didn't - but you don'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.
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.
On Fri, Oct 21, 2011 at 1:00 AM, Matti Oinas
I don't think I'm going to write next twitter or facebook but yes, it is on my TODO list. If such an applications can be written with languages like PHP then why not. Can't think of any language that is worse than PHP but still there are lots of web applications written with that. Even I have written many using PHP.
Why I would use Haskell? To see if it is better option to that problem than other languages.
I have allready installed Yesod but for now I don't have enough time to work on this project. After 6 months the situation should be different.
2011/10/21 Michael Snoyman
: This is clearly a job for node.js and the /dev/null data store, since they are so web scale~
Less sarcasm: I think any of the main Haskell web frameworks (Yesod, Happstack, Snap) could scale better than Ruby or PHP, and would use any of those in a heartbeat for such a venture. I'd personally use Yesod.
I think data store would be a trickier issue. I'd likely use one of the key/value stores out there, possibly Redis, though I'd really need to do more research to give a real answer.
Michael
On Fri, Oct 21, 2011 at 9:42 AM, Yves Parès
wrote: Wow, controversial point I guess... I would add: and if yes, what would you use and why?
2011/10/21 Goutam Tmv
Would you ever see yourself write a web application like Twitter or Facebook in Haskell?
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- /*******************************************************************/
try { log.trace("Id=" + request.getUser().getId() + " accesses " + manager.getPage().getUrl().toString()) } catch(NullPointerException e) {}
/*******************************************************************/
This is a real code, but please make the world a bit better place and don’t do it, ever.
* http://www.javacodegeeks.com/2011/01/10-tips-proper-application-logging.html...
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

That's interesting, have you ever worked on interfacing Erlang with Haskell?
BTW, Twitter switched to Scala, so obviously their initial choice of Ruby
end up invalidated.
2011/10/21 Alex Kropivny
Let's look at this from a high, project management level. Twitter ran on... Ruby initially? Facebook ran on PHP.
Immediately this tells me that programming language choice wasn't a factor in their success. One succeeded in building a large throughput system with a "slow" language, the other succeeded in building a massively popular website with a bad one.
What hard problems did they have to solve?
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.)
Facebook is not a technical problem at all. There are interesting challenges hidden within (ad targeting and friend feed optimization) but they're tiny, isolated components. Rapid development and prototyping of features help Facebook, but if the features are easy CRUD stuff it's perfectly cost effective to hire a pile of PHP developers to do them.
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.
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.
Your startup may not need that advantage - as Facebook retrospectively didn't - but you don'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.
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.
On Fri, Oct 21, 2011 at 1:00 AM, Matti Oinas
wrote: I don't think I'm going to write next twitter or facebook but yes, it is on my TODO list. If such an applications can be written with languages like PHP then why not. Can't think of any language that is worse than PHP but still there are lots of web applications written with that. Even I have written many using PHP.
Why I would use Haskell? To see if it is better option to that problem than other languages.
I have allready installed Yesod but for now I don't have enough time to work on this project. After 6 months the situation should be different.
2011/10/21 Michael Snoyman
: This is clearly a job for node.js and the /dev/null data store, since they are so web scale~
Less sarcasm: I think any of the main Haskell web frameworks (Yesod, Happstack, Snap) could scale better than Ruby or PHP, and would use any of those in a heartbeat for such a venture. I'd personally use Yesod.
I think data store would be a trickier issue. I'd likely use one of the key/value stores out there, possibly Redis, though I'd really need to do more research to give a real answer.
Michael
On Fri, Oct 21, 2011 at 9:42 AM, Yves Parès
wrote: Wow, controversial point I guess... I would add: and if yes, what would you use and why?
2011/10/21 Goutam Tmv
Would you ever see yourself write a web application like Twitter or Facebook in Haskell?
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- /*******************************************************************/
try { log.trace("Id=" + request.getUser().getId() + " accesses " + manager.getPage().getUrl().toString()) } catch(NullPointerException e) {}
/*******************************************************************/
This is a real code, but please make the world a bit better place and don’t do it, ever.
* http://www.javacodegeeks.com/2011/01/10-tips-proper-application-logging.html...
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

On Fri, Oct 21, 2011 at 8:02 AM, Yves Parès
That's interesting, have you ever worked on interfacing Erlang with Haskell?
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 "pipe driver", 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 "appliance". I'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 :-)
BTW, Twitter switched to Scala, so obviously their initial choice of Ruby end up invalidated.
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're most definitely using Clojure in their Storm "realtime" event processing framework anyway, and it's freely available. Other than finding people who can come work for you writing good Haskell code, I don'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 "batteries" already making it slightly more attractive. Dave
2011/10/21 Alex Kropivny
Let's look at this from a high, project management level. Twitter ran on... Ruby initially? Facebook ran on PHP.
Immediately this tells me that programming language choice wasn't a factor in their success. One succeeded in building a large throughput system with a "slow" language, the other succeeded in building a massively popular website with a bad one.
What hard problems did they have to solve?
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.)
Facebook is not a technical problem at all. There are interesting challenges hidden within (ad targeting and friend feed optimization) but they're tiny, isolated components. Rapid development and prototyping of features help Facebook, but if the features are easy CRUD stuff it's perfectly cost effective to hire a pile of PHP developers to do them.
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.
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.
Your startup may not need that advantage - as Facebook retrospectively didn't - but you don'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.
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.
On Fri, Oct 21, 2011 at 1:00 AM, Matti Oinas
wrote: I don't think I'm going to write next twitter or facebook but yes, it is on my TODO list. If such an applications can be written with languages like PHP then why not. Can't think of any language that is worse than PHP but still there are lots of web applications written with that. Even I have written many using PHP.
Why I would use Haskell? To see if it is better option to that problem than other languages.
I have allready installed Yesod but for now I don't have enough time to work on this project. After 6 months the situation should be different.
2011/10/21 Michael Snoyman
: This is clearly a job for node.js and the /dev/null data store, since they are so web scale~
Less sarcasm: I think any of the main Haskell web frameworks (Yesod, Happstack, Snap) could scale better than Ruby or PHP, and would use any of those in a heartbeat for such a venture. I'd personally use Yesod.
I think data store would be a trickier issue. I'd likely use one of the key/value stores out there, possibly Redis, though I'd really need to do more research to give a real answer.
Michael
On Fri, Oct 21, 2011 at 9:42 AM, Yves Parès
wrote: Wow, controversial point I guess... I would add: and if yes, what would you use and why?
2011/10/21 Goutam Tmv
Would you ever see yourself write a web application like Twitter or Facebook in Haskell?
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- /*******************************************************************/
try { log.trace("Id=" + request.getUser().getId() + " accesses " + manager.getPage().getUrl().toString()) } catch(NullPointerException e) {}
/*******************************************************************/
This is a real code, but please make the world a bit better place and don’t do it, ever.
* http://www.javacodegeeks.com/2011/01/10-tips-proper-application-logging.html...
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

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
Interesting. I can't imagine there are too many people who have done this. So I must ask -- given the explicit attempt to imitate Erlang in recent CloudHaskell work, does that come close to giving you everything you would have wanted in this app? (Hot code update being the big missing piece.) Cheers, -Ryan

On Thu, Nov 3, 2011 at 9:09 PM, Ryan Newton
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
Interesting. I can't imagine there are too many people who have done this. So I must ask -- given the explicit attempt to imitate Erlang in recent CloudHaskell work, does that come close to giving you everything you would have wanted in this app?
I don't know, as I've not looked at all at CloudHaskell at all. My current job doesn't really give me a lot of time for it. There's definite advantages to polyglot programming approaches. The difficulty is in the glue, and that doesn't have to really be that difficult. I just picked a text based protocol that was really easy to implement and understand as well as test externally. No XML, no JSON, nothing "standardized", just tiny and really obvious. With a sufficiently simple protocol getting C++, haskell and erlang on the same page was pretty trivial, and the separation of concerns for each piece was really well drawn. It felt like what was meant by the unix philosophy of one good tool for each job coordinated over pipes because well that's exactly what I did. Dave
(Hot code update being the big missing piece.)
Cheers, -Ryan

Short answer: no, and what it gives is quite different.
Long answer:
Erlang gives me two things that are hard to replicate:
1. firm-realtime performance, even at high load: the distributed GC is very
nice
2. a very well defined model for handling, and recovering from failure
Hot code reload is nice, but is mostly used as a bandaid for the multitude
of bugs present with dynamic typing and a "let it crash" (minimal defensive
programming, let process isolation handle bad cases by failing) approach.
So it's absence in Haskell doesn't bother me.
1 is a personal preference that's been useful in a couple of projects. It's
application specific and probably not a factor for most people, I just had
a chance to enjoy it.
2 is solved in Erlang via techniques and know-how built up from years of
practice and testing. High level abstractions like supervision trees,
restart types, and gen_servers are well known. Most importantly, the
correct way to use them to build robust systems is well known. This is
definitely duplicateable, it just needs some time and lots of testing to
reach the same level of trust I've got for Erlang.
My Haskell code is mostly total, and avoids failure-in-the-small (stupid
bugs) amazingly well.
My Erlang code is an onion of recovery points, and avoids
failure-in-the-large (hardware/link failures, nasty corner cases) amazingly
well.
CloudHaskell looks like it provides the fundamental abstractions needed to
start building the onion, and bring Erlang's robustness to Haskell. Getting
to the same point will take time and effort, but I think is possible.
On Thu, Nov 3, 2011 at 9:09 PM, Ryan Newton
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
Interesting. I can't imagine there are too many people who have done this. So I must ask -- given the explicit attempt to imitate Erlang in recent CloudHaskell work, does that come close to giving you everything you would have wanted in this app?
(Hot code update being the big missing piece.)
Cheers, -Ryan
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Yes I did, in detail. There are two trivial solutions I like:
1. The BERT library (http://bert-rpc.org/) uses Erlang terms for the
protocol, and has straightforward mappings to Haskell equivalents.
- Pros: trivial on both sides, Erlang terms are really good primitives to
build a protocol from
- Cons: Erlang likes using large (5 to 10 size) tuples and Haskell doesn't,
protocol needs to take that into account
2. JSON over HTTP, Erlang's the server Haskell's the client.
- Pros: discoverable, flexible, readable, language agnostic.
- Cons: I don't really know how to use Haskell JSON libraries + which ones
are good, and good REST API design can be tricky.
For higher performance there are other options, but these are the ones I
like most. I used 1 to decent effect when using QuickCheck to test an Erlang
system.
On Fri, Oct 21, 2011 at 8:02 AM, Yves Parès
That's interesting, have you ever worked on interfacing Erlang with Haskell?
BTW, Twitter switched to Scala, so obviously their initial choice of Ruby end up invalidated.
2011/10/21 Alex Kropivny
Let's look at this from a high, project management level. Twitter ran on... Ruby initially? Facebook ran on PHP.
Immediately this tells me that programming language choice wasn't a factor in their success. One succeeded in building a large throughput system with a "slow" language, the other succeeded in building a massively popular website with a bad one.
What hard problems did they have to solve?
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.)
Facebook is not a technical problem at all. There are interesting challenges hidden within (ad targeting and friend feed optimization) but they're tiny, isolated components. Rapid development and prototyping of features help Facebook, but if the features are easy CRUD stuff it's perfectly cost effective to hire a pile of PHP developers to do them.
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.
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.
Your startup may not need that advantage - as Facebook retrospectively didn't - but you don'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.
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.
On Fri, Oct 21, 2011 at 1:00 AM, Matti Oinas
wrote: I don't think I'm going to write next twitter or facebook but yes, it is on my TODO list. If such an applications can be written with languages like PHP then why not. Can't think of any language that is worse than PHP but still there are lots of web applications written with that. Even I have written many using PHP.
Why I would use Haskell? To see if it is better option to that problem than other languages.
I have allready installed Yesod but for now I don't have enough time to work on this project. After 6 months the situation should be different.
2011/10/21 Michael Snoyman
: This is clearly a job for node.js and the /dev/null data store, since they are so web scale~
Less sarcasm: I think any of the main Haskell web frameworks (Yesod, Happstack, Snap) could scale better than Ruby or PHP, and would use any of those in a heartbeat for such a venture. I'd personally use Yesod.
I think data store would be a trickier issue. I'd likely use one of the key/value stores out there, possibly Redis, though I'd really need to do more research to give a real answer.
Michael
On Fri, Oct 21, 2011 at 9:42 AM, Yves Parès
wrote: Wow, controversial point I guess... I would add: and if yes, what would you use and why?
2011/10/21 Goutam Tmv
Would you ever see yourself write a web application like Twitter or Facebook in Haskell?
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- /*******************************************************************/
try { log.trace("Id=" + request.getUser().getId() + " accesses " + manager.getPage().getUrl().toString()) } catch(NullPointerException e) {}
/*******************************************************************/
This is a real code, but please make the world a bit better place and don’t do it, ever.
* http://www.javacodegeeks.com/2011/01/10-tips-proper-application-logging.html...
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

2011/10/21 Goutam Tmv
Would you ever see yourself write a web application like Twitter or Facebook in Haskell?
No. But then, I wouldn't write a web application like either of them in _any_ language. Now, if your question was "is Haskell a good language for writing large-scale web applications such as ...", then that's a different story... and one I'm not qualified to answer. -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com

On 11-10-21 03:59 AM, Ivan Lazar Miljenovic wrote:
2011/10/21 Goutam Tmv
: Would you ever see yourself write a web application like Twitter or Facebook in Haskell?
No. But then, I wouldn't write a web application like either of them in _any_ language.
+1 The world does not need another Twitter, another Facebook, another Reddit, another graphics engine, another database system, or another operating system.

Non snarky question - what does it need?
-deech
On Fri, Oct 21, 2011 at 12:51 PM, Albert Y. C. Lai
On 11-10-21 03:59 AM, Ivan Lazar Miljenovic wrote:
2011/10/21 Goutam Tmv
: Would you ever see yourself write a web application like Twitter or Facebook in Haskell?
No. But then, I wouldn't write a web application like either of them in _any_ language.
+1
The world does not need another Twitter, another Facebook, another Reddit, another graphics engine, another database system, or another operating system.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Ok, I'll bite: what's it need?
- Tom / amindfv
On Fri, Oct 21, 2011 at 1:51 PM, Albert Y. C. Lai
On 11-10-21 03:59 AM, Ivan Lazar Miljenovic wrote:
2011/10/21 Goutam Tmv
: Would you ever see yourself write a web application like Twitter or Facebook in Haskell?
No. But then, I wouldn't write a web application like either of them in _any_ language.
+1
The world does not need another Twitter, another Facebook, another Reddit, another graphics engine, another database system, or another operating system.
______________________________**_________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/**mailman/listinfo/haskell-cafehttp://www.haskell.org/mailman/listinfo/haskell-cafe

On 11-10-21 01:57 PM, aditya siram wrote:
Non snarky question - what does it need?
On 11-10-21 01:58 PM, Tom Murphy wrote:
Ok, I'll bite: what's it need?
Thank you for asking. The world needs another tutorial on lazy evaluation for Haskell. There are currently only 0.5, and it is written by me. While I will complete it to 1, the world needs 3. (Generally, the world needs 3 tutorials for every subject.) http://www.vex.net/~trebla/haskell/lazy.xhtml The world needs programmers to accept and take seriously Greg Wilson's extensible programming, and stop laughing it off as "lolwut wysiwyg msword for programming", and start implementing it. http://third-bit.com/blog/archives/4302.html The world needs more applied formal methods. http://vstte.ethz.ch/pdfs/vstte-hoare-misra.pdf

The world needs programmers to accept and take seriously Greg Wilson's extensible programming, and stop laughing it off as "lolwut wysiwyg msword for programming", and start implementing it. http://third-bit.com/blog/archives/4302.html
Who is "the world"? For starters, I don't think it is Greg Wilson's idea, and if you look for alternate sources, often under other titles, you'll find parts of it implemented, with varying degrees of success and often little acceptance. The idea is much older than one might think - conferences on extensible languages were held around 1970. Early implementation approximations didn't have the disposable computing power of today's PCs, nor did early implementers find an audience ready for their ideas (to feed their students or themselves, some of those who were such ahead of the curve had to switch to working on more conventional, funded, topics). Useful search keys: - extensible languages (as in AI, the meaning of "extensible" tends to be redefined whenever a problem gets solved, so many features that used to mark an extensible language in the past have now become standard) - structure editors (in that they were forerunners of projectional IDEs, and exhibited some of their advantages and disadvantages; there have been many efforts to generate structure editors from language descriptions) - projectional language workbenches (instead of parsing source to AST, the IDE/workbench operates on an AST-like abstract model, and source code views are just projections of that; makes it easier to embed sublanguages); Smalltalkers will probably claim their image-based IDEs have been doing that all along. - hyper-programming (where persistent runtime data can be embedded in code via linking, similar to hypertext, with generic editors instead of generic Read/Show) - Banana Algebra: Syntactic Language Extension via an Algebra of Languages and Transformations (one example of research on language composition) IDE generators, IDE tooling for domain-specific languages, language-oriented programming, language workbenches, ... they all contribute to the now broader interest in the topic. In the context of Haskell, there once was Keith Hanna's document-centered programming: http://www.cs.kent.ac.uk/projects/vital/ http://www.cs.kent.ac.uk/projects/pivotal/ Perhaps Keith's projects can serve as an inspiration to just start hacking?-) The subject is an instance of these quotes: "The future is already here - it's just not very evenly distributed." William Gibson "The best way to predict the future is to invent it." Alan Kay Claus http://clausreinke.github.com/

Yeah, I was going to mention Smalltalk too, as one of the languages NOT using plain text to store programs — which led to a very strong boundary between ST and other world, not doing any favors to the first.
The idea of using some non-plaintext-based format to store programs appeared lots of times, without any significant achivements. And I think one of the main reasons for that is that it makes interacting with other tools extremely difficult. Not just with pre-existing tools. Even if grep didn't exist, it would be very easy to hack something like it if you need to search your codebase for a specific word; you don't need any complex APIs to read plain text files, there are just two functions — one to read a line of code, and another one to check for eof. Similarly, it's easy to generate your Java files with a Perl script — with Perl itself not knowing anything about Java. Text has the advantage of being SIMPLE — and the vague idea of "embedding a spreadsheet in your code" (what the hell for?) doesn't come close to beating it.
And you know what? You don't really need to give up text-based storage to have graphic capabilities. Windows resources files (.rc) are text-based, and there are plenty of visual editors for them, including one in Visual Studio; and, thankfully, it still produces the same old text-based file — and sometimes it's very desirable to look into one, for example, if you want to know which control is tagged with this ID.
Отправлено с iPad
22.10.2011, в 21:06, "Claus Reinke"
The world needs programmers to accept and take seriously Greg Wilson's extensible programming, and stop laughing it off as "lolwut wysiwyg msword for programming", and start implementing it. http://third-bit.com/blog/archives/4302.html
Who is "the world"? For starters, I don't think it is Greg Wilson's idea, and if you look for alternate sources, often under other titles, you'll find parts of it implemented, with varying degrees of success and often little acceptance. The idea is much older than one might think - conferences on extensible languages were held around 1970. Early implementation approximations didn't have the disposable computing power of today's PCs, nor did early implementers find an audience ready for their ideas (to feed their students or themselves, some of those who were such ahead of the curve had to switch to working on more conventional, funded, topics).
Useful search keys:
- extensible languages (as in AI, the meaning of "extensible" tends to be redefined whenever a problem gets solved, so many features that used to mark an extensible language in the past have now become standard)
- structure editors (in that they were forerunners of projectional IDEs, and exhibited some of their advantages and disadvantages; there have been many efforts to generate structure editors from language descriptions)
- projectional language workbenches (instead of parsing source to AST, the IDE/workbench operates on an AST-like abstract model, and source code views are just projections of that; makes it easier to embed sublanguages);
Smalltalkers will probably claim their image-based IDEs have been doing that all along.
- hyper-programming (where persistent runtime data can be embedded in code via linking, similar to hypertext, with generic editors instead of generic Read/Show)
- Banana Algebra: Syntactic Language Extension via an Algebra of Languages and Transformations (one example of research on language composition)
IDE generators, IDE tooling for domain-specific languages, language-oriented programming, language workbenches, ... they all contribute to the now broader interest in the topic.
In the context of Haskell, there once was Keith Hanna's document-centered programming:
http://www.cs.kent.ac.uk/projects/vital/ http://www.cs.kent.ac.uk/projects/pivotal/
Perhaps Keith's projects can serve as an inspiration to just start hacking?-) The subject is an instance of these quotes:
"The future is already here - it's just not very evenly distributed." William Gibson
"The best way to predict the future is to invent it." Alan Kay
Claus http://clausreinke.github.com/
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

I don't know if you are familiar with it, but perhaps this article can be of
interest to you:
http://www.paulgraham.com/avg.html
And a little historical summary:
http://en.wikipedia.org/wiki/Viaweb
Best regards,
Øystein Kolsrud
2011/10/21 Goutam Tmv
Would you ever see yourself write a web application like Twitter or Facebook in Haskell?
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- Mvh Øystein Kolsrud

There's no technical reason why not; Twitter is written in Scala and Facebook's chat system in Erlang.
Would I see *myself* working at one of these companies? Not likely.
Cheers,
G
------------------
-----Original Message-----
From: Goutam Tmv
participants (16)
-
aditya siram
-
Albert Y. C. Lai
-
Alex Kropivny
-
Claus Reinke
-
David Leimbach
-
Gaius Hammond
-
Goutam Tmv
-
Ivan Lazar Miljenovic
-
Matti Oinas
-
Michael Snoyman
-
MigMit
-
Patrick Browne
-
Ryan Newton
-
Tom Murphy
-
Yves Parès
-
Øystein Kolsrud