Micro Focus | Supportline

Mike Rozlog makes some very interesting points in his article regarding the possible future of Java given the Oracle/Sun situation. As he says, he has likened Java to COBOL "...because almost every business today has some sort of Java somewhere doing something." He's quite right - COBOL and Java are present in just about every organization or transaction you can find.

However the key points in the post about the travails Java has been going through highlight a key difference. Whereas Java has been effectively owned by a single vendor, albeit with a process for requesting and making enhancements, it's never really benefited from an open standard that was, from the very beginning 50 years ago, driven by both vendors and users.

That process has ensured that users haven't had vendor lock-in (unless they considered the value of proprietary extensions worth the risk). We're seeing similar issues arising with the on-going discussions re vendor lock-in in the Cloud which is one of the key issues cited by IT managers when discussing their future plans for the Cloud. For COBOL, there has also been healthy competition between providers to ensure the language keeps moving forward - that has allowed the language to evolve incredibly with every changing shift in IT technology from big-iron mainframes, through Client/Server to .NET and Java.

Has the pace of change slowed down? Maybe. However looking at what we're working on at Micro Focus, I don't see that's the case. The Developer Showcase presentation on Micro Focus Live gives a flavour of some of that work.

I've no doubt Java will be around for a long time to come, however it seems every week there is a new contender to its crown. It will need to find a way to replicate the long-term success of COBOL if it is to stay relevant and that will probably involve handing ownership of the standard to an independent body and a process allowing both vendors and users to drive its evolution.

In the meantime, COBOL will continue to flourish and evolve for the next generation.

COBOL.net from Micro Focus is such a powerful tool - I just keep raving about it!


Guy Lewis Steele, Jr.. "Debunking the 'Expensive Procedure Call' Myth, or, Procedure Call Implementations Considered Harmful, or, Lambda: The Ultimate GOTO". MIT AI Lab. AI Lab Memo AIM-443. October 1977


The above paper discusses how anonymous functions can provide a very flexible and powerful way of manipulating control flow in a program without the ugly and dangerous imperative notion of GOTO. COBOL has its own notion of GOTO, the PERFORM verb. However, PERFORM in modern COBOL can be very 'nice' and not have any GOTO like behaviour; for example:



perform varying counter from 1 by 1 until counter > 100
set str to String::"Format"("Hello World {0}" counter)
set anAction to new type "System.Action"
(
delegate
add 1 to delCounter
invoke type "System.Console"::"WriteLine"(String::"Format"("{0} -> {1}," type "System.Threading.Thread"::"CurrentThread"::"ManagedThreadId" delCounter))
end-delegate
)
invoke actions::"Add"(anAction)
end-perform

Nevertheless, it would also be very cool indeed have lambda functions (from Lambda calculus) in COBOL. The above example is a bit of a cheat, because it gives a hint on how to do exactly that in Micro Focus managed COBOL. A delegate is a way of referencing a method dynamically. I.E. the method it references is chosen at runtime, not compile time. This makes a delegate somewhat like a lambda. However, when a delegate is anonymous it has no method name associated with it, only code. An anonymous delegate is a lambda. The above block of COBOL is creating lambda functions.


Moving From Lambda To Closure


In reality, the anonymous delegates in MF COBOL are actually closures. It is a common misconception that all lambdas are closures. For a lambda to be a closure it must enclose state from where it is created. Anonymous delegates in MF COBOL enclose the local storage of the method in which they are created.


COBOL And Generics


MF managed COBOL works out the box with generics. Generics are just like templates in C++ and represent a compile time polymorphism mechanism. Thus, collections can be strongly typed (for example). This has the benefit of more secure coding practices and potentially faster runtimes:




01 actions type "System.Collections.Generic.List"[type "System.Action"].


The above local storage declaration (variable definition) shows MF COBOL.net generics syntax. The square bracketed type at the end of the declaration causes the compiler to define the List collection as being a list of System.Action objects. I am using System.Action as it is a general purpose delegate class the constructor of which acts as a very good way of creating general purpose anonymous delegates in COBOL.net.


Iterating over collections



perform varying anAction through actions
set aWorker to new "AdvancedFeatures.Worker"(anAction)
set thread-start to new "System.Threading.ThreadStart"(aWorker::"Work"())
set aThread to new Type "System.Threading.Thread"(thread-start)
invoke aThread::"Start"()
end-perform

This piece of code uses perform to iterate over the generic list we created earlier. It does this using the 'though' keyword. This perform looping construct also launches new threads. Those threads will then use the delegates which we created earlier.


Putting it all together


