2 ms·
Sounds more like a problem with technical debt than with py3k. If you have that much code and are completely unable to port it, then your engineering staff is t
by bayesianhorse 11y ago
Sounds more like a problem with technical debt than with py3k. If you have that much code and are completely unable to port it, then your engineering staff is thoroughly underpowered. And that will get in you in trouble soon, even if you stay with Python 2.
- rcthompson 11y agoConsidering most academic labs that write scientific computing code have no engineering staff and most of the code is written by academics analyzing data, yes, I'd have to agree that "no engineering staff" constitutes an underpowered engineering staff. But more importantly, keep in mind that many academics move on to a new institution every couple of years (after finishing undergrad/Ph.D./post-doc, etc.), so any code written more than 5 years ago likely has no maintainer and no one in the lab knows how it works.
- akshatpradhan 11y agoThat's a problem that needs to be addressed by hiring a full-time maintainer for all legacy code. For example, Clark University has an endowment of $355 Million. That's three times the size a company like Veracode. Why are universities unable to hire maintainers for all this legacy code and bring this legacy code up-to-date with current standards and best practices?
- hobarrera 11y agoBecause it's really really hard to justify. My dad is a chemist, and I recently learnt that some Fortran code he wrote in the nineties is till being used in academia. Try to explain to his colleagues that you need an on-site engineer to maintain python code just a decade old. Anyhow, while I disagree with the need of a dedicated engineer to port code to python3, porting isn't much of a big deal. If your dependencies work (eg: your libraries are python3-compatible), most of you work is done by 2to3. Very little effort is needed after that. The problem up to now, has been waiting for you dependencies/libraries to achieve python3-compatibility (recursively, of course). But we've already moved past that.
- bayesianhorse 11y agoThere's no reason why you can't use "closed" Python 2 code, or even Fortran for that matter, from Python 3. It's just a matter of interfacing. I highly doubt that "End of life" means you can't get it to run anymore.
- tripzilch 11y ago> code written more than 5 years ago likely has no maintainer and no one in the lab knows how it works. Very true, but this happens regardless of whether it was Python2.x, Python3 or MATLAB code. The problem is that many academics writing scientific code rarely have the training/education/experience to write maintainable code (if you feel this does not apply to you, you are probably the exception, and if you ever shared code with colleagues, you are aware how rare your skill is in academia). Also most of it is or started out as, quick experiments, try-outs, for that, and some other (even political) reasons, there is not a lot of incentive to write beautiful maintainable code.
- bayesianhorse 11y agoAt least in my opinion, using Code of which nobody knows what it does is a much bigger problem than just having to port it to Python 3. But then again, a lack of reproducibility sometimes seems to be what it takes to succeed in Academia...