I
IMVU Engineering
engineering.imvu.com · Company blog · on HN since 2010
IMVU's engineering team writes about running a large virtual-world service, covering Haskell, testing, memcached, real-time web, and developer policies.
What HN saysHN links it mainly for 'What it's like to use Haskell', which commenters cite as a production account; an author also answered questions in a thread.
24HN people shared it
6linked it in comments
22stories submitted
777story points
9 years agolast shared
2010people per year2026
Most-shared posts
- 1What it's like to use Haskell7 people · 392 points · first shared 2014 · 300 comments on HN
- 2Imvu’s Employee-Friendly Policy on Side Projects2 people · 31 points · first shared 2011 · 4 comments on HN
- 3Mutation Testing2 people · 30 points · first shared 2015 · 4 comments on HN
- 4The Case of the “Page Can't Be Displayed” Intermittent Selenium Test2 people · 6 points · first shared 2015 · discussion on HN
- 5The Real-time Web: How to Get Millisecond Updates with REST1 people · 167 points · first shared 2014 · 23 comments on HN
- 6Testable IO in Haskell1 people · 76 points · first shared 2015 · 50 comments on HN
- 7IMVU Memcached Usage Per Node at 150K Requests/Second1 people · 30 points · first shared 2010 · 7 comments on HN
- 8IMVU releases their real-time server statistics package1 people · 9 points · first shared 2012 · 1 comments on HN
- 9IMVU’s Approach to Integrating Quality Assurance with Continuous Deployment1 people · 8 points · first shared 2010 · discussion on HN
- 10Hack Week at IMVU1 people · 6 points · first shared 2010 · discussion on HN
- 11The Case of the Trailing Space1 people · 4 points · first shared 2014 · 1 comments on HN
- 12Writing Resilient Unit Tests1 people · 4 points · first shared 2012 · discussion on HN
- 13HTML5 – New UI Library for Games1 people · 4 points · first shared 2011 · discussion on HN
- 14Tracing Leaks in Python: Find the Nearest Root1 people · 3 points · first shared 2010 · discussion on HN
- 15Charming Python: How to actually close a socket by calling...1 people · 3 points · first shared 2014 · discussion on HN
What HN people wrote when they linked it
tikhonj · 2016-10-16
I just helped a relatively junior developer—sharp but with no real functional programming experience—get started with Elm for a small internal tool. He got something up and running almost entirely. I think I spent around ~1.5 hours helping him get things set up and understand the basics.
Personally, I'm actually not the biggest fan of the design philosophy behind Elm, but I do have to admit it's easy to learn with some great introductory learning materials. Getting somebody motivated up to speed on maintaining Elm is not an issue.
For what it's worth, I think the same is true of Haskell-style languages in general: with a bit of guidance, it's not hard to make new programmers productive. That's the experience IMVU[1] had when switching several internal projects to Haskell from PHP, if you want a case study. I met the lead engineer who wrote that post once and he explained that it actually took about as long to train an incoming developer (with no FP experience) in Haskell as it did to train incoming PHP developers on IMVU's in-house PHP "flavor" (frameworks, code organization... etc).
Picking up Haskell or Elm is a bit difficult by yourself for a few reasons: there's no clear path on what to learn, the learning materials are a bit hit-or-miss and there's a lot of incidental complexity. However, if you provide a bit of guidance (ie curate libraries) and help overcome some of the incidental complexity (ie install the compiler and tools) it's surprisingly accessible.
[1]:…
coolsunglasses · 2014-08-09
Haskell isn't like most languages people have used. You can't dive into the sort of things you're talking about unless you've used at least OCaml and even then there's going to be a fair bit that's unfamiliar.
It's more like learning to program again, not just a language.
The course I lay out is because it's what I've found to work best. Part of the priority is minimizing dropout rate.
Trying to shove people through a 'practical' project had one of the worst dropout rates of any of the approaches I tried.
Just accept that you're going to learn some basics before dazzling the world with your web app and you'll be much happier for it.
It doesn't take long anyway, if you have a well-designed course and/or experienced people helping you. [1]
I've been thinking about writing a book to address some of the pedagogical problems. I don't know if it'll work out, but I have a few ideas.
So far, the course I recommend not having enough "practical" examples has been pretty far down the list of problems. I'd rather focus on the rough edges that I've observed tripping people up.
Are you learning Haskell right now?
[1]: http://engineering.imvu.com/2014/03/24/what-its-like-to-use-haskell/
chadaustin · 2016-06-15
Hi! Author here. Let me know if you have any questions.
Andy, the same Andy mentioned in the article, wrote a blog post in 2014 with his perspective of what it's like to use Haskell in production, if you're interested. https://engineering.imvu.com/2014/03/24/what-its-like-to-use-haskell/
chas · 2014-12-27
It sounds like imanaccount247 is from IMVU, they wrote up their experience with Haskell here: http://engineering.imvu.com/2014/03/24/what-its-like-to-use-haskell/
It was previously discussed on HN here: https://news.ycombinator.com/item?id=7472452
jes5199 · 2014-03-30
I disagree. I've never seen a program fail because of an unsafePerformIO call, but I've never seen a Haskell project that didn't suffer from at least one mysterious, hard-to-solve unevaluated-thunks-filling-up-RAM bug.
Even the company that was on HN recently cites thunk leaks as their biggest problem with Haskell: http://engineering.imvu.com/2014/03/24/what-its-like-to-use-haskell/