can Haskell do everyting as we want?

As more I learn haskell, I am more interested in this function programming language. I am intended to more focus on haskell than other languages like python, Java, or C++. But I am still wonder whether haskell can do everyting as other languages do, such as python, perl, Java and C++. Is there anyone happen to come into any tasks that haskell is not able to achieve? Thanks. -- Qi Qi

qiqi789:
As more I learn haskell, I am more interested in this function programming language. I am intended to more focus on haskell than other languages like python, Java, or C++. But I am still wonder whether haskell can do everyting as other languages do, such as python, perl, Java and C++.
Is there anyone happen to come into any tasks that haskell is not able to achieve?
Well, Haskell is a general purpose language, so it should be able to do pretty much anything. Here's a graphical representation of what Haskell is used for, based on the number of packages on Hackage in that category: http://donsbot.wordpress.com/2009/01/24/what-is-haskell-good-for/ Most endeavors in computer programming are available in some form or another on Hackage, so I'd say we have lived up to the goal of providing a general purpose language. One thing that is not well covered, due to the nature of the runtime, is hard real time computing. -- Don

I use Haskell for everything. In fact, I will be approaching my 10
year anniversary of using Haskell as my primary development language
soon.
The only area I have had any trouble with Haskell is doing realtime
music synthesis. And only because the garbage collector is not
realtime friendly. That is not unfixable though. However, I am
thinking that the best way to do realtime synthesis with Haskell is to
use it to create a DSL that uses LLVM to create code at runtime so
that the realtime code is outside the scope of the normal RTS and
garbage collector. Aside from being a 'hack' to get around the garbage
collector, this could actually provide better performance than
low-level C/ASM by allowing very specialized code to be generated at
runtime in response to configuration changes. This concept was
explored with some success in Synthesis OS:
http://c2.com/cgi/wiki?SynthesisOs (a general purpose unix-like OS,
the synthesis in the name is referring to the runtime code generation
for OS services, not music).
The other area I have found Haskell to sometimes fall short is when I
want even stronger guarantees from the type system. For those
instances, I want something more like Agda or Epigram, not something
weaker like Java/C++.
- jeremy
On Tue, Aug 3, 2010 at 6:12 PM, Qi Qi
As more I learn haskell, I am more interested in this function programming language. I am intended to more focus on haskell than other languages like python, Java, or C++. But I am still wonder whether haskell can do everyting as other languages do, such as python, perl, Java and C++.
Is there anyone happen to come into any tasks that haskell is not able to achieve?
Thanks.
-- Qi Qi
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

On Tue, Aug 3, 2010 at 4:12 PM, Qi Qi
Is there anyone happen to come into any tasks that haskell is not able to achieve?
Haskell has very limited support for high-level Natural Language Processing (tokenization, sentence splitting, Named-entity recognition, etc...). NLTK (python), OpenNLP (java), and FleeLing (C++) all have quite a lot to offer here, but there aren't currently any bindings to those implementations from Haskell. FreeLing is the best choice from a pure languages standpoint, but it is GPL, which would infect the resulting bindings and reduce the utility of the result. I have some hope that jvm-bridge can be resurrected to bind to OpenNLP, but that's something I've only spent a few days thinking about. (I'd love to have some pointers / help / documentation on jvm-bridge, if anyone has insights :) --Rogan
Thanks.
-- Qi Qi
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

