Hacker News new | ask | show | jobs
by insulanian 3665 days ago
There is an interesting article about rewriting C# project in F#, with impressive results: http://simontylercousins.net/does-the-language-you-use-make-...
1 comments

This is a really great case study, but I can't help but think some of the improvement comes from it being the second attempt at the project.

I'd really like to see some case studies going the other way: F# --> C# [or C++].

At the least, you could do C# --> C# [ie complete rewrite]. Any time you do a rewrite with more knowledge of what worked and what didn't, you'll have a better system.

So ultimately, the essay [like most] leaves the question: Is F# better? Or is it just that complete rewrites can provide substantial improvement?

From all I gathered about people that story was related to, it seems the F# project was done without looking at the C# implementation, on basis of same specifications.

If you were tasked to implement a project because first implementation failed, would you even read the first implementation or just base your work on the specification?

Oh good point -- it does say they were separate teams.

Should one read previous implementation? That's a difficult question. If you're worried about losing your perspective from seeing a single solution, then perhaps you're right that you shouldn't.

But it's possible that merely implementing it in a different [more functional] language would encourage sufficiently different patterns to allow you to keep perspective.

With all of this said, I am a huge fan of both C++ and Haskell. I had just had an internal realization that these stories might not be extracting the positive effect that a rewrite might have on a code base [even though, as you say, that is likely not relevant here].