After much talk about OO COBOL, as it were, I finally decided I would
spend a bit of money to try it out. I bought Micro Focus Net Express
5.0 "University Edition". Technically, I got "Net Express 5.0
University Edition and Visual Studio* Software and Book Shipment
Non-Student". This includes:
Micro Focus Net Express 5.0
Microsoft Visual Studio 2005
the book "COBOL and .NET, second edition"
Total cost: $194.00
All in all not too bad, I guess. Especially considering that buying
just Visual Studio 2005 Standard Edition directly from Microsoft costs
$299! Not sure how MF swung that deal. :-)
Anyway, I've only had it a few days and I'm fairly happy. Documentation
could be better. The first few days I've been working with VS and the
..NET environment, because I was already familiar with it from using
Visual C# Express Edition and Visual C++ Express Edition. Haven't come
upon any real issues there that I can think of at the moment.
I am now looking just at the Net Express IDE, etc. Pretty blah IDE
compared to VS. Very 1995. Ah well.
I just tried the example "pclass.app" in the ISO2002 examples directory.
I've found two errors so far! One, the source file "Student.cbl" was
not included in the app project. Two, the "finalize" method of the
String class in "String.cbl" has a syntax error. It has
When it should have
After fixing those two things I got it to compile. Haven't even run it
yet. But it sure makes me leery of their quality control process! I
wonder what else I'll run into.
What would be the best way for me to report these (and other?) issues?
One other thing I noticed, by accident actually, is a few nice
extensions to COBOL2002. While coding an INVOKE statement I
Invoke o "mymethod"
To my surprise it compiled and worked with no problem. Turns out this
is an MF extension. It actually allows you to code something like
Invoke o::"mymethod"(parm1, parm2)
Invoke o "mymethod" using by value parm1 parm2
While I understand that the second, standard way is more "Cobolish", I
must say I actually prefer the MF way. It's less verbose and, to my
mind (being familiar with other OO languages such as C++, Java and C#)
easier to read. I haven't been able to actually find reference to this
extension in the actual MF documentation, but it is referred to on page
122 of the "COBOL and .NET" book.
Additionally, one can refer to properties in the same manner. Let's say
I have a class with a working-storage item defined as:
01 myproperty pic x(10) property.
I can refer to it as follows:
move "abcd" to o::"myproperty"
With standard COBOL 2002 I would do this:
move "abcd" to mypropery of o
display myproperty of o
But that's not all. I also need to have
In the Environment Division. I believe this is because using the 2002
standard myproperty is an identifier, and therefore must be "declared"
before it can be used. While with the MF extension myproperty is simply
a literal, and therefore needs no "declaration". Or something like that.
Anyway, again, the MF way seems more "natural", if less "Cobolish".
Finally, I also like that MF allows the forgoing of the need to specify
"object reference" when declaring, um, an object reference. Standard
01 o OBJECT REFERENCE MyClass.
01 o MyClass.
Much less typing, perfectly readable, and much more like other OO languages.
Anyway, those are my thoughts thus far.
Anyone else have NE 5.0? I'm sure I'll have many more comments in the