On 4 August 2010 10:42, Rogan Creswick
Haskell has very limited support for high-level Natural Language Processing [snip]
This isn't a fault of the language, it just
I have some hope that jvm-bridge can be resurrected to bind to OpenNLP, but that's something I've only spent a few days thinking about. (I'd love to have some pointers / help / documentation on jvm-bridge, if anyone has insights :)
--Rogan
Thanks.
-- Qi Qi
_______________________________________________ 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
-- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com

Rogan Creswick wrote:
Haskell has very limited support for high-level Natural Language Processing (tokenization, sentence splitting, Named-entity recognition, etc...).
Since the role of a general purpose language is relatively new for Haskell, there are many areas where Haskell is still an emerging language. So it is interesting that you say that about NLP, where Haskell is not only quite mature, but arguably the leading language today. For example, the EU's huge Molto project http://molto-project.eu/, which aims to provide automated real-time high-quality translation of a wide class of documents between all of the EU languages, is based on Haskell's GF http://grammaticalframework.org/. Coincidentally, just yesterday a company that markets one of the top semantic NLP products contacted me. They have decided to dump their entire Java code base, using older technologies such as the ones you mentioned. One of their leading candidates for a replacement language is Haskell. They told me, "You see Haskell everywhere in NLP these days." See http://www.haskell.org/haskellwiki/Applications_and_libraries/Linguistics for links about NLP work in Haskell. That is a huge wiki page and hard to maintain, so some of the links are out of date, but you get the idea. Regards, Yitz

Hi Qi, have a look at brainfuck language. Its turing complete as Python, Haskell, etc are. Then you'll learn that the quesntion "Can I do everything possible" is not at all important. You have to ask instead: Can I complete my task in reasonable time and with reasonable runtime performance etc. For most use cases Haskell is a good choice - the only real things I'm missing are - nice stack traces - completion support - because I find it relaxing not having to looking all names. This could be fixed to some extend though.. If you want to target JavaScript in browsers I'm not sure whether Haskell is the best fit either. If I were you I'd learn some Haskell - I don't think you'll regret it. By reading the mailinglists, joining the chat room ocassionally you'll learn a lot. But if you have a real task to solve - have a look whether existing solutions exist - thus "Use the best tool for the given problem". Because recoding can sometimes take longer. And eg the Java community has been much bigger in the past -> thus there are more libraries available. Eg Haskell has no htmlunit yet which interpretes JavaScript and simulates a headless browser etc. Marc Weber

Marc Weber
Hi Qi,
have a look at brainfuck language. Its turing complete as Python, Haskell, etc are. Then you'll learn that the quesntion "Can I do everything possible" is not at all important. You have to ask instead: Can I complete my task in reasonable time and with reasonable runtime performance etc.
And in a way that makes the code maintainable.
For most use cases Haskell is a good choice - the only real things I'm missing are - nice stack traces - completion support - because I find it relaxing not having to looking all names. This could be fixed to some extend though..
If you mean whilst writing your code, this is an editor issue (I believe scion aims to help writing cross-editor utilities for things like this). ghci also has tab-completion, and ghc-mod provides such functionality in Emacs. -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com

On Wed, Aug 4, 2010 at 3:37 AM, Ivan Lazar Miljenovic < ivan.miljenovic@gmail.com> wrote:
Marc Weber
writes: Hi Qi,
have a look at brainfuck language. Its turing complete as Python, Haskell, etc are. Then you'll learn that the quesntion "Can I do everything possible" is not at all important. You have to ask instead: Can I complete my task in reasonable time and with reasonable runtime performance etc.
And in a way that makes the code maintainable.
For most use cases Haskell is a good choice - the only real things I'm missing are - nice stack traces - completion support - because I find it relaxing not having to looking all names. This could be fixed to some extend though..
If you mean whilst writing your code, this is an editor issue (I believe scion aims to help writing cross-editor utilities for things like this). ghci also has tab-completion, and ghc-mod provides such functionality in Emacs.
Is scion still being developed? I have the impression it's dead now. Really a shame, I think it has a good solid design and just needs work/polish. Jason

On 4 August 2010 21:21, Jason Dagit
Is scion still being developed? I have the impression it's dead now. Really a shame, I think it has a good solid design and just needs work/polish.
It is: http://github.com/nominolo/scion/network I changed the architecture to use separate processes (I tried to hold it off, but in the end it was necessary). I hope that this will make a few things easier. The other issue is time of course. Also JP has been adding some features in his Scion branch for EclipseFP. The plan is to merge that back eventually. / Thomas

As already noted here, Haskell is a general purpose language, but you should take it with a grain of salt. For instance, you can nail with a laptop (provided that you hit the place where a HDD is located), but you prefer a hammer :) One thing is if you do it only for enjoyment, in this case you can even develop 3D shooter game in Haskell, but when it comes to production/real world use, I think it is better to maintain "right tool for the right job" attitude. Regards, Zura Qi Qi-2 wrote:
Is there anyone happen to come into any tasks that haskell is not able to achieve?
-- View this message in context: http://old.nabble.com/can-Haskell-do-everyting-as-we-want--tp29341176p293428... Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.

