Message

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
21 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Message

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

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Message

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 <[hidden email]>
Would you ever see yourself write a web application like Twitter or Facebook in Haskell?

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe



_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Message

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 <[hidden email]> wrote:

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

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Message

Ivan Lazar Miljenovic
In reply to this post by Goutam Tmv
2011/10/21 Goutam Tmv <[hidden email]>:
> 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
[hidden email]
IvanMiljenovic.wordpress.com

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Message

Matti Oinas
In reply to this post by Michael Snoyman
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 <[hidden email]>:

> 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 <[hidden email]> wrote:
>> Wow, controversial point I guess...
>> I would add: and if yes, what would you use and why?
>>
>> 2011/10/21 Goutam Tmv <[hidden email]>
>>>
>>> Would you ever see yourself write a web application like Twitter or
>>> Facebook in Haskell?
>>>
>>> _______________________________________________
>>> Haskell-Cafe mailing list
>>> [hidden email]
>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>>
>>
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> [hidden email]
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>
>>
>
> _______________________________________________
> Haskell-Cafe mailing list
> [hidden email]
> 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
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Message

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 <[hidden email]> 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 <[hidden email]>:
> 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 <[hidden email]> wrote:
>> Wow, controversial point I guess...
>> I would add: and if yes, what would you use and why?
>>
>> 2011/10/21 Goutam Tmv <[hidden email]>
>>>
>>> Would you ever see yourself write a web application like Twitter or
>>> Facebook in Haskell?
>>>
>>> _______________________________________________
>>> Haskell-Cafe mailing list
>>> [hidden email]
>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>>
>>
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> [hidden email]
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>
>>
>
> _______________________________________________
> Haskell-Cafe mailing list
> [hidden email]
> 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
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Message

Øystein Kolsrud
In reply to this post by Goutam Tmv
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 <[hidden email]>
Would you ever see yourself write a web application like Twitter or Facebook in Haskell?

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe




--
Mvh Øystein Kolsrud

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Message

Yves Parès
In reply to this post by Alex Kropivny
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 <[hidden email]>
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 <[hidden email]> 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 <[hidden email]>:
> 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 <[hidden email]> wrote:
>> Wow, controversial point I guess...
>> I would add: and if yes, what would you use and why?
>>
>> 2011/10/21 Goutam Tmv <[hidden email]>
>>>
>>> Would you ever see yourself write a web application like Twitter or
>>> Facebook in Haskell?
>>>
>>> _______________________________________________
>>> Haskell-Cafe mailing list
>>> [hidden email]
>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>>
>>
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> [hidden email]
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>
>>
>
> _______________________________________________
> Haskell-Cafe mailing list
> [hidden email]
> 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
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe



_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Message

David Leimbach


On Fri, Oct 21, 2011 at 8:02 AM, Yves Parès <[hidden email]> wrote:
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 <[hidden email]>
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 <[hidden email]> 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 <[hidden email]>:
> 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 <[hidden email]> wrote:
>> Wow, controversial point I guess...
>> I would add: and if yes, what would you use and why?
>>
>> 2011/10/21 Goutam Tmv <[hidden email]>
>>>
>>> Would you ever see yourself write a web application like Twitter or
>>> Facebook in Haskell?
>>>
>>> _______________________________________________
>>> Haskell-Cafe mailing list
>>> [hidden email]
>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>>
>>
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> [hidden email]
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>
>>
>
> _______________________________________________
> Haskell-Cafe mailing list
> [hidden email]
> 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
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe



_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe



_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Message

Albert Y. C. Lai
In reply to this post by Ivan Lazar Miljenovic
On 11-10-21 03:59 AM, Ivan Lazar Miljenovic wrote:
> 2011/10/21 Goutam Tmv<[hidden email]>:
>> 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
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Message

aditya siram-2
Non snarky question - what does it need?
-deech

On Fri, Oct 21, 2011 at 12:51 PM, Albert Y. C. Lai <[hidden email]> wrote:

> On 11-10-21 03:59 AM, Ivan Lazar Miljenovic wrote:
>>
>> 2011/10/21 Goutam Tmv<[hidden email]>:
>>>
>>> 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
> [hidden email]
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Message

amindfv
In reply to this post by Albert Y. C. Lai
Ok, I'll bite: what's it need?

- Tom / amindfv


On Fri, Oct 21, 2011 at 1:51 PM, Albert Y. C. Lai <[hidden email]> wrote:
On 11-10-21 03:59 AM, Ivan Lazar Miljenovic wrote:
2011/10/21 Goutam Tmv<[hidden email]>:
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
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Message

Gaius Hammond
In reply to this post by Goutam Tmv
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 <[hidden email]>
Sender: [hidden email]
Date: Fri, 21 Oct 2011 15:37:42
To: <[hidden email]>
Subject: [Haskell-cafe] Message

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe



_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Message

Albert Y. C. Lai
In reply to this post by amindfv
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

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Message

Alex Kropivny
In reply to this post by Yves Parès
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 <[hidden email]> wrote:
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 <[hidden email]>
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 <[hidden email]> 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 <[hidden email]>:
> 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 <[hidden email]> wrote:
>> Wow, controversial point I guess...
>> I would add: and if yes, what would you use and why?
>>
>> 2011/10/21 Goutam Tmv <[hidden email]>
>>>
>>> Would you ever see yourself write a web application like Twitter or
>>> Facebook in Haskell?
>>>
>>> _______________________________________________
>>> Haskell-Cafe mailing list
>>> [hidden email]
>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>>
>>
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> [hidden email]
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>
>>
>
> _______________________________________________
> Haskell-Cafe mailing list
> [hidden email]
> 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
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe




_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Message

Claus Reinke
In reply to this post by Albert Y. C. Lai
> 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
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Message

MigMit
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" <[hidden email]> написал(а):

>> 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
> [hidden email]
> http://www.haskell.org/mailman/listinfo/haskell-cafe

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Haskell V Java type checking

Patrick Browne
In reply to this post by Claus Reinke
Hi,
I am comparing some aspects of Haskell with Java.
Below is a simple Haskell program with a sub-class.
It is followed my attempt to code the same concepts in Java.
Two questions:
1) Are the two examples close enough? (very subjective)
2) In this example, what are the advantages of the Haskell type checking over the Java type checking?
3) Are there more general advantages of Haskell type checking over Java type checking?

Regards,
Pat



==== Haskell program===
data C
data D

class A t where
instance A C where
instance A D where


class A t => B t where
instance B C where
instance B D where


=====Java Program===
import java.lang.Class;

interface A<T> {}
class A_INSTANCE<T> implements A<T> {}


interface B<T> extends A<T>{}
class B_INSTANCE<T> implements B<T> {}



class C {}
class D {}

public class DEMO1 {
public static void main(String args[]) {


A_INSTANCE<C> ac = new A_INSTANCE<C>();
A_INSTANCE<D> ad = new A_INSTANCE<D>();
B_INSTANCE<C> bc = new B_INSTANCE<C>();
B_INSTANCE<D> bd = new B_INSTANCE<D>();

System.out.println("Object's Class name =>"+  ac.getClass().getName());
System.out.println("Object's Class name =>"+  ad.getClass().getName());
System.out.println("Object's Class name =>"+  bc.getClass().getName());
System.out.println("Object's Class name =>"+  bd.getClass().getName());

  }
}



_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Message

Ryan Newton
In reply to this post by David Leimbach
> 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
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Message

David Leimbach


On Thu, Nov 3, 2011 at 9:09 PM, Ryan Newton <[hidden email]> wrote:
> 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


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
12