up vote 3 down vote favorite
1
share [g+] share [fb]

I have been recently allocated to training in Mainframe Technologies at my company (where I am currently working as a Trainee). I am slated to learn DB2, JCL, CICS, and Cobol during the programme. I am from a C++ background, and curious how the community here feels of these technologies.

I am also curious to know, how mainframe computers fit into today's computing scenario where distributed computing has taken over almost completely.

link|improve this question

36% accept rate
2  
You might ask in stackoverflow – Sam Sep 24 '09 at 14:53
feedback

closed as too localized by Sathya May 13 '11 at 9:36

This question is unlikely to ever help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. See the FAQ.

9 Answers

up vote 19 down vote accepted

I actually do this for a living (IBM style), so I figured I'd chime in; you don't see too many mainframe questions around. I'm guessing the reason for that is that they've all been asked already, in 1981. Mainframe technology, as seen from a programmer's standpoint, hasn't changed all that much in the last several years. Want to program? No problem, pick one of about 6 languages and get started. Need to interact with users? We can do that, here's CICS. Have at it. Don't feel like writing actual code? Check out DFSORT and ICETOOL.

This can work in your favour, if you let it. Learn the stuff, and you'll be set for years. There's another answer here to this question that raises the point that the industries that typically use mainframes (financial/insurance) will eventually see the cost of maintaining their legacy systems become too high, and switch to a more modern, distributed, platform. There is, however, a large cost to converting all these systems over to cheap, x86 servers running java. Not just the cost of doing it, but the risk involved in doing it wrong. If, hypothetically, you were to convert a system from mainframe COBOL to midrange java, and you messed up a bunch of account values or lost data in any manner, you'd probably be on the bad end of a class action lawsuit, not to mention potential punative regulatory action. This is why nobody does that. My system has about 4 million lines of COBOL, and they all (mostly)work. Like they say, "If it ain't broke, don't fix it."

But its not all sunshine and roses. Remember when I said that things haven't really changed much in a while? Well, that's not always a good thing. Mainframe programming, to me at least, is easy. Easy means boring. There's only so many things you'll need to do. Once you've done them all, you win! What do you win? The chance to do them all again! Read this file, table up the values, multiply them, get some rows from that database table, slap them together, write a report. You kinda have to go out of your way to do something cool.

So if mainframes are so boring, and dull, why would anyone use one, in this cloudy, virtualized, feel-good era? They're solid as hell. I got to go on a tour of our datacenter a while ago, and saw the zSeries we have. Its a giant, 7 foot tall, imposing black box with a giant, glowing, blue bar on the front. It looks imposing, and its reliability backs that up. Im the 4 years I've been at my current job, I remember it needing to be rebooted one time outside its normal maintenance window. I don't think we have an x86 server that can even come close to that uptime. It can process 4 million records of work in about an hour an a half during our cycle's critical path. Thats about 40GB of data in, spun around, and back out again. We process about 1 million online transactions per day, no problem. Multiply that by around 4 (other systems share the mainframe with mine), and it can still keep up. There are database tables that exceed 1TB apiece, and we can slice and dice those all day and nobody notices the drain. Mainframes are really only good for 1 thing, but they're really good at it. If you need to do the same thing millions and millions of times, every day, and the fate of the company rides on it getting done, then you want a mainframe.

This isn't to suggest that mainframes cant do cool stuff. MQSeries can do some interplatform communication. CICS has a webservice hosting facility, as well as a client. COBOL can interact with java classes to provide additional functionality. Normally you don't get to play around with that, because the vendor package has done all the "guts" for you. So there is the potential to do cool stuff with a mainframe, it just doesn't come up as frequently as it would working with newer technologies.

I don't think mainframes are a bad way to go, as a programmer. There's always a job somewhere, because there aren't many people who can do it. Just try to get involved in small, non-mainframe, side projects while you're doing it, to keep things fresh.

link|improve this answer
+1: I can't believe no one voted up this answer. Great response. – osij2is Oct 20 '09 at 19:00
Don't forget that you can also program using Java, C, UNIX shell scripts, REXX, or other languages. z/OS UNIX System Services offers quite a bit of power and flexibility for non "classical" mainframe applications. – Nighthawk Feb 12 '11 at 12:02
+1 from me, fascinating answer for someone that never seen, used or expereinced a mainframe (save for old James Bond films) – tombull89 Apr 15 '11 at 12:44
feedback

I am from a C++ background, and curious how the community here feels of these technologies.

My school (I attended during 2001-2005) primarily based it's computer science "core" around the mainframe for years. At first I didn't like it in terms of development environments, tools and overall flexibility. COBOL really isn't sexy and JCL can be quite painful. But the mainframe's power is really impressive especially compared to computers today. The ability to use a limited set of languages and tools and shuffle, sort, move, crunch data at an incredible rate is what keeps it in business. Personally, I prefer C, C++ and C# as languages but in terms of system platforms the mainframe is quite a beast even today. An expensive beast, but effective nonetheless.

