The New Haskell Homepage
161–170 of 258 posts
Re: The New Haskell Homepage
#162Earlier 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…
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
#163Earlier 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…
Re: The New Haskell Homepage
#164Please 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…
Re: The New Haskell Homepage
#165Earlier 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…
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
#166Earlier 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.
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
#167Please 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…
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
#168This 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
Re: The New Haskell Homepage
#169Re: The New Haskell Homepage
#170It 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'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.