Before entering haskell, please read our disclaimer:
http://www.haskell.org/pipermail/haskell-cafe/2010-June/079044.html
You've been warned
*
*
2010/8/4 Zura_
As already noted here, Haskell is a general purpose language, but you should take it with a grain of salt. For instance, you can nail with a laptop (provided that you hit the place where a HDD is located), but you prefer a hammer :) One thing is if you do it only for enjoyment, in this case you can even develop 3D shooter game in Haskell, but when it comes to production/real world use, I think it is better to maintain "right tool for the right job" attitude.
Regards, Zura
Qi Qi-2 wrote:
Is there anyone happen to come into any tasks that haskell is not able to achieve?
-- View this message in context: http://old.nabble.com/can-Haskell-do-everyting-as-we-want--tp29341176p293428... Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Just to clarify, I mean: Haskell may be seriously addictive. Sounds like a
joke, but it is not. I do not recommend it for coding something quick and
dirty.
2010/8/4 Alberto G. Corona
Before entering haskell, please read our disclaimer:
http://www.haskell.org/pipermail/haskell-cafe/2010-June/079044.html
You've been warned * *
2010/8/4 Zura_
As already noted here, Haskell is a general purpose language, but you should take it with a grain of salt. For instance, you can nail with a laptop (provided that you hit the place where a HDD is located), but you prefer a hammer :) One thing is if you do it only for enjoyment, in this case you can even develop 3D shooter game in Haskell, but when it comes to production/real world use, I think it is better to maintain "right tool for the right job" attitude.
Regards, Zura
Qi Qi-2 wrote:
Is there anyone happen to come into any tasks that haskell is not able to achieve?
-- View this message in context: http://old.nabble.com/can-Haskell-do-everyting-as-we-want--tp29341176p293428... Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

On Wed, Aug 4, 2010 at 3:16 AM, Alberto G. Corona
Just to clarify, I mean: Haskell may be seriously addictive. Sounds like a joke, but it is not. I do not recommend it for coding something quick and dirty.
I use it for quick and dirty stuff all the time, mainly because what I want is often something that can be broken down into stages of processing, and pure functions are really nice for that. If I know the input is coming from a reliable enough stream (like a unix pipe to stdin) I can use functions like "interact" to create filters, or parse some input, and produce some output. It's pretty nice.
2010/8/4 Alberto G. Corona
Before entering haskell, please read our disclaimer:
http://www.haskell.org/pipermail/haskell-cafe/2010-June/079044.html
You've been warned * *
2010/8/4 Zura_
As already noted here, Haskell is a general purpose language, but you should take it with a grain of salt. For instance, you can nail with a laptop (provided that you hit the place where a HDD is located), but you prefer a hammer :) One thing is if you do it only for enjoyment, in this case you can even develop 3D shooter game in Haskell, but when it comes to production/real world use, I think it is better to maintain "right tool for the right job" attitude.
Regards, Zura
Qi Qi-2 wrote:
Is there anyone happen to come into any tasks that haskell is not able to achieve?
-- View this message in context: http://old.nabble.com/can-Haskell-do-everyting-as-we-want--tp29341176p293428... Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.
_______________________________________________ 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

In my experience two of the biggest issues in selecting any language
are the pool of potential programmers and the learning curve for the
programmers you already have.
If you only need two programmers to do a project and they both know
Haskell well, then I think Haskell would do almost any job very well.
I also think that the pool of potential Haskell programmers is
growing. But it is still much smaller than many other languages.
I do think that there is a larger learning curve for Haskell than
moving from one imperative language (eg. PHP) to another one (eg.
Ruby).
In my view Haskell programmers are likely to be more productive and
produce more correct (and possibly even more efficient) code once they
know the language well.
Kevin
On Aug 4, 4:35 pm, David Leimbach
On Wed, Aug 4, 2010 at 3:16 AM, Alberto G. Corona
wrote: Just to clarify, I mean: Haskell may be seriously addictive. Sounds like a joke, but it is not. I do not recommend it for coding something quick and dirty.
I use it for quick and dirty stuff all the time, mainly because what I want is often something that can be broken down into stages of processing, and pure functions are really nice for that.
If I know the input is coming from a reliable enough stream (like a unix pipe to stdin) I can use functions like "interact" to create filters, or parse some input, and produce some output.
It's pretty nice.
2010/8/4 Alberto G. Corona
Before entering haskell, please read our disclaimer:
http://www.haskell.org/pipermail/haskell-cafe/2010-June/079044.html
You've been warned * *
2010/8/4 Zura_
As already noted here, Haskell is a general purpose language, but you should take it with a grain of salt. For instance, you can nail with a laptop (provided that you hit the place where a HDD is located), but you prefer a hammer :) One thing is if you do it only for enjoyment, in this case you can even develop 3D shooter game in Haskell, but when it comes to production/real world use, I think it is better to maintain "right tool for the right job" attitude.
Regards, Zura
Qi Qi-2 wrote:
Is there anyone happen to come into any tasks that haskell is not able to achieve?
-- View this message in context: http://old.nabble.com/can-Haskell-do-everyting-as-we-want--tp29341176... Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.
_______________________________________________ Haskell-Cafe mailing list Haskell-C...@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-C...@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-C...@haskell.orghttp://www.haskell.org/mailman/listinfo/haskell-cafe

