Please note this homepage is NOT final and it's going to see revisions before we push it out to the actual website, including many tweaks to the content and probably some styling tweaks too.<p>There are a lot of other things we still need to do as well, like ensure all redirects and subpages work properly.<p>Source: I'm one of the Haskell.org administrators, and we pushed this out only today.
Well, it sure looks nicer, I'll give you that.<p>I'm more interested in the content, though. I was just trying here and there over the last week or so to learn some Haskell - people always seem to be raving about how cool it is. I found my way to the CIS 194 class link, the first one on the page, and I find that it really isn't very good for learning.<p>I went through the first page, trying to run some of the stuff. I find that the syntax of the ghci REPL seems to have almost nothing to do with the syntax shown so far. Apparently, I have to use let for every variable, which was never mentioned, and there are lots of funny tricks for how to use multi-line stuff. I still have no clue how to actually write something, compile it, and have some sort of output in the main ghc compiler. Is there a tutorial anywhere that actually helps you learn the language through doing useful things, instead of throwing a bunch of syntax that you can't do anything with at you?<p>Speaking of tutorials, the old page links to like 500 of them or so. I have no clue how to figure out which one to start with. If you're re-doing it, please link no more than 3 learning pages, no matter what. Have the rest in some buried page somewhere if you must, but keep the front page manageable. How is anybody supposed to make sense of however many tutorials and courses you guys have linked on the old one? I gotta figure I'm the prime audience for this stuff, but I have no idea where to start on your current page.<p>While I'm at it, can anybody recommend something like a step-by-step thing for people who are proficient in several other languages, but have never seen any Haskell before? Like where every little step has something you can actually type in, run somewhere, and get some sort of output?
Please, get rid off the primes example, as it is horrible inefficient (in the sense of, "Ok, let's find the first n primes by a simple well-known algorithm, like the Sieve of Eratosthenes") and a simple (non-pure) array-based approach will kick its ass.<p>Such a toy-example just contributes to the wrong belief that Haskell is just useful in academics or teaching. Some time ago I did implement the sieve in several languages and I also considered Haskell but set for an unpure approach (IOUArray) and it was extremely fast (getting close to C/C++ and outperforming Go, Java, etc.). Obviously such an example is not good to present Haskell's novel ideas but this toy example is worse then no example.<p>edit: Sorry, did not want to appear nit-picky, I like the language and the new design.
It bugs me a bit that the example code is brute force trial division instead of a true prime sieve. Sure, it highlights lazyness but the algorithm is less efficient.<p><a href="http://www.cs.hmc.edu/~oneill/papers/Sieve-JFP.pdf" rel="nofollow">http://www.cs.hmc.edu/~oneill/papers/Sieve-JFP.pdf</a>
Neat! A nitpick: I haven't used Haskell, so I'm trying to read the prime sieve example in the corner, but there's very little contrast between the background and the nonalphanumeric characters. Some brighter syntax highlighting would be a better choice against that dark background.
I get paid to write C++ code. I'm pretty good at it. I understand it's normal usage syntax very well. I don't fucking know what a god damn thing means in Haskell.<p>λ 5 + 7
12 :: Num a => a<p>What the christ? The 12 I get. Got it. The colons? Not sure. I think it's just a dumb separator. Num is type! What the hell is a => a? I have no idea.<p>In the top they have an example.<p>primes = sieve[2..]
where sieve (p:xs) =
p : sieve [x | x <- xs, x `mod` p /= 0]<p>Jesus. Where to begin? First of all I had to consult a dictionary for sieve. I guess primes is a thing (function?) that takes 2 or more things? Not sure. Not sure what 'where' means in this context. Don't have a good guess. Have absolutely no fucking clue what "p:xs" means. Also no idea what "p : sieve" means. I am equally stumped as to what "[x | x <- xs," means. The "x 'mod' p" I can guess! The /= 0 I'm not sure. Maybe "/=" is equivalent to "!=" ?<p>And here's the thing. I've tried to read a dozen or so tutorials on Haskell and I give up every time because the syntax isn't explain. Please, please for the love god just tell me what your abstract symbols represent!<p>Edit: <a href="http://learnyouahaskell.com/" rel="nofollow">http://learnyouahaskell.com/</a> Reading that now. So far it's pretty good.
A few thoughts:<p>It's really distracting that typing in the REPL changes the size of the containing div.<p>The blurry photo of (I assume) the audience of a lecture just doesn't work - what's it supposed to do?<p>There's very little useful information - everything is at least one click away. If the whole purpose of the site is to 'sell' to a new audience then I guess that's not an issue, but I expect to be able to go to the site of a language & get very quickly and easily to useful manual/wiki pages explaining whatever feature I'm having trouble with.<p>The basic style is very 'modern' but it looks more like a Kickstarter page that's there to sell you something trendy and new than the front page of a site giving you information about a language. It's very pretty but (to me) sends completely the wrong message about what this site is.
Another suggestion would be more examples under the clear concise code bit--possibly in a carousel.<p>Additionally, all examples could be loaded into the "Try It" section, so I could type `take 4 primes` or something.<p>Instead, in my attempt to load the primes function.. I was met with this bit.<p><pre><code> λ let sieve (p:xs) = p : sieve [x | x <- xs, x `mod` p /= 0]
can't find file: Imports.hs</code></pre>
> How often do programs crash because of an unexpected null value? Haskell programs never do!<p><pre><code> > head []
error "Prelude.head: empty list"
</code></pre>
Ok, so you don't call it `null`, but it still crashes the program. Its deceptive to claim null isn't present because it's conventional to avoid using "error" in favor of Maybe, but it's still there, and used throughout Prelude. The REPL on the site hides these errors too, which is going to be pretty confusing to a newcomer who takes the head of the empty list and gets back "null" (the absence of a value) of type a.<p><pre><code> > (head x) + (head (head x))
:: Num a => a
</code></pre>
Hiding errors makes it hard for a beginner to see what went wrong, although perhaps not in this trivial example.
I'd either link from the heading, or add some variety to the "View examples" links.<p>Possibly something like:<p><pre><code> * Show me a world without Null
* How does Haskell help me scale?
* When does less code give me more?
* Take me on a tour of Hackage</code></pre>
This appears to be a continuation of chrisdone's work on an "alternative Haskell homepage" [1], which was previously posted to HN [2].<p>[1] <a href="http://chrisdone.com/posts/haskell-lang" rel="nofollow">http://chrisdone.com/posts/haskell-lang</a><p>[2] <a href="https://news.ycombinator.com/item?id=7814354" rel="nofollow">https://news.ycombinator.com/item?id=7814354</a>
Great timing, as I've just started to explore Haskell in the last few days.<p>First, I really like the style of the new site. My only gripe is that the section with the lecture hall photo and the videos right below it don't seem like an efficient use of prime real estate (and there is no context for the videos, I have no idea what they are or why I would want to watch it. The thumbnails suggest that I'd be clicking on an hour long lecture.). As a new user, I'd rather see the features in this space.
The box for "Try haskell expression here" is a little confusing, I tried to click on the white area to focus and didn't get any response. You apparently have to click on the same line, near the lambda symbol to focus?<p>Edit: Additionally, I really miss the lovely download page <a href="http://www.haskell.org/platform/" rel="nofollow">http://www.haskell.org/platform/</a> - and the non-home pages feel a little underwhelming and underdeveloped in general.
The "Try It" section really needs to have the text cursor be active anywhere I can click on the box to type. At first it made me think that I had to move over to the grey bracket-cursor (and thus a little frustrating/confusing/unexpected). Especially since I can click to the right (when the cursor is a normal pointer) and it gains focus.<p>This page is strongly trying to convert a viewer, the experience can be smoothed here.
I feel like the sieve is a poor example, since it's not actually the same algorithm as a sieve, and has a worse running time. It is possible to write a very nice lazy infinite sieve.<p>See O’Neill's "The Genuine Sieve of Eratosthenes" paper for details.<p><a href="http://www.cs.hmc.edu/~oneill/papers/Sieve-JFP.pdf" rel="nofollow">http://www.cs.hmc.edu/~oneill/papers/Sieve-JFP.pdf</a>
Love it! Looks like all that's missing are the "View Examples" links under the features.<p>One note: the quick walkthrough mentions "up there" in reference to the repl, but the repl is actually to the left of that text when viewing on a non-mobile-sized screen. It should probably just not mention the relative positioning.<p>I suspect Fibonacci would be a more familiar code sample than Sieve, no?
Would love to see a " this is where to use Haskell and why guide" just something a novice can see and say "oh this is why I should learn this instead of x"
I like the new site. It's beautiful and elegant. The weird flowers on the download page are gone. But the link to "Introduction to Functional Programming Using Haskell" takes me to the publisher page for the textbook "Aqueous Environmental Geochemistry".
I like how it says "Rock-Solid Ecosystem", yet I have had the exact opposite experience trying to install even the most basic things with Cabal. I still can't get the Sublime text haskell plugin to work due to a dependency that fails to compile.
The site feels too flashy, and the giant photo feels distracting. It would be nice if it felt "cleaner." As it is, I feel like a newcomer would find it somewhat overwhelming visually.<p>I think something nice and simple like Rust's homepage[1] would be nice. Or maybe something like Racket's homepage[2].<p>[1] <a href="http://www.rust-lang.org/" rel="nofollow">http://www.rust-lang.org/</a>
[2] <a href="http://racket-lang.org/" rel="nofollow">http://racket-lang.org/</a>
Wow I've gotta say, this looks great.<p>Something that bugs me is I couldn't copy the code in the upper right to the code "try it" section. I haven't used haskell for 6-12 months, so I'm not sure what I'm doing wrong.<p>Here's a screenshot: <a href="http://imgur.com/N2SdFVq" rel="nofollow">http://imgur.com/N2SdFVq</a><p>Regardless of <i>how</i> to fix this, I think something should be changed so this can't be someone's first impression.
I love Haskell and OCaml, and other functional languages. However, no matter how intelligent and higher-level functional language becomes, I don't think they can replace procedural language, especially for time-based programmings, such as user interface effects, animations, or network-dependent operations. Some features are inherently procedural by their nature, and functional language are not functional for describing them.
Many people know C++ and Java but have no sense for functional programming. It would help them to read equivalent known code to compare it with Haskell.<p>For instance FP Complete's Introduction to Haskell presents some ugly Java code which can be written in two elegant lines in Haskell (video around 03:25 min).<p><a href="http://www.youtube.com/watch?v=Fqi0Xu2Enaw" rel="nofollow">http://www.youtube.com/watch?v=Fqi0Xu2Enaw</a>
Scores high on layout, not so much on usability (I, too, took a while to realize there was a live REPL on the page) or readability.<p>(I'm one of those people who tried to learn Haskell a couple of times but lacked use/time to really get to grips with it, so I can actually parse some of it, but the samples ought to be simpler.)
The very first example I see, the infinite sequence of primes, seems to indicate it is Eratosthenes' Sieve, but it is not. <a href="http://www.cs.hmc.edu/~oneill/papers/Sieve-JFP.pdf" rel="nofollow">http://www.cs.hmc.edu/~oneill/papers/Sieve-JFP.pdf</a><p>In fact, the correct implementation, with some discussion of the bad performance characteristics of the example on the front page, is in your own wiki: <a href="http://www.haskell.org/haskellwiki/Prime_numbers#Sieve_of_Eratosthenes" rel="nofollow">http://www.haskell.org/haskellwiki/Prime_numbers#Sieve_of_Er...</a><p>Reading further, it looks like it is the correct implementation of "Turner's Sieve", but I don't think (though I may be wrong) that I'm in the minority that sees "prime" and "sieve" and thinks "Eratosthenes".
"Try haskell expression here" + lessons is very nice.<p>Just a little nitpick:<p><pre><code> λ map (+1) [1..5]
can't find file: Imports.hs
λ map (+ 1) [1..5]
[2,3,4,5,6]:: (Enum b, Num b) => [b]
</code></pre>
though the first expression is what suggested in lesson 4.<p>Edit: looks like some random bug.
I'm in the process of finishing LYAH, and I'm also following CIS 194 which is available online (<a href="http://www.seas.upenn.edu/~cis194/" rel="nofollow">http://www.seas.upenn.edu/~cis194/</a>, <a href="https://docs.google.com/file/d/0B0_mzHzbl3GbNXBWMVZPVGNtX3M" rel="nofollow">https://docs.google.com/file/d/0B0_mzHzbl3GbNXBWMVZPVGNtX3M</a>). I've learned about it from <a href="https://github.com/bitemyapp/learnhaskell" rel="nofollow">https://github.com/bitemyapp/learnhaskell</a>.<p>I think CIS 194 would be nice to be added in the book listing section? It's a great course with exercises and at the same time refer to chapters of both LYAH and RWH.
Just trying out the tutorial: there may be an error on step 11.<p>followed the instruction to type out 'a' : [] and got:<p>λ 'a' : []
can't find file: Imports.hs<p>It worked when I clicked on the command, but that may not be obvious to a new user.<p>λ 'a' : []
"a":: [Char]
Lovely page, but that primes example is going to put off more people than it attracts, IMO. If you're not familiar with Haskell, or functional programming in general, the syntax and concepts shown there would appear alien and obtuse.
I started doing a redesign some time ago, but never finished it [1].<p><a href="https://dl.dropboxusercontent.com/u/30225560/poc-haskell.png" rel="nofollow">https://dl.dropboxusercontent.com/u/30225560/poc-haskell.png</a>
I like the look. A question: I have always used the "The Haskell Platform" download page and installer. The new download page looks like it is just Haskell, cabal, and default libraries.<p>I am running ghc version 7.6.3 and cabal version 1.16.0.2.<p>Haskell experts: should I do a fresh install? (I am on OS X and Ubuntu).<p>Also, shameless plug: I blogged earlier today about using Haskell to access OpenCalais and the DBPedia SPARQL endpoint: <a href="http://blog.markwatson.com/2014/07/some-haskell-hacks-sparql-queries-to.html" rel="nofollow">http://blog.markwatson.com/2014/07/some-haskell-hacks-sparql...</a>
Whoa, the change happened! My girlfriend and I both think it looks awesome :)<p>Anyone know if there are plans to add the interactive/javascript examples as well?<p>EDIT: Had noscript on, everything looks great.
Awesome new look!<p>I sort of have a thing for commas:<p><pre><code> An advanced purely-functional programming language
An advanced, purely-functional programming language
</code></pre>
Much better, no?
Looks really good, but as others noted, the examples should really work `as is` within the REPL. Also I think wikipedia has better example code. Everybody knows fibonacci and can compare it.<p>Please add a nice Haskell facts and features tab, like: Appeared in 1990; 24 years ago
More facts and features on: <a href="http://en.wikipedia.org/wiki/Haskell_(programming_language)" rel="nofollow">http://en.wikipedia.org/wiki/Haskell_(programming_language)</a>
The downloads page is a bit too deemphasized; the big, bright Download button in the old page was a good call to action. However, I am really glad to see that the downloads page no longer recommends the Haskell Platform for OS X or Linux.<p>I wish there were better free book recommendations on the Documentation page. LYAH's style is obnoxious, and RWH has gotten quite long in the tooth.
I like the new homepage. One little nit-pick, I actually find the quicksort example a better candidate (instead of the sieve one). I think it highlights the expressiveness of the language a lot, and everybody implemented quicksort in some other language at one point, so they can compare.
I used to hate Haskell at University, until the final couple of weeks of the module when I started to "get" it. After that, exams and dissertation (which was in Python) got on top of me and I never revisited it. Now, coming back to it I am starting to remember the fun I had :)
I dislike this. Where is the 'call for me to do something'?
Why are there blurred people on an escalator(?). Don't make me pick between concise and reliable.
I'm more than willing to distill your messaging if it would help in any way. If only as an alternative.
Excellent! This is a big improvement. There seem to be some bugs with the "try it now" terminal, but it was easy enough that I actually gave Haskell a try after many years. It's got me interested enough to actually install it and start hacking away!
I find the disappearance of the Haskell text and logo in the navigation bar to be really strange. It feels like I'm going to a completely different website every time I click anything on the menu.<p>I think it should always stay there, or something else should be done entirely.
Just a nitpick: Why don't you stay consistent and use Open Sans for all the main text and the logotype at the top. Having "Haskell" in Ubuntu when the rest of the site is not stylized like that looks a little silly.
The "Try It" section doesn't load without cookies/localStorage enabled. Having run-time state should be fine for tracking where someone is up to on the tutorial; persistent state shouldn't be necessary.
I don't quite like this. The old one had front page links to the haskell wiki. This design is really information undense. Also, links to Hoogle and packages would be fantastic in the front page
It's pretty! BUT! I get the feeling that I am viewing websites through a post box slot. This seems to be the trend with currently fashionable sites, with the wall to wall slot appearance.
Off-topic: I want to learn a functional programming language, and I was thinking to go with Scheme (because, you know, SICP...) Would there be any advantage for me to go with Haskell instead?
I think Haskell deserves a concise, functional homepage. Ideally, without any side effects (like animation). Every URL should always return either the same content, or an appropriate monad.
I really, really want to get into Haskell and functional programming in general, but I have no idea what sort of project to build with it. Anyone have any good suggestion?