So here is a throw away example program which uses anonymous delegates as closures and multi-threading (the .net way) and generics with iterators. Please note that there is a full threading syntax build into MF COBOL as well; so if you do not want to use the .net class library you can use the MF COBOL syntax. I might blog on that another time.



$Set SourceFormat "FREE".
program-id. Program1 as "AdvancedFeatures.Program1".

environment division.
configuration section.
repository.

data division.
working-storage section.
01 manager type "AdvancedFeatures.Manager".
procedure division.
set manager to new type "AdvancedFeatures.Manager"
invoke manager::"RunWorkflow"()
goback.

end program Program1.

class-id. Manager as "AdvancedFeatures.Manager".
object.
method-id "RunWorkflow" public.
local-storage section.
01 thread-start type "System.Threading.ThreadStart".
01 aThread type "System.Threading.Thread".
01 anAction type "System.Action".
01 aWorker type "AdvancedFeatures.Worker".
01 actions type "System.Collections.Generic.List"[type "System.Action"].
01 str string.
01 counter binary-long.
01 delCounter binary-long.
procedure division.
move 0 to delCounter
set actions to new "System.Collections.Generic.List"[type "System.Action"]
perform varying counter from 1 by 1 until counter > 100
set str to String::"Format"("Hello World {0}" counter)
set anAction to new type "System.Action"
(
delegate
add 1 to delCounter
invoke type "System.Console"::"WriteLine"(String::"Format"("{0} -> {1}," type "System.Threading.Thread"::"CurrentThread"::"ManagedThreadId" delCounter))
end-delegate
)
invoke actions::"Add"(anAction)
end-perform

perform varying anAction through actions
set aWorker to new "AdvancedFeatures.Worker"(anAction)
set thread-start to new "System.Threading.ThreadStart"(aWorker::"Work"())
set aThread to new Type "System.Threading.Thread"(thread-start)
invoke aThread::"Start"()
end-perform
goback.
end method "RunWorkflow".
end object.
end class Manager.

class-id. Worker as "AdvancedFeatures.Worker".

object.
working-storage section.
77 aDelegate type "System.Delegate".

method-id new public.
procedure division using by value toCall as type "System.Action".
set aDelegate to toCall.
end method new.

method-id "Work" public.
procedure division.

invoke aDelegate::"DynamicInvoke"(null)

end method "Work".

end object.
end class Worker.

Many of you will know Dale Vecchio, Gartner's long time commentator on IT modernization. Well, for MF Live, he has produced a couple of presentations for us and I wanted to draw your attention to some of his comments from the second of these, where Dale is considering the options available to companies for modernizing their IT, and the benefits they should expect.

At the outset, Dale highlights the need for companies to get a better understanding of their applications, and has the following to say...

"Nowadays, you can find productivity tools for developing COBOL applications that are as productive as any we’ve seen. The ability to understand your application inventory, to create sort of a ‘bill of materials’ structure that helps you see the relationships between programs, between programs and screens, or programs and files, to be able to see how data flows throughout your application, those are readily available from a number of organizations, certainly including Micro Focus, that help you do more with less. Organizations have been somewhat reluctant to spend money on these technologies and I don’t understand why. You would expect a 30% – 40% productivity improvement just through the use of these tools. Any organization that’s going to continue to manage its portfolio on their existing infrastructure over the next 5 years is crazy not to evaluate these tools. The ability to implement changes, to understand the impact of that change, to reduce the risk of failure, to reduce downtime, to prove the quality of those applications, goes up tremendously when you leverage these tools."

Take a look at the video, and you'll hear Dale talking about many other strategies for cost saving and productivity gains, not to mention managing skills, and improving business alignment.

And feel free to post your comments afterwards...

Julian

Gearing up for Day 2 of Micro Focus Live! Find out what you are missing...

We are just gearing up for Day 2 of Micro Focus Live. We started with a very ambitious goal of having a truely global event, and it makes us so proud to have done so! But only, I did not realise it will involve me staying awake for over 26 hours at a stretch!

But all that hardly matters, when you hear such positive feedback from the customers. here is what one of them posted in the forums:

“I'm planning to have two good days in front of the PC. The idea of having the conference over the Internet is brilliant, and the technical parts have worked perfectly so far. Keep up the good work :-).”

It is feedback like this that makes all our effor totally worth it!

We have had over 1200 users log in last 24 hours! Over 58 threads with bustling discussions, there is no more joy than seeing one of our biggest virtual projects come to life.

Thank you to everybody for your support so far and hope you continue to benefit from the content and the platform. If you have not yet signed up or signed in, dont miss this opportunity.

