493 karma · joined May 31, 2014
https://hoverbear.org/2016/10/12/rust-state-machine-pattern/
/r/2meirl4meirl
But in all seriousness, this was a great article and an exceptionally fun read!
However, I do see the appeal for building off of the COBOL foundation using more modern languages. Writing a UI in COBOL on CICS is an absolute nightmare to deal with and maintain (not to mention my firm's egregious install and deployment process that is nothing but red tape and TPS reports). I'm working on a project right now where we're migrating some of our reconciliation screens to the web, where the UI communicates with a Java/Spring Boot server that itself interacts directly to the database using DB2 Stored Procedures.
In this space, I see a need for moving away from COBOL. But for the batch processing? Not a chance.
Just because the language is old doesn't mean that it can't be the right tool for the right job. For batch processing-type tasks, there nothing better than COBOL on the mainframe. By default, COBOL doesn't allow for you to dynamically allocate memory. That makes it incredibly easy for the compiler and system to optimize the compiled code and make it run super fast.
COBOL is great for what it was designed for: processing data. If you want to read data from a file/database, process it in some way, and then save that data back to the database/another file, you can't do much better than what COBOL offers.
While this would all be solved if requirements were decided as a team, much of the time that's not the case. Alas.
Those same corporations are also not blind to the fact that most of their COBOL workforce will be retiring, en mass, in the coming years, and are quite desperate to hire anyone willing to learn. My employer paid for me to attend a 3 month training program in order to learn how to use and develop on the IBM zSeries mainframe. It was a fantastic experience. As well, those same companies are looking to move as much of their COBOL code off of the mainframe and onto a distributed, server platform. While you can't beat the sheer power of Big Iron chugging along through a batch cycle, the CICS user interface leaves a lot to be desired. It's much more cost and time effective to build a web interface that talks to a Java middle-layer that lives on the mainframe (such that it can directly talk with DB2 or some such), compared to designing, building, and testing a CICS program to do the same thing, yet in a much more ugly fashion.
1. https://crates.io/crates/sodiumoxide 2. https://crates.io/crates/pumpkin
One side thing that I did want to touch upon was their use of their Ionitron bot to handle "dicey" situations when dealing with other users. Is it really that big of deal telling folks on the internet potentially bad news? So their Pull Request was denied/closed for some reason. Who the hell cares if they throw a temper tantrum? They're nothing more than a username on the Web to the rest of us. As long as the maintainers act with poise and integrity (and I've no reason to think that the Ionic team doesn't do that already) then they'll only be looked at in a favorable light.
Plus, for all of COBOL's faults, it's simply more efficient for "business-y" processes. All anyone cares about is manipulating data found within a file or database, and that's what COBOL excels at.