8 ms·
This comes off as extraordinarily entitled. Academics are not rewarded for good software engineering. The incentives are not properly aligned. And more-over, t
by throwawayjava 9y ago
This comes off as extraordinarily entitled.
Academics are not rewarded for good software engineering. The incentives are not properly aligned. And more-over, the that's not necessarily a bad thing! Research is research, not engineering.
Stop expecting production quality code out research groups. The purpose of research is to explore ideas, not implement some epsilon of your product.
If you want a perfect exposition in addition to a high quality implementation, there are ways to get it. Pay the consulting fees. Or pay the tuition. Or hire the students, Or if you can't afford that, wait for the thesis/book.
> Is pseudo-code a fucking premium?
In a paper? Well... yes. Categorically, emphatically, yes. If you want to read an exposition where space does not come at an extreme premium, you'll have to wait for the thesis/journal article.
Space comes at a premium for stupid reasons (artificial page limits) but also for good reasons (expositions cost time, which costs money and grad student time, and fuck if I'm doing a 10 year Ph.D. at $7/hr because you're irritated at some python code.
> Can you at least try to give some intuition before showering the reader with equations?
Either 1) no because you're not the intended audience, in which wait for the thesis/TR/dissemination blog post where I'll work every gory detail; or 2) no because the equations are hard for all of us to understand and no one has solved the exposition problem yet.
> How the fuck do you dare to release a paper without source code?
So all the products you work on all totally open source, eh? Either fully commit to Stallmanism while living off less than minimum hourly wage or get off your high horse.
> Why the fuck do you never ever add comments to you code When naming things, are you charged by the character? Do you get a bonus for acronyms?
Do you realize that OpenAI having needed to release a "baseline" TRPO implementation is a fucking disgrace to your profession?
Jesus christ, who decided to name a tensor concatenation function cat?
Because they're being paid 30k a year at best for 80 hour weeks under intense pressure to implement new ideas and the prop firms and Googles are knocking with 200k comp packages and honest to god 5 day work weeks. Time is (SERIOUS) money when you're slogging through grad school. Again, walk a mile.
And again, really, the point is to test ideas. For every publicly release line of code coming out a research group there's 5x or 10x unreleased code implementing dead ends.
If you want all this, stop bitching at over worked and absurdly under-paid grad students, and start calling your congressman to support higher NSF budgets so research groups can hire more permanent research support staff.
- xupybd 9y agoI agree with you but I think this highlights a point. If academic articles are out of reach of people who work in the industries they're researching, doesn't something need to change? Shouldn't incentives be better aligned. Should this type of complaining be celebrated?
- throwawayjava 9y agoI edited my comment to address this point. > Shouldn't incentives be better aligned. Should this type of complaining be celebrated? IMO it's not as clear cut as some people think. Honestly, is the cost worth the cost to tax payers if the super high quality implementation is going to be out-of-date in 3 months? It depends on the research project and how fast the field is moving. At base, I wonder if the current system isn't reasonable. If research can't even stay fresh long enough to make it from conference paper to journal paper, maybe we shouldn't be throwing hundreds of thousands of engineering dollars at quality implementations.
- marcus_holmes 9y agoI think you're building a straw man of "hundreds of thousands of engineering dollars" here All we're talking about is better quality code. This isn't a huge cost. It's usually just a matter of a small change in mindset while coding, and a few minutes refactoring and commenting once the code is working. Those minutes are repaid (and more!) the very next time the author has to revisit that code again. Good quality code saves money, it doesn't cost it. You can leave error conditions unmanaged, leave the UI as a complete mess, don't worry about internationalisation, none of the things that add serious cost to a commercial project. This is not that. If research coders aren't aware of code quality currently, maybe it's time that they got taught it? Writing good code will help researchers who write code, not hinder them.
- throwawayjava 9y ago> I think you're building a straw man of "hundreds of thousands of engineering dollars" here Been there, done that, no. Refactoring a crappy implementation into a high quality, documented code base takes an enormous amount of time. And literally no one in academia cares about it. Industry doesn't care about it either because there's a presumption that any software created while in academia is inferior quality. If you advise students to do this type of work with the expectation of any type of personal reward, you're a liar. They're basically doing software engineering that academia won't reward them for, and their year of software engineering won't count as job experience if they go into industry. And they aren't being paid software engineering salaries. It's just exploitative. > All we're talking about is better quality code. This isn't a huge cost This flies in the face of what the market bears in tech salaries. But no matter; I'll just never pay my software devs more than 30k, and also only give them maybe 20% of their time for actual software development... I'm sure I'll get high quality code! /s > Those minutes are repaid (and more!) the very next time the author has to revisit that code again. Which for 99% of research code will literally never happen. > If research coders aren't aware of code quality currently Tons of grad students leave academia after their phd, take very high paying jobs in industry, and become valued members of software engineering teams. Research jobs are not software jobs. The goals and incentives are different. Sometimes it makes sense to create a maintainable research software system, but usually it makes no sense because the code is throw-away for testing an idea. That's OK. No one owes you an epsilon of your product.