We will be back live at 10 AM Central US time again.

So, see you then - on your DESKTOP!

There are a number of great analyst presentations at Micro Focus Live but one of my favorites is the one by David Chappell. David is well known as an industry commentator and has spent a lot of time looking at Cloud platforms and potential impacts. 

He made a lot of comments that I thought were fascinating, a few of the highlights:

  • In the last 50 years, there have been 5 major platforms from mainframe to distributed. The 6th major platform is just emerging – The Cloud
  • There is a major challenge for internal IT groups – the Data Center is a bottleneck “Internal IT is about to be faced by a massive competitor, the like of which it’s never seen before.” (this could be the main message)
  • He identifies the major inhibitor to moving to the Cloud, based on his discussions with potential users as “security” – of applications and data. As he says “building trust will take time but if the incentives are big enough, that trust will be built” and compares the current state of Cloud-trustworthiness with where we were with outsourcing 30 years ago.
  • “COBOL in the Cloud has a beautiful poetry” (My favorite quote!) The Cloud is being perceived as the “mainframe of the future” and having COBOL there is a beautiful fit.
  • He is sure that some part of every IT department’s future is in the Cloud and recommends actions to understand the potential issues & benefits.
In summary – “This is a great time to be in application development. The 6th platform is happening right now and it’s a great time to be in the application development business”

I recommend you view the session and let us know what you think via the Micro Focus Live forums


#MFL09 Day 1 Round Up

So Day 1 of Micro Focus Live (at least for the Americas region) is over. Europe/India and APAC all start tomorrow.


I have to say, it's all gone better than I might have hoped for. The main conference content went live exactly on schedule at 10am Dallas time (the originally planned venue) with Stephen Kelly's keynote and continued through live discussion panels covering business and development topics. In addition to the panels, the conference on-demand content was completed with the posting of customer and analyst videos - some fantastic stories which I'll cover in other postings.

The platform worked flawlessly, streaming the video, live audio, question streams and chat rooms. Let's hope that continues for the next few days.

Hundreds of attendees took part and the live chat sessions were very busy running in parallel to the content - that kind of "talking in class" wouldn't really be acceptable during a physical event - an example of something that can only be done "virtually" perhaps? (Is this an example of augmented reality?)

Can a virtual conference really take the place of a live event? Well in many ways it's better - more participation, more interactivity, content that can be re-viewed and re-used, delivered when it suits the attendee rather than the presenter, and much more. However there are some things that perhaps can't be done on-line - face to face chats are often the best form of communication. But overall, it seems to be a pretty good alternative.

Actually, there is one aspect of the physical conference we can't quite replicate - the late night solving of problems over a beer (or several!). Perhaps that's not such a bad thing - my liver will be happy at least!



Day 1 Micro Focus Live comes to a close - what a great day!

Day 1, its finally here and its over! And wow! What a day! Let me say that again. WOW! WHAT A DAY!

There was excitement, energy, curiosity, questions, comments, feedback, suggestions, ideas and more than everything else great enthusiasm!

Thank you to everyone who joined us today. It was absolutely brilliant to "meet" you online today! Although we would have loved to see the smiles on your faces, your comments and text in the chat rooms said it all!

If you have missed today, I am sorry to say you have missed a lot! But not to worry, we still have 2 more days of great content and lots of exciting announcements coming up.

In the meantime, you can continue your discussions and post questions in the forums. Take some time to look at the on demand sessions, and come back and join us tomorrow, to continue your journey with Micro Focus, LIVE!

See you tomorrow, once again - on your DESKTOP!

So, MF Live has arrived, and I wanted to take this opportunity to draw your attention to some great content and panel sessions. As head of analyst relations for Micro Focus, it's always good to meet so many industry experts, to hear their thoughts and debate the priority issues affecting our customers. As an MF Live attendee, you have the chance to hear them too, as they take you through a veritable alphabet of interesting subjects - all the way from APM to zSeries modernization!

We have Dale Vecchio from Gartner, speaking on the impact of the economy for IT, and the things we need to be doing to make sure we come out on top.

We have Jim Johnson, chairman and founder of the Standish Group. Jim will be speaking on driving the costs out of IT, and will also be participating in our live panel on Safeguarding IT Assets - where he'll be sharing his thoughts on why latest research shows that IT's failure rate is on the increase.

And we have John Rymer, from Forrester Research, taking us into the Cloud - explaining the benefits... and some of the risks... of taking enterprise applications 'off premise', and why the CFO should be so interested.

So, head along to the MF Live site and take a look. And feel free to send me any comments or thoughts you have on what you hear.

Best regards,

Julian