I am currently working on the PRIMA Web Site to make it reflect a change
in direction of the business.
(
https://primacomputing.co.nz)
We had a run of bad luck where our ISP died then, after I managed to get everything transferred to a new host, a short time after the site was
settling down, that ISP sold out to a different one and that has meant a
few trivial but annoying changes.
I wrote the site originally in ASP.NET and it has proven to be excellent
for web development. The later versions of Visual Studio allow me to
develop pages with a design surface just like Win Forms or WPF and it is
very easy to wire them to the C# code-behind that drives all the events,
then FTP them to the server with Filezilla.
Everything runs as compiled code on the server and it is much more
secure than interpreting client side scripts.
It allows me to retain a "hand-made" look and feel which may not be as
slick as a templated WordPress site, but which makes us a little
different from most of the sites out there.
Anyway, recently I put the final touches and end-point processes into
the PRIMA Tools. It has taken me 13 years... :-)
The last processes for PowerCOBOL to Dot.NET are integrated and I am
satisfied with the testing.
The onset of Covid affected the demand for migration (or maybe our niche
was closing anyway... I'll never know) so the Company has had to be run
on its reserves to keep going.
I decided that if we are to encourage any remaining people to move their standard COBOL from indexed files into RDB, or their PowerCOBOL GUI applications into .NET, it is counter-productive to sell them the tools
and help them learn how to use them. Much quicker and cheaper for
everybody, if we just do it for them.
So I am moving PRIMA to be a service company where you have a shopping
list of what you need and I am writing an online calculator that will
give you a "ballpark quote" based on what you want done.
This arose after there was a recent pricing enquiry here and the OP
really didn't get that the price will vary depending on a number of
factors and quantities. I gave him a fairly accurate ball-park but, in
fact, it could have been less expensive if some other factors had been
added in. Hence, an algorithm that will work like a calculator on the
web page and give people a good idea of what THEIR specific cost is
likely to be if they go with our solution.
I've also taken a bit of time to reflect on the tool development and I
have a few observations that might be of consideration to those of you developing applications in COBOL. The following is opinion, based on experience, so it is arguable:
1. Go with a modular design.
The overall design should have 3 tier design if it is for the Network. Presentation Layer, Business Logic Layer, and Database Access Layer.
(Our tools generate all of the code for these layers, salvaging the
COBOL Business Logic from your legacy, creating the DAL Layer and (for PowerCOBOL...) converting the Presentation layer to .NET Forms.
Each of these functions will be on the new shopping list...
If you are doing Batch Processing in COBOL and simply moving to a modern RDBMS, it is very tempting to integrate everything into
monolithic application programs, then go through and simply change all
the indexed IO to be Embedded SQL... My advice: DON'T DO IT! I've
covered it here:
https://primacomputing/PRIMAMetro/RDBandSQL3.aspx
(Again, we can offer you a service where we analyze all your existing
COPY books and design an optimized Relational Database, along with a DAL
Layer to handle it (if required). We can also do the code conversion of
your Legacy so that it uses the DAL Layer.
BOTTOM LINE: Small is beautiful. Isolate functionality into components
and use layered collections of these components. This has minimal
disruption when it needs maintenance, and it is much quicker and easier
to locate problem code.
Objected Oriented Programming (in COBOL or any other OO language)
facilitates this approach.
2. Be careful with TABBED controls in your software.
(There are a number of "COBOL PlugIns" that provide a GUI facility. We
deal mostly with PowerCOBOL from Fujitsu.)
It is very easy to let tabbed functionality get out of control. You design a new function; add a new TAB... all well and good but don't let
it go too far...
One of our tools has more than 10 TABs in it and some of these are for functionality that is no longer used. You'd think it would be pretty
easy to simply cut out the unnecessary ones... I worked out it would
take me 1 - 2 days to do this properly. Who has days available for "cosmetics"...? (as we are no longer selling the tools, I immediately
picked up 1 - 2 days.... :-))
3. I have been doing quite a bit of COBOL manipulation using Visual
Studio Code. It has many of the advantages of VS (like Intellisense and Bookmarks...) and I think it does make COBOL coding easier. It's a free
tool and it will deal with ANY Version of COBOL that is at least COBOL
'85 compliant. (I should think it would be very good for GNU COBOL...,
but I'm sure Eclipse is also good.)
4. Back in the 1990s I suggested that COBOL people should expand their
toolbox. Sadly, there was an attitude that "Everything I want to do, I
can do in COBOL..." (I always thought it showed limited aspiration as to
what you want to do...). A recent browse of COBOL jobs showed that COBOL
alone is not really enough to get you employed. There are still
mainframe jobs and knowledge of that environment is good, but they will
be much more interested if you have network knowledge as well.I saw ads
for PHP, Java and COBOL, C# and COBOL, and Windows scripting that were
marked as "desirable".
I would recommend that if you are still interested in expanding your
skill set, take a look at Rust and JavaScript. I have only had limited
exposure to Rust but it really impressed me. On my list for when I get
time... :-)
I'd be interested to hear what people are actually doing, in terms of
COBOL, if there are still people writing COBOL every day.. Why not post
a summarized response? And, of course, any comments on the opinions
expressed above would be acknowledged and/or discussed.
Cheers,
Pete.
--
I used to write *COBOL*; now I can do *anything*...
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)