I think what the OP is asking for is a killer application of Haskell - Ruby,
for example, is great for web programming because of Rails.
The Haskell community is somewhat unique in that it has many killer apps and
that confuses people. It's great for version control (Darcs), window
managers (XMonad), parsing grammers (Parsec), concurrency (would STM be
considered a killer app?) etc. etc.
People outside the community get flustered because they keep trying to peg
the language as more suitable to one domain than another.
To the OP, while Haskell is not perfect (Jeremy Shaw already mentioned the
garbage-collector issue) it seems as though you could get pretty far before
you hit a wall. So pick a domain and have at it!
-deech
On Wed, Aug 4, 2010 at 10:04 AM, Kevin Jardine
In my experience two of the biggest issues in selecting any language are the pool of potential programmers and the learning curve for the programmers you already have.
If you only need two programmers to do a project and they both know Haskell well, then I think Haskell would do almost any job very well.
I also think that the pool of potential Haskell programmers is growing. But it is still much smaller than many other languages.
I do think that there is a larger learning curve for Haskell than moving from one imperative language (eg. PHP) to another one (eg. Ruby).
In my view Haskell programmers are likely to be more productive and produce more correct (and possibly even more efficient) code once they know the language well.
Kevin
On Wed, Aug 4, 2010 at 3:16 AM, Alberto G. Corona
Just to clarify, I mean: Haskell may be seriously addictive. Sounds
a joke, but it is not. I do not recommend it for coding something quick and dirty.
I use it for quick and dirty stuff all the time, mainly because what I want is often something that can be broken down into stages of processing, and pure functions are really nice for that.
If I know the input is coming from a reliable enough stream (like a unix pipe to stdin) I can use functions like "interact" to create filters, or parse some input, and produce some output.
It's pretty nice.
2010/8/4 Alberto G. Corona
Before entering haskell, please read our disclaimer:
http://www.haskell.org/pipermail/haskell-cafe/2010-June/079044.html
You've been warned * *
2010/8/4 Zura_
As already noted here, Haskell is a general purpose language, but you should take it with a grain of salt. For instance, you can nail with a laptop (provided that you hit the
where a HDD is located), but you prefer a hammer :) One thing is if you do it only for enjoyment, in this case you can even develop 3D shooter game in Haskell, but when it comes to
On Aug 4, 4:35 pm, David Leimbach
wrote: like place production/real world use, I think it is better to maintain "right tool for the right job" attitude.
Regards, Zura
Qi Qi-2 wrote:
Is there anyone happen to come into any tasks that haskell is not able to achieve?
-- View this message in context:
http://old.nabble.com/can-Haskell-do-everyting-as-we-want--tp29341176...
Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.
_______________________________________________ Haskell-Cafe mailing list Haskell-C...@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-C...@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-C...@haskell.orghttp:// www.haskell.org/mailman/listinfo/haskell-cafe
Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

David Leimbach wrote:
On Wed, Aug 4, 2010 at 3:16 AM, Alberto G. Corona
wrote: Just to clarify, I mean: Haskell may be seriously addictive. Sounds like a joke, but it is not. I do not recommend it for coding something quick and dirty.
I use it for quick and dirty stuff all the time, mainly because what I want is often something that can be broken down into stages of processing, and pure functions are really nice for that.
If I know the input is coming from a reliable enough stream (like a unix pipe to stdin) I can use functions like "interact" to create filters, or parse some input, and produce some output.
It's pretty nice.
I may be mistaken (in which case, I'm sorry for putting words in his mouth) but I understood what he was saying not as that Haskell is not suited for quick and dirty projects, but rather that Haskell for small projects could be a dangerous "gateway drug" that could seriously impact one's ability to continue to enjoy working in other languages. -- James
participants (16)
-
aditya siram
-
Alberto G. Corona
-
David Leimbach
-
Don Stewart
-
Ivan Lazar Miljenovic
-
Ivan Miljenovic
-
Jason Dagit
-
Jeremy Shaw
-
Kevin Jardine
-
Marc Weber
-
mokus@deepbondi.net
-
Qi Qi
-
Rogan Creswick
-
Thomas Schilling
-
Yitzchak Gale
-
Zura_