Slashdot Mirror


What is Mainframe Culture?

An anonymous reader asks: "A couple years ago Joel Spolsky wrote an interesting critique of Eric S. Raymond's The Art of Unix Programming wherein Joel provides an interesting (as usual) discussion on the cultural differences between Windows and Unix programmers. As a *nix nerd in my fifth year managing mainframe developers, I need some insight into mainframe programmers. What are the differences between Windows, Unix, and mainframe programmers? What do we all need to know to get along in each other's worlds?"

145 of 691 comments (clear)

  1. Comment removed by account_deleted · · Score: 5, Funny

    Comment removed based on user account deletion

  2. An idea... by Anonymous Coward · · Score: 5, Funny

    "What do we all need to know to get along in each other's worlds?""

    You could try exchanging porno links to one another, that seems to be the way nerds bond. Just a thought.

    1. Re:An idea... by cratermoon · · Score: 3, Funny

      Only if you know where all the lineprinter porn resides!

    2. Re:An idea... by CrudPuppy · · Score: 3, Interesting

      the best way I can think of it is with an analogy:

      windows geek : unix geek :: unix geek : mainframe geek

      they've generally been around the block a few more times, know shit most unix geeks dont, and have quirks unix geeks dont.

      "PUNK! when i was your age, i was writing operating systems... in binary... on punchcards!"

      --
      A year spent in artificial intelligence is enough to make one believe in God.
    3. Re:An idea... by bigman2003 · · Score: 4, Interesting

      Actually, a mildly funny comment.

      All of the programming I do startes out in a graphic environment, whether that is Visual Studio, or Dreamweaver.

      I really have no need to 'program' boxes, fonts, text areas, etc. (Which of course don't exist in a CLI anyway...)

      But using something like Visual Studio you get to draw out your 'forms' and make them look pretty. Then double-click an object to put in the corresponding code.

      Of course most projects require about 99% of your time in code-view- but that 1% in design view would probably take me 5-20 times longer if I was using code to lay things out.

      I thought the best line from the article was:

      Unix culture values code which is useful to other programmers, while Windows culture values code which is useful to non-programmers.

      I've never seen it written so succinctly- but that is basically it. I only value two things when creating a program:

      A- can a neophyte use it...preferably, someone who doesn't even really understand the purpose of the program.

      B- will it be easy for me to come back and modify it.

      I stopped worring about 'efficiencies' and 'cycles' years and years ago. It is so nice to live in an era where it is nearly impossible for me to tax the hardware.

      But that's me...maybe you're doing some video editing, or rendering, or something like that. But when I am mostly dealing with data storage and retrieval, nothing should take over a few milliseconds.

      --
      No reason to lie.
    4. Re:An idea... by bit+trollent · · Score: 2, Insightful

      Looks like I have been modded down as AC a bit too much lately so I will have to post logged in.

      Bottom line: Dreamweaver is a very useful tool for laying out and designing asp.net pages. You are such a smug son of a bitch that you can't even recognize this obvious fact. Let me lay it out for you:

      You use Dreamweaver to make well formatted, attractive web sites. You (I) then use Visual Studio and c#/SQL for what you reffered to as real computer work. I did this for a (now defunct) startup and I'm not even out of College.

      I guess you can go on telling me about how smart you are (salary != brains) and feel free to ignore everything I have said. If you can be simultaniously condecending and ignorant that will certainly be a plus.

    5. Re:An idea... by dbIII · · Score: 2, Insightful
      I stopped worring about 'efficiencies' and 'cycles' years and years ago.
      Some people still have to worry - when you run an operation on some data that takes three days on a dual 3GHz Xeon, and you have different datasets doing the same stuff on another eleven machines, time savings of a couple of percent make a bit of a difference.

      When we get more computing power we just get it to do more stuff, it's no excuse to be slack.

    6. Re:An idea... by GCP · · Score: 4, Insightful

      Come back to me when you've graduated and have >10 years under your belt.

      Maybe he doesn't have that kind of experience, but I have more than twice that, and I think you have all the earmarks of a 15 yr old Slashdot troll, with the bragging, profanity, "hahaha" in place of argument, "I make X dollars/year" blather, posting as AC, etc.

      Normally I wouldn't waste time on an adolescent troll, but I want to make sure something is clear. I was one of the architects involved in the creation of Dreamweaver, and it we designed it to be used by programmers, not just Web designers. Among other things, it was designed to be used just as BitTrollent is describing: as a code generator for GUI elements. Typically, you'll lay out a page, or some page element such as a form, graphically in the GUI view. Then you'll switch to the embedded code editor and tweak it. Then you can either use the code editor to embed inline code in a language like PHP, or "code behind" (as in ASP.Net, using VS as he described to write the C#), or do what I've done on occasion and copy the generated HTML into your source in some other language (e.g. a "HERE document" in Perl or a C++ header file, perhaps after running it thru a preprocessor to turn tokens into method calls or whatever).

      A troll who can't understand that real programmers who create GUI apps sometimes start with a GUI layout and code generation tool--or even with a simple drawing program--doesn't really understand the process. If he really has ten years of experience himself, it must have been pretty narrow experience to be so unfamiliar with such a common form of development.

      --
      "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  3. My guess... by ShaniaTwain · · Score: 5, Funny

    ..Punchcards, ENIAC tattoos and nipple piercings that look and spin like tape reels.

  4. Cats by infonography · · Score: 3, Interesting

    Herding Cats. Some are big, some are small, some aren't cats at all.

    --
    Sorry about the writing. Robot fingers, you know? Cliff Steele in DOOM PATROL #23
    1. Re:Cats by cowbutt · · Score: 3, Interesting
      As a fairly dyed-in-the-wool UNIX type (or more precisely, POSIX, since I started with the Amiga, which is more POSIX-like than anything else, IMHO), VMS seemed very odd to me when I picked up bits and pieces from an ex-DEC greybeard VMS geek.

      Bits of it are marvellously elegant and I struggle to think of clean ways of implementing equivalent things within a UNIX-like OS. Other bits seem oddly like DOS or embedded OSs such as vxWorks (more precisely, DOS and vxWorks sometimes look a bit like VMS). And then, if you install UNIX-originated software such as TCPware on VMS, bits of it /do/ start looking like UNIX.

      I was able to support TCPware on UNIX purely because many of the tools were ports or recreations of key parts of the BSD IP stack. I was even able to help a customer set up PPP when none of our experienced TCPware engineers could, because it was using pppd, as on Linux.

      The most annoying things about VMS - to a UNIX geek - are a) no 'cd' command b) apparent lack of relative paths c) system-wide date/time a la Windows, except in parts, when TCPware is installed (making for a very confusing experience around DST changeover days, especially if you have NFS in the mix too).

    2. Re:Cats by Nutria · · Score: 2, Informative
      Other bits seem oddly like DOS or

      Heh. When I 1st used VMS, it was after being an MS-DOS user for a few years, and seperately, an MS-DOS & DOS/VSE progammer for a couple of years.

      I thought I had died & gone to heaven! The interactivity of MS-DOS & the richness of the m/f all wrapped into one perfect package.

      The most annoying things about VMS - to a UNIX geek - are
      • a) no 'cd' command -
        SET DEF
      • b) apparent lack of relative paths
        DIR [---.FOO.BAR.SNIVLE]SNAGGLE.BAZ
        Each "-" send you up one level, and ".", if you remember, is the subdirectory delimiter
      • c) system-wide date/time a la Windows,
        Huh?


      Unix was very strange to me, with it's cryptic commands and *ix could definitely learn a thing or 20 from the VMS command-line parser, like only having to type in a maximum of 4 characters for each command and option, even when it's a long command like DIRECTORY.

      But bash & grep have grown on me and DCL is really showing it's age.
      --
      "I don't know, therefore Aliens" Wafflebox1
    3. Re:Cats by EvilTwinSkippy · · Score: 2, Insightful
      cd is standard?

      Last I checked VMS and Unix were developed around the same time (Late 60's, Early 70's). The idea that everything should look the same and act the same didn't appear until the Macintosh in 1984.

      You don't exactly walk around Europe and say "narrow streets are so difficult to drive around." Ok, Americans do, but last I checked the streets were there first.

      And before you get all high fallootin about how MS-DOS has used CD since the begining, it hasn't. There were no subdirectories before the release of DOS 2.0 in 1983. (I started using DOS with version 2.1, so I don't know how it worked before then.)

      --
      "Learning is not compulsory... neither is survival."
      --Dr.W.Edwards Deming
  5. A better name for this article... by Sebastopol · · Score: 4, Funny

    "Giant Fucking Flamewar on /.: Story @ 11"

    --
    https://www.accountkiller.com/removal-requested
    1. Re:A better name for this article... by shigelojoe · · Score: 5, Funny

      Story @ 11 ...and 11:15, 12:15, and next Wednesday at 3:00. All worded slightly differently, of course. ;P

  6. Answer: by deutschemonte · · Score: 2, Funny

    What do you all need to know to get along in each other's worlds?

    1. Windows bad
    2. Unix good
    3. Linux better

    This is Slashdot, what kind of response did you think he was going to get?

    --
    The preceding message was based on actual events. Only the names, locations and events have been changed.
    1. Re:Answer: by Technician · · Score: 3, Insightful

      What do we all need to know to get along in each other's worlds?"

      What is needed is open specs on anything that enters or leaves the machine whether it be a file, protocol, or hardware handshake.

      The biggest area's of contention are printers that won't work, this sound card, video card, input device, etc won't work because of no published standard of how to talk to it. We need the end of closed drivers, files and secret drivers.

      Open standard items work great on all platforms. Take for example Ethernet and TCP/IP. The cable is standard as well as the low level signals. Plug in a cable, follow the spec for the address and it works.

      Anything that uses TCP/IP on Ethernet also just works.

      Plugging in my printer into a Centronics port takes care of the low level hardware connection, but there are big problems after that. The printer box should not require anyting beyond a Centronics, USB, or other standard connection. The idea of Requires Windows 2000 or Windows XP is for the birds. Saying it is Postscript is 100% OK. I can connect that to anything with the proper hardware port (Centronics, USB, Ethernet, Firewire, etc.) that supports Postscript.

      --
      The truth shall set you free!
  7. The Difference by Anonymous Coward · · Score: 2, Insightful

    The difference is single threaded and multi threaded...Unix programmers know that they have to assume that they could be walking over someone else's session info.

    Windows programmers always seem to assume they are alone in the computing ether.

    1. Re:The Difference by Quantam · · Score: 4, Insightful

      The word you're looking for is "user", not "threaded". From my experience, Windows coders are much more knowledgeable about threads than Unix programmers. Back when I was just learning some POSIX programming (I've been doing Windows programming forever) I'd ask even halfway experienced Unix programmers how to create a second thread in my program's process, and the usual response was "why on earth would you ever need to do that?"

      --
      You have tried to support your argument with faulty reasoning! Go directly to jail; do not pass Go, do not collect $200!
    2. Re:The Difference by cratermoon · · Score: 4, Insightful
      "why on earth would you ever need to do that?"

      That IS a good question. In Unix, creating a new process and using IPC is so simple, you almost don't need threads. In fact, before POSIX threads, Linux threads WERE processes. The advantage you got over threads was cleaner separation of memory and variables -- always worth a lot when programming in three-star C. The disadvantage, of course, was that same separation meant that everything you wanted to share had to go through IPC.

    3. Re:The Difference by schon · · Score: 3, Informative

      Isn't the whole point of an operating system to allow programmers to make that assumption?

      No, the whole point of an operating system is to provide a stable programming target and perform resource management.

    4. Re:The Difference by jericho4.0 · · Score: 3, Insightful
      "Unix really seems like it was designed for a computer with a single CPU (and it probably was; but even current Unix implementations don't seem to have adapted very well to the new capabilities of computers, in this respect), whereas NT was designed to run on SMP systems with many threads and/or processes running truly simultaneously."

      Whatever. Unix has been on 64+ CPUs for a long time now. Is anyone selling an NT machine that comes close?

      --
      "A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
    5. Re:The Difference by afidel · · Score: 4, Informative

      Unisys sells 32 CPU windows boxes, HP sells up to 128 CPU Superdomes capable of running Windows 2003 Datacenter edition, and there's probably some others I'm not aware of. Since quite a few companies have high end systems using Itanium 2 processor's there's very little reason not to support windows server, it just might sell some more units =)

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
    6. Re:The Difference by Fallen_Knight · · Score: 3, Insightful

      ... in windows that is true, threads are better period. That is NOT because of process vs threads its bceause of how windows handles process and threads. threads are efficent and multiple processes aren't.

      as said by someone who knows more then i do:
      "There are no threads in Linux.
      All tasks are processes.
      Processes can share any or none of a vast set of resources.

      When processes share a certain set of resources, they have the same
      characteristics as threads under other OSes (except the huge performance
      improvements, Linux processes are already as fast as threads on other OSes). "
      read
      http://www.uwsg.iu.edu/hypermail/linux/kernel/0103 .0/0935.html

      the one that is faster and better for a task depends on: programmer skill, style and design. Do you want shared memory, harder debugging, for a bit of a speed increase, or a clean modular design, simple processes working togeather. smaller project sizes, at possibly a bit of speed cost. Its all about trade offs and in linux you can pick either so its all comes down to the programmer usualy, in windows threads are the only way to go,

      Now to you last paragraph, windows is was NOT designed to be SMP, and if it was it sucked ass at it. linux has had SMP support for a long long time. And the fact windows is 4CPUs at most, and linux is running on 64+ CPU machines all the time, and on huge clusters of 1000s of boxes shows me that linux was designed pretty well.

      And as always linux is ahead of the curve overall then windows (in the kernal) at all times. and runs on more system.

      and the other reply so far is from a total idiot.

    7. Re:The Difference by Quantam · · Score: 2, Informative

      Now to you last paragraph, windows is was NOT designed to be SMP, and if it was it sucked ass at it. linux has had SMP support for a long long time. And the fact windows is 4CPUs at most, and linux is running on 64+ CPU machines all the time, and on huge clusters of 1000s of boxes shows me that linux was designed pretty well.

      And as always linux is ahead of the curve overall then windows (in the kernal) at all times. and runs on more system.


      Correct me if I'm wrong, but the Linux kernel was funneled until fairly recently (like 2.4 or something), was it not? OS X was dual funneled until 10.4, IIRC. As far as I'm aware, NT has never had any kind of funnels, and the kernel has always (back at 1993, or whenever it was that 3.1 came out) been reentrant and SMP-capable. Could you perhaps be a bit more specific than "sucked ass at it"?

      Oh, and it's not really important, but NT was originally intended (and designed) to support up to 32 processors, although I've not heard of any NT machines with more than 8.

      --
      You have tried to support your argument with faulty reasoning! Go directly to jail; do not pass Go, do not collect $200!
    8. Re:The Difference by jericho4.0 · · Score: 2, Insightful

      By "NT" I was refering to the kernel, which, AFAIK, still goes by that name.

      --
      "A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
    9. Re:The Difference by Quantam · · Score: 2, Interesting

      ...besides the fact that "NT" refers to the kernel, which is still used in Windows Server 2003 (lay off the crude jokes, will ya?), people DO still produce NT 4 machines. They still have NT 4 machines up and running (and replace them with new NT 4 machines, if the old ones die) at my dad's work (a chemical testing laboratory - NT 4 is popular among machines connected to laboratory instruments: mass spectrometers, chromatographs, etc., there)

      --
      You have tried to support your argument with faulty reasoning! Go directly to jail; do not pass Go, do not collect $200!
    10. Re:The Difference by Quantam · · Score: 2, Interesting

      *actual

      Now, allow me to provide THE final word of the difference between a thread and a process:
      Process

      An address space with one or more threads executing within that address space, and the required system resources for those threads.

      Thread

      A single flow of control within a process. Each thread has its own thread ID, scheduling priority and policy, errno value, thread-specific key/value bindings, and the required system resources to support a flow of control. Anything whose address may be determined by a thread, including but not limited to static variables, storage obtained via malloc(), directly addressable storage obtained through implementation-defined functions, and automatic variables, are accessible to all threads in the same process.

      Those would be quotes from The Open Group Base Specifications Issue 6, Definitions.

      How does that apply to this discussion? It tells us that you're confusing the specification with the implementation. NT can also create processes that share address spaces, but you can't do so with any API available to programmers (did you know that NT can fork, too? but you also can't do that with any API available to programmers); this is no different than Linux and other flavors of Unix. A process by definition has a separate address space, while threads of the same process by definition share an address space. In other words, even on Unix, processes (if they do any IPC) will be MUCH slower than threads running in the same process (for further details of why this is, see my longer post from earlier).

      --
      You have tried to support your argument with faulty reasoning! Go directly to jail; do not pass Go, do not collect $200!
    11. Re:The Difference by anthony_dipierro · · Score: 2, Interesting

      No, the whole point of an operating system is to provide a stable programming target and perform resource management.

      That's what resource management is. If programmers cooperate with each other to share resources, then resource management is done automatically. But with any modern operating system this isn't necessary. Each program is separated from the other programs so that it can behave as though it is alone in the computing ether, as though it owns all the memory, all the processor, all the hard drive, etc.

      I suppose saying that it protects individual programmers from the actions of each other was a little bit overboard. Really it is designed to protect individual programs from the actions of each other. As for protecting the individual programmers, in a project with multiple programmers, that's really the job of the programming language and development tools.

  8. Everything Old Is Old Again by JeiFuRi · · Score: 4, Interesting

    The thing that's really preserved the mainframe over the past couple of years has not been performance; it hasn't been throughput, because those things turn out to be terrible. It's been the set of operational practices that have been codified around it. Mainframe culture and rigorous "change control," contrasts with the PC server culture of "whiz kids" who never learned the basic operational rules necessary to avoid costly mistakes.

    1. Re:Everything Old Is Old Again by ScentCone · · Score: 4, Insightful

      Why, in my day, we used stone punch cards we had to mine ourselves from the limestone quarry! Planning ahead made a lot of sense back then. Tell that to kids today, and they don't believe you!

      Seriously, I think the real problem is management addicted to immediate change in production systems. This started when it was web content, and now they expect back-office stuff to change just as quickly.

      --
      Don't disappoint your bird dog. Go to the range.
    2. Re:Everything Old Is Old Again by Jay+Maynard · · Score: 2, Insightful

      You got it. Unix shops are learning lessons now the hard way that mainframe shops learned the hard way 40 years ago, and they're evolving the same answers.

      --
      Disinfect the GNU General Public Virus!
    3. Re:Everything Old Is Old Again by ScentCone · · Score: 2, Insightful

      I'm guessing that you're only hearing these stories because people have actually experienced them (I know I have). Of course, these stick out because they are trouble, and the places that do it right are the ones you never hear about because there are no war stories involved (or PHBs).

      --
      Don't disappoint your bird dog. Go to the range.
    4. Re:Everything Old Is Old Again by BrynM · · Score: 2, Informative
      Mainframe culture and rigorous "change control,"
      The best example of this is Documentation. From operator logs to the big IBM books - here you will find everything. Something named ICKDSF messing with your process? Go into the computer room or grab an IBM CD and look it up. Why did your process crash last night? Look at the operator log and find out it had to be killed because of a tape problem.

      Lack of documentation is what irks me most about the PC world.

      Now don't IEFBR14 reading Slashdot right after work so much ;)

      --
      US Democracy:The best person for the job (among These pre-selected choices...)
    5. Re:Everything Old Is Old Again by mattdm · · Score: 4, Insightful

      You work at a University. Not a corporation. Things are very very much different even though you don't know that yet. Some day you'll leave, and then you'll realize how bad it really sucked there.

      Yeah, man, 35-hour standard work weeks with flexible hours, seventeen paid holidays plus four weeks of vacation a year, classes for free, and great retirement benefits, plus an environment where experimentation and individual initiative are encouraged. Working for a university sucks!

      Oh, and my own office instead of a cube -- oh, life is hard.

    6. Re:Everything Old Is Old Again by Chanc_Gorkon · · Score: 2, Informative

      I beg to differ. We have some pretty kickass pSeries machines and they don't come close to what our old Multiprise could turn out. Got to drop some students for non-payment? 2,000 to 4,000 records dropped in 20 min on mainframe vs 3-4 hours on the big UNIX Box. Mainframe systems EXCEL at I/O. They SUCK when they try and do computational heavy tasks. The mainframe we bought in 2000 did not even have floating point processors and it still performed better then our current solution. Mainframes DO kick very much butt in processing.

      --

      Gorkman

    7. Re:Everything Old Is Old Again by dougsyo · · Score: 3, Interesting

      You got that right... for years we had a VS1-MVS-XA-ESA-OS/390-z/OS environment with a parallel VM/370-VM/SP-VM/ESA environment for doing development. Our change control was simple, our sources were based on 80-byte records, etc. Our online environments were CICS and a few home-grown DMS/CMS applications, batch was predominantly PL/I with ISAM (and later VSAM) files. Then we brought in a DBMS with a 4GL and built-in TP monitor. (Model 204). Life was still pretty good, although we started writing REXX applications and had to develop change control for that and the DMS/CMS code.

      Eventually CMS went away - the programmers moved to TSO, the functional users (SCT Banner's term for "end users" or "lusers") moved to a combination of TSO/ISPF, Model204 applications, and web apps. But our mainframe change control processes still worked.

      Enter Unix, in the guise of SCT Banner. Don't let anyone kid you, it's an ERP, and a big hairy mess. Many of our programmers are "back to square 1", having to deal with C, shell scripts, perl, etc rather than JCL, PL/I and User Language. Cobol is somewhat familiar ground, although "make" is a wierd construct to them and shell script drivers are copied by rote (they're used to DMS/CMS or ISPF applications building compile JCL).

      Change control? Hah. We're so busy trying to get acclimated to the environment that the closest we have right now is ".old" and ".save" files laying around. I've installed SVN, but I'm too busy fighting fires to write the documentation, particularly since I'm one of the few people that truly *is* Unix-literate (but I can still build a CP nucleus if I had to!) I spent 2.5 hours tonight unsnarling Banner Job Submission and its interaction with Appworx.

      Doug

    8. Re:Everything Old Is Old Again by Hungus · · Score: 2, Funny
      Err what exactly are you using there, a PDP/11?

      Hey You got a problem with my PDP 11/24? Its got everything I need, PT readers, dual bootable 8.5 inch drives and a 3 mb HD ... boots up in 5 minutes flat

      (scary things is I am serious)
      --
      Bad Panda! No Bamboo for you! In matters of importance ACs will not be responded to. Want to say something critical,OK
    9. Re:Everything Old Is Old Again by twiddlingbits · · Score: 4, Funny

      You had PUNCH CARDS? We wrote all our code in HARDWARE! We had to go to the iron ore mines, fight off the dragons, endure the bitter code, dig out our the iron ore, dig out the coal, build a fire, smelt the ore, and cast the little magnets in our core memory, find some lodestone, magnetize each core, then wire them together with the South end at the Top to be a Zero and the North to be a one. :)

    10. Re:Everything Old Is Old Again by teaserX · · Score: 2, Funny

      Dad? Is that you?

      --
      We really need your help
      http://www.gofundme.com/help-sherry
    11. Re:Everything Old Is Old Again by deaddrunk · · Score: 4, Insightful

      As someone who was a COBOL permie then contractor for many years all I can say to that is AHAHAHAHAHAHAHA. My god it must be really awful in the Unix/Windows world if the horrendous shambles that are 90% of mainframe projects are being held up as an example of how to do it.

      The way to run a perfect project (at least to my mind) is:
      1) The senior managers are there to say how they want the app to interface with the business. They have no say in how the application looks since they aren't the ones going to be using it.
      2) Some end-users need to be involved early in the process so that the developers see exactly how they do their jobs, not how the PHBs think they do
      3) Any non-trivial change to a signed-off business spec should require a good justification just like IT people have to provide a cost justification when they want something from management and if the justification isn't good enough then they'll have to wait (and maybe learn to get their requirements right before starting the design and coding the next time)
      4) Non-IT people DO NOT get to set the deadlines. They can request it but if we say it'll take that long then usually it will and any cutting of deadlines usually mean it taking longer, having less functionality and being an utter bear to maintain/enhance.

      I've worked in maybe 12 different organisations and only 2 even came close to any of those. Most didn't even do one of the above.

      --
      Does a Christian soccer team even need a goalkeeper?
  9. Faith Machine by Doc+Ruby · · Score: 4, Insightful

    This "anonymous poster" has been managing mainframers for five years, is a Unix nerd, and doesn't already know how the three cultures are different? Or are they just a Windows troll, stoking the flames of the OS holy wars?

    --

    --
    make install -not war

  10. One difference by Prof.+Pi · · Score: 5, Insightful

    Unix and mainframe programmers are more likely to know multiple systems, out of necessity, and consequently have a more general understanding of the commonalities of all computer systems. Windows-only programmers are more likely to know The Microsoft Way, and only The Microsoft Way. They're less likely to know standard terms, and will only know Microsoft's replacement terms. At least in my experience (and these are tendencies with plenty of exceptions).

    1. Re:One difference by BrynM · · Score: 3, Interesting
      Unix and mainframe programmers are more likely to know multiple systems, out of necessity, and consequently have a more general understanding of the commonalities of all computer systems.
      You know, this is something that I have taken for granted for years. Thanks for making this point. Having done big iron, desktop and server programming has given me a definite edge in the past and I couldn't put my finger on it until your comment. The period I spent integrating some Alpha NT boxen to an S390 system (showing my age a little) really taught me a lot of versatility.
      --
      US Democracy:The best person for the job (among These pre-selected choices...)
  11. simple to explain by Anonymous Coward · · Score: 2, Informative

    windows developers half ass everything. they curl up in a ball and cry if they cant use an IDE to do everything.

    Unix programmers have to seperate the program into 60 different modules that all do their own thing and are called by a main program that uses all the modules to attempt to make the task work, they AVOID gui like it is walking death.

    Mainfraime programmers will take weeks to decide how to start the project, endless flowcharts, argumetns about the architecture and finally when code is written it willtake months on end to test it well beyond reason before they let you even see it run.

    good luck

    1. Re:simple to explain by Wyatt+Earp · · Score: 3, Insightful

      And...

      The Windows Dev need a P4 with a gig of ram.
      The Unix Programers can do it on a P4, but it'll work just fine on a Mot 68K or a 486.
      The Mainframe Programmers think a Ti-92 has too much horsepower.

  12. The difference by Jeffrey+Baker · · Score: 4, Insightful
    What are the differences between Windows, Unix, and mainframe programmers? What do we all need to know to get along in each other's worlds?

    The difference is one programs Windows, one Unix, and one mainframes. As a fifth-year geek, you should take the rantings of Joel, ESR, and any other pointless windbag and send them to the bit bucket.

  13. Good question. by BrynM · · Score: 5, Insightful
    I'm a bit rusty on the mainframe side, but I'll give this a stab.

    The main difference is one of resources. The mainframe folk utilize a shared resource: the Mainframe System. You may have parallel hardware, but from their point of view it's a single system. There's no ability to install a quick machine to use as a test server. Sure you can have test CICS regions or test OS partitions, but if you bring the hardware down you bring the datacenter to a screetching panic. Worse, you can piss off the operators and have 0.00001%CPU for the rest of your tenure. This keeps a certian unspoken level of panic about. Don't worry if you notice it bubble up when one of your coders fucks up. The panic symptoms will pass as it goes back down to it's normal level. It won't go away though. ;-)

    Which brings me to scheduling. Remember that production=batch and batch knows no sleep. When code goes to production, it's just as bad for the stress level as a major version release of other software or a website launch. Unfortunately for the MF coder it happens a lot more often. Having to talk to your operators when you can't even see straight (from sleep or other things) takes something that is unique to this kind of coder. On-call programming takes talent and some craziness. If you can find where that is for each of them, you will realate to them well.

    One last thing: make your coders work in operations for at least a week. They will have a better understanding of the hardware end and productivity will go up. There's a reason that the best coders are in the computer room a lot.

    --
    US Democracy:The best person for the job (among These pre-selected choices...)
    1. Re:Good question. by Ann+Elk · · Score: 2, Funny
      Unfortunately for the MF coder it happens a lot more often.

      I'm curious as to which definition of MF you're using...

    2. Re:Good question. by Knetzar · · Score: 3, Interesting

      As a windows programmer turned unix programmer turned unix operations support who just recently started working with mainframe operations, I would like to say your post seems to be right on. In addition in the mainframe world CPU utilization is everything. If your CPU is not above 90% utilization, then something is wrong. This is different then the Unix world where capacity planning is done so that expected peak CPU utilization is anywhere from 40-80%.

  14. Re:I'm going to go with 'smell' by wft_rtfa · · Score: 4, Funny

    I think it's the beards. Windows programmers are usually cleanly shaved, unix programmers are usually bearded, and mainframe programmers usually have gray beards. They probably have a distinct smell, but I'm not going there.

    --
    :-] :0 :-> :-| :->
  15. it's easier than you think by pikine · · Score: 3, Funny

    For Unix devs:

    1. Learn to CamlCase your API, variable names, etc.
    2. Turn all '-' or '--' into '/' in command line arguments.
    3. Use 'dir' instead of 'ls -l'

    For Windows devs:

    1. Learn to lowercase all your API, variable names, etc.
    2. Turn all '/' into '-' or '--' in command line arguments.
    3. Use 'ls -l' instead of 'dir'

    --
    I once had a signature.
  16. A summary: by millennial · · Score: 5, Funny

    Windows programmers don't know how to program without a GUI.
    Linux programmers don't know how to program with a GUI.
    Mainframe programmers wonder what a GUI is.

    end humor transmission.

    --
    I am scientifically inaccurate.
  17. Mainframe programmers are *old* by billstewart · · Score: 4, Interesting
    Hey, I was a TSO wizard back in ~1980, but fortunately I haven't had to use that stuff in ages :-) However, you'll find that mainframe programmers mostly look like Sid in Userfriendly.org - either grey hair or no hair. Mainframe programmers, like Unix and Windows programmers, range from the old wizard who can answer really arcane questions about JCL syntax from memory to some Cobol drone who went to trade school, like the Visual Basic trade school drones of today.

    The reasons mainframes are interesting, to the extent that they are, is that they can handle very large databases with very high reliability, which is not the same as being fast (though some of IBM's newer mainframe products are also quite fast.) That means there's a heavy emphasis on building and following processes for deployment and operations so that things won't break, ever, at all, even when the backup system's down for maintenance, and on building processes to feed data in and out of this rather hostile box so every bit gets bashed like it's supposed to. The programming environments have gotten better, but you're looking at a level of flexibility like Debian's Oldest-and-most-stable releases, not like Debian sid.

    --

    Bill Stewart
    New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
  18. Does it Measure Up? by Sponge+Bath · · Score: 5, Funny
    What are the differences between Windows, Unix, and mainframe programmers?

    The length of the beard?

  19. Don't reboot by HermanAB · · Score: 5, Funny

    Mainframers know that you cannot reboot a machine willy nilly, since someone may be running a simulation that takes 6 months to complete, he may be in month 5.5 now and on first name basis with the guy that normally signs your pay cheque...

    --
    Oh well, what the hell...
    1. Re:Don't reboot by Detritus · · Score: 2, Interesting

      That's assuming that you have access to the machine. I've run jobs on mainframes that I've never seen. I'd just drop off the job at the service desk and pick it up the next day. The mainframe was in a restricted area, where users and programmers were not allowed without an escort and a good reason to be there.

      --
      Mea navis aericumbens anguillis abundat
    2. Re:Don't reboot by Genady · · Score: 3, Interesting

      This actually reminds me of a story I remember when I was just a lowly little Desktop Support Tech.

      Seems an old support person, former Mainframe Operator told be a story of a largish corporation that had a whole *CLUSTER* of Mainframes, and an odd issue that kept crashing a Mainframe every now and then. Apparently the in-house people couldn't figure it out, and the vendor wanted to take things down for a little while to work on it. Of course, being a 7x24 shop management wouldn't have it. So they added another machine to the cluster. Don't ask my how or why, but the extra machine made sure that the processes kept going while one node of the cluster fell to it's knees and re-IPLed. Cheaper than shutting down a production shift.

      --


      What if it is just turtles all the way down?
  20. simple by b17bmbr · · Score: 2, Funny

    windows programmers have to learn completely new shit every two years. unix programmers keep programming the same shit year after year.

    laugh. it's a joke.

    --
    My problem? I was perfectly gruntled, until some numbnuts came by and dissed me.
    1. Re:Simple by homer_ca · · Score: 2, Informative

      Well the stability and disaster recovery side of mainframes isn't really a result of the programmer. To the applications programmer, the system "just works", which it should for the price you're paying. Backups and disaster recovery is something for the operators (they're not called administrators). If applications themselves are stable, it's probably a result of COBOL being a straighforward procedural language without all the trickiness of C pointers.

      Now as far as security, I'd say mainframe security is 99% security by obscurity. The mainframe programmers I know are hopelessly naive about network security policy, basic things a Windows or Unix admin would know from working in a hostile environment like the Internet. You know, things like password policy, IP networking, etc.

    2. Re:Simple by Nutria · · Score: 2, Informative

      Backups and disaster recovery is something for the operators (they're not called administrators).

      And the System Programmers and Operations Managers who buy packages like Fastpath and Harbor NSM.

      If applications themselves are stable, it's probably a result of COBOL being a straighforward procedural language without all the trickiness of C pointers.

      Thank $DEITY I'm not the only person to think so...

      Now as far as security, I'd say mainframe security is 99% security by obscurity. The mainframe programmers I know are hopelessly naive about network security policy, basic things a Windows or Unix admin would know from working in a hostile environment like the Internet. You know, things like password policy, IP networking, etc.

      How many black hats can get into a mainframe, anyway, and know the mainframe utilities?

      --
      "I don't know, therefore Aliens" Wafflebox1
  21. On the difference by Tsiangkun · · Score: 5, Insightful

    Unix programmers like their code like the old legos. Each piece might be a different size or shape, but the bottom of one snaps onto the top of another and the ordering and number of pieces used is left as an excercise for the reader. With experience, anything can be built with the pieces, and yet each piece is simple and easy to understand.

    Windows is like the new lego sets. You get specialized premolded parts suitable for one specific task, plus two or three additional add-on pieces that give the illusion of being fully configurable for any task. You can build anything you want with the new legos, as long as you only want to build what is on the cover of the package.

    Yeah, that's it in a nutshell.

    1. Re:On the difference by Osty · · Score: 3, Interesting

      Hopefully this can help shed some lite for some of the GUI addicted PFY's out there missing out on a decent tool kit 'cause their OS of choice doesn't have a shell or basic programming (Pun Intended) facility.

      When will the unix admins learn that just because Windows doesn't do as much piping as *nix doesn't mean it's not fully scriptable? The paradigm is different, is all. In *nix, if I want to programmatically kill a process I grep for it, cut or awk out the pid, and pipe that into kill (ignoring killall). In Windows, I query the process table with a WMI query object, retrieve the returned Process object, and call Kill (actually, I'm not sure what the name of the method is, but the idea is that you call methods on objects rather than piping text to processes). They both get the job done, and there's very little that piping or object automation can't do. I'd even argue that the object method is more robust because it doesn't have to infer information from presentation-formatted data (what do you do if the column of data you want changed positions because you're using different command line options to ps?). In either case, you're relying on developers to support the interface mechanism (stin/stdout in *nix, IDispatch in Windows), and it's not the system's fault if an application's implementation is sub-standard.

      The widely-held belief that a *nix administrator can adequately perform the job of a knowledgeable windows administrator is just wrong. You'd laugh if I tried to suggest that a Windows admin could do the job of a *nix admin, so why is it assumed that the other way around works? And no, you're not going to install cygwin and bash and perl on my production systems unless they're absolutely critical (ie, a web server that needs to serve perl-based CGI scripts). No, helping you do your job the wrong way (*nix admin attempting to be a windows admin) is not "mission critical".

  22. Programming in COBOL by cratermoon · · Score: 5, Interesting
    I've never actually written any COBOL myself, but here's what I've learned from trying to teach Java to former mainframe developers.
    • COBOL is actually remarkably like wordy assembly language
    • The typical mainframe programmer, being steeped in COBOL, will think of everything in "records".
    • Mainframes are case-preserving but case-insentive. Like DOS, a token can be any mixture of case an it will work. Thus, a mainframer might wonder why 'PRINTF' doesn't work for 'printf'.
    • On the same topic, a mainframer will assume that something like the Java type 'Account' and the variable 'account' actually don't distinguish anything, and will be confused when the compiler refuses to assign to a type.
    • MOVE CORRESPONDING is COBOL's big hammer. It will take all the values of the elements of one record and copy them to the "corresponding" fields of another record. There is nothing like type-checking for this. This will cause mainframers to be confused about why you can't assign a linked list to an array and have it "just work".
    • Not that mainframers will grasp "linked list" or "array". Actually, they won't really get any of what we call the standard data structures and algorithms learned in the first year of any CS program.
    • COBOL programs have no scoping rules. EVERYTHING is global. Thus, a mainframe programmer won't understand why an assignment way over in some little function in another library to a variable called "date" won't affect the "date" value in the code everywhere.
    1. Re:Programming in COBOL by rve · · Score: 2, Interesting

      In my opinion (as someone who does both Unix and mainframe programming for a living) the problems you describe have a lot to do with the fact that COBOL programmers tend to be older people, who rolled into the programming field from something else, such as engineering or accounting a long time ago. They didn't study CS or IT in college, because there was not really such a field 20 years ago.

      When they learned to code, people did not have computers with compilers available at home. You learned COBOL because that was what the application your company had was written in. It was written in COBOL because when development began, COBOL (or RPG) was the only one suitable for an application that handled valuable data rather than calculations or low level hardware control.

      You didn't play around or experiment, because you were working with data that was very valuable to other people.

      On top of that, comes what compares to a Mac mentality: being in love with an increasingly marginal phenomenon, and staying with the once handsome, but now bitter and abusive spouse, blind for the limitations, or even seeing them as strengths. You can't teach modern programming practices to people who run 5250 or 3270 emulators on 3 GHz Pentium IV PC's and try to explain the superiority of EBCDIC to you.

  23. M/F is just a job by ThePolkapunk · · Score: 4, Interesting

    As a *nix programmer forced into the mainframe world, I'd have to say that m/f programmers do not look at computers as a hobby or thing of interest. To them, programming and computers are just what they do to get paid. To the m/fers, a computer is just a tool that they have to use to do their job. They take no joy or pleasure in programming, it's just what they do.

    On the other side of the coin, I think that *nix and Windows programmers tend to enjoy what they do. To them, programming is not just their job, it's enjoyable.

    Honestly, I don't blame them. M/F sucks. As soon as you get your first compile error because your command isn't in the right column, or have JCL spit out a bunch of random nonsense because you didn't allocate the correct blocksize for your file you'll hate your job too.

    --
    Dear diary: Today I stuffed some dolls full of dead rats I put in the blender.
    1. Re:M/F is just a job by symbolic · · Score: 2, Insightful

      or have JCL spit out a bunch of random nonsense because you didn't allocate the correct blocksize for your file you'll hate your job too.

      That's all it takes to hate your job? Ever get an error compiling a C++ app using templates, or a highly abstracted java class with an error generated somewhere, causing a problem somewhere else? These don't exactly put the joy *into* programming.

  24. Re:Interoperability by $RANDOMLUSER · · Score: 2, Informative

    In my VAX/VMS days, we'd type these incredible "FOO /INPUT=BAR /OUTPUT=BAZ /NOEVERLASTINGGOBSTOPPER /COKEBOTTLE /SINCE=10-17-82" type commands, and when the DCL prompt came back, we'd scream "It Loves It!!!!!".

    --
    No folly is more costly than the folly of intolerant idealism. - Winston Churchill
  25. I agree by DogDude · · Score: 2, Interesting

    I didn't get into the industry until 10 years ago, and I was amazed at this difference between the windows kids and the mainframe guys. I was a Windows/Oracle developer, but luckily I learned good practices from old MVS/greenscreen guys who taught me things that hold true no matter what kind of computer platform you're working with. I'm blown away to see some of the stupid things that new programmers/admins do. Blown away.

    --
    I don't respond to AC's.
    1. Re:I agree by Mr.Radar · · Score: 2

      As a young person (16 y/o) interested in programming I'd very much be interested in hearing about what kinds of mistakes you see new programmers making, especially with reguards to C programming.

      --
      What if this signature were clever?
    2. Re:I agree by Anonymous Coward · · Score: 2, Interesting

      what kinds of mistakes you see new programmers making, especially with reguards to C programming

      1) using the C language. There will always be a place for C, but it is an increasingly small place.

      2) not understanding the difference between programmer and developer, or between code and product. A programmer writes code, a developer delivers products. Code is a widget, not a product. A product is the totality of what a customer buys. An apple is a widget; but the whole product consists of you buying that apple from a nice display in clean supermarket from a courteous cashier in a convenient location with adequate parking.

      3) underestimating the importance of personal skills. Mediocre developers who communicate clearly, coordinate their actions with others, and have good hygene are much more valuble than brilliant programmers who would rather invent their own solution than follow standards, lack manners, and act/dress weird.

    3. Re:I agree by Krunch · · Score: 4, Interesting

      1) While most programs today should probably not be written in C, I think it's still an important language to learn and understand as a beginner programmer. Most applications today use C at some level. If you understand it, you get a chance to understand how the application/framework/library you are using works which make you able to use it better. See Joel Spolski's "Back to Basics" for more on this.

      3) More on this in Robert L. Read's How to be a Programmer.

      --
      No GNU has been Hurd during the making of this comment.
    4. Re:I agree by spectecjr · · Score: 3, Interesting

      I didn't get into the industry until 10 years ago, and I was amazed at this difference between the windows kids and the mainframe guys. I was a Windows/Oracle developer, but luckily I learned good practices from old MVS/greenscreen guys who taught me things that hold true no matter what kind of computer platform you're working with. I'm blown away to see some of the stupid things that new programmers/admins do. Blown away

      I feel the same way whenever I look at the SMTP spec, the MIME spec, the SMTP email format spec, pretty much any on-the-wire specs actually...

      At the very least people could prefix strings they're transmitting with the # of bytes in them, so that memory access is efficient.

      Look at HTML - all ASCII. ASN.1 was invented so that you didn't have to use all ASCII for this kind of data (look at the SNMP spec if you want more details). But does anyone use it for the on-the-wire format? No.

      Unixheads seem to claim that it's perfectly admirable to hack around the ASCII format for everything because it makes it easier to debug, whereas all I see is wasted entropy and bandwidth.

      Anyway...

      --
      Coming soon - pyrogyra
    5. Re:I agree by PakProtector · · Score: 2, Insightful

      I said Java is useless except for extremely specific things, one of which would be Web Applications, and the other would be ease of portability.

      --

      Edward@Tomato - /home/Edward/ man woman
      man: no entry for woman in the manual.
      "Qua!?"

    6. Re:I agree by PakProtector · · Score: 2, Funny

      A five year old AIWA with 30 Watt speakers. You're welcome to it if you can get past the German Sheepherd and survive having six .45's emptied into your chest from my revolver.

      --

      Edward@Tomato - /home/Edward/ man woman
      man: no entry for woman in the manual.
      "Qua!?"

    7. Re:I agree by jadavis · · Score: 2, Insightful

      using the C language.

      Why is there so much animosity toward C on /. (OK, so maybe it has something to do with the buffer overflow track record, but still...)?

      It may not even be his first language. Maybe he's already learned some python and wants to gain better understanding.

      C language concepts are not isolated to the C language. If you're programming in Java, you may not have to allocate memory directly, but you have to manage the resouces you do have.

      If you're programming a web application that caches frequently-accessed pages, you need to manage your cache memory as a resource. That's a hard problem and if you're not careful there are all kinds of pitfalls that can leave you with inconsistent cache, starving clients, or a useless waste of memory and CPU time. No magical langauge or library knows enough about your application's caching needs to be any help. And you're going to be in real trouble if you've never run into an easier resource problem, like doing malloc/free for dynamic data structures.

      Trying to prevent the buffer overflows by discouraging the study of resource management is OK for anyone at the "code monkey" level or below. Code monkeys solve problems that have already been solved many times before, and frequently have no need to manage resources. However, anyone who wants to be able to solve new and difficult problems (like the poster to whom you responded) should certainly be aware of resource management concepts.

      That being said, you should use the right tool for the job. If you are actually planning on connecting your software to the internet, it's nothing short of irresponsible to allow rampant security problems, particularly if another tool makes it so easy to be secure.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    8. Re:I agree by Cardinal+Biggles · · Score: 2, Insightful
      Look at HTML - all ASCII. ASN.1 was invented so that you didn't have to use all ASCII for this kind of data (look at the SNMP spec if you want more details). But does anyone use it for the on-the-wire format? No.

      Actually, I think HTML and HTTP are a good example of how it should work. First, you make an easily understood, easily implemented and easily debugged format and protocol. Then, you can use something like gzip as a transfer encoding, and you've optimized for bandwidth in the correct place.

      So ASN.1 should be replaced by XML-type things ASAP as far as I'm concerned. Unfortunately you're wrong where you say that nobody uses ASN.1 -- think LDAP, SSL, SNMP, ... ASN.1 encoding is used all around you.

    9. Re:I agree by cowbutt · · Score: 2, Interesting
      ASN.1 encoding is used all around you.

      As are ASN.1 parsing vulnerabilities because ASN.1 is so hard to parse that nearly everyone who uses it ends up using the same flawed ASN.1 parsing codebase.

    10. Re:I agree by blane.bramble · · Score: 4, Insightful

      Unixheads seem to claim that it's perfectly admirable to hack around the ASCII format for everything because it makes it easier to debug, whereas all I see is wasted entropy and bandwidth.

      Wait until you have to troubleshoot issues with SMTP, POP3 and the like, then you will absolutely love the fact you can simply fire up telnet, connect to a server and manually test things by typing the protocol handshakes in. Not only are they all ASCII, they are easy to remember and make lots of sense.

      Take it from this SysAdmin/Programmer, you'll never want to go back to a binary protocol again.

    11. Re:I agree by aaronl · · Score: 2, Insightful

      Oh yes, prefixing the length seems really smart. Then somebody improperly prefixes and things start going to hell. You also have to worry more about converting endianness, char widths, etc. What if there was a transmission error? What will your program do if I say a string will be 1000 chars long, and then only send you 50? By the time you finish with all the checking, you would've been better off not trying to rely on precalculated string lengths at all. Also, how much additional data do you end up using if you start sending everything in multibyte chars and such?

      If you didn't generate the data, then you don't trust the data. Hell, even if you did generate the data, you might not want to trust it.

      If you want to have Pascal strings, then just calculate the length and hold onto it yourself. Then after the first time, you don't take the performance hit. There are very good libraries that do all this if you don't want to write your own code library.

      You ended up epitomising exactly what the GP was talking about with new programmers.

  26. Re:Programmer generalizations by el-spectre · · Score: 2, Insightful

    Whoa... MS folks are better balanced? Not trying to fan flames here, but I work with a lot of MS guys who don't understand basics of technology, but only the bloody MS API.

    For example (I'm a web geek) we're trying to figure out why a HTTP request is getting garbled.

    My first response: "ok, lets look at the whole request -it's just text- and see what it says"

    MS-Guy's response: "I don't know... there's no method in the API for that..."

    And that, kiddies, is why I try to remain skilled cross platform :)

    --
    "Faith: Belief without evidence in what is told by one who speaks without knowledge, of things without parallel." - A.B.
  27. Lean towards textual interfaces because of density by SuperKendall · · Score: 3, Insightful

    From the article:

    *Unix Programmers* don't like GUIs much, except as lipstick painted cleanly on top of textual programs, and they don't like binary file formats. This is because a textual interface is easier to program against than, say, a GUI interface, which is almost impossible to program against unless some other provisions are made, like a built-in scripting language.

    I would disagree with this assesment, instead I would say people who prefer textual interfaces do so beacuse they often offer a much denser display of information. You can get a lot of information packed into text that may be quite spread out in a GUI.

    Also I would say that people eventually come to favor programs with scripting interfaces.

    It seems to me that as users grow more sophisticated eventually all users become programmers in at least a specific domain, or at least desire to. All users grow used to a tool, and after a while they start wanting more dense an informative displays.

    Just look at PhotoShop, probably one of the longest running commercial applcations (i'm sure there are others that elude me but it's just a really good example). Does that even follow any kind of UI guideline? No it does not; there are so many users that have used it for so long, that they demand a richer and more complex interface. Over time they demanded plugins and then of course scriptability (through actions).

    Yes Windows was a way to bring many people into computers that could not have come through UNIX. But in the long run users grow into wanting more flexible uses of the computer and they start leaning towards the "UNIX Way" and looking for apps that are pluggable and scriptable.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  28. Look in the trunk by AtariAmarok · · Score: 3, Funny

    Just look at the tools in the trunk of their cars. The Linux and Windoze guys will have a few screwdrivers rolling around there. The mainframe guys have blowtorches.

    --
    Don't blame Durga. I voted for Centauri.
  29. Not the best assumption. by AtariAmarok · · Score: 4, Funny
    "Windows programmers always seem to assume they are alone in the computing ether."

    That is not the best assumption, as the Windows app is likely to be running alongside Bonzi Buddie and at least 7,000 pieces of malware and virii.

    --
    Don't blame Durga. I voted for Centauri.
  30. From what I remember. by GoofyBoy · · Score: 2, Funny

    Where the control-key modifier is in Unix, the Enter/Return (one of these) is in Mainframes, is the wavey flag is in Windows.

    --
    The surprise isn't how often we make bad choices; the surprise is how seldom they defeat us.
  31. AHH by Mozk · · Score: 2, Funny

    How do you post something from December 14, 2003, and get away with calling it news for nerds?

    --
    No existe.
  32. a few observations by porky_pig_jr · · Score: 3, Interesting

    I was working with IBM MVS (batch oriented) and VM (interactive) for quite a while. At that time the main choice was between COBOL and Assembly Language (BAL/370). COBOL provided some basic routines, but do to something interesting (like asynch I/O, your own memory management, etc) you had to use BAL.

    The following example might be interesting, not sure if helpful. On batch system you have many jobs executing concurrently. MVS (at that time) didn't have anything like preemptive multitasking. COBOL didn't have asynch I/O either, so when it issues I/O it just goes into a wait state, so another task is scheduled. So the bottom line was that your program won't be very efficient (e.g., won't be overlapping I/O and CPU activites), but that would create a nice (from MVS perspective) mix of jobs. Some are doing I/O, some are doing CPU, so MVS can accomodate many concurrent tasks.

    Well, at that time I was budding assembly language programmer and even took a course at university where we had to write our own operating system, entirely in BAL/370, including the Initial Program Loader (boot, if you wish). I was working at the same time, and there was a problem at my job. They (John Hancock Insurance) had hundreds and hundreds of COBOL programs, and nothing like cross-referencing dictionary, like which program modifies some common record fields. So when something unexpected happened, they had to search through the source code, to find all the instances of such references and that was taking something like 5-6 hours. I've learned asynch I/O at school and how to overlap I/O and CPU activites, and I've ended up writing fairly efficient program. Program was reading large chunks of disk data into several buffers. As soon as the first buffer was full, that event was detected, and the program starts parsing that buffer for some keywords --- while continuing reading the tracks into other buffers. (it was a circular list of buffers). After some trials I got the execution time down to less than 20 minutes. Everyone in my area was happy.

    Everyone except mainframe operators. I've been told they HATED my program to its guts. The problem was that the program didn't behave nice as far as 'good mix' is concerned. It grabbed the resources and hold them for a long time because it went to the wait state only occasionally. But that was a great help for production problems, so they had to let it run.

    That was many years ago. I don't know if MVS got changed so to introduce preemptive multitasking. At that time it was a strictly batch-oriented system. All I/O was executed in a separate subsystems (channels). To run something interactive (like CICS) wasn't trivial at all. The best strategy was to dedicate entire mainframe to such task. Mixing CICS and batch jobs int the same machine was suboptimal solution. Of course, MVS scheduler got improved since, to provide better balancing between batch and interactive tasks, and yet, as I understand, MVS fundamentally remains batch operating system.

    1. Re:a few observations by BrynM · · Score: 2, Funny
      That story takes me back.

      My first day as an operator, they had me printing on the old Xerox 9790. I was happily typing jobs into the queue via JES2 with $pprt2. The whole system froze about a 15 minutes in. Panic ensued, but nobody - especially me - knew what happened. They sent me to lunch while systems, the HSM guys and the operators tried to figure it out.

      When I got back everything was fine and there was a big "$P" on my locker. I flubbed a key and typed in $P which is the command to halt JES2 (yes, systems should have disabled it from the print terminal). They were all very good humored about it and showed me how to IPL that Sunday where I got my chance to type it at the correct time.

      --
      US Democracy:The best person for the job (among These pre-selected choices...)
    2. Re:a few observations by HermanAB · · Score: 2, Funny

      Hmm, we were doing Spice simulations on a Sperry-Univac - friend of mine forgot to add a maximum pages command to limit the printouts in case of an error and read his stack of punch cards, then waited and waited and waited.

      Eventually, he ran it again and was just about to run for the third time, when the elevator door opened and in rolled a trolley full of paper from the high speed printer in the basement...

      --
      Oh well, what the hell...
    3. Re:a few observations by Anonymous Coward · · Score: 2, Interesting

      No multitasking in MVS??? Oh contrare... take it from an OLD MFT, MVT, MVS, OS/390, and z/OS systems programmer who wrote some of this archaic IBM operating system stuff... preemptive multitasking has been there since the nearly the beginning.

      Need proof? Grab yourself a copy of the Hercules mainframe emulator and MVT (google for it). MVT is MVS's daddy. Give it a go yourself.

      Long live Poughkeepsie (but watch out for the submarines in the Hudson river)! Now, where did I leave my cane???

    4. Re:a few observations by Anonymous Coward · · Score: 2, Informative
      This post was so full of hooey I don't know where to begin.
      MVS (batch oriented)
      Have you never heard of TSO? CICS? IMS/DC?
      COBOL provided some basic routines, but do to something interesting (like asynch I/O
      Merde. The access methods (I/O services provided by the operating system) have ~always~ supported multiple buffers, chained scheduling and other goodies. MVS and IBM big iron in general is really really good at I/O overlap.
      MVS (at that time) didn't have anything like preemptive multitasking
      Complete rubbish. MVS has a variety of dispatching algorithms including time-slicing, MTTW, task/address space priority, and others. The preemptive dispatcher goes all the way back to MVS's predecessor twice removed, OS/360 -- comfortably older than you likely are, Porky.
      I was budding assembly language programmer and even took a course at university where we had to write our own operating system, entirely in BAL/370
      Curious, since there was no such thing as "BAL/370". There was a BAL -- "Basic Assembly Language" (no macros) for BPS, one of the first early monitors for S/360.
      All I/O was executed in a separate subsystems (channels)
      You idiot! Of COURSE all I/O is executed outboard, in the channels. That's why the m/f systems are so good at it.
      To run something interactive (like CICS) wasn't trivial at all. The best strategy was to dedicate entire mainframe to such task. Mixing CICS and batch jobs int the same machine was suboptimal solution
      Okay, I've figured it out. You took a summer internship at an insurance company, and you augmented your l33t Apple skillz with some 370 assembly language. The workaday COBOL guys lionized you and you became quite full of yourself. The insurance company was running storage constrained, or was running their channels above 80% utilization (post-XA) and response time was an issue -- and you naively assumed that the MVS dispatcher was somehow at fault.
      as I understand, MVS fundamentally remains batch operating system
      You understand nothing.
  33. #1 Cultural Difference by iamdrscience · · Score: 3, Funny

    Mainframe guys don't reboot their system. Unix guys reboot the system occasionally. Windows guys reboot their machine several times a week.

    1. Re:#1 Cultural Difference by antispam_ben · · Score: 4, Interesting

      Mainframe guys don't reboot their system.

      They don't call it reboot, they call it a "re-IPL" [Initial Program Load] and depending on the machine it takes up to 30+ people, each with specialized knowledge about a specific part of the process. [you can mod me funny, but THIS IS NOT A JOKE]

      Unix guys reboot the system occasionally.

      Only because of a hardware upgrade, and only because the technician convinces them it REALLY DOES need to be turned off to add more RAM or a (non-hot-swap) disk drive.

      Windows guys reboot their machine several times a week.

      "Several" in this context is a number greater than ten. A boot often lasts through the day, but not always. But I remember the 3.1 days (it shudda been called "three point one over six point two two"), it was boot-in-the-morning and reboot-after-lunch, as well as many other times.

      --
      Tag lost or not installed.
  34. What the hell, I'll byte... by TiggertheMad · · Score: 5, Funny

    ... I have plenty of karma to burn, and this looks to have been posted to start a huge flame war. Why fight fate?

    1. Windows is teh bestest, like EVER!
    2. Unix is ok, you get good at typing...
    3. Linux stole from SCO!

    I will now invite retorts. (ducks)

    --

    HA! I just wasted some of your bandwidth with a frivolous sig!
    1. Re:What the hell, I'll byte... by Ender_Stonebender · · Score: 3, Funny

      What, you couldn't be bothered to at least come up with a clever troll?

      Not that I blame - I can't be bothered to come up with a clever retort, either.

      Fishes,
      Ender

      --
      Loose things are easy to lose. You're getting your hair cut. They're going there to see their aunt.
  35. Great suggestion! by TiggertheMad · · Score: 4, Funny

    You could try exchanging porno links to one another, that seems to be the way nerds bond. Just a thought.

    You are sooooo right, and if you handn't posted as an AC, I would have sent you this sweet link, called goatse.cx, to cement our friendship.

    --

    HA! I just wasted some of your bandwidth with a frivolous sig!
  36. The Tao of Programmers by DynaSoar · · Score: 4, Informative

    Windows programmers work from the assumption that their job is to protect users from the machine.

    Mainframe programmers work from the assumption that their job is to protect the machine from users.

    Unix programmers work from the assumption that they're the users and the only protection they or anyone else needs is knowing enough about what they're doing. They also work from the assumption that "enough" means "as much as I know", no matter how much or little they know.

    2/3 of Macintosh programmers think the same as Windows programmers. The other guy doesn't think about it.

    I'm still an Apple II programmer. I still think it's a good idea, and necessary, for everyone to be able to program down to bare metal, because it's only for showing off what you can do since everyone is going to do their own programming anyway. At this point I believe that the only way I'll ever see any Apple II op code coming from anybody else would be if that's what they decode from the SETI signals.

    --
    "I may be synthetic, but I'm not stupid." -- Bishop 341-B
  37. Re:Decent programmers... by Detritus · · Score: 3, Insightful
    There are differences, and ignoring them can be a career-limiting move.

    Have you ever written a program in an environment where if it malfunctions once during operations, the incident will be investigated by a review board? The board will want to know why it failed, and what is being done to prevent it from happening again. Then there is configuration control, requirements traceability, test plans, software build procedures, security audits, etc.

    --
    Mea navis aericumbens anguillis abundat
  38. Ah. Ok, here are the differences. by crazyphilman · · Score: 5, Funny

    1. Windows programmer: There are two sub-phyla of Windows programmer:

    A) Fanatic Windows programmer: Refuses to use any software not made by Microsoft or an approved Microsoft partner; openly mocks Linux, unix, Firefox, and you when you suggest any of the three; programs exactly the way Microsoft tells him to in MSDN articles, and is deeply distrustful of any different approaches; loves IE and is laden with spyware and viruses, but refuses to admit it, saying things like "it's the hardware; I need a new machine".

    B) Normal Windows programmer: Uses Windows because it's what everyone else has (and he wants to sell them things); uses Firefox and generally avoids IE; understands that Windows is limited and imperfect, but finds it useful for some subset of tasks; is interested in Linux but vaguely irritated by Linux fanatics calling him a sell-out. Secretly wants to eat spicy Schezuan with the Linux geeks, but not that fanatic with the blue hair (she's too freaky);

    2. Linux (2 sub-phyla):

    A) Fanatic Linux user: despises Windows users, seeing them as the zombie hordes following Bill Gates, his Satan; throws things at Windows users when they're within range, shouting "Shoo! Shoo! Get back on your short bus and go home!"; compiles everything from scratch to install, because otherwise he'll feel unworthy; generally only uses "Free" software, eschewing anything even remotely non-free, which seriously limits him. Secretly feels betrayed by the moderate Linux users, wants to eat Schezuan with them but knows that Windows guy will be there, so goes for pizza instead.

    B) Normal Linux user: Uses Linux because he doesn't have to worry about spyware and viruses (much) and can simply use and enjoy his machine without having to put up with a lot of annoyances; is intrigued by Windows but dislikes the Windows fanatics, who make fun of him (he suspects they live in a town with lead water pipes, and forgives them in pity); he generally doesn't care what other people use as long as his Slackware instance is running well; he occasionally uses Knoppix to rescue one of his Windows-using coworkers when their registry gets corrupted; Secretly enjoys the look they give him after he recovers all their data, it makes him feel Wizardly. LOVES Schezuan food.

    3. Mainframe users: Aren't sure what all this "Linux" and "Windows" nonsense is about, and suspect it's a fad the kids are following; Are very fond of their new VT-100 terminal (2400 baud! Kick ass!); Are starting to suspect they might be in for some trouble -- they've had to page all their data off disk to tape a THIRD time this month, how can their disks keep getting full? They're 40MB!!! SOMETHING funny's going on... Are secretly nervous about the boss and that young intern kid and the new box they've been setting up in the corner; those two keep giving us significant looks, what IS that, some kind of new networking thing? Bill over in tech support said it had "blades" in it...; and they still laugh about how "Emacs Makes A Computer Slow". Ha ha ha! Snort!

    --
    Farewell! It's been a fine buncha years!
    1. Re:Ah. Ok, here are the differences. by hendridm · · Score: 4, Funny
      And mainframe guys were copying 40MB files around long before you were born ;)

      Have they finished yet?

    2. Re:Ah. Ok, here are the differences. by Flower · · Score: 2, Funny

      Because she's a hot dish?

      --
      I don't want knowledge. I want certainty. - Law, David Bowie
    3. Re:Ah. Ok, here are the differences. by crazyphilman · · Score: 3, Funny

      Uhhhhhhhh... Yeah, it's true, actually I'm a hybrid type 2 Windows/Linux guy. Nice catch... :)

      About the 40MB thing, I was guessing about the size, that actually relates to a true story. Here's a real conversation I had with two mainframe guys in an organization I used to work at (context: there was a system which was half on the mainframe and half on microcomputer servers, which kept a parallel set of data on our users, and the two systems coordinated via file transfer).

      MainFrame Guy 1: "So, pretty soon, we're going to have to clear out our records, we're going to save everything to cold."

      MFG 2: "Yeah, so if we could coordinate your moving of your records to cold as well, that would be great."

      (My project manager and I look at each other, baffled.)

      Me: "Cold? What's cold? What's he talking about?"

      MFG 1: "Storage. You know, external storage."

      Me: "Oh, you mean tape (they nod). Why do you have to clear out your hard disk?"

      MFG 2: "We have to move old records off to cold."

      Me: "Why?"

      (MFG 1 and 2 look at each other, baffled).

      Me: "We're on Oracle, right? If you're using too much space, just add some more disk."

      (MFG 1 and 2 look at each other, then me, then back at each other.)

      Me: "Disk is cheap. Put some more in. We're not even using a fraction of what we've got right now, I'm sure it's no big deal."

      MFG 1 (or 2?): "Uhm, yeah, that's not really an option."

      (My project manager and I look at each other, then we get it. Thirty year old mainframe, big old disk drives like washing machines, LIMITED SPACE.)

      Me: "Ahh... Uhm. Well, we can't clear out our database, but we'll limit what the users can access, that way they won't be able to submit anything to your system that'll gum up the works for you."

      (LATER)

      Me, to project manager: "HOLY SHIT, how old is their equipment???"

      PM: (chuckling) "I have no idea, I'm guessing decades."

      Me: "Man. It still works???"

      --
      Farewell! It's been a fine buncha years!
  39. Re:A couple of comments by BrynM · · Score: 2, Interesting
    Ever write a sort routine? Know the difference between bubble-sort and quick-sort? The average MF doesn't. He calls the system level command SORT and he's done.
    You're right except for the Sysprog. Working directly on a MF at the systems level is akin to kernel programming. All of those utilities have to be maintained as well as the JES and JCL "scripting" and new utilities are needed all the time to save resources and optimize performance.
    --
    US Democracy:The best person for the job (among These pre-selected choices...)
  40. Biggest culteral difference by rewt66 · · Score: 5, Funny

    When a mainframe becomes loaded with spyware, you do not throw it in the dumpster!

    1. Re:Biggest culteral difference by antispam_ben · · Score: 4, Funny

      Mainframes DO get thrown in dumpsters, but not because of spyware.

      --
      Tag lost or not installed.
  41. Ask by kevin_conaway · · Score: 2, Funny

    Ask your team, also known as the entire mainframe community

  42. Differences that I have seen over the years by WindBourne · · Score: 2, Informative
    First note that Windows/Mainframers tend to be CISers,

    while Unix ppl are CS/EE. Differences between CS, CIS, and EE.
    For any given project,
    • Project will take 1 year with 40 ppl working on it.
    • After 1 year, it will take another year, if they double the team, otherwise cancel the project.
    • At the end of 2 years, the program will run in length 1 day - 1 week (just a relative time).
    • a number of bugs will be found, of which, by hiring more ppl, these bugs will only take another 1-2 years to iron out.
    • Every line of code will be documented, but many of them will be incorrect, such asi += 5; // call sub routine a()
    • In addition, somebody will have attempted to use hungarian notation but most will not match the code.
    • For the CISers on the mainframe, there is more of a mind set that the system can not be allowed to be down for any reason.
    • For the CISers on the windows boxes, the mindset will be that if the users want 24x7 uptime, then they need to talk to the system admins/operators, or the maintence coders.

    For the CSers mostly on Unix, for the same project
    • It will take 3 ppl exactly 1 month.
    • At the end of one month, it will be just another month. repeated for about 3 more months (grand total of 4 times).
    • At the end, of this, it will run in under 1 minute of time (relative to the above).
    • However, just before the end of the 1 minute, it will crash.
    • Upon your complaining, they will say to write a bug report about it. Of course, when you do, they announce that they will get to it, when they have completed their current 1 month project (see above for timeline).
    • The docs will be few, but will be accurate. But spartan is very much the word until a documenter is hired.
    • The code will be the cleanist and with fewest bugs, but all bugs will be wicked hard to find.

    EE are interesting.
    • after studying the situation for several months, They will tell you that it will take 15 ppl 4 months. Upon the 4th month, at the stroke of midnight, they will deliver the code.
    • It will run in about 10 min. - 1 hour of time. There will be some minor bugs.
    • If you read it will be sloppy. In addition, several sections will have been moved to horrible designed assembler (or possibly even a hardware solution). That allows them to get around bad designs.
    • There will be reams of docs. It will be very accurate, but it will go into a 5 paragraph description of why a i += 1was used in placed of a ++i ( SHORT ANSWER; becuase ++ was a shortcut on the old PDP7 and was only used for pointers, whereas the += conveys the sense of a non-pointer).
    • When you want to file a bug report, it will cost you money to file it. Then the actual bug fix will cost more than the original code, but slightly less than having somebody else do it.

    So how do you manage them?
    CISers; Lousy design/code, but good report with customers. Politicians.

    CSers; great design/code, lousy time-lines/documents. Lousy with Custmer support

    EEers; great time-lines, lousy code design, but will code around the issues. Long term maintence is bad. Professional with customer (like mainframers)
    --
    I prefer the "u" in honour as it seems to be missing these days.
  43. I'm on Mainframe and I'm "Young" by itunes+keith · · Score: 2, Interesting

    I grew up using Mac OS and now am the youngest, by far, in our datacenter to be an MVS DB2 DBA. My 25th birthday is coming in a few months :P I studied CE in school and the move to 'old school' has been an interesting change. Working for 2 1/2 years now.

  44. Reboot away by apankrat · · Score: 2, Funny

    Simulation result will still be 42

    --
    3.243F6A8885A308D313
  45. Whoops! by 0xdeaddead · · Score: 2, Funny

    Yeah Im guilty of taking one of these jobs down.. The guy was a total dick, and if the simulation is that involved, here is an idea, SAVE YOUR STATE time to time. Besides power failures do happen ;)

    1. Re:Whoops! by iggymanz · · Score: 2, Informative

      the mainframes I've worked on ran from 3 phase 480VAC flywheeled motor-generator sets, so the rotational inertia would keep the juice going while emergency generator or another utility could be switched in. Power never failed. The only scheduled power-downs were to make major upgrade reconfigurations such as replacing stacks of circuit boards, or wiring in whole new set of disk drives or peripheral processing units. Then a couple days to boot the motherfucker, 2.5 GB of OS didn't load fast then.

    2. Re:Whoops! by Alioth · · Score: 2, Funny

      The power never failed?

      I beg to differ :-)

      http://www.alioth.net/tmp/vaxen.html
      Englightening and very amusing story about the mainframe room and a VAX admin's experience of an IBM one.

  46. Re:my 2 cents by Anthony+Liguori · · Score: 4, Informative

    Unix is process-centric. Windows is thread-centric. This is also an artifact of GUI programming. For example the GUI should never stall by processing a request. Instead it should fork off a thread

    This has nothing to do with GUI programming and everything to do with the cost of creating a process on NT. People began abusing threads because it was so painful to use processes.

    Most unix apps don't use threading. This is not for lack of threading or knowledge of how to use threads. It's simply that processes are as cheap as threads and offer more protection.

    Nearly all Windows development involves a GUI. This is usually done with an event-driven API. On the other hand, many Unix geeks probably never program in the event-driven paradigm.

    Long before Windows existed, X-Windows had a callback, event driven mechanism for GUI programming. This resulted in considerably better performance than the message mechanism used in Win16 (which was carried over to Win32).

    The reason for using messages in Win16 was simple--there was no real multitasking. Context switches didn't exist so there was no difference in having a process handle events it cared about verses every possible event (with a standard default handler).

    The problem with most Windows developers is that they don't understand the history of Windows. They pick up things like "event-driven paradigm" as if it was some great innovation that makes their lives easier. That my friend, is the power of marketing :-)

  47. Cultural differences by gvc · · Score: 4, Insightful

    I've done a lot of mainframe development and a lot of Unix/Linux development; scarcely any Windows.

    The main difference I see between mainframe development and *ix development culture is respect. With the mainframe you have to book time days in advance and work in the wee hours to make any changes. And you make damned sure that, when you're done, things work as they should.

    With *ix development, things are laissez-faire. You send out a message a few hours/days/minutes in advance of some monumental change. Then you blame the users when they can't sign on to their system in the morning. Quote some recently-adopted standards if they argue.

    Of course, I'm speaking of the early days of *ix. These systems are more and more critical, and the admins are trying to learn respect. But they're playing catch-up. There's nothing like the fear of taking down a $500/minute system to make you careful.

    Windows development follows a similar pattern. The whole culture is so "personal computer" based that the concept of a year's continuous uptime is foreign.

  48. Identify the Beard by femto · · Score: 5, Funny
    beard #1

    [ ] Unix
    [ ] Mainframe
    [ ] Windows

    beard #2

    [ ] Unix
    [ ] Mainframe
    [ ] Windows

    beard #3

    [ ] Unix
    [ ] Mainframe
    [ ] Windows

  49. Mainframe programmers as geeks by dhuff · · Score: 3, Interesting
    I worked around some mainframe programmers for several years at a major bank, and they strike me as being much more like older Unix geeks than anything else, with some important differences:

    • They're probably much more politically conservative
    • They may wear much more conservative clothing, incl. stuff like neckties, but it'll still be grubby and ill-fitting
    • They probably drive a midsize, American sedan like a Ford or GM product
    • They generally have poor health habits, but lean more towards the old fashioned vices like coffee (from the office coffeemaker, not Starbucks) and cigarettes - diet is also poor
    • They obsess over uptime and reliability way more than Windows or even Unix geeks
    • They most likely don't have the typical geek interests like Star Trek, computer games or reading Slashdot :)


    But I bet you'll notice a core psychology that's pretty familiar to most geeks...
  50. Coded on mainframes, code in *nix now by Naum · · Score: 5, Interesting
    Dating back to Burroughs machines and managers who didn't know how to use a text editor, preferring to use punched cards and "punched card emulation", but yet they could do a randomizer calculation without a calculator in their head within a second or two.

    I've also had the opportunity to train mainframers in shops where MVS platforms were displaced by *nix based platforms. So, here is a subject that, no doubt, I can speak about:

    The major factors/differences:

    First, most of the mainframer programmer contingent has been moved offshore or is being done by NIV programmers. Really not much of a career path here, but OTOH, a great deal of critical systems (charge card processing, airline reservations, utility company systems) are still coded in MVS COBOL/DB2 (or IMS, a hierarchical mainframe database platform for IBM MVS). To convert these systems means you need to be able to understand these systems, and please don't give me a business analyst -- the days of their expertise are long gone, and the metamorphisis of systems over time means business knowledge is embedded in the code.

    Mainframers don't get GREP. I've tried so many ways to impart this wonderful tool, but all I get back is puzzled stares and bewilderment, for anything more complex than what could be accomplished with a non-regex, or simple wildcard search.

    Globals. This is something that put me aback 6-7 years ago, when I made the leap into Unix programming, and traded C/REXX/CLIST for C/Perl/etc... COBOL is structured into divisions and all your data declarations are laid out and globally accessible. Though many COBOL systems are quite complex, with a "program" actually being a driver for a whole hierarchy of 20-40 sub-programs, and the necessity to restart at a given point in processing can make things quite complex.

    Approvals, checkoffs, signoffs, and procedures. They're largely absent in the Unix (and most webdev work) world, but mainframers have grown accustomed to reams of authorization and approvals for even simple changes. Lead times of a week or more, along with VP signoff, QA signoff, user group signoff, fellow developer signoff, etc.... Even getting a downstream system to agree to test changes may take a formal request process and budgetary allocation of thousands of dollars. This is probably the biggest divide, and future schisms will be prevalent, as data center leadership trys to impose this kind of checks and balances on developers not accustomed to these obstacles. IBMs trouble and difficulty in the web server world offer a prime example -- business being told that it'll take 3-4 months to get a server online, and folks who know better just can't understand that.

    Lack of user tools. A big part of what I did as a mainframer was building tools, using BTS and File-Aid to allow developers and testers to create their own test bed and automate the test process. On Unix side, the tools come with the OS, and awk, Perl, and all the other CLI goodies make automating testing a snap.

    File in/File out vs. piping. Mainframers have a tendency to see everything as file-in/file-out. In a way so do *nix coders, but a seasoned *nix programmers sees the tools all being able to feed eachother. Rather than step1 filein fileout, step 2 sort filein, out fileout, step 3 filein, reportout, etc...

    On the age thing, most of the really skilled mainframers now, like myself, do Unix or migrated to Java. Others are awaiting retirement, or head over to six sigma teams, business analyst roles, or seek refuge in management, escaping the axe that clears the way for the offshore coder.

    Paper over softcopy. Got to have that printed listing, and the sticky notes (and before that, paper clips). I still remember a senior manager telling me when I first broke in how his appraisal of a programmer was how many fingers he needed to act as placeholders when he perused a program listing.

    --

    AZspot
  51. Mainframe culture by asdef · · Score: 5, Informative

    First, I am not your typical Mainframe admin / programmer, as I am 27 and a relitave expert on mainframe constructs like JES, JCL, SMF, SMS, and RACF. From my 5 years of experience working in the mainframe operations group I've noticed the following differences and similarities from Linux (I'm a home user) and Windows (my work laptop):

    - The mainframe is highly structured in it's change management procedures. This is an artifact of how long mainframes have been around. The procedures support the mainframe's goal of 24x7x365 uptime.

    - Due to the high level of structure, there are usually at least 3 groups (often times many more depending on the size of the orginization) that are responsible for the mainframe: System programmers, Operators, and Application programmers. Each fills a very specific role in the operation of a mainframe system.
    System programmers are typically responsible for the health of the operating system, and installing new system wide applications from vendors. The nearest match for system programmers is a Unix admin or windows admin.
    Operators provide the 24x7x365 support aspect, making sure that the hardware is healthy, jobs are running, and important business applications remain available or come up on schedule. Operators may also be responsible for the scheduling package, and security. Again in the Unix world, this is equivalent to the system administrator. The operator position originated because mainframes at one time required people to run around and physically mount tapes and disk drives, and to spite automation that takes care of these tasks, the position remains.
    The final group, application programmers, are what are most frequently though of when talking about a mainframe. They tend to work in languages like COBOL, CICS, DB2 stored procedures, and on occasion Asembly. Their role is to produce the online and batch applications that process the transactions that make the company money. App deveopers on the MF tend to be very carefull about testing code to ensure the proper result because first it could hurt the bottom line, but mroe importantly the operations group won't let it run in production with out assurances that it will run smoothly.

    - Mainframes have been built from the begining for reliability, availability. scaleability, and performance. IBM accomplished this by virtualizing everything. This virtualization allowed IBM to have duplicate pieces of hardware internally double checking each other. For example, every instruction is run thru two physical CPU's at the same time, and if the result is different, the diagnostic code kicks in, disable the CPU that's incorrect, and calls IBM to replace it. This method of RASP is very different from what you see in the windows and unix world where multiple machines are load balanced with geographic redundancy, and if 1 box fails, the others pick it up.

    - Operationally, in a windows or Unix/Linux world if you need to run sumething you just run it. In the mainframe context you submit it in a job to JES. JES (Job Execution Stream) is a resource manager that manages all the mainframe resources for executing jobs and tasks. The biggest difference is that on a mainframe yor job or task may not start running immediately if resources are not available, unlike Unix or Windows where it will start taking time away from already running tasks.

    - Development on the mainframe is usually given very low priority for resources, in order to ensure that the production onlines and batch get everything that they need. Where Linux and Unix have 40 levels of priority (20 to -20) The mainframe has virtually unlimited priorities, because the system programmer jugles CPU, DASD (disk to the uninitiated), tape, and resource wait information to determine the real time priority of a particular task using relitavely sophisticated algorithms to do so. Because of this the system can be tuned very specifically to give the most resources to the tasks which earn the company the most money.

  52. Re:my 2 cents by radish · · Score: 2, Insightful

    This has nothing to do with GUI programming and everything to do with the cost of creating a process on NT. People began abusing threads because it was so painful to use processes.

    Most unix apps don't use threading. This is not for lack of threading or knowledge of how to use threads. It's simply that processes are as cheap as threads and offer more protection.


    How is using threads "abusing" them? To counter your point, the problem with threads in Unix is that they are as expensive to create as processes.

    Why use threads? Well maybe you don't WANT as much protection - you know having multiple threads of execution through a common memory space is actually really useful sometimes. I personally write apps which often have over 1000 threads running at a time, and it's not because I'm running on Windows (I'm not).

    I'm not saying that (for example) X doesn't have an event model similar to Windows - of course it does. But your blatent assumption that threads are for some reason bad while having many processes is magically good is complete balderdash - they are two different things and are good for different situations.

    --

    ---- Den ene knappen er powerknapp, den andre er Bender voice knapp "Bite My Shiny Metal Ass"

  53. weirdest thing: mainframers turning to 'doze by toby · · Score: 2, Interesting
    One of the strangest (and scariest) things I've observed have been old "mainframe" guys who've embraced "The Micro$oft Way" when it clearly goes against every principle enshrined in the old days. You know, old-fashioned ideas like efficiency, reliability, availability.

    You'd think they'd run from Windoze as fast as they can. But no -- perhaps because of some vague VMS gene still running around in 'doze -- they occasionally take to it like babes to the teat.

    These guys do exist. I've heard one recently defend VSS as a reasonable source code control system -- when Micro$oft themselves won't touch it, and the following remark has been attributed to a M$ employee:

    "Visual SourceSafe? It would be safer to print out all your code, run it through a shredder, and set it on fire." -Fitz

    Another one of these mainframer-turned-M$-nut dudes tried to explain to me that M$ is "redesigning the internet to use binary protocols" because "text formats obviously don't work" and are "breaking everything". He also believes Apple should be annihilated because they stand in the way of a total monoculture -- and he sees monoculture as necessary to achieve our "Star Trek future". The fact that he foresees a smoothly running galaxy running Windoze Everywhere is just plain amusing.

    Buddy, if the future is like Star Trek, I don't want any damn part of it. Diversity is Life.

    --
    you had me at #!
  54. Fuckin A Right! by camusflage · · Score: 3, Funny

    Like this?

    --
    The truth about Scientology, Xenu, and you: Operation Clambake
  55. Corollary: End users by Tackhead · · Score: 4, Funny
    > Windows programmers don't know how to program without a GUI.
    > Linux programmers don't know how to program with a GUI.
    > Mainframe programmers wonder what a GUI is.

    Corollary for end users - and yes, my Dad's first email message to me was indeed sent in all caps:

    MAINFRAME USERS THINK THAT USING ALL CAPS WHEN SENDING MEMOS IS PERFECTLY NORMAL
    Linux users think that using all caps in email is YELLING.
    windows users dont no how 2 use nething but there im proggy

  56. Re:How did you get a mod of 5? by J.Random+Hacker · · Score: 2, Interesting

    Don't feed the trolls, Don't feed the trolls... Uh, OK.

    Apparently you have no experience with the UNIX way.

    What you don't seem to know is that MS Windows is utterly missing the wonderful collection of little tools available on every UNIX platform (Well, without installing cygwin -- but that's UNIX, right?). Each little tool does one little job, and does it well, and all of the tools can be connected in standard ways. So, I *can* use C++ or C or PERL or Python, but I don't *have* to -- many times all I need is sh and that wonderful collection of utilities...

    And yea, I do write huge programs sometimes -- but only when that's really required to get the job done.

    I don't think I ever heard of a MF being used for the types of things I get involved with, though. (back to the topic :)

  57. Re:How did you get a mod of 5? by jinzumkei · · Score: 2, Insightful

    uhm i'd get a refund from whoever taught you programming if this is a problem.

  58. Re:How did you get a mod of 5? by Anonymous Coward · · Score: 3, Interesting
    Insightful, how about idiotic.


    Oooh.. touch a nerve did we?
    You missed the point (and the humor) of the OP.

    What can you program in Unix that you can't in Windows.


    Firstly, was that a question? Secondly, nothing. Yes, you can do it all in Windows. The point you originally missed is that (s)he was referring to the whiz-bangetry of .Net (and admittedly Jbeans) style programming, where you find an object that quacks sort of like the duck just before you extend and instantiate it to a bull. I'm not saying there isn't a place for this (user interfaces, database connectors, etc), but people now apply OO with assloads of add-in toolboxes even where it doesn't make sense.

    Bottom line is, older UNIX folks are much more likely to have written the mass majority of their own code where today we see CASE tool technicians masquerading as software engineers. I see this at work all the time with the "new generation" of IS/IT types rolling through the door who couldn't code a b-tree save to save their lives and rely on prebuilt everythings to give the illusion that they do something "difficult".

    Got news for ya folks, my Subaru tech has more skill than most of these chumps.
  59. Mainframe is process-centred, *nix/windoze is not by sinewalker · · Score: 5, Insightful
    Appart from the obvious religious stuff about GUI (or lack of) and user-centred interfaces (or lack of), the biggest difference, and the biggest advantage that Mainframe brings is it's culture of process and change control. It is something you should strive to let your Mainframe masters pass on to the *nix/windoze padawans before they die of old age.

    I am a *nix padawan, but, crocky technology asside, I'm frequently impressed by my Mainframe elders, their ability to deploy code to Production environments that works *the first time* nearly every time, and their ability to communictate technical changes necessary to fix broken code in the middle of the night in the 0.1% of cases where they failed to get it working first time.

    Key values that I have picked up from my masters, and which should be inherrited by both *nix and PC/Mac enclaves are focused around Engineering principles. Mainframe guru's program like a civil engineer builds a bridge. No shortcuts are taken unless it can be proven that it is safe to do so. Testing is carried out in stages and test results must be submitted with the change request before a program migrates to Production. If a program must "abend" (Abnormal End) then it should do so noisily and with as much information as possible. If it finishes cleanly, little information is needed other than this fact.

    These closely follow the advice Raymond has encoded in his book, but there is probably much more that your Mainframe gurus know that you should cherrish and extend to your newer team members.

    Forget about the religious wars, the technology changes and the "focus" of your programmers on users or other programmers. Get the real truth from your Mainframe masters who have seen it all pass before them but have learned the hard way how to make a stable computer environment that stays up, even on cruddy mainframe technology. If their attitudes were adopted by people fluent in today's fantastic systems, all people would benefit.

    --
    “Our opponent is an alien starship packed with nuclear bombs. We have a protractor.” — Neal Stepnenso
  60. Two good sources by jbolden · · Score: 2, Informative

    Thought I'd mention two sources for this that I think are worthwhile.

    The first is a great article about what the differences between mainframe programers and Unixy programmers. The second is a book designed to teach mainframers to operate in a Unix environment. The article is definitely worth a look for anyone interested in this topic.

  61. Good Mainframe Programmers... by SluttyButt · · Score: 2, Interesting

    ...are aware of the intrinsic I/O between CPU, HD and peripherals. It is well published in the manuals anyway. PC programmers (generally) have no idea how data and at what rate are moved between peripherals. Thus they have little control over the inner workings of the language the program in. They are forced to work in sculpted interfaces provided by the Windows world.
    Mainframe on the other hand, have no interfaces and if any, it's a TEXT (EBCDIC) world. Mainframe is a no-frill world and strictly a business proposition. In a word - strictly no nonsense for you to hack with.

  62. Acronyms (Re:Everything Old Is Old Again) by freshmkr · · Score: 4, Funny

    Wow, what a post! I typed the whole thing into teco and it played the Star Spangled Banner on my DECwriter III !

  63. An observation on mainframers by GomezAdams · · Score: 3, Insightful

    Most of the mainframers that I have worked with are nine to fivers and many didn't have a PC at home or do much more than check emails when they do. They don't code routines at home to expand their work capabilities and many think that if it doesn't weigh 6 tonne and need 10 keepers and an air conditioning plant, you can't call it a computer. Most depend on the fact that their arcane skills aren't taught any more and that's all the job security they need.

    --
    Too lazy to create a sig...
  64. Re:I'm going to go with 'smell' by secolactico · · Score: 5, Funny

    I even worked with two Mac guys with beards

    No, no... those are called "goatees".

    --
    No sig
  65. UNIX vs Windows by justine_avalanche · · Score: 2, Insightful

    "UNIX programs tend to solve general problems rather than special cases."

    Brian K. & Rob P.

  66. A Windows admin, Unix admin and a Mainframe admin by Nefarious+Wheel · · Score: 5, Funny
    A Windows admin, Unix admin and a Mainframe admin each went to the Gents room.

    The Windows admin washed his hands, then pulled out twelve paper towels and thoroughly dried both hands up to the wrists in two seconds flat.

    The Unix admin took out one paper towel and very carefully, using every bit of dry towel, dried his hands perfectly in under one minute.

    The Mainframe admin breezed through without stopping to wash his hands at all.

    "Somewhere along the line" he said, "we learned not to piss on our fingers..."

    --
    Do not mock my vision of impractical footwear
  67. not only was he insightful, I'd mod YOU down by WebCowboy · · Score: 2, Interesting

    ...but I won't. Rother I'll explain why you have no clue.

    Insightful, how about idiotic. What can you program in Unix that you can't in Windows.

    That wasn't the point the original poster was trying to make. The point is HOW you program in Un*x vs Windows. Nobody will argue that you can do anything you want with either platform. However, a great many people would argue that the "UNIX way" is FAR mor elegant.

    In Windows you have C and C++ just like Unix. Java, Perl they are all there as well.

    This statement really demonstrates your inability to comprehend the differences. To extend the "building toys" analogy, C/C++, Java, Perl et al are NOT the pieces, they are the plastic/wood/metal with which the pieces are made. You could make lego bricks out of the latest space-age carbon fibre composites, but they would be useless if the "bumps and holes" on each brick were different sizes and wouldn't lock together.

    Now the platforms may be different but largerly they are more similar than not from a progammers ability to make a program perform a required task.

    There I'd really have to disagree with you. There are things that Un*x style architectures do easily that are arduous to perform in the Windows environment. Similarly, there are things Windows excels at. IPC was really much more refined under UN*X--some might say Windows works with threads so well because it has to since its IPC abilities have historically sucked--really in UN*X it is much easier to get various components to play nicely with each other yet keep their resources separate and protected. OTOH, there are reasons Windows-based games are so far ahead besides simple market share--graphics interfaces are one of those "funny shaped blocks" in Windows that is very well suited to its task.

    Really that Lego analogy is very apt indeed. UN*X is very uniform in how it works, just like a bucket of classic Lego bricks. You have a library of pipes, sockets, shared memory etc. that is very standard across all programs that extends all the way to the user interface (you can pipe all manner of programs input and output together right on the command line to a degree not yet seen in production releases of Windows). Once you get the hang of the UN*X Way you can snap these blocks together esily to suit your needs.

    For all the "object orientedness" of Windows, there is not that level of uniformity in interfacing to make those reusabel objects work together. Instead, you have an overly complex framework in the form of DDE/OLE1/OLE2/COM/DCOM that was largely designed to accomodate disjointed, inconsistent interfaces between various components/applications. This is something like the "licensed from the movie" Technics sets with all the little odd-sized rods/axles, funny-shaped blocks, special wheels and so on. There many little sets where the pieces fit together very nicely in a few commonly required configurations, but when the time comes where you want to make your own creation not in the instruction booklet you become frustrated with the useless pieces. For many kids, the six or so really cool things you can build are good enough, for the 10% "most geeky" kids it would bore you quickly.

    I can't say I really know for sure what a "mainframe toy" would be--mainframes don't seem like fun at all. I think "mainframers" may have forgotten what childhood was like, or perhaps hatched from a pod fully grown, who knows. I do not have a lot of exposure to that philospohy/culture. If I HAD to pick a toy that was most mainframe-like I might say Mecanno, because like UN*X they are fery uniform in structure, however you have tediously fiddle with those little screws to put anything together, just like a mainframe--you have your "special screwdrivers" (arcane knowledge) and have to follow tedious processes to get things done. Or, perhaps it is like building a birdhous with popsicle sticks, where you have to tediously glue the pieces together with Elmers glue, wait for it to dry bef

  68. Simple, compare and contrast. by Quixadhal · · Score: 2, Insightful

    Windows/PC users fix problems by rebooting until it goes away.

    Mainframe users fix problems by going away.

    *grin*

    Seriously, imagine a one-player game on a console, where you turn it on, play a while, turn it off, and when you come back you start over, or perhaps start at the last level you finished. That's a PC.

    Now imagine a multi-user game where lots of people connect and disconnect all the time, some of them keep playing while they're offline, others don't. The world itself is always there, and there are very few "resets". That's a mainframe.

    On a PC, programming tends to be sloppy because it's generally assumed (at least in the world of application development) that it won't run for more than 8 hours a day, and that the PC itself will probably reboot every day. So, a small memory leak, or a resource that gets "lost" is not going to be a major disaster. Even data corruption is likely to only affect a handful of workers and their local files.

    On a mainframe, if memory somehow gets lost, it stays lost for months or years at a time. A faulty driver can destroy the entire company data-store (hope you make backups!). But because of this, most software is checked with a bit more care.

    I hated the VAX/VMS cluster we had when I was in college.. but after 10 years of dealing with the hardware annoyances of PC's, and the software incompatibilities of linux, and general unreliability of windows... I think I'd rather be back typing those big long DCL commands. At least that thing never crashed, and was totally predictable (more users == slower; in a nice linear fashion).

  69. Windows Admin has bad name from NT 4.0 Days by alexhmit01 · · Score: 4, Interesting

    In NT4 and earlier, those systems weren't there (WSH came out around Option Pack 2, right? It's been a while). However, up until recently, the majority of Windows Network systems were NT 4.0. The W2K+ Scripting environment is quite impressive (I've been doing my first Windows work in a while recently, although mostly Excel/VBA programming, but played with the scripting capability for fun), and it has come a long way.

    When I worked a decent sized MS Partner, the MS Way was "point-and-click." They were going to do a 10,000 user migration by hand, because that was the MS Way. I grabbed the NT 4 Resource Kit and whipped up some Batch scripts to do the parsing, and the Windows guys were amazed.

    Windows has some very intelligent scripting, buts its somewhat hidden because the NT 4 Days, which weren't short, but caused a problem. Older PC guys knew Batch scripting, which kinda disappeared in the NT 4 days because the tools weren't readily available (buried in the Resource Kit meant that you couldn't count on them being on the machine). The newer object-oriented programing method is cool (and absolutely preferable to parsing text streams, which as you said depends on an unchanging text output from a program, which is very constraining), but you need a new generation of Windows Geeks.

    Unfortunately, hacking on Windows is about as "cool" as a Mac was 10 years ago, so your computer geeks just aren't learning it. This doesn't change the fact that good admins are critical, but there is a perception problem. Just like Novell became perceived "dead" because nobody saw it because the machines didn't crash.

    The WMI/AppleScript approach (as in, thick self contained apps that are callable) is perfectly legitimate.

    The other problem you have here is what happened to the MCSE in the late NT 4.0 days. When I was just finishing my MCSE, all the MCSE study guides were coming out... teaching to the test, and MS didn't upgrade the tests fast enough. Stuff that took me weeks reading the NT 4 Resource Guide was available in a condensed 4 hour book. Combine that with the MCSE Courses, that taught to the test, and the whole industry get messed up. People hired cheap "paper" MCSEs, and people got used to Admins not being able to program. Finding a Windows Admin that truly gets it is rare, because there is too much dependance on unknowledgable paper-admins, so people assume all Windows Admins suck.

    Alex

  70. 64-way Windows by kylef · · Score: 2
    Whatever. Unix has been on 64+ CPUs for a long time now. Is anyone selling an NT machine that comes close?

    Um, yes.

  71. Re:A Windows admin, Unix admin and a Mainframe adm by chriso11 · · Score: 5, Funny

    Later that afternoon, the Mainframe admin got a horrific case of E.Coli poisoning from the handle of the urinal.

    --
    No, I don't trust in god. He'll have to pay up front, like everybody else.
  72. Difference in terminal users expectations by franois-do · · Score: 2, Informative
    Terminals in mainframe culture (CMS, TSO, CICS...) were mostly used in full-screen mode. You could do whatever you wanted on your screeen using its local possibilities (insert, replace, jump to next field, etc.), it was strictly a local action, and you could be sure that nothing would be transmitted to the mainframe until you pressed either ENTER or a PF/PA key. The 3270 interacted with its control unit.

    When the screen was ready, all the page was transmitted to the computer. This scheme allowed to have sometimes 8000 terminals and over on a 8MB (yes!) machine.

    Incidentally, terminals did have lowercase letters and dead keys for national languages from 1978 on with the 3278 line. This was not hard to implement : just an extended ROM to display the characters on the 3278, and a slight change in microcode to handle the dead keys on the 3274 or 3174 control unit.

    --
    Signature omitted in order to save space. Thanks for your understanding.
  73. Mainframe coding reborn on the web by Anonymous Coward · · Score: 2, Interesting

    I was of the vintage that started my CS degree using punched cards and ended it with Unix and Windows. What I learned from coding on the MVS system is that the programmer should batch up as much of the request as possible because each user gets only a tiny slice of the processor's attention, and it is a Good Thing to do let the client side have responsibility for some state information. Later when I started to learn to program on the web I was able to reuse most of that orientation to patch together stateless web pages into a coherent application workflow. I guess that is why I still write my webpages in text editor and never ever use an "integrated development environment" for web coding ... I guess I just don't like to have the physical processes hidden away from my analysis process.

  74. The difference IMHO by FJ · · Score: 5, Interesting

    I'm a mainframe sysprog but I've coded on Unix & Windows. I'm also rather young (33) for a mainframe sysprog. Here are the differences.

    The first difference is the difference of work running on a system. Unix & Windows development typically takes place on dedicated machines. The changes are then applied to a separate production machine. On a mainframe development & production are often the same LPAR (Logical Partition) or the same physical box. Because of this development gets the low priority. If you run out of juice on a Unix/Windows box you either get a bigger one or you cluster them together. In the mainframe you either redesign it to run more efficiently or you start shelling out $$$ for a bigger machine. Normally your only choice is the redesign.

    Software on a mainframe is horribly expensive and the faster the machine the more it usually costs. This is an old way of spreading the pain of software development. The big guys pay more because their machines are faster but the smaller guys get to pay less. Imagine if MicroSoft decided to charge a lot less for Office if you ran it on a P5 instead of the newest processor? Some software on Windows is licensed by the CPU, but I've never heard of the speed of the CPU being a factor. Do you think you'd get that fancy new PC if the software would cost 10x as much?

    On a mainframe software development is a slow process with lots of checks along the way. Nobody just "slams in a change" unless they are either 100% sure it will work and it fixes a critical problem that is impacting business, or they want to be fired. Banks frown heavily on downtime. Unix & Windows systems seem to be more tolerant of this (with the odd exception being email - how email became the most important application is beyond me).

    Once you develop, debug, and get a mainframe program running you can usually forget about it. There are programs running on mainframes today that haven't changed in 30 years. That is a pretty good return on investment. I've dealt with both and it seems to boil down to "pay me now or pay me later". Installing stuff on a mainframe take a lot of up front work but if you do it correctly you can expect it to work well when you are done. Windows programs are easier to install and develop but you have the constant reboot issues, memory leaks, and just plain annoying mysteries to deal with.

    Mainframes (in my opinion) have far far far superior system diagnostic tools. If a program is running slow I can determine if it is CPU, disk, database contention, or any other resource shortage. This is mainly because there is so much running on any given mainframe that system diagnostic tools need to be very good. The tools on Unix and Windows are good but they don't need to be as complete because the environments are far less complex.

    Program debugging tools on a mainframe can be awful. Interactive debuggers are the exception, not the norm. They tend to take up CPU which drive up software costs which the finance department hates. I've seen good interactive debuggers but they suck CPU and make the finance department hate you.

    Batch controls on a mainframe are far superior to Unix or Windows. This is mainly because the mainframe started life as a batch system. Once you understand and master JCL it is really a good system. Batch on Unix and especially Windows is more of an after thought. You can run batch, but the tools to monitor failures, schedule dependencies, and validate results are not as good.

    A programmer must know how a program is going to run on a mainframe long before you run it. You need to know how much disk, CPU, and memory you need and how man lines of output you are going to use. If you exceed this by too much your program will be automatically canceled. This is because you are not the only one using the system and if you exceeded what you said you needed your program could have a problem. That can be painful but it stops program loops if done properly.

    The "just reb

  75. Why you need to wash your hands by logpoacher · · Score: 3, Informative
    Looks like the mainframe guy needs to read this:

    http://www.straightdope.com/classics/a4_220.html

    Keep washing those hands, kids!

  76. That library example is universal by fitten · · Score: 2, Insightful

    Raymond invents an amusing story to illustrate this which will ring true to anyone who has ever used a library in binary form.

    Unfortunately, I can't tell you how many Open Source libraries I've thrown away after trying to use them for the exact same reasons. They APIs aren't documented (if at all), the APIs don't work like they are described, the APIs don't work like it seems they should, the APIs just don't work, or the APIs are just way overly complicated to use for what I/we need done. So what if I can debug through the source, maybe it gets me to the point of throwing away the OSS library faster because I can see that it is useless, but the end result is the same.

    You can also chalk up the GPL to some of it. I've found libraries that seemed OK but were GPL'd and software we write doesn't have GPL'd source in it, thus forcing me/us to reinvent the wheel.

    Neither model is perfect and programming never will be the utopian ideal of being able to always reuse everyone else's code. Sometimes others' code just isn't written to fit the way someone else thinks so it seems unnecessarily complicated and/or contrived.

  77. Typical Management.. by Keck · · Score: 2, Insightful

    As a *nix nerd in my fifth year managing mainframe developers, I need some insight into mainframe programmers.

    So you have been managing a group for five years, and have no idea what makes them tick? Sounds like you're definitely management material :)

    --
    A computer without Microsoft is like ice cream without ketchup.
  78. More Mainframe Culture by Ann+Elk · · Score: 3, Funny

    Years ago, I worked with a grizzled old mainframe veteran. Let's call him Dan. Earlier in his career, Dan ran the datacenters at American Express and FedEx. Dan knew big iron.

    One day, a few of us were ooh-ing and ahh-ing over the latest whiz-bang quad-Alpha box. Dan just laughed, shook his head, and said:

    If it ain't water-cooled, it's just a terminal.