Live data from Hacker News

On Hiring Haskell People

well-typed.com

21–25 of 25 posts

Re: On Hiring Haskell People

#21
post #2

This is an interesting read. One part jumped out at me (sorry for the long quote) The purpose of the technical problem was to assess more directly candidates ability to write Haskell programs that can be used to solve real world problems, where memory usage and performance are important. The problem was all about evaluation order and memory behaviour. We started by asking candidates to look at a short program and say…

I don't see why strict:lazy::automatic gc:manual memory If anything, I would say strict:lazy::manual memory:poorly optimized GC. The compiler should be able to reorder the structure of expression expansion.

> strict:lazy::manual memory:poorly optimized GC

Replace "lazy" with "non-strict" and I think you're on to something. Strict and lazy both specify a particular evaluation order, but you are talking about leaving the evaluation order unspecified and letting the compiler or runtime decide which evaluation order is best.

I love today's GC, which allows me to mostly forget about memory management, but if GC still meant waiting hours for a collection I would be more inclined to manage my own memory.

Clojure's lazy sequences, combined with doall to force strict evaluation when you want it, seem like a nice compromise for now, but will likely seem archaic when a good evaluation-order optimizer is developed.

Re: On Hiring Haskell People

#22

Earlier quoted context omitted.

I see one major difference: a Haskell program with optimization mistakes will run slowly and waste memory, its performance will improve as you fix them, and eventually you can stop because it's sufficient. A C++ program with any memory mistakes whatsoever will blow up randomly, and will continue doing so after you give up trying to make it perfect (which is hardly ever feasible) and ship unstable crap like the rest o…

That's not entirely true. A haskell program can also fail in unpredictable ways thanks to lazy evaluation and memory exhaustion. It's probably still easier to pinpoint the source of the problem than it is to track down memory corruption in C++.

Yeah, it's true that performance can be so poor that the Haskell program can't get any useful work done. I was trying to express the spectrum from "perfect" to "tolerable" to "pretty bad" (and "unusable" does belong at the far end), where all the old unchecked languages only offer a cliff between "perfect" and SIGSEGV (or "random output" if you're really unlucky).

Re: On Hiring Haskell People

#23

Earlier quoted context omitted.

I see one major difference: a Haskell program with optimization mistakes will run slowly and waste memory, its performance will improve as you fix them, and eventually you can stop because it's sufficient. A C++ program with any memory mistakes whatsoever will blow up randomly, and will continue doing so after you give up trying to make it perfect (which is hardly ever feasible) and ship unstable crap like the rest o…

That's not entirely true. A haskell program can also fail in unpredictable ways thanks to lazy evaluation and memory exhaustion. It's probably still easier to pinpoint the source of the problem than it is to track down memory corruption in C++.

In most cases, tracking down memory corruption is pretty easy in C++. The simplest cases are solvable using gdb, and about 99% of the rest can be easily solved using valgrind.

Re: On Hiring Haskell People

#24
post #3

The next Haskell will be strict -Simon Peyton Jones http://www.cs.nott.ac.uk/%7Egmh/appsem-slides/peytonjones.pp... The latest research fads in CS aren't always beneficial.

Uhh, I don't see that in the Haskell 2011 standard, even as a suggestion.

It would be great, though.

Re: On Hiring Haskell People

#25

Earlier quoted context omitted.

Haskell is certainly more "beneficial" than any other language I've seen to date for certain types of programs Could you unpack that? I'd love to hear what types of programs Haskell phenomenal at, in comparison to others.

This ( http://news.ycombinator.com/item?id=1909331 ) is what I am doing - a "type of program" suited to Haskell, very algorithmic, lots of data munging, distribution, parts with proofs of correctness, compiler like pieces and so on.Can't be more specific in public - sorry about that . As for Haskell the language vs others in general, I personally like the combination of high abstraction, static typing and raw speed.…

No worries, thanks.
Post reply on HN