POV-Ray : Newsgroups : povray.off-topic : Haskell : Re: Haskell Server Time
6 Sep 2024 17:23:39 EDT (-0400)
  Re: Haskell  
From: Invisible
Date: 28 Nov 2008 05:12:37
Message: <492fc415$1@news.povray.org>
Saul Luizaga wrote:

> I read a bit of http://haskell.org/

I'm surprised that alone didn't scare you off! ;-)

> also downloaded and installed GHC 
> (400+ MB installed which I find great)

It comes with lots of libraries. (Plus their documentation.)

I'm guessing you've got the brand new 6.10.1 release, which is 
significantly larger than previous releases, because it comes with the 
new Data Parallel Haskell library, plus the document generation tool 
[which used to be a seperate download].

AFAIK, when you install a C compiler, you don't get OpenGL bindings, a 
parser library, 4 seperate multithreading tools, a set of container 
libraries, graph theory libraries...

> but.... no IDE

No, there isn't.

There used to be a Haskell plugin for something called "Eclipse", but 
it's suffering from bitrot ATM.

> to make libraries 
> and .dll u need this thing (can't remember the name) that need this 
> other thing (Cywin) to emulate a Linux enviroment and get compiled so it 
> can be used and the 'darcs' thing to do a kind of repository and the 
> other thing to do documentation...

Ah yes... The Windows version of GHC actually uses the Cygwin POSIX 
emulator. It also uses GCC (as in, the GNU C compiler), GAS (the GNU 
assembler), and the Linux "ld" tool. And it uses Perl.exe. (??!)

Having just said all that, you shouldn't actually need to install Cygwin 
just to compile pure Haskell libraries from source. I've never needed to.

I'm not sure if building DLLs is actually supported ATM... I know 
they're working on it, but I don't know if it's functional right now.

Darcs is a source control system (like CVS is). It's very popular for 
Haskell projects, since it's written in Haskell. Some programs and 
libraries are distributed as "use Darcs to download the current souce 
repository, and then compile it". Others are packaged and distributed on 
Hackage, and you need to use Cabal to build those. (Cabal being 
Haskell's home-grown package manager. Apparently they also translate 
packages to various native Linux package formats too.)

> I think all of them are goo ideas, what I don't like it is the PIA of 
> learn how to compile them, compile them, learn how to use it SEPARATELY 
> and finally start to gather all the DISPERSE tutorials and find what 
> BROKEN links doesn't show to stat learning the language. Which is not as 
> easy to read for non-experienced programmers, even the intro text said 
> it is, I understood better Rubi and Python (a Fibonacci example), wtf! 

Ah yes, Haskell's legendary documentation. It's scattered all over the 
place, half of it is published as academic papers that you and I can't 
access, much of it is written for compiler designers and academics 
rather than actual *programmers* who just want to know how to use the 
thing, and lots of stuff isn't documented _at all_.

For example, laziness can be a bad thing. This is highly non-obvious, 
and it ISN'T EXPLAINED ANYWHERE. If you pop into the IRC channel and ask 
about it, somebody will explain it. But then it's *still* not written 
down for the next newbie who wants to know. It's sort of an oral 
tradition; there are many "well known" techniques, but nobody has 
written any of this stuff down anywhere, making it infuriatingly hard to 
learn about this stuff.

> I'm not saying is hard but is not simple nor obvious, is something in 
> the middle I think. No doubt it's what I'm looking for in a language, 
> simple yet powerfull, but u need to go deep into it to learn how to make 
> fast and/or small .exe files that can compete with C.

...which neatly demonstrates my point. Programs compiled with GHC 
contain C debugging symbols by default - even though these are 
completely useless in a *Haskell* program. By using a special 
command-line switch, you can "strip" the symbols, making a typical 
program about 200KB smaller. But this isn't written down anywhere; I 
found out about it by chatting to people on IRC.

And yes, Haskell is designed for writing complex algorithms easily. If 
you want *speed*, it's very non-obvious how to do this. There is some 
scattered documentation about it, but currently the most expedient 
method is to post the source code and ask Don to look at it for you. ;-)

> In short: is a PIA that is worth suffering.

That pretty much sums it up, yeah.

FWIW, getting libraries and stuff to work tends to be far easier on 
Linux. (E.g., there are packages which require Automake and Bash scripts 
as part of their build process... Because, *obviously*, all coding 
happens on Linux, right? Right??) Us Windows users tend to be the poor 
relations; even Mac OS has better support!

> I'm going to continue reading and searching and downloading and 
> searching some more other peaces as I need them along.

You might try looking through this:

http://book.realworldhaskell.org/

It's the website for a book that just got released and is meant to 
explain all this stuff - not just the language syntax, but how to work 
the compiler, what the best coding strategies are, etc.

I must say, I was very excited about this book, but having actually read 
it now it's out, I'm dissapointed. Still, it's a single *large*, 
coherant body of information, all in one place. That's a step in the 
right direction...

> I see this 
> project has come a long way for a freeware, powerful, very smart, 
> programming language

The *language* is fantastic! It's the other stuff that needs to go with 
a language, such as...

> but ir really needs to put things together (IDE, 
> GHC, the .dll/libraries making thing, doc making thing and darcs in a 
> funtional package ALREADY COMPILED) and have better support (too much 
> disperse info and broken links).

...exactly.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.