Merlin has been withdrawn. Bob has been introduced. What's the connection, and what did we learn?
Merlin was an interesting concept: a fully cloud-native (optionally on-premises cloud) self-contained complete CI/CD development environment for IBM i.
Merlin failed of adoption. There were reasons for this which appear in the glaring light of hindsight, among them being:
- The Merlin project spent too much effort on the editor. I very much liked the approach, Eclipse Che and Theia vs. VSCode, but it was a time-loser (again, in hindsight) as Liam Allan came racing up on his Code 4 i ninja bike alongside the IBM 18-wheeler.
- The Merlin project never blessed a test suite runner to go along with Merlin's CI/CD pipeline.
- The real problem here is that a winning design pattern has never been chosen for running tests suites simultaneously and asynchronously on IBM i.
- Does everyone have a full copy of the test database?
- How does it get refreshed?
- How do you designate which instance of a CI/CD pipeline possibly running, as noted, simultaneously and asynchronously against one test machine?
- The complexity of OpenShift alienated a community that resists to this day the evident (sez I) truth that going forward production IBM i LPARs need a partner Power Linux LPAR.
- Fundamentally, Merlin was what I call an "Everything Box". It tried to solve the problems of remote IBM i development by shifting the entire process to a cloud container: source, tools, repository, everything, except the one critical piece that is problematic to this day, the test suite.
Now here comes Bob. Bob appears to be a winning formula. What's the difference?
- Bob is constrained to the task instead of trying to be an all-encompassing environment.
- Bob will
- generate code
- convert code
- generate test cases against a chosen and IBM-approved open source test suite
- document code
- revision code
- work in conjunction with existing extensions to the overall VSCode IDE.
- Bob leaves the user the freedom to leverage existing VSCode extensions and external tools of the user's choice.
- Bob doesn't try to solve the problem (yet) of
- moving the code to the IBM i
- compiling the code
- running a CI/CD pipeline
- running the test suite
Bob is better factored than Merlin, and more in tune with the spirit of the times.
This doesn't mean that Merlin was a mistake. IBM's embrace of Code 4 i and the speedy conceptualization and execution of Bob could not have happened without the Merlin experiment first to make matters clear from every angle. It also served to draw the attention of the community to the problems and solutions and crystallize our readiness to move forward when the better solution would emerge.
I am encouraged by Project Bob and look forward to its general availability and widespread adoption.