4 ms·
The part when they said they spent a lot of money to port to C/C++ but couldn't get same efficiency/speed, that's the problem with most porting endeavours: you
by syockit 7y ago
The part when they said they spent a lot of money to port to C/C++ but couldn't get same efficiency/speed, that's the problem with most porting endeavours: you need people who grok both languages you're porting from and you're porting to, or at least understand the specs and business logic. That COBOL program has probably been optimised so much that the code makes no sense to people without understanding of the intricacies of that language.
My team spent a whole quarter on converting R code into Python, because we wanted to use Tensorflow for machine learning(). When they finally got the thing running, they found out it wasn't performing as fast as R. I thought, that couldn't be possible, they use pretty much the same linear algebra libraries. So I peeked into the code to see what went wrong and found out that they writing it the wrong way: (1) calculated on Pandas dataframe directly instead of extracting the values first when doing matrix calculation, (2) instead of plain ndarray, were using matrix instead, which is slower. Both of which someone without experience in Python wouldn't have known.
() On a hindsight, did it have to be Tensorflow? Besides, there's already an interface for R[1]. Maybe the team decided on Python anyway in case they want to try out the plethora of ML libraries available for that language.
[1] https://tensorflow.rstudio.com/ https://tensorflow.rstudio.com/
- sound1 7y agoI have been part of couple of migration projects from COBOL (and accompanying mainframe tech) to newer tech. COBOL is a very simple language. What makes porting next to impossible is the functional knowledge of the application, how it intracts with uostream/downstream systems, all the special case handling and how business users expect the new system to behave (hint: same as the existing system). Biggest challenge to porting is that you can't port an entire system at once (takes years), so when you starting migrating part by part, it has to interact with its neighbouring systems exactly how the old system worked. And that is what is most difficult part of porting IMHO..