I am also curious to know, how mainframe computers fit into today's computing scenario where distributed computing has taken over almost completely.

Today, mainframes are still heavily in use where large amounts of data need to processed and moved about. x86 based machines are so much cheaper, but in terms of raw I/O power mainframes still hold certain industries. Industries such as finance, insurance, some government and situations where extreme analytics are needed (weather patterns, NASA-ish stuff, etc.) are probably where you'll most likely to find the mainframe. I don't know too much about distributed computing in comparison to mainframes in the marketplace today so I can't comment on that.

My two cents: unless universities start actively teaching more mainframe based concepts, the costs associated with running a mainframe in the next 10-20 years will increase substantially enough for business to try and move away from the platform regardless of it's power. I've already seen it start happening in the insurance industry. Lots of COBOL,MVS Assembler, JCL, CICS programmers are retiring within the next decade. Who is going to replace them? Are the replacements willing to work in the depths of heavily regulated industries for a little (and I'm literally stretching the term 'little') more job security only to possibly be replaced with distributed computing, ESB, EAI, WebServices, etc. etc.? It's a tough sell for me at least as a programmer.

My lessons from the mainframe in school are still invaluable even though I don't work directly on the mainframe anymore. I worked for a large insurance company for the most part reverse engineering other people's COBOL, JCL and CICS. It's not a sexy job, but intellectually it can be fascinating for some. I think mainframe work tends to come down to personality more than anything else.

As an OO programmer myself, you'll miss OO design/elegance and see that for the most part, everything in mainframe land is tables, columns, subroutines, return codes and like any other industry: business rules. It's not as technically difficult IMHO as C/C++ but ironically it's more powerful because it's simpler because of the limited languages and what amounts to a locked-in platform. The hardware is really the biggest boon and to take advantage of it's power the programming had to be fairly simple. To my knowledge, COBOL/MVS/JCL doesn't change at nearly the same place as newer languages do so expertise is within grasp if you're willing to sit down and learn you can master it. I just hope for you that you find it enjoyable and rewarding.

link|improve this answer
feedback

That reads like an excellent resume pre Y2K, I'm not sure how relevant they are today although a lot of companies still have legacy systems to support I think they'll become less relevant over time. However, having said that the number of people with those skills will also decrease so companies that need them will have to pay more for them.

link|improve this answer
feedback

Many large companies use mainframe tech for their systems and they don't have plans to get rid of them - although they are diversifying into .net/java. If you want to be well rounded don't become a 'mainframe guy'.

link|improve this answer
feedback

Of the technologies listed I'd say DB2 is the most important. Occording to Wikipedia it is only superseded by Oracle in terms of market share. Making it the second most popular database currently in use. It is available on almost any operating system so skills you learn on a mainframe would translate easily to other scenarios.

  • JCL and CICS are limited mostly to IBM solutions. Since IBM is one of the few Mainframe vendors left this is understandable.
  • Cobol is still widely used in legacy systems and there are ports for modern OSs as well. Learning it could be beneficial but you're unlikely to see any cutting edge projects being developed in it. If nothing else, knowing Cobol would make migrating a legacy system to another language easier.
link|improve this answer
feedback

I'm trying to pick up a lot of System z myself these days, but let me just say that with "cloud computing" and the virtualization that occurs at the enterprise nowadays, the mainframe has been doing this stuff for decades: it has the power and the scale to make a really big cloud run inside.

I am currently aware of a large-to-be social networking site that has bucked the scale-out trend and has scaled-up...with Z. Let's see how that progresses. With Java and Unix-style shell support, I've been waiting for a mid- and large-system comeback.

link|improve this answer
feedback

Ive been working on mainframe from past 3 years on Z/OS. I found it really vast and very interesting job. Here i deal with all the concepts of Mainframe like JCL, CICS, Batch, HSM, SMS, Storage, IMS, DB2, Scheduling, DASDs, Tapes, VTS, Printers, SDSF, TSO, IPL, L-Pars, Work load Distribution among L-Pars, CLIST, REXX, Automation except COBOL, SQL querries and all coding stuff. Here we will see the whole background phenominon happening in Mainframe and quite complex and diversed. The demand for the Programmers may go down as all the code is almost written and only enhancement is needed. But to gain the whole System programming knwoledge it takes min 10 years of exposure and I bet you need at least 20 years to gain mastery in it. In my opinion Mainframe is a life-time opportunity to learn where you will never get bored

link|improve this answer
feedback

If you want to mess around with mainframes, but can't afford it, you'd want to give http://www.hercules-390.org/ a shot. Its a mainframe emulator ;p.

link|improve this answer
feedback

A career in IBM mainframe is still the best and most stable in the changing world of IT. I joined mainframes 16 years ago as a cobol programmer and am now working as a Delivery HEAD in a reputed IT company. I had similar questions at that time. Thanks goodness that I did listen to my mentor and joined this rare world of mainframes.

link|improve this answer
feedback

Not the answer you're looking for? Browse other questions tagged or ask your own question.