4 ms·
I know very little of COBOL but I have often wondered if bank COBOL software could be transpiled (a quick googling shows there are transpilers). That is COBOL -
by agentgt 9y ago
I know very little of COBOL but I have often wondered if bank COBOL software could be transpiled (a quick googling shows there are transpilers). That is COBOL -> Some_Other_language and perhaps Some_Other_language -> COBOL.
Then in theory you could write unit tests in some language to test the real COBOL and the transpiled COBOL.
- juliangoldsmith 9y agoThe problem is, when you have 10M lines of complicated COBOL, transpiling it to JavaScript will make things completely unmaintainable.
- agentgt 9y agoSo it sounds like COBOL really isn't the problem. Its that is 10M lines of complicated probably poorly written (in terms of hard to understand and little comments and no test coverage) code. Otherwise companies successfully transpile far bigger code bases than 10M lines... IMO the first thing they should be doing is writing automated tests against the existing COBOL. A transpiler might help this process.
- marktangotango 9y agoYou are absolutely right, that's the nuance that's often missed in these discussions. The COBOL applications in question grew organically over decades to encompass business processes for entire industries. There was never a single design document or even goal. The other thing is how these systems were architected. They were mostly all green screen apps that build data files that were then fed into extensive (complex, large) nightly batch processes. For example today when you do a transfer between bank accounts, you may expect the transfer to be immediate. most often it's shown in a pending status until after the next nightly process. This is why.
- marktangotango 9y agoEdit: further, the problem with transpiling is that these systems are still under active development. For example, banking systems have to be updated annually for changes in regulations and tax laws. If you translated all you COBOL to Java (which results in truly inscrutable code (cobol has unusual control flow constructs, even besides go to)). Then as an organization you're face with either modifying the Java code (this is very, very, very bad), or regenerating from COBOL periodically, which kind of defeats the purpose.
- collyw 9y agoI always assumed it was so the banks could skim off the interest generated for another night.
- woah 9y agoAre there any good resources on the architecture of these systems? It sounds very different from the application and web programming that I know and it would be interesting to learn about it.
- fiftyacorn 9y agoIn my experience these systems are not poorly written - the process around these systems is huge, with reviews and reviews, and lots of testing
- nickpsecurity 9y agoThis company has been doing it for quite a while with an amazing toolkit for language work: http://www.semanticdesigns.com http://www.semanticdesigns.com http://semanticdesigns.com/Products/Services/LegacyMigration.html?Home=COBOLTools http://semanticdesigns.com/Products/Services/LegacyMigration... They also have a proprietary, parallel language I'd like to see go FOSS: http://semanticdesigns.com/Products/Parlanse/index.html?Home=ParlanseForDMS http://semanticdesigns.com/Products/Parlanse/index.html?Home...
- deleted 9y ago[deleted]