Academic code typically just has to work once or a handful of times, for a small number of highly expert users, frequently just for the author. Ease of update is of the essence - you'll rewrite most of it many times, as your understanding the problem change. You can use all sorts of ugly hacks so long as you get what you're after. If any of it ever becomes commercially released or whatever, there'll need to be a comp…
Ask HN: What’s the biggest difference between professional coding and academia?
11–20 of 54 posts
Re: Ask HN: What’s the biggest difference between professional coding and academia?
#12Re: Ask HN: What’s the biggest difference between professional coding and academia?
#13Academia isn't preparing developers for this reality. Many will try to fake it or hide under imposter syndrome, which is fine if everybody in the company is an imposter, otherwise it is plainly obvious you are incompetent.
Re: Ask HN: What’s the biggest difference between professional coding and academia?
#14Academia only worries about getting results for publishing. Testability, maintainability, clean design, all take a back seat because once the paper is done the author will likely never touch the code again.
Currently having this problem right now. The authors also don't respond to emails either.
Re: Ask HN: What’s the biggest difference between professional coding and academia?
#15Re: Ask HN: What’s the biggest difference between professional coding and academia?
#16Re: Ask HN: What’s the biggest difference between professional coding and academia?
#17This is the biggest difference between academic and professional programming in a single pithy statement, from a paper that Knuth wrote.
Re: Ask HN: What’s the biggest difference between professional coding and academia?
#18Re: Ask HN: What’s the biggest difference between professional coding and academia?
#19Professional coders are paid to code.
Re: Ask HN: What’s the biggest difference between professional coding and academia?
#20A few years back, some of the researchers (professors and graduate students) claimed they were interested in more testing and possibly taking some of their work (Betrfs[1], specifically), and productionalizing it. In response, I spent a lot of time with kvm-xfstests[2] and gce-xfstests[3][4] testing infrastructure, cleaning them, making them work in a turn-key fashion, and providing lots of documentation.
[2] https://github.com/tytso/xfstests-bld/blob/master/Documentat...
[3] https://github.com/tytso/xfstests-bld/blob/master/Documentat...
[4] https://thunk.org/gce-xfstests
Not a single researcher has used this code, despite the fact that I made it so easy that even a professor could use it. :-)
The problem is that trying to test and productionalize research code takes time away from the primary output of Academia, which is (a) graduating Ph.D. students, and (b) writing more papers, lest the professors perish. (Especially for those professors who have not yet received tenure.) So while academics might claim that they are interested in testing and trying to get their fruits of the research into production code, the reality is that the Darwinian nature of life in academia very much militates against this aspiration becoming a reality.
It turns out that writing a new file system really isn't that hard. It's taking the file system, testing it, finding all of the edge cases, optimizing it, making it scale to 32+ CPU's, and other such tasks to turn it into a production-ready system which takes a long time. If you take a look at how long it's taken for btrfs to become stable it's a good example of that fact. Sun worked on ZFS for seven years before they started talking about it externally, and then it was probably another 3 years before system administrators started trusting it with their production systems.