
IBM kindly gave us access to Project Bob. We did not have high expectations as everything we had heard related to being focused on RPG, therefore being a ‘C’ shop we did not expect it to have much to offer for us, but were we wrong!
Getting started
The installation instructions are not available (we could not find them) so it was a case of trial and error. First install on our Linux system failed (it ships as a tar.gz file so we thought just download and unzip!) but installation on Windows uses a .exe file so very simple indeed. The following used the Windows install, however we have created a set of instructions later that show how we got it working on the Ubuntu Linux system.
Small project
Started simple, just asked for a command with a list parameter and a char parameter, we provided the list and said the addition parameter would be variable length character string. It came back with the code for the command and then proceeded to create a CLLE program to take in the parameters… Everything looked good, we could use what it created in a very simple use case but CL is not what we normally use for CPP’s so need something in ‘C’.
We asked if it could convert the CLLE program into a CLE program, initially it just came back with another version of the CLLE, it did not seem to understand CLE is a ‘C’ program so we rejected the answer and explained CLE is an ILE C program. It then started again and came back with an ILE C program, not a lot of meat on the bones and it had missed some critical points (There were 185 list entries, it grouped them into 5 groups and expected the program to be able to work with that) however, we explained that the grouping was insufficient and asked it to consider the other list items in the code. It came back with very acceptable bones for the program splitting the code and creating helper code to help identify the list items ready for working with them. The thing that I really liked was how it took the strings and broke them down using helper programs to group the actions based on the list content.
At this point we are thinking, OK this is pretty good! Not going to replace us any time soon as a lot of the meat required for actually processing the content is just text comments, some of it would be irrelevant in a real world project and needed to be cut out, but definitely a good start in our minds.
We can see where it would definitely help with the initial code entry and speed up building the bones of the program, I am not sure I would like to keep prompting and adding questions to get the meat added to process the data as it may change a lot of the code already provided for the bones (reading through the code every time to see what has changed and the impact may not be a good use of our time?) but I can definitely see some very good pluses to using it to start the coding.
Something a bit harder
I did not expect the next part to work, we wanted it to take the code it had built for the program and create a Service Program that would export the relevant functions and hide those that did not need to be seen outside of the service program (helper functions specific to the content for one). We wanted it to supply the Service Program code, the binding directory content, the export list (SRVPGM export list) and the build script to build all of the required objects. It did a pretty reasonable job and was very quick at producing the results, certainly a lot quicker than me typing it in manually! The content was well structured and it even gave a README file to explain what was being built etc.
Maybe UIM would stump it?
UIM is something that gets very little attention these days, IBM has done nothing to improve it for years and I do not see any significant content when googling for information. So I wondered if IBM had added anything that would code up UIM objects? I asked it to build a UIM menu that would have the command listed as an option and another option to display the users message queue. It created the code without any issues and even added some additional options that would be useful in the scenario it would run. The code was clean enough to use and compiled without any issues. So UIM is covered (not sure how deep it can go) and we can use Bob to help with building the base code! Definite plus…
Our thoughts
Overall I am pretty impressed with what it did, we still want to do more experimenting with UIM and building *PNLGRP objects etc. There are a lot of API’s to play with as well, especially those that use *USRSPC content so there is a lot more testing and code checking to do.
Linux Install (Ubuntu 25.10)
tar -xvf Bob-IDE....
sudo mv Bob-IDE... /usr/share (you can use other locations)
sudo chown root:root /usr/share/Bob-IDE.../*
sudo chmod 4755 /usr/share/Bob-IDE.../chrome-sandbox (required or start fails)
cd /usr/share/Bob-IDE...
./bobide
You should now see your Bob IDE (VS Code like...)
Nope, still not able to use Bob in the Linux environment, must be more set up requirements that we need to figure out. Waiting for IBM to respond.
OK I went back to Ubuntu 24.04.3 (was at 25.10) and installed the IDE in my home directory. Tried to install bob-shell which kept failing with errors about trying to reach another IBM site, but the IDE is up and running and the chat / code bot created some code! Still someway to go in terms of figuring out how to stop some poor code decisions, but its works.