Live data from Hacker News

The New Haskell Homepage

new-www.haskell.org

161–170 of 258 posts

Re: The New Haskell Homepage

#161
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.

Re: The New Haskell Homepage

#162
post #78

Earlier quoted context omitted.

Yes - the practical reason is to focus on the newcomer's experience. Information overload is actively harmful to someone coming to haskell.org to learn about the language from scratch. Omitting content that is primarily valuable to experienced Haskellers is a feature, not a bug.

This sounds like a dangerous trade off to be making. It's reminiscent of what we saw with GNOME 3, or even Windows 8. The experience is made much worse for existing users, in a vain attempt to "simplify" the design to allegedly appeal to new users who may not even really exist in practice. It's obvious now that it didn't work well in those cases, and I don't see why this case would be any different. As an occasional…

"This sounds like a dangerous trade off to be making. It's reminiscent of what we saw with GNOME 3, or even Windows 8."

It's also reminiscent of what we saw with the iPhone, and nobody would say that the experience was much worse for users of previous smartphones. There are times when simplifying and giving structure to existing content just makes sense.

I'm curious, what content do you miss from the old page that can't be found in the Community or Documentation sections in the new design?

Re: The New Haskell Homepage

#163
post #78

Earlier quoted context omitted.

This sounds like a dangerous trade off to be making. It's reminiscent of what we saw with GNOME 3, or even Windows 8. The experience is made much worse for existing users, in a vain attempt to "simplify" the design to allegedly appeal to new users who may not even really exist in practice. It's obvious now that it didn't work well in those cases, and I don't see why this case would be any different. As an occasional…

"This sounds like a dangerous trade off to be making. It's reminiscent of what we saw with GNOME 3, or even Windows 8." It's also reminiscent of what we saw with the iPhone, and nobody would say that the experience was much worse for users of previous smartphones. There are times when simplifying and giving structure to existing content just makes sense. I'm curious, what content do you miss from the old page that ca…

I'd like to see the Documentation, Community and News content on the front page, rather than hidden away on those separate pages. The new design adds an extra, unnecessary level of indirection in order to get to this useful information.

Re: The New Haskell Homepage

#164

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. There are a lot of other things we still need to do as well, like ensure all redirects and subpages work properly. Source: I'm one of the Haskell.org administrators, and we pushed this out only today.

I love the tutorial! I couldn't help writing down some notes while going through it, here they are if you're interested in reading: - Really would love to return to previous steps to review things (for example, reviewing what the difference is between a list and a tuple) - "You just passed the (+1) function to the map function." But didn't I also pass [1..5] to it too? It's unclear to me whether map is a function whi…

'(+1)' is a function expressed in 'section form'. It is equivalent to the function '\x -> x + 1'.

Re: The New Haskell Homepage

#165
post #59
post #51

Earlier quoted context omitted.

Also maybe pick a simpler example and not play into the stereotype that Haskell is for people who think they are smarter than everyone else.

Could you suggest a simpler example? Finding primes is something that is taught in the first programming class in Indian high schools. I guess I've never thought of it as something hard. I looked at nodejs.org, and their first example is a web server! Python has the Fibonacci as it's second example (the first one show's numeric operations). Ruby does simple string operations on it's home page. While I think that is i…

> Could you suggest a simpler example?

Anything that can be Googled and understood what it is trying to accomplish is less than 2 minutes.

I tried Googling "sieve" and got nothing of use, then "prime sieve" that has a good wikipedia article that is (probably?) about the correct thing but doesn't fit into the "easily understood in a couple of minutes) rule.

So... literally anything. Hello world. First impression shouldn't be that you need to be a math expert to use the language.

Re: The New Haskell Homepage

#166

Earlier quoted context omitted.

"This sounds like a dangerous trade off to be making. It's reminiscent of what we saw with GNOME 3, or even Windows 8." It's also reminiscent of what we saw with the iPhone, and nobody would say that the experience was much worse for users of previous smartphones. There are times when simplifying and giving structure to existing content just makes sense. I'm curious, what content do you miss from the old page that ca…

I'd like to see the Documentation, Community and News content on the front page, rather than hidden away on those separate pages. The new design adds an extra, unnecessary level of indirection in order to get to this useful information.

Fair enough, but as other posters have noted there's no reason why those contents need to be placed directly at the home page; they could be located at an inner page that you'd bookmark for reference.

The purpose of a good landing page is not to serve as an index for all the content (that's what site maps are for), but to explain the concept and structure of the site to someone that haven't seen it before. The new page is much better in that respect.

I miss a link to the current Haskell wiki in the new design, but I definitely wouldn't expect to find a list of all the wiki pages on the land page, but available under the Documents section.

Re: The New Haskell Homepage

#167

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. There are a lot of other things we still need to do as well, like ensure all redirects and subpages work properly. Source: I'm one of the Haskell.org administrators, and we pushed this out only today.

I love the tutorial! I couldn't help writing down some notes while going through it, here they are if you're interested in reading: - Really would love to return to previous steps to review things (for example, reviewing what the difference is between a list and a tuple) - "You just passed the (+1) function to the map function." But didn't I also pass [1..5] to it too? It's unclear to me whether map is a function whi…

In Haskell, all functions take one argument. Also, operators are functions.

First, the one argument thing is known as currying. With higher-order functions, returning a function is admissible, so

    map :: (a -> b) -> [a] -> [b]
can also be thought of as:

    map :: (a -> b) -> ([a] -> [b])
like so:

    ghci> :t map length
    map length :: [[a]] -> [Int]
As for operators being functions, function names that are alphanumeric default to prefix (e.g. f 10) while those that are symbolic default to infix (e.g. 10 + 18). To use an alphanumeric name in infix, use backticks, e.g.:

    ghci> 5 `max` 6
    6
Use parentheses to prefix an "operator"-style name, like so:

    ghci> (+) 5 6
    11
The (+1) that you're meeting is an additional bit of syntactic sugar. It's identical to (\x -> x + 1). It allows you to do things like this:

    ghci> map (2^) [1..5]
    [2,4,8,16,32]
    ghci> map (^2) [1..5]
    [1,4,9,16,25]

Re: The New Haskell Homepage

#168

This appears to be a continuation of chrisdone's work on an "alternative Haskell homepage" [1], which was previously posted to HN [2]. [1] http://chrisdone.com/posts/haskell-lang [2] https://news.ycombinator.com/item?id=7814354

Yes, the new page is signed by Chris Done at the bottom. I'm glad the Haskellers listened to his advice and accepted the proposed design; now it's time to tweak it with some real use.

Re: The New Haskell Homepage

#170
post #35

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. http://www.cs.hmc.edu/~oneill/papers/Sieve-JFP.pdf

Well it's the haskell.org landing page, of course they're showing off the type of code that Haskell is good at. In your link, the purely functional version (15 lines around a priority queue) is more complicated than a naive version with a mutable array, so why would they advertise it?

I personally think the priority queue one is somewhat simpler than a fixed array algorithm. It also produces an infinite list of primes (or generator) instead of the primes up to a particular number. This is especially important in Haskell.

I'd love to see it as it shows off some great data structures available in the libraries (like priority queues) but it's getting longish.

The mutable array version is basically the same as imperative code everywhere

    sieveUA :: Int -> UArray Int Bool
    sieveUA top = runSTUArray $ do
        let m = (top-1) `div` 2
            r = floor . sqrt $ fromIntegral top + 1
        sieve  do
          isPrime  do
              writeArray sieve j False
        return sieve
It's a bit noisy syntactically and doesn't show off as much interesting stuff.
Post reply on HN