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?"

691 comments

  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 RollTissue · · Score: 0
      LOLFTA: The very fact that the Unix world is so full of self-righteous cultural superiority, "advocacy," and slashdot-karma-whoring sectarianism while the Windows world is more practical ("yeah, whatever, I just need to make a living here")



      kthxbye

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

      Only if you know where all the lineprinter porn resides!

    3. 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.
    4. Re:An idea... by Anonymous Coward · · Score: 1, Funny

      Didn't know there was Windows geeks. I thought it was just point-n-click programming for Win32. I guess you learn something everyday.

    5. 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.
    6. Re:An idea... by Anonymous Coward · · Score: 0, Funny


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

      Dreamweaver is programming? hahahaha that's a good one.

    7. Re:An idea... by Anonymous Coward · · Score: 0, Flamebait

      Dreamweaver does come in very handy for designing asp.net pages.

      Also, You are a smug son of a bitch. You think you are so fucking smart but it is obvious to me and anyone with half a brain that you are just another slashbot with no clue.

    8. Re:An idea... by FlameboyC11 · · Score: 1

      Read your parrent. He uses the guis for design, and the coding side for actual function. And since when are PHP, ASP or JSP or even HTML not languages? I think you're thinking of frontpage, which blows ass for any sort of programming or designing

    9. 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.

    10. Re:An idea... by bigman2003 · · Score: 1

      No...Dreamweaver is not 'programming.'

      Dreamweaver is to programming, what Microsoft Word is to 'writing.' There is a big difference between the tool, and the activity.

      But Dreamweaver is a damn good environment to layout any type of work that will be on the web. In fact, we're all sitting here reading Slashdot- which could easily have been layed out in Dreamweaver.

      Or just about any other website you can think of...For instance, Yahoo!, Amazon, CNN - all of them could have been done in Dreamweaver. If you don't consider those projects to have programming behind them, then I don't really understand your definition of 'programming.'

      If you don't use a program like Dreamweaver to layout your pages, that's okay. But there is a good chance you are wasting a lot of time...

      --
      No reason to lie.
    11. Re:An idea... by Anonymous Coward · · Score: 0


      I did this for a (now defunct) startup and I'm not even out of College.

      hahahaha... 10 geeks with a bad idea and no business sense let a young punk do leet dreamweaver "programming". Fuck me, that's funny, no wonder they're defunct. Come back to me when you've graduated and have >10 years under your belt. I'll wager you still won't be in the industry.

    12. Re:An idea... by orasio · · Score: 1

      It's the same thing.
      Unix-style programmers just think that B- is more important than A- for the success of most projects.

      The issue is that when you care too much about A, especially if you try to make it easy for people who don't even know what they are trying to do with the software, you might fail to accomplish making a good, useful program for those who need it to get work done.

      I believe one should care first about making good quality software, including good design, and good usability. You need to take into acount the lifetime of the software, so you will be much more succesful if you care about good, logical, reusable design, before you care about the colors of your forms. Those are important, but right after you made a good job with the backend.

    13. Re:An idea... by bit+trollent · · Score: 1, Flamebait

      Yeah yeah, blame the programmer for the boss' lousy buisness plan. Make some nonsensical jab at "dreamweaver 'programming'". And wave your 10 years in the industry dick around. It is all very impressive.

      Here is a clue: In our project, like many web projects there was one web designer who used dreamweaver. I was not him. I was one of the 6-7 programmers who worked on the back end of the site pretty much only using Visual Studio and Enterprise Manager. In my own personal asp.net projects I use dreamweaver to design the site, but like anyone who knew anything about web development would tell you, You Do Not Program In Dreamweaver. Hell, even a 2nd year CS student would have figured that out by now just by reading this thread. I don't know what they pay you to do at your company but my guess is that it isn't to learn new things. Like has been stated by several users, in asp.net projects all of the real programming takes place in Visual Studio using c#.

      Assuming I don't get tired of the smug assholes I'm pretty sure I'll still be programming away in 10 years time. There is probably no convincing you of this, but then again, you can't even grasp the fundamentals of web design and programming so it's probably not a big deal. Wherever I am be in ten years but if I am anything like you I hope someone puts a bullet in my head.

    14. 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.

    15. Re:An idea... by laejoh · · Score: 0

      I did that, actually...

      My bank developped an ebanking web application and I got to test it.

      Next to the ebanking web application there still existed an older home banking application that ran on windows and connected by means of the x protocol to a mainframe computer.

      I made up a transaction and put a <a href to a pr0n pic in the comment section. This transaction I send by means of the home banking application. The ebanking web application showed the pic of course :)

      So think about it: on windows a <a href that gets to a mainframe and gets translated to ebcdic. The transaction passes through the complete system and gets transfered to a linux machine were it gets decoded in ascii again. The webbapp doesn't translate < into &lt; and ... EBCDIC pr0n!

    16. Re:An idea... by meadowsp · · Score: 1

      HTML has never been a programming language. It's a markup language, hence, Hypertext Markup Language.

    17. Re:An idea... by 16K+Ram+Pack · · Score: 1
      Even though I've used VS.NET, I'm trying to move away towards actually entering the text.

      You might ask why. The reason is that I want to really understand what is going on. I want to be able to do more true OO design. From what I can tell, the moment you try and do things like inherit a form to a zzzform which has certain additional properties as standard, VS.NET breaks down.

    18. 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."
    19. Re:An idea... by TheRaven64 · · Score: 1
      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.

      I completely agree. I was recently working on some scientific visualisation code that took about an hour to run on a dual G5. While doing that, I was heavily profiling it and optimising almost as much as I was doing original coding.

      After that, it was so nice to return to a world where I can add two or three layers of abstraction to my code, adding layers of inefficiency in exchange for better maintainability, and still not be using more than 10% of the CPU on a machine 5 years older.

      --
      I am TheRaven on Soylent News
    20. Re:An idea... by springbox · · Score: 1

      In most cases it actually turns out not to be a big deal to not have tight loops or optimized code everywhere, especially when it turns out your program is sleeping for 90% of the time. I do agree that being lazy is stupid, but being too anal about things when it doesn't really matter isn't much better. For example, I would care if he was writing the main rendering loop for an interactive application because being slow there sucks, but not so much if he was writing a text input utility.

    21. Re:An idea... by Pig+Hogger · · Score: 0, Flamebait
      Unix-style programmers just think that B- is more important than A- for the success of most projects.
      The issue is that when you care too much about A, especially if you try to make it easy for people who don't even know what they are trying to do with the software, you might fail to accomplish making a good, useful program for those who need it to get work done.
      RIGHT-ON!!!!
      I am a programmer, and about 15 years ago, I got suckered in a job where I had to touch a beige toaster.
      Well, that system is so crufty that after a while, it was painfully obvious that despte all the hype about "user friendlyness" and all that oxdung, at a given point, you had to give up the tricycle and had to learn how to use a bicycle.
      A whole industry has been suckered into using a bloated, overpriced, crufty platform: the pre-press industry (graphic arts).
      Many times, I would work on extremely complex projects (say two 900 page books at a time) on extremely tight deadlines.
      Needless to say, this stretched the poor macintrashes to the limit, making one realizes that you cannot have a whole industry run solely on that kind of platforms.
      At a given point, when you do **DEAD SERIOUS** stuff, you have to **LEARN** to use a computer properly, not shield yourself behind pretty mickey-mouse GUIs and be totally oblivious on the function of your tool, to the point that it will cough-up on you.
    22. Re:An idea... by Pig+Hogger · · Score: 1
      If you don't use a program like Dreamweaver to layout your pages, that's okay. But there is a good chance you are wasting a lot of time...
      I like Dreamweaver because it lets you manage a crufty website easily. I've had a website since 1993 and over the years, it evolved into an unwieldy mess (it's about 800 megabytes right now).

      However, whenever I work on it nowadays, I use PHP (you can't take the programmer out of the guy!) but Dreamweaver makes it easy to work with the CSS.

    23. Re:An idea... by Pig+Hogger · · Score: 1
      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.
      My, I am honoured! :)
      I use Dreamweaver mostly for the site management functions (when you have had a website since 1993 and it evolves into a crufty 800MB mess, you need some serious tools to manage it), yet, nowadays, when I "do" a website, I do it in PHP. Dreamweaver works fine for this (although, perhaps the syntax highlighting could be improved), and it absolutely rocks when one deals with CSS and, of course, site management.
    24. Re:An idea... by ThePromenader · · Score: 1

      ...almost what I was thinking! The nagging question that was going through my mind in reading the article was "why aren't these guys talking about the final goal of the program being made?

      If you take it one further you'll see that the Unix progammer programs to make "the most concisely coded kick-ass program", and the Windows programmer programs something sellable to the widest end-user audience possible. The former thinks to the quality of his work; he is an artisan. The latter thinks of "customer habits" even during the production process: he is a salesman.

      There is a world of difference between the two, and it's not only a question of "culture".

      --

      No, no sig. Really.

      ThePromenader
    25. Re:An idea... by Anonymous Coward · · Score: 0

      GP got PWNED!!!1!11

    26. Re:An idea... by The_Wilschon · · Score: 1

      As I understand it (which, admittedly, is rather naively), the biggest danger in using a WYSIWYG gui designer (which, unless I'm mistaken, describes dreamweaver? I've never used it, so tell me so, if I am mistaken) is cross-platform-ness. You might align several forms with each other and put a graphic above them, and suchlike things, but then if someone else looks at the page using a different browser, on a different system, with a different screen resolution, it could very well be all screwed up. Unless you do significant testing in many different environments, you run that very serious risk. Of course, this also applies to guis you handcode, but I would venture to suggest that a gui you have handcoded is a little bit easier to tweak, simply because you already know the code.

      That said, IANA gui designer. I have done a minute amount of gui work on a program which ran solely on one system, and I did use a graphical tool, fluid (http://www.fltk.org/), to do it. However, one of the things that I liked about fluid was that it kept you a lot closer to the code than the only other gui designer I've played with, glade. You got the benefits of laying out the gui graphically, as well as the benefits of knowing the code (at least somewhat).

      --
      SIGSEGV caught, terminating

      wait... not that kind of sig.
  3. Easy by Anonymous Coward · · Score: 1, Insightful

    Windows programmers program as fast as possible to maximize profit ignoring the reprecussions of bad programming while Unix programmers take pride in their product.

    1. Re:Easy by Anonymous Coward · · Score: 0

      Why was this modded flamebait? This fits my experience exactly. Every windows programmer I've ever met has been pretentiously arrogant.

    2. Re:Easy by duffbeer703 · · Score: 1

      Mod this up!

      Documentary evidence available at www.joelonsoftware.com

      --
      Conformity is the jailer of freedom and enemy of growth. -JFK
    3. Re:Easy by NateTech · · Score: 1

      ... and code slowly at the cost of profit.

      Since you didn't finish your sentence. :-)

      (No, I don't believe it, I just laughed that you didn't finish that retarded generalization.

      --
      +++OK ATH
    4. Re:Easy by springbox · · Score: 1
      Windows programmers program as fast as possible to maximize profit ignoring the reprecussions of bad programming while Unix programmers take pride in their product.

      What about the hobbyist programmers on windows?

  4. My guess... by ShaniaTwain · · Score: 5, Funny

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

    1. Re:My guess... by KaptNKrunchy · · Score: 1
      "and nipple piercings that look and spin like tape reels"

      I want one.

    2. Re:My guess... by gstoddart · · Score: 1
      ..Punchcards, ENIAC tattoos and nipple piercings that look and spin like tape reels.
      --

      Man, I am so glad I'm a UNIX geek. An ENIAC tatoo? Please!
      --
      Lost at C:>. Found at C.
    3. Re:My guess... by Anonymous Coward · · Score: 0

      mainframers aren't freaks. I'd normally tell you to take your piercings and shove them up your ass, but you've probably already done that or will now try it.

  5. I'm going to go with 'smell' by Anonymous+Crowhead · · Score: 1

    Or maybe beards?

    1. 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 :-> :-| :->
    2. Re:I'm going to go with 'smell' by soft_guy · · Score: 1

      I've been in the pacific northwest here for several years. There are lots of Windows guys here with beards. I even worked with two Mac guys with beards.

      --
      Avoid Missing Ball for High Score
    3. 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
    4. Re:I'm going to go with 'smell' by miscGeek · · Score: 1
      Hmm, interesting.... I guess that fits. I have worked mainframes, windows and unix and have a mustache. Guess, I got a little mixed up there :)

      I consider myself a unix geek though. I just feel more at home in that environment.

      --
      May the source be with you!
    5. Re:I'm going to go with 'smell' by Yremogtnom · · Score: 1

      Maybe they were really just Unix guys in disguise!

      -> Mac OS (uni)X

      --
      You are alone in the world.
    6. Re:I'm going to go with 'smell' by soft_guy · · Score: 1

      I guess this was all supposed to be a joke, but these guys were Mac developers since the 1980s. One guy started developing for the Mac professionally in 1984 and was the biggest Mac biggot I've ever met. In fact, he had a real hard time taking any direction from his manager if his manager was not an expert on the Mac. He just had zero respect for anyone who wasn't a Mac programmer. I was his manager for a while and he had no problem taking direction from me, but from a windows developer - forget it.

      And he had a full beard. And had been married several times.

      The other guy had been developing for the Mac since sometime in the 80s - at least before 1988 because he mentioned it to me. I didn't know him as well, but he also had a full beard and was married.

      I developed for the Newton from 1994-1997 and for Mac from 1996-present. I do not have a beard and also am married.

      --
      Avoid Missing Ball for High Score
  6. 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 infonography · · Score: 1

      The mod is an idiot, he's never heard that managing programmers is like herding cats.

      --
      Sorry about the writing. Robot fingers, you know? Cliff Steele in DOOM PATROL #23
    2. Re:Cats by Anonymous Coward · · Score: 0

      I'll say. There are some really touchy mods here today.

    3. Re:Cats by Anonymous Coward · · Score: 0

      $ SET DEF [BOTS.MODERATOR]
      $ START BOT/SCRIPT=MODERATOR.SCR/OUTPUT=LOG.TXT/TARGET="sl ashdot.org"

      This post would be a lot more funny if I didn't have to post a bunch of lowercase text at the end to get around the stupid lameness filter. Ugh.

    4. Re:Cats by Nutria · · Score: 1

      Any other greybeard VMS geeks think that VMS is a lot more like the mainframe than it's like Unix?

      After all, at least DCL points SYS$OUTPUT & SYS$ERROR to the .LOG file...

      --
      "I don't know, therefore Aliens" Wafflebox1
    5. 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).

    6. 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
    7. Re:Cats by hplasm · · Score: 0
      Windows admins hate cats.

      Unix admins love cats

      Mainframe admins eat cats. -possibly.

      --
      ...and he grinned, like a fox eating shit out of a wire brush.
    8. Re:Cats by cowbutt · · Score: 1
      he most annoying things about VMS - to a UNIX geek - are

      * a) no 'cd' command -

      SET DEF

      No, I literally mean 'cd'. 'cd' is a pretty standard way of changing directory and it applies to AmigaDOS, DOS, UNIX and CP/M (I think).

      * 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

      Cool. I suspected there might be, hence my 'apparent'. I don't recall any of my VMS-hacking peers showing me '-'.

      * c) system-wide date/time a la Windows,

      Huh?

      UNIX has per-user date/time, derived from the system clock combined with the per-user TZ environment variable. The UNIX system clock always runs as UTC, and everything else is derived from it. Windows' system clock seems intended to be run as local time. VMS seemed to me to be a confusing mix of the two approaches, depending on what software you have installed.

      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.

      Shell aliases and tab completion have been around for many years now. :-)

    9. Re:Cats by Anonymous Coward · · Score: 0

      News at Slashdot: Brillant moderators continue to amaze.

    10. Re:Cats by Anonymous Coward · · Score: 0

      While other cats again are cool cats

    11. Re:Cats by PW2 · · Score: 1

      I had a 'cd' command on the VMS OS back in the day -- I don't remember how, but try to Google for sample login.com sripts (or what ever they're called)

    12. 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
    13. Re:Cats by dickens · · Score: 1

      But what other OS has directory recursion built into the shell (like VMS) ?

      First time I had to use the find command on UNIX light dawned on Marblehead...

    14. Re:Cats by Nutria · · Score: 1

      UNIX has per-user date/time, derived from the system clock combined with the per-user TZ environment variable

      oh, ok.

      Shell aliases and tab completion have been around for many years now. :-)

      "shell alias" is one usage of VMS "symbols".

      The command parser is a completely different kettle of fish.

      --
      "I don't know, therefore Aliens" Wafflebox1
    15. Re:Cats by Anonymous Coward · · Score: 0

      > 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).

      Hmmm... I've spent 30 years working on *nix and VMS and MVS and vxWorks and RSX-11 and winDoze and os/2 and... My experience is that *nix and VMS are much more alike than they are different. Perhaps the fact that some *nix folks REALLY hate VMS is because of this. I've heard tell that some folks hate others simply because their skin colors are different. Imagine that...

      Anyway, to address your questions.

      a) The *nix "cd " command is perfectly duplicated in the VMS "set def " command. Perhaps the most significant difference is that the syntax and command names (for the same function) don't look anything alike. *nix commands were created with the intent of minimizing key strokes and *nix was developed as a development system. VMS commands are intended to do pretty much what the command says (in English) and the system was intended to be the next generation 'do anything' OS after MVS.

      b) Referenceing directory paths reletive to the current default is a capability that is present in both *nix and VMS. There's even something like it in MVS! At any level, '-' as a VMS path element name is the same as '..' in *nix. VMS also has the 'define' and 'assign' commands that provides the ability to symbolicly define a long path name that can be used as a reference somewhere else in the session. Putting 'define' s in the VMS login file provides the same functionality as the PATH environment variable in *nix or winDoze. If the VMS using programs are appropriately designed (some are, some aren't), the VMS 'define' command can be used very like the DD card in MVS.

      c) System-wide date/time is available in the VMS-cluster configuration. VMS has a standard set of date/time services. Of course, they are structured and named differently than they are in *unix... As an aside, the VMS cluster provided NFS-like services at least as far back as 1983, way before NFS existed.

      I once worked on a VMS system with a guy who was a *nix bigot. He very carefully aliased several VMS commands to *nix equivalents, 'cd' to 'set dir', 'emacs' to 'eve', 'ls' to 'dir' etc. The intersection of *nix commands with VMS commands is small enough that he got away with having a lot of *nix shell commands available in his VMS account!

    16. Re:Cats by llefler · · Score: 1

      * a) no 'cd' command -

      SET DEF

      No, I literally mean 'cd'. 'cd' is a pretty standard way of changing directory and it applies to AmigaDOS, DOS, UNIX and CP/M (I think).


      Simplest solution, put this in your login.com

      CD :== SET DEFAULT

      You still need to remember that you aren't using / and \, but there are even some CD.COMs on usenet that appear to address that too.

      And that is all I will admit to remembering about VMS. Oh, and file versioning.

      --
      It is amazing what you can accomplish if you do not care who gets the credit. -- Harry Truman
  7. 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

    2. Re:A better name for this article... by isecore · · Score: 1

      ROTFLMAO

      Sir, I believe you nailed the proverbial head onto the mythical nail, and for that I salute you!

      --
      I enjoy large posteriors and I cannot prevaricate.
  8. 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!
    2. Re:Answer: by Nutria · · Score: 1

      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

      Snicker. Mainframes don't even have the concept> of what video cards are, much less sound cards.

      After all, you can't even plug a terminal into a mainframe.

      --
      "I don't know, therefore Aliens" Wafflebox1
    3. Re:Answer: by millwall · · Score: 1

      The idea of Requires Windows 2000 or Windows XP is for the birds.

      I get the idea! Mainframes are for sexist men, Windows is for birds.

    4. Re:Answer: by Technician · · Score: 1

      Snicker. Mainframes don't even have the concept> of what video cards are, much less sound cards.

      I agree. Not all hardware supports all ports. However if the mainframe has an RS-232 port, I can make some assumptions about it such as voltage swings (not 0-5 V but +12 and -12) some handshaking such as DTR CTS DSR, and some expected supported baud rates such as 300, 600, 1200, 2400, 4800.

      I can make these assumptions even though I've never seen your port on your mainfraim, but I can expect it to print text log files to an ASCII dot matrix printer with a serial port after the comm paramaters are properly matched.

      I also expect at the hardware level to be able to talk to a VT100 dumb terminal. The port on the mainfraim can be configured to talk to a dumb terminal on a serial port.

      Try connecting a all in one printer to the centronics port on the mainframe. Now try printing that log file.....

      Now you enter the realm of communications problems between Windows and Mainframe programmers. The Mainfraim programmer can't find any information in the owners manual of the commands to send the printer to either print, scan, or read the flash card from the digital camera. The Windows programmer is simply instructed to give the output to the OS to use the driver. The lack of open information is the problem. No Windows, hardware won't work.

      --
      The truth shall set you free!
    5. Re:Answer: by Nutria · · Score: 1
      ROTFLMAO. Please. Stop it. I'm dying.

      • if the mainframe has an RS-232 port
      • The port on the mainfraim can be configured to talk to a dumb terminal on a serial port.
      • connecting a all in one printer to the centronics port on the mainframe.

      That's just it... Mainframes don't have ports. They have busses.

      Modems get plugged into communications servers, and the communication server plugs into the mainframe. Then the mainframe communicates with the commserv using VTAM.

      Terminals (EBCIDIC based 3278s) connect via FEPs (Front End Processors). These are like super-powerful terminal servers, since 327x terminals are block-mode instead of interactive.

      I don't remember what printers plug into, but it's definitely not the mainframe. Nothing, except dedicated interface computers, plugs into a mainframe.

      All these front ends are one of the reasons that relatively low power mainframes can support so many simultaneous users.
      --
      "I don't know, therefore Aliens" Wafflebox1
    6. Re:Answer: by iBod · · Score: 1

      >>Mainframes don't have ports. They have busses.

      IBM (and compatible) mainframes have CHANNELS!

      The CPU talks to the outside world using Channel Processors (specialised computers in their own right, with their own 'channel programs' and instruction set).

      Periperals are connected to the channel which can be copper or optical fibre. Many peripherals can be connected to a channel, and the CPU can have many channels, all of which can operate simultainiously and independently.

      Thanks to this, the IO throughput of a mainframe is phenomenal and the CPU doesn't have to get involved in the IO operations other than initiating them and handling the interrupt when the IO has completed.

      Big, high-speed printers (we're not talking Laserjets here kids) connect directly to a channel. Smaller 327x printers may plug into 327x terminal controller, which is either connected by a network cable to a FEP or directly to a channel.

      It is possible with a little ingenuity to connect anything to a mainframe using a custom channel adaptor though I must admit, I've never heared of a sound card on a mainframe.

    7. Re:Answer: by Pig+Hogger · · Score: 1

      Where's CICS???

    8. Re:Answer: by rgriff59 · · Score: 1
      ... much less sound cards.
      I remember a program called, IIRC, Music360 that allowed one to write a program to describe a soundscape. You had to dump the data to a tape, send the tape to the site that had a DtoA converter, and then you got back a 1/4 inch reel to reel audio tape. Compared to today's click for instant gratification mentality, this might seem unthinkable, but in its day it was pure magic.

      To relate this back to the question, it rather illustrates a point. The mainframe "culture" has developed over a long haul. When those "web" programmers start yapping about load balancing and ACID compliance, we laugh, not at the concept, but at the young ones who think it is new. Most have seen lots of technology come and go, and have seen most lasting concepts rediscovered several times. They're not as likely to get distracted by the shiny baubles.

      Of course, this is a quite stereotypical outlook, and at the bottom line, we all are people. In general, most of us respond well to humane treatment, respect, and a little recognition of the different paths we followed to get to right now.

    9. Re:Answer: by llefler · · Score: 1

      That's just it... Mainframes don't have ports. They have busses.

      Just to clarify, IBM mainframes may not have ports. Vaxen most certainly do. It has been about 15 years, but I seem to recall at a minimum at console port and a system printer port.

      --
      It is amazing what you can accomplish if you do not care who gets the credit. -- Harry Truman
    10. Re:Answer: by scottv67 · · Score: 1

      ...and VAXen (capitalized because it is, after all, an acronym) were never "mainframes".

  9. 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 anthony_dipierro · · Score: 1

      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.

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

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

      Efficiency is the main reason. Two threads in a single process (I'm going to talk about Windows threads, here, because Windows was designed based on the clear distinction between threads and processes; an OS like you described Linux, where there isn't a clear distinction between processes and threads, wouldn't really suffer from the same limitations) mean 1 virtual address space rather than 2, 1 process object rather than 2, 1 physical copy of all variables, rather than 2, etc. (I could also mention only one loading of all the modules in the process, but that isn't really an issue for Unix, with its concept of forking).

      As well as that difference in overhead, there's the difference in execution speed, where the two threads need to communication moderately frequently (such as where one thread/process is a client of another thread/process, the latter performing some discrete task while the former goes about its other business). With two threads sharing the same address space, you can lock a spin lock (assuming there are multiple physical processors), add an entry to a queue of requests, and leave the spin lock in a tiny fraction of the time it would take you to go into kernel mode, copy any message data between processes, add a message to a message queue IPC object, and return to user mode (not to mention the server thread will have to do almost the same thing to retrieve the message from kernel mode).

      To me, 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.

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

      OMG do you ACTUALLY believe you will never need threads? I think it's time for you to pick up an OS book and go over the chapter on Threads vs Processes.

    6. 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.

    7. Re:The Difference by jo42 · · Score: 1

      Unix programmers fork() around threads.

    8. 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
    9. 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.
    10. 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.

    11. Re:The Difference by Anonymous Coward · · Score: 0

      Last time I checked memory, hard disk , etc were "resources" and not allowing one app to crush another enhanced "stability". I don't know about you but concurrent apps in DOS was a biatch.

    12. Re:The Difference by Fallen_Knight · · Score: 1

      anything you can do with threads you can do with process.

      Its just a matter of how you wan tto program.

      Oh wait, your probably talking about windows so your right YOU need to use threads or it'll be slow as hell because windows sucks! yay!

    13. Re:The Difference by ObitMan · · Score: 0, Flamebait

      no one has sold a NT machine for close to 5 years.
      How can you call yourself a technologist if you don't keep up with whats happening out there.

      --
      Who run Barter Town?
    14. 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!
    15. 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
    16. Re:The Difference by Quantam · · Score: 1

      Whoa. NT multiprocessor support has increased over the years (originally NT was designed for up to 32 CPUs). Didn't know that people were actually running Windows on huge SMP machines like that.

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

      "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). "


      Yeah, I'll buy that. If two processes share the entire address space and kernel objects there's basically no difference between them and threads in the same process. There'd be no extra overhead (or at least not significantly more than two threads would take - having two separate address spaces and copies of everything is hugely expensive), and you could still use things like spinlocks, so it wouldn't be slower, either.

      --
      You have tried to support your argument with faulty reasoning! Go directly to jail; do not pass Go, do not collect $200!
    18. 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!
    19. Re:The Difference by Quantam · · Score: 1

      Pardon me, but your other post said that processes were slower (and bulkier) on Unix than threads (on Windows), but that Unix programmers would consider that a fair trade-off for protection, etc. I should also point out that the only thing faster about processes in Unix (keeping in mind that Unix processes that share an address space are usually called THREADS) than Windows is forking; other than that there's no difference in speed. Yay for regurgitated tag lines without any actually knowledge of what you're talking about!

      --
      You have tried to support your argument with faulty reasoning! Go directly to jail; do not pass Go, do not collect $200!
    20. 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!
    21. Re:The Difference by Hal_Porter · · Score: 1

      Switching between processes will always be more efficient than switching between threads because processes have their own address space.

      On most CPUs, switching address spaces is painfully slow because you need to flush the TLB. The cache gets clobbered too. So the classic Windows server paradigm is to have a pool of threads waiting for requests from the outside world, all running in the address space of one server process. This means that you can share state in memory, protected by some kind of lock - perhaps something lightweight like a spinlock.

      It's hard to get right though - most PC programmers tend to screw up the implementation - either by having one big lock which kills performance, or a whole shitload of locks with ill defined semantics which kills stability/maintainability. People with some experience of embedded code tend to be better though, since histortically embedded systems worked on CPUs without MMUs where true processes weren't possible - everything was a thread.

      Which reminds me

      Q) Why did the multithreaded chicken cross the road.
      A) the other side. To get to

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
    22. Re:The Difference by Alioth · · Score: 1

      Part of it is you quite often DON'T need to create threads. When using Windows, some things (particularly processing many input signals from many different devices) are easier done with a bunch of threads. With Unix, the same task is easier done with a single call to select(). Although it does depend on the application in question and how much processing you need to get done.

      I've written single threaded programs on Windows, and massively multithreaded programs on Unix. However, I think people should think carefully about whether a new thread is the best way to get something done - a multithreaded program introduces many issues and you have to decide whether the cost of dealing with those issues is worth the expense.

    23. Re:The Difference by Anonymous Coward · · Score: 0

      Is windows capable of using all 128 CPUs though? It could just be running in a 8, 16 or 32 CPU NPAR..... I personally don't know. Should be noted that the original Superdomes were PA-RISC machines (acually designed for Itanium but with adapters to use PA-RISC processors) only running HP-UX. The New machines with Itaniums can run HP-UX, Linux and Windows simultaenously in seperate NPARS (domains in E10K speak).

    24. 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.

    25. Re:The Difference by Nathan+Robertson · · Score: 1

      I have done a fair amount of work on a 32 way SGI Origin (NUMA IRIX) box, which are the predecessor to the now famed SGI Altix Linux boxes.

      One common misconception is that these are 64 way SMP boxes. They aren't. See, they're really 4 CPU bricks (C-bricks) with low latency, high bandwidth interconnects and smart memory management units to do memory references on remote boxes.

      Sun Fire 15k, HP SuperDome, DEC/Compaq/HP AlphaServer GS, and IBM p690 all work like this too.

      So much of the brains is in hardware. The rest is kernel changes to be bright about memory placement (physically put the memory close to the CPU that the process is running on), and provide some user space APIs to give the kernel hints (overrides, really) about where it should place the memory. Given this, there's no reason why Windows couldn't do this (remember, UNIX was written for DEC PDP-11, not SGI Origin/Altix). Whether it does or not, I don't know.

    26. Re:The Difference by bheading · · Score: 1

      Threads do exist under Linux and there is a library to manage them. The details under the hood about how they are implemented are not relevant from a userspace perspective. On other OSs such as Solaris a thread is also known as a "lightweight process"; I imagine that on most OSs threads are implemented just like a process sharing another process's entire address space. The critical thing that makes Linux interesting is the low overhead involved in context switches due to the way processes allocate their memory. In practice, processes under Linux turn out not to be that much more expensive than threads (but still expensive).

      The second part of your post is completely wrong; Windows NT 3.51 had 4-way SMP support (in 1995) - I suspect older versions also supported SMP - long before Alan Cox implemented it for Linux version 2 in June 1996. While Linux's SMP is perfectly good, I sincerely doubt it would scale quite as well as the boilerplate enterprise OSs such as Solaris or the mainframe platforms.

      Linux runs on large clusters of machines (clustering is a fundamentally different concern than SMP, unfortunately a lot of slashdotters don't seem to understand this) mainly because it is cheap and easy to do, not because it is the best possible multiprocessing architecture. Theoretically there is nothing stopping this being done with Windows, indeed Windows does include clustering technology. These large commodity research-class machines are a brute force approach to parallel computing.

    27. Re:The Difference by Anonymous Coward · · Score: 0

      "in windows that is true, threads are better period."

      Not always... I.E.-> Not for serialized operations, & I will give a primitive example of it, & then explain a few other things that go along with this @ kernel mode level.

      Where are threads NOT good to use, believe-it-or-not?

      On single CPU systems!

      This is where threads will actually run SLOWER than on SMP, HyperThreaded, or DualCore systems.

      The process scheduler has NO place to run them, other than that single CPU, & thus, has to go thru the switch between threads on a single CPU, incurring that overhead, but not getting the benefits of being able to run 1 thread on 1 cpu, & 2nd thread on 2nd (or more) CPU's, as it would in an SMP scenario, CPU hardware-wise.

      Some operations don't lend themselves well to threads either... TOO serial in nature!

      E.G.->

      A= A+B
      C= A+D

      C has to wait on the result of A to happen, before it can process C...

      This type of operation? Is serialized & blocking, NOT parallelizable.

      It will occur synchronously, NOT asynchronously (processing both results simultaneously on diff. CPU's), because of having to wait out results from one operation before it can start another.

      This is NOT a good case for using 1 thread on each operation from above, A & C. Doesn't matter either if usermode thread OR kernel thread here.

      (Very "oversimplified" but a case where threads are NOT going to be effective, for blocking I/O type serialized operations, & on single cpu systems).

      So, I guess what I am trying to say is, there is a time to use multiple thread design, and a time not to.

      There is hardware scenarios where threadwork helps (SMP/HT/DualCore) because of the OS process/thread scheduler being able to send ops that are more "parallelizeable"...

      E.G.=> Format a spreadsheet page, & print another spreadsheet page in Excel... if no common data or results are required from one sheet to another (e.g.-> Shared Cells output results)? You get speed benefits!

      You can send both ops to separate CPU's to get their results simultaneously here on an example like that!

      There are ones is it actually detrimental (single CPU, non-H/T types) like I said above though - blocking I/O types that are serialized, or apps that are not multithreaded.

      Someone said "Linux has threads" here.

      It was pretty poor initially (sub 2.2 kernel builds iirc) & was ALL usermode threads!

      Usermode threads mapped to a single kernel thread that went around them round-robin.

      SO, When you listed processes using TOP or PS?

      You'd see a FLURRY of processes forked, rather than threads!

      This signalled a problem, especially when the tools for verifying/observing this showed this in them.

      It looked like it was actually forking out processes, than lighter-weight threads running in the SAME process space. No IPC communcations overheads or other messaging types.

      There wasn't kernel mode re-entrancy either prior to Linux 2.2 kernel builds (& this was only PARTIALLY so also, more on that later).

      This matters too.

      Re-entrant kernel functions are one that can execute on multiple CPU's simultaneously.

      E.G.-> IF say, 1 cpu in an SMP setup, is executing a non-re-entrant kernel function on 1 cpu, and tries to execute that same function on a 2nd or more CPU?

      It can't do it - it has to wait for the first CPU to finish with it.

      This is another serialized execution problem as well as the examples above I cited (more primitive but easy to see and understand, which applied for both usermode coders AND kernel mode/drivers coders, etc.).

      Read & Write I/O functions were not re-entrant for example, on Linux 2.2 even.

      These 2? Are probably the MOST used in Network Server Applications.

      This affected even Linux 2.2 kernelmode 'scalability', & especially imo, in the case of webservers.

      The SendFile AP

    28. Re:The Difference by Nathan+Robertson · · Score: 1

      I should elaborate a bit - it's the shared bus that kills the scalability of SMP, which traditionally Windows has been limited to (by choice - NUMA isn't a big market). I have some figures to back this too - SGI's last large-scale, bus-based machine was the "Power Challenge R10000". If you look at the scalability of memory bandwidth:

      • 1 CPU - 175 MB/s
      • 2 CPU - 350 MB/s
      • 3 CPU - 460 MB/s
      • 4 CPU - 540 MB/s
      • 5 CPU - 590 MB/s
      • 6 CPU - 590 MB/s

      As you can see, the bus to memory gets saturated as the number of CPUs accessing memory rises. Hence, NUMA. Whether it's Windows or UNIX, we're talking the same hardware. Just happens that all these boxes are UNIX because most researchers have always used UNIX.

      Incidentally, if you can get the percentage of cache hits relatively high then you can cover up for some of the memory bottlenecks (Apple have done this in the past with their G4 hardware in particular). But typically, cache hits aren't commercial softwares strongpoint - scientific code fares much better here.

      (Numbers lifted from chapter 2 of my honours thesis, which quoted them from some university website which appears to have taken the numbers for that particular machine configuration down since)

    29. Re:The Difference by Rinzai · · Score: 1

      Since NT is now obsolete, why would that question even be asked?

    30. Re:The Difference by iBod · · Score: 1

      >>.Unix programmers know that they have to assume that they could be walking over someone else's session info.

      Try that on a mainframe and your program will die with a storage protection exception.

      Protected storage! It's been around forever on the mainframe but is seemingly still a new concept to some.

      It's built right into the virtual memory management hardware in the form of 'storage keys'.

      By default, you can't access any piece of storage other than that which is allocated to your task (process) address space and that which you have requested at runtime.

      To read or write storage that you don't own, the program needs special privilleges.

      As each program has it's own separate address space, it's impossible for one program to trample over anothers storage, except whith special execution privillages.

    31. Re:The Difference by Anonymous Coward · · Score: 0

      I don't know about you but concurrent apps in DOS was a biatch.

      No, I'm not a bitch.

    32. Re:The Difference by Anonymous Coward · · Score: 0

      > With Unix, the same task is easier done with a single call to select().

      Easier? Let's say all the devices talk at the same time. With select, YOU get to deal with arbitrating time, scheduling reads, dispatching them to whatever handler on a per-device basis. Make sure you don't let one device first in the list starve all the others after it, mind you. I'd be surprised if at the end of all this, any sufficiently complicated select mechanism hasn't implemented its own little thread scheduler.

      On the other hand, selects are definitely more compact in memory. Of course Windows has WaitForMultipleObjects() for the same purposes as select() (and if it's just sockets you're waiting on, you can use good old select() instead)

    33. Re:The Difference by Etyenne · · Score: 1
      While Linux's SMP is perfectly good, I sincerely doubt it would scale quite as well as the boilerplate enterprise OSs such as Solaris or the mainframe platforms.

      Well...

      --
      :wq
    34. Re:The Difference by Anonymous Coward · · Score: 0

      Here is a comparison of Windows 2003 versions...

      "Microsoft also offers a 128-way SKU for Windows Server 2003, Datacenter Edition so Windows can run on a 128-processor computer. However, the largest partition supported would be 64 processors."

    35. Re:The Difference by Etyenne · · Score: 1
      One common misconception is that these are 64 way SMP boxes. They aren't. See, they're really 4 CPU bricks (C-bricks) with low latency, high bandwidth interconnects and smart memory management units to do memory references on remote boxes.

      You most probably know better than I do (as I have never worked on an Altix), but SGI seem to disagree with you :

      Up to 512 processors tightly coupled and operating under a single copy of the O/S
      --
      :wq
    36. Re:The Difference by Craig+Davison · · Score: 1

      Nice troll. Ever hear of copy-on-write?

      In Unix, fork()ing is very efficient. It's just as fast or faster than creating a thread in Windows. The reason is that both processes use the same set of pages in memory - until one writes to memory, and then one gets a copy.

      And if using shared memory or a Unix socket aren't fast enough for your IPC, then sure, use threads. Unix has them too.

      Unix was designed for a large number of processes to be executing simultaneously - each command you set up in a pipleine starts executing immediately. The Unix way is to have lots of small programs that do one thing really well. That sounds like an ideal situation for a multi processor architecture.

    37. Re:The difference by cfavader · · Score: 1

      I honestly hope you were merely kidding, as it would be very disappointing if you actually meant that.

    38. Re:The Difference by bheading · · Score: 1

      Disappointingly, it didn't take long for the a slashdotter to confirm my point about not understanding the difference between SMP systems and clustering.

    39. Re:The Difference by bheading · · Score: 1

      Oops. Hoisted by my own petard. It appears that I'm completely wrong. I'll get my coat.

    40. Re:The Difference by Quantam · · Score: 1

      In Unix, fork()ing is very efficient. It's just as fast or faster than creating a thread in Windows. The reason is that both processes use the same set of pages in memory - until one writes to memory, and then one gets a copy.

      Yes, forking is considerably faster than creating a process from scratch like NT does (as I noted), and copy on write dampens the memory comsumption by preventing things that the child process doesn't use from being physically duplicated (which makes the memory efficiency of Unix processes nearly as good as NT processes, which carry over nothing whatsoever from the parent process).

      But you seem to have the grossly mistaken notion that copy on write (which is used all over NT, BTW) is a magic bullet. Forking still doesn't come close to the speed of creating a thread on NT (nor on Unix, for that matter; even if a Unix OS implements threads as processes with a shared environment, it will be significantly faster than setting up the page tables and other things). Just because unused pages are shared between two processes (via copy on write) doesn't remove the overhead of the separate virtual address spaces themselves (page directories, etc., which I referred to). Besides that, you ARE creating a separate running process; The memory of the new process will quickly get populated will its own data, causing there to be (surprise!) twice as much physical data as before the fork (assuming the two programs are the same, so they have the same memory requirements).

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

      On the other hand, selects are definitely more compact in memory. Of course Windows has WaitForMultipleObjects() for the same purposes as select() (and if it's just sockets you're waiting on, you can use good old select() instead)

      ...no. Neither WaitForMultipleObjects nor Windows' select compares to Unix select (both are significantly less efficient, and I might add that both are limited to 64 files/sockets). On the other hand, NT I/O completion ports wipe the floor with Unix's select.

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

      That's the key I was getting at. In Windows, threads are the preferred tool, while in unix (or at least Linux specifically), processes can fufill a lot of the same needs. So it's really fair to ask, "why would you need threads?" for many applications.

    43. Re:The Difference by Anonymous Coward · · Score: 0

      http://ask.slashdot.org/comments.pl?sid=156246&thr eshold=-1&commentsort=0&tid=190&mode=thread&cid=13 102358

      See there...

      On Windows, threads are (afaik) the smallest "atomic unit" of execution.

      (YES, there are things known as "fibers" but I have not seen them used on Win32 Os' myself... but, that's not saying they cannot or have not been implemented & they are technically "threads of threads" afaik!)

      ANYHOW, back on track in reply to you, summary of that URL's points I put up above:

      Threads are of benefit on TODAY's MODERN CPU's especially (e.g.-> DualCore, or HyperThreaded) & the SMP rigs that have always existed for the most part (dual or more actual physical CPU's).

      This is because modern OS' process scheduling subsystems can technically if needed, run diff. threads of operation on diff. CPU's processing them concurrently.

      (Example of that is in that URL above - when to do it, & when not to, with math example for easy understanding of when "serialized" operations (one where one op has to wait on the results of another before it to run) make using threads, a useless and needless expense that gains NOTHING for efficiency or concurrent processing)

      BUT, the last paragraph statement of mine above?

      It ONLY HOLDS TRUE if the operations being attempted can be "parallelized" (run concurrently on diff. CPU's via the OS process scheduler sending operations on threads to diff. cpu's for concurrent processing)!

      Multithreaded design depends HUGELY on that, & are not dependent on the results of the first being part of the second's operations, as well as their being more than 1 cpu to run the threads of operation on...

      HOWEVER, multithreaded code, run on single CPU's?

      Actually incur MORE overhead in context switches & thread switch than single threaded code does.

      APK

      P.S.=> Lots more too about NT-based Os' use of completion ports & such (being designed with SMP right off the bat) vs. earlier 2.2 & below Linux kernels, many comparisons & backing evidences of what has led to improvements in BOTH Os' families...

      IMO, this entire field?

      IS just "imitiate & improve upon" largely imo & experience, if the histories I note there in that URL I posted first here stand for anything... apk

    44. Re:The Difference by Nathan+Robertson · · Score: 1

      Indeed - the memory management units are in hardware on each side of the interconnects, meaning that it is transparent to the software. Not totally, because the software (kernel + userspace utils) makes the decision as to where on the machine it places memory on malloc()

      So yes, there is only a single copy of the Operating System running, but that doesn't mean it's SMP. SMP code will run without recompilation, but won't be as efficient or perform anywhere near as well as hand optimized code. But they definitely aren't SMP - they're a cross between a cluster and an SMP machine.

      I highly recommend reading John Mashey's comp.arch posting to comp.arch which explains the Origin, and what became the Altix. Origin was essentially Altix with MIPS CPUs, not Itanium.

      I worked on a 64 CPU MIPS Origin 3000 for a year in a research role.

  10. 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 Anonymous Coward · · Score: 0

      Everyone keeps making statements about corporate IT environments, and every time I read one, it just doesn't ring true. I work at web-development for a branch of a local university, and if anything, they are -very- much against large changes to a production system until it's gone through a fairly rigourous testing process. Even then, the old versions are kept for a long period afterwards.

    3. 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!
    4. 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.
    5. Re:Everything Old Is Old Again by Anonymous Coward · · Score: 1, Interesting
      Fully support you JeiFuRi. In the management of UNIX and Windows world, a hot topic is ITSM (IT Service Management). It is about managing the quality, predictability and cost effectiveness of IT services. The key approach is based on some best practice material which was codified back in the '80s in mainframe environments (Google ITIL). It seemed "common sense" back then, but many Win/Unix environments have grown up without decent capacity management, change management, problem management etc. etc. etc.


      The ITSM "industry" is growing 50-100%CAGR, and there are standards emerging (BS15000, AS8018, ISO20000) in this area.


      I guess the key ideas in ITSM are that the primary focus is on the service, not on the technology that is used to deliver it, and that good consistent processes maximise service quality. These are ideas that have existed in the MF world for as long as I've worked in IT (+30 years), but are sometimes sadly lacking in "newer" environments.

      Patrick Keogh posting as AC because I can't remember my password...

    6. Re:Everything Old Is Old Again by epiphani · · Score: 1

      I'm sorry - I'm one of those "PC server culture whiz kids". I'm 23, and I know all about change control. You're not talking about some cultural difference here, you're just talking about the influx of crappy and inexperienced management that flooded the industry when it exploaded. There are plenty of operational practices that have been codified around. Any company that runs a production system of any size should be using that software and operating by those practices.

      --
      .
    7. Re:Everything Old Is Old Again by Anonymous Coward · · Score: 0

      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.

      I speak from experience...

    8. 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...)
    9. 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.

    10. 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

    11. Re:Everything Old Is Old Again by Zeinfeld · · Score: 1
      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.

      Err what exactly are you using there, a PDP/11? an original IBM/360?

      I coded a database system running on a BBC micro that had better response times than you seem to think are state of the art.

      The idea that that kind of response time is due to anything other than crap programming is very mainframe. In fact I have repeatedly found mainframe folk who are overly proud of their transaction systems to be way behind the curve in expectations.

      I have designed and run very big iron that genuinely performs thousands of transactions a second. The fact that a UNIX box runs you clapped out legacy code even slower than the mainfrasme it was designed for is entirely irrelevant.

      --
      Looking for an Information Security student project suggestion?
      Try http://dotcrimeManifesto.com/
    12. 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

    13. 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
    14. Re:Everything Old Is Old Again by CarrionBird · · Score: 1

      A university is a very different place than a corporation. Ask anyone who has worked for both.

      --
      Free Mac Mini Yeah, it's
    15. 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. :)

    16. Re:Everything Old Is Old Again by Anonymous Coward · · Score: 0

      Mainframes - Only the biggest, most expensive peripherals you can connect to a PC.

    17. Re:Everything Old Is Old Again by ScentCone · · Score: 0, Offtopic

      smelt the ore

      We used to dream of smelting ore. No, when we had to add a new variables to our code, we had to pull the iron fillings out of mom's molars and magnetize them by standing out in lightning storms. And we liked it!

      --
      Don't disappoint your bird dog. Go to the range.
    18. Re:Everything Old Is Old Again by afabbro · · Score: 1
      it hasn't been throughput, because those things turn out to be terrible.

      I'm not sure what mainframes you are talking about. The ones in our universe are absolute monsters at throughput. Hundreds of network sessions going while printing to thousands of printers while running batch jobs, etc. In fact, that is one of the mainframe's biggest strengths.

      The other strengths are obvious: (a) bullet-proof reliability, the likes of which no open source box has yet to achieve (yes, I know of what I speak), and (b) extremely mature code and practices.

      If the question is culture, then the mainframe culture is best described by the word "mature," in all senses of the word. The world is very stable, very known, has no surprises, and is very professionally run. It's also very old - and so are most people in it. I periodically contemplate rebooting my career as a mainframe systems programmer...in about 10 years there will be a gazillion openings.

      --
      Advice: on VPS providers
    19. Re:Everything Old Is Old Again by Chanc_Gorkon · · Score: 1

      It's more then just dropping 2000-4000 table entries. You drop the registration, you delete the feels and you free up the records so someone else can register. The old system probably only had 3-4....maybe 6 tables. The new system running on UNIX (NOT programmed by us) probably has 15 tables. Why? I dunno. It's a package. It is what it is and I can't change it. Your comment shows ME that you have no idea what the heck your talking about. Keep in mind, this SAME mainframe is also supporting more registration activity occuring at the SAME time as this batch job as well as running payroll jobs, backups and other things that take a load. With all of this stuff running also on the new system as well.

      --

      Gorkman

    20. Re:Everything Old Is Old Again by Anonymous Coward · · Score: 1, Funny

      You had ZEROS?

    21. 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
    22. Re:Everything Old Is Old Again by PitaBred · · Score: 1, Flamebait

      Not hard. Surreal. Academics live in a totally different world, for the most part. The only professors I ever really liked were the ones that took a few years to go work in the "real world" before returning to teach. They actually had a modicum of common sense.

    23. Re:Everything Old Is Old Again by Anonymous Coward · · Score: 1, Insightful
      While I agree with your last 2 sentences I cannot agree at all with
      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.

      The mainframe still rules in performance and especially in throughput. Otherwise they would have disappeared a long time ago.

    24. 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?
    25. Re:Everything Old Is Old Again by incabulos · · Score: 1

      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

      There were perl programmers around way back then? Self loathing and masochism must be great for ones longevity, maybe they should look into distilling 'essential essence of perl' into a line of rejuvenating skin-care products.

    26. Re:Everything Old Is Old Again by Ratbert42 · · Score: 1
      Mainframe culture and rigorous "change control,"...

      In my experience, mainframe developers / system programmers are just as much "cowboys" as unix or Windows guys. They just have an OS and sysadmins that protect them from their mistakes. Turn an old mainframer loose on a Linux box as root or a Windows box as Administrator and he'll destroy it. Then while you reload the OS, he'll tell you all about how RACF security and proper file locking would have prevented this.

      Another huge difference is that for non-mainframe people, a file is a file. You say file and I know I can just fopen it and read it, either byte by byte or line by line if it's text. It's never that simple for a mainframer. Is is fixed-block or variable block, what's the record length, etc. Then when you think you get that, they throw new file types at you like VSAM or FBA / VBA. It takes a while for a ascii-fed distributed geek to understand their obsession with a bazillion file types.

      Then there's the accountability factor. When someone runs a unix app and it dies, you have them run it again to see the error message. A mainframer? He'll pull up sysout from a job that ran last week and show you the code from the ABEND.

      I've also been surprised that, in the mainframe world, CPU cycles are still "expensive" and they really care about optimization more than any other platform. I mean, everyone wants performance to be acceptable, but mainframers tend to push past "acceptable". I constantly hear things like "you're using !FIVE PERCENT! of the CPU when you're processing transactions."

    27. Re:Everything Old Is Old Again by Pig+Hogger · · Score: 1
      You got that right... for years we had a VS1-MVS-XA-ESA-OS/390-z/OS environment
      Then we brought in a DBMS with a 4GL and built-in TP monitor.
      Eventually CMS went away - the programmers moved to TSO
      Enter Unix, in the guise of SCT Banner.
      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).
      Er... Why on earth did you guys change???
    28. Re:Everything Old Is Old Again by Jay+Maynard · · Score: 1

      Some executive VP probably read one too many articles on the airplane about how the mainframe is dying. That's how it usually goes.Mainframe computing, although still the most reliable and often most cost-effective, is just not fashionable.

      --
      Disinfect the GNU General Public Virus!
    29. Re:Everything Old Is Old Again by Pig+Hogger · · Score: 1

      Gosh. This guy should be FIRED, not from the company, but from a cannon.

    30. Re:Everything Old Is Old Again by Jay+Maynard · · Score: 1

      In fact I have repeatedly found mainframe folk who are overly proud of their transaction systems to be way behind the curve in expectations.
      Tell that to the folks at VISA, MasterCard, American Express, the major airlines... who are all processing tens of thousands of transactions per second, all day, every day, with uptimes measured in years. They're all doing it on mainframes.

      --
      Disinfect the GNU General Public Virus!
    31. Re:Everything Old Is Old Again by Jay+Maynard · · Score: 1

      I constantly hear things like "you're using !FIVE PERCENT! of the CPU when you're processing transactions."
      Five percent of a multi-million dollar mainframe is not chump change.

      Efficiency counts in a system that's expected to serve thousands of users with subsecond response times reliably. If you can't just throw more CPU at a problem, then you have to actually pay attention to writing small, fast, efficient programs.

      The bit about record types is the same thing. That was designed in 1964 when it mattered how you stored data on the disk, both for efficient use of limited disk space and for efficient use of the processor. It's hard for Unix geeks to wrap their minds around it, but there are reasons for it - and they all stem from a fundamentally different approach to computing. That's why Gates's Law (the converse of Moore's Law: software will get twice as inefficient every 18 months) has never hammered the mainframe world as it has the small computer world.

      --
      Disinfect the GNU General Public Virus!
    32. Re:Everything Old Is Old Again by Zeinfeld · · Score: 1
      Tell that to the folks at VISA, MasterCard, American Express, the major airlines... who are all processing tens of thousands of transactions per second, all day, every day, with uptimes measured in years. They're all doing it on mainframes.

      You can be pretty certain that the people who run those systems would be pretty contemptuous of a database that takes 20 minutes to drop 4000 records on any modern hardware platform.

      There are still uses for big iron. But your understanding of how the credit card majors work is very much behind the times. Mastercard and Visa are the card associations, not the processors. Some processors do use mainframes, several do not.

      Mainframe systems are a very specific class of machines. There are banks, airlines and insurance companies that have not had a mainframe on their site for 20 years. There are some that still rely on them today.

      If you have the right architecture you can run a scalable system on any modern computing system. Take a look at Google, VeriSign, Akamai, all run vast computing systems with incredible load without a single mainframe in sight.

      --
      Looking for an Information Security student project suggestion?
      Try http://dotcrimeManifesto.com/
    33. Re:Everything Old Is Old Again by James+Youngman · · Score: 1
      Enter Unix, in the guise of SCT Banner. Don't let anyone kid you, it's an ERP, and a big hairy mess.
      Banner ... wow. I haven't worked with that for years. I worked on a project once to automate interaction with it in order to integrate it with another online system. The automation was via screen-scraping.

      The only problem was that the project didn't have the money to buy a screen-scraping product. Enter the propeller-head. It was like a software version of Junkyard Wars. I took a copy of xterm(1) and ripped out all the X11 code. Then I welded it onto the Tcl interpreter. Then I added in a little bit of new functionality modelled after expect(1), except in two dimensions rather than one. Then I (metaphorically) stuck Duct Tape in all the gaps, and we had a screen-scraper.

      That took about four weeks. I spent another six weeks or so trying to automate the interaction with just two Banner screens. It was murder. The whole thing was never reliable. That is the problem with screen-scraping; there is usually nobody who can enumerate for you all the possible responses that the program might make. The version of Banner I was using had lots of PL/SQL triggers in it, and so any particular transaction could fail in an almost uncountable number of ways, and each failure would generate either a message on the status line of the screen or a dialog box. Sometimes you even had to scroll the dialog box to see the full error message. It was challenging, but challenging-irritating, not challenging-fun.

      For insignt into the experience of writing screen scrapers, see this short animation.

    34. Re:Everything Old Is Old Again by Jay+Maynard · · Score: 1

      I know for a fact that VISA, MasterCard (yes, the associations), and AmEx all use IBM mainframe clusters running TPF. VISA and MasterCard use them for their clearinghouse functions.

      When you need to handle tens of thousands of transactions a second, all dat, every day, without fail, only a mainframe can handle the job.

      --
      Disinfect the GNU General Public Virus!
    35. Re:Everything Old Is Old Again by MemoryAid · · Score: 1

      Anybody ever play Bullshit Bingo? This post is rife with possibilities.

      --
      Language students: Don't try to learn English here. This ain't it.
  11. I Know by Anonymous Coward · · Score: 0

    Dupes and 404 errors!

  12. 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

    1. Re:Faith Machine by sparkz · · Score: 1

      The Q is "what do we all need to know", not "what do I need to know"

      --
      Author, Shell Scripting : Expert Re
    2. Re:Faith Machine by Anonymous Coward · · Score: 0

      A manager doesn't understand his employees, and you assume it's a troll?

      How do I get to your planet?

    3. Re:Faith Machine by Doc+Ruby · · Score: 1

      Why, just post anonymous questions about tech management on Slashdot, and you're here.

      --

      --
      make install -not war

    4. Re:Faith Machine by Anonymous Coward · · Score: 0

      From what I've seen of your posts, I'm pretty sure that YOU are the troll here.

    5. Re:Faith Machine by Doc+Ruby · · Score: 1

      Coming from an Anonymous Coward, without anything to add to this discussion, that means absolutely nothing.

      --

      --
      make install -not war

  13. 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...)
    2. Re:One difference by Anonymous Coward · · Score: 0
      boxen

      Please stop using this word.

    3. Re:One difference by Anonymous Coward · · Score: 0

      Why should he bother? People know the reference, it's used quite often, and you're too much of a damned coward to even put your name behind your silly little request.

      (And, yes, I posted as an AC, too -- when responding to a stupid comment from an AC, remember they're likely to flame you and do dumb things, since they've started doing that already, so keep anonymous yourself.)

    4. Re:One difference by Anonymous Coward · · Score: 0

      AC, you fail it.

    5. Re:One difference by chris_mahan · · Score: 1

      Why?

      Is someone treading on your trademark?

      Boxen

      --

      "Piter, too, is dead."

    6. Re:One difference by hplasm · · Score: 0

      BOXEN!! :) ah!

      --
      ...and he grinned, like a fox eating shit out of a wire brush.
  14. 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.

    2. Re:simple to explain by Anonymous Coward · · Score: 0

      "Gee, do you Linux morons rip off every idea and replace it with a half-assed ugly implementation?" -- Forgot where I heard it but it is fairly true. Just browse Freshmeat. A bunch of half-assed clones that barely work.

    3. Re:simple to explain by Anonymous Coward · · Score: 0

      WTF does that have to do with 'mainframe culture'?

    4. Re:simple to explain by CyricZ · · Score: 1

      "The Unix Programers can do it on a P4, but it'll work just fine on a Mot 68K or a 486."

      Except that really isn't the case very much any more. Please, take a modern Linux distro, a BSD or Solaris and try to run it on a modern system underclocked to be equivalent to a 486. Hell, even leave it with the typical 512 MB or 1 GB of RAM common today, as well as a 400 MHz DDR2 bus. It'll be painful to do anything practical with such a system.

      Now, a lot of the performance loss may be attributed to the many new features such a system supports. But it could also be attributed to a lack of talent. While there are of course some fantastic coders working on Linux, the BSDs and Solaris, they don't often have the same level of inherent talent that the previous UNIX masters had. Even if they know how to, they have very little incentive these days to squeeze out every last drop of performance from a machine, something that true UNIX was known for for literally decades.

      The only UNIX today that may be able to handle a 486 machine is SCO OpenServer. But that's only because of its roots as a 386 server OS, and the fact that its core development has stagnated for well over a decade now.

      --
      Cyric Zndovzny at your service.
    5. Re:simple to explain by delirium+of+disorder · · Score: 1

      A Ti-92 is a Moterola 68k system.

      --
      ------ Take away the right to say fuck and you take away the right to say fuck the government.
    6. Re:simple to explain by Fallen_Knight · · Score: 1

      i dunno, 3 years ago or so i installed debian onto a 385 with a 250mb HD and some small amount of ram.

      ditched all GUI stugg and it worked fatasticly.

      right now i'm on a friends home network and sitting behind a firewall running a newer linux and its only a Pentium of some sorts, no HD.

      linux still runs small and fast when its just the kernal and shell no WM.

    7. Re:simple to explain by Derkec · · Score: 1

      Wow, that's a lame statement. I've bumped into plenty of Java developers running on Windows and Linux who want their IDE to do everything. For the love of God, look at the goddamn plugins for Eclipse.

      It's not an IDE it's a platform. That didn't have the courtesy to ship with a reasonable JSP editor out of the box.

      Regardless, you're largely right :). I wouldn't say that Windows developers tend to half ass everything. The put much more effort into the UI than most Unix guys. Their products tend to be more friendly and approachable to people.

      As you mentioned, each Unix module tends to do its own thing. It's more approachable to other programs.

      Now I'm sounding like Joel.

      But I have noticed the unusual rigor and dependence on care and process among the mainframe folks. I suspect that may stem from how very bad it is to crash your mainframe - particularly back in the day when it might have been easier to do.

      My summary.

      Windows Programmers: Optimize for users.
      Unix Programmers: Optimize for other programmers.
      Mainfrom Programmers: Optimize for not getting fired. (ass well covered)

    8. Re:simple to explain by Randseed · · Score: 1
      It depends on what you want to do. I have a 3GHz AMD with 1GB RAM and about 400GB of HDD space. Among other machines, I also have a 500MHz Athlon with 256MB, a bunch of disk space, and a P133 with 32MB and some reasonable disk space for what I use it for.

      The 3GHz will run Windows great, performance wise. It will also run Linux great. No surprise there.

      The 500MHz machine runs Windows like crap. It runs Linux really well, all things considered. Compile times are reasonable on it. It handles everything I throw at it, including full routing functions, a VPN, SMTP server, web server, some PHP stuff, etc. etc. X11 might be scary.

      The P133 won't run Windows at all. It runs Linux just fine. I use it as a backend fileserver primarily, along with some database functions. It does this just fine. Compile times SUCK GOATS. I mean, they're BAD. I kicked off a compile of gcc 3.4.4 as an upgrade and was surprised (but not shocked) when it was still going 12 hours later. I haven't even tried since I retired this machine from desktop use about 8 years ago, but X11 would probably look like I was running it through a 2400baud dialup.

      Some of it is feature bloat. This is a good thing, so long as those features can be turned off when necessary. Some of it is just "bad" programming (bad in the sense that it assumes the user to have more processing power and memory capacity than he does). In the case of my P133, the next project is just to distcc everything over to the 500MHz, 3GHz Athlon (when it isn't in Windows to play games or something), and a P4 3GHz laptop, and cut the P133 out of the loop for its own compilations, because letting it have any part of the compiling will just slow the entire process down.

      What is a "practical system?" To most users, that's being able to run a GUI desktop, play some games, do some GUI word processing, etc. My P133 and my 500MHz machine are both pretty unsuited for that, though the latter might be passable. So I don't use them for that.

      The significant difference is that if for some bizarre reason I ever wanted to, I could boot up the 20MHz 386 machine I have in a closet with 32MB of RAM, and use it for something using Linux. (I can't think of what, though, short of really low-power file serving or maybe running Postgres to do nothing other than log syslog messages from the network.)

    9. Re:simple to explain by mrselfdestrukt · · Score: 1

      A 385 hey? Is that like a 386 without cache?
      Or without a math-coprocessor?
      N

      --
      "I used to have that really cool,funny sig ,but it got stolen."
    10. Re:simple to explain by Anonymous Coward · · Score: 0

      I think what he meant to say was Windows Dev's typically are VB devs (they outnumber real programmers 10 to 1 on the windows platform) and they ALSWAYS half ass things.

      I have never seen so much half-assness as in most VB apps. OMFG, most never use the doevents() call on long calcs or SQL calls sothe program looks like it's hanging.

      and do not get me started on how crappy every VB app is in regards to the GUI design because the nuts do not write the resize and adjustment code.

    11. Re:simple to explain by Anonymous Coward · · Score: 0

      But that's just it. You *wouldn't* run a full distro on a 486.

      You take a minimal kernel, busybox, the basic libraries required, and you build a custom system suited for whatever your application requires.

      Heck, there's even an experimental X server that runs in 100KB of memory.

    12. Re:simple to explain by shibashaba · · Score: 1

      I use a 650mhz amd duron with 596 megs of ram(haven't had any swap setup for past couple months.). I'm using Mandrake Limited Edition and my monitor is running at 24bits with 1400x1050. I have no problems whatsoever running multiple sessions of gnome, kde, etc at the same time. It runs firefox, compiles software, openoffice, eclipse, encoding music/dvd's, burning cds, etc and whatever apps I feel like running at the same time. Well, burning cds will make it a little bit slower but otherwise it's still more than useable.

      And it does this with more responsiveness than my mom's p4 running WinXP trying to run a single app. Granted the XP box is 'saddled' down with instant messengers and other stupid little programs but why on earth do people use this as an excuse for poor performance? Instant messaging and gator slowing down performance of such a fast machine is a joke. My linux box is also running postfix, dhcp server, dns server, apache, etc also. And I could open up multiple sessions of gnome/kde and fill them up with every damn instant messenger and other stupid little accessory and still not lose and performance. And this is with no swap!

      In otherwords, don't be afraid to run X on your athlon 500. You may need to put your swapspace in an intelligent spot since you only have 256mb(I don't know if I'd run kde or gnome much lower than that, but then again I haven't tried either). I don't know why people insist on putting their swap right at the end of a 200gb hard drive (with all their apps installed at the beginning) and then bitch about thrashing as the hard drive runs back and forth constantly...

      --
      ---------- Open Source is capitalism applied to IP.
  15. 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.

  16. 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 BrynM · · Score: 1
      I'm curious as to which definition of MF you're using...
      As in: I'm da mutha fukin coda - Biatch!

      Yeah. That was lame. Would you believe an abbreviation for MILF? Coders i'd like to f*ck? CILF?

      All right. I meant mainframe. ;)-~

      --
      US Democracy:The best person for the job (among These pre-selected choices...)
    3. 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%.

    4. Re:Good question. by N3Roaster · · Score: 1

      I don't think anybody really thought you were talking about METAFONT programmers.

      --
      Remember RFC 873!
    5. Re:Good question. by tetranitrate · · Score: 1

      I would rather read a badly spelled insightful comment than an asenine correctly spelled one.

      So which category does your post fall under?

    6. Re:Good question. by NormalVisual · · Score: 1

      This is different then the Unix world where capacity planning is done so that expected peak CPU utilization is anywhere from 40-80%.

      I don't think that's really "the Unix world" so much as "the client/server world" where the environment is such that you need a substantial amount of headroom to deal with any intense but short-lived spikes in your resource demands. Any time you spend big dollars on industrial-strength hardware to gain serious and continuous CPU and I/O capacity, you want to have maximum usage of that resource regardless of which OS it's running, otherwise you're wasting money.

      I think most of the folks that have never been exposed to the mainframe world would benefit from working a while at a mainframe installation. I know my first time working with real hardware was a bit of an eye-opener.

      --
      Please stand clear of the doors, por favor mantenganse alejado de las puertas
    7. Re:Good question. by Anonymous Coward · · Score: 0

      Unfortunately for the MF coder...

      Mother Father, Chinese Dentist!

    8. Re:Good question. by Mister+Transistor · · Score: 1

      There's a reason that the best coders are in the computer room a lot.

      I thought it had more to do with the huge bank of chillers cranking at 68 deg. F!

      --
      -- You are in a maze of little, twisty passages, all different... --
  17. Typical Spolsky by Anonymous Coward · · Score: 1, Informative

    It's a lot of great insights into something the author wasn't saying. He rips the idea that a program should output well formatted parsible text and be generous with what it accepts as a general rule and pretends it's seen as an absolute rule.
    But this isn't always considered good, examples:
    BSD::useradd
    linux::mke2fs
    linux::rpm #provides a lot of pretty output options
    linux::wget
    linux::proz

    In fact, in other chapters Raymond talks about the 7/10ths of a second rule. That says that the most time your program should be quiet, usually, is 7/10ths of a second. It makes sense, especially on the command line and slightly less in the gui, because that's about how much time the most impatient people can't stand to wait. And it's about how long it takes people to think "teh omg it's teh uberlox0red."

    I've read Joel's book by the way; and he seems to contradict himself a lot with many great insights. In fact, he's a very smart guy with amazing insight; it's connecting it into a final conclusion and removing the thoughts that were just wrong that he's terrible at.
    In other words: Provide your own conclusion for Joel's ideas; his conclusion is almost invariably based on an incomplete set of facts.

    The difference between Unix and Windows cultures are many, and the technical differences show up. In fact, Joel talks about that in his book (which is just his blog on paper). But of course, here he says they're technically the same (sure, if you only look at kernel level things and gloss over higher stuff at such a distance that a dog looks like a cat).

    By the way, this is so old it's in his book!

    1. Re:Typical Spolsky by kcurtis · · Score: 1

      I don't think he rips no-output programs. He just points out the contradictory uses of verbose vs. non-existant output. Some situations should see the command prompt as an indication of success -- much of *nix. Some should show a response -- telling grandmama that her mpeg of the grandkids is done downloading and ready to view.

      On the other side of that argument is the fact that many of those progress bars in various apps aren't even linked to the underlying process -- they are just eye candy for those many impatient users you refer to. Nothing wrong with that imho either.

  18. For when they die.... (cache) by Refrozen · · Score: 1
    1. Re:For when they die.... (cache) by Refrozen · · Score: 1

      And, by Joey, I meant Joel. Not a freaking clue how that happened.

      Slow down, Cowboy! Wahooooo.

  19. Criminal offence by it_flix · · Score: 0, Flamebait

    The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence. - Edsger Dijkstra That said, mainframe/cobol programmers are just second grade grammar teachers posing as computer programmers

    --
    www.notesmax.com
  20. Decent programmers... by rbarreira · · Score: 1, Insightful

    can easily program for all of those systems.

    So there is no difference. There programmers and non-programmers. Some non-programemrs don't program at all, others pretend they do. Programmers will quickly adapt to any operating system. One of those groups has a future, and the other one does not.

    --

    The AACS key is NOT 0xF606EEFD628B1CA427BEA93A9CA9773F
    1. 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
    2. Re:Decent programmers... by Anonymous Coward · · Score: 0

      heh...this is hardly insightful.

      a decent programmer can program for all systems? give me a break. some people do X, others do Y. you don't have to do everything to be decent.

      and how does this comment even make sense? not only is it NOT insightful, it doesn't tell me anything.

      "non programmers don't program at all, other pretend they do." WTF?

    3. Re:Decent programmers... by rbarreira · · Score: 1

      a decent programmer can program for all systems?

      I didn't say that, or did I?

      "non programmers don't program at all, other pretend they do." WTF?

      I didn't say that either, you misquoted :)

      --

      The AACS key is NOT 0xF606EEFD628B1CA427BEA93A9CA9773F
    4. Re:Decent programmers... by Anonymous Coward · · Score: 0

      Sadly, based on trends it is probably not the group that you are thinking.

    5. Re:Decent programmers... by Anonymous Coward · · Score: 0

      a decent programmer can program for all systems?

      I didn't say that, or did I?


      sure you did. here's your post:

      Decent programmers...can easily program for all of those systems.


      "non programmers don't program at all, other pretend they do." WTF?

      I didn't say that either, you misquoted :)

      yeah, you said that too - here it is below (spelling errors included):

      "Some non-programemrs don't program at all, others pretend they do."

      i just have no idea what your OP is supposed to mean. so i'm not a decent programmer because i don't do windows, *nix and mainframes?

      maybe i'm wasting my time

    6. Re:Decent programmers... by Anonymous Coward · · Score: 0

      I think that he was originally saying that a decent programmer is capable of programming for all systems (as in could learn and be able to do it in short order).

      Programming is programming is programming. A large part of being a good programmer is being a quick learner (as well as knowing basic best practices or at least knowing that there are best practices for the environment you are working on so that before doing your work you should go learn them).

    7. Re:Decent programmers... by rbarreira · · Score: 1

      Fortunately, someone more intelligent than you has already replied to your message, so I'll spare my keyboard. BTW, sorry about that spelling error (notice the singular form of error, as opposed to your plural) "programemrs".

      --

      The AACS key is NOT 0xF606EEFD628B1CA427BEA93A9CA9773F
    8. Re:Decent programmers... by ThosLives · · Score: 1
      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?
      Sounds more like the embedded arena to me...
      --
      "There are a dozen opinions on a matter until you know the truth. Then there is only one." - CS Lewis (paraprhase)
    9. Re:Decent programmers... by Anonymous Coward · · Score: 0

      Oh Right oh. There are trolls and there are non-trolls. Some trolls don't post at all, others pretend to know. Trolls will quickly adapt to any thread. One of those groups has a future and the other is you.

    10. Re:Decent programmers... by Anonymous Coward · · Score: 0

      Oh Lord,

      Please spare us from this typical hardcore kid dribble.

      Sincerely,
      The slashdot crowd

    11. Re:Decent programmers... by redog · · Score: 1

      Dear Dark Lord Lucifer,

      Please spare me from the Anonymous Cowards' drivle.

      Cheers,
      The slashdot trolls.

    12. Re:Decent programmers... by Degrees · · Score: 1
      Decades ago, one of the mainframe programmers I work with was bouncing between the test system and production, comparing the two. Found the difference, saved it to test, and hit the keystrokes to restart the test system. Except of course, that the programmer happened to be in the production system at the time. For some strange reason, people notice when the power plant nuclear reactor control system goes offline....

      Pure human error - but that review board stuff kicks in no matter.

      I'm just hope they haven't "upgraded" to Windows. ;-)

      Me, I make my terminal emulators have different background colors, to indicate which system I am in. People wonder why my DOS boxes are a funny color, but I don't end up typing a DOS command against a NetWare box that way.

      --
      "The most sensible request of government we make is not, "Do something!" But "Quit it!"
    13. Re:Decent programmers... by Randseed · · Score: 1
      Yes (once), and it's the exact reason I absolutely refuse to use Windows for it, and why I refuse to use C for it. Hell, in that kind of situation, I'd rather use ObjectiveC (not much better for obvious reasons), Python, or Perl, and even then I'm not too happy with it.

      It comes down to testing the hell out of the software. Even then, there is always the possibility that you've missed something, and that something will blow up in your face. At least you can do your part to help ensure that it isn't something as mundane as a buffer overrun or screwed up memory free().

    14. Re:Decent programmers... by Anonymous Coward · · Score: 0

      It comes down to testing the hell out of the software.

      Not really. Testing can only provide information that there are errors in the program, not the absence of errors nor the correctness of the software.

      For demonstrating that a program is correct, static checking, program proofs, and a solid software processes are needed.

      A typical C or C++ program usually has about 40 errors per KSLOC. With good process and tools these figures can be get down to less than 1 error per KSLOC. The interesting thing is that all this can be done while keeping the cost almost the same, by improving the process and the tool support.

    15. Re:Decent programmers... by Detritus · · Score: 1

      Properly designed testing can improve reliability. See this article. Statistical models can be used to estimate and measure reliability, and to design a testing process that will ensure that a product meets its reliability requirements.

      --
      Mea navis aericumbens anguillis abundat
  21. Interoperability by RollTissue · · Score: 0
    FTA: in the Unix culture, which Raymond calls "Silence is Golden," that a program that has done exactly what you told it to do successfully should provide no output whatsoever. It doesn't matter if you've just typed a 300 character command line to create a file system, or built and installed a complicated piece of software, or sent a manned rocket to the moon. If it succeeds, the accepted thing to do is simply output nothing. The user will infer from the next command prompt that everything must be OK.

    This is *so* true of my UNIX brethren.

    While windows programmers arguably have better tools with which to develop, the UNIX users rely on "just get it done and tell me if there are issues".

    The most important quality IMO is to create an environment with HIGH interoperability. Let your Windows users do what they do, while giving your UNIX and mainframe users have their world like they want it.

    You mix it all together and have a nice product.

    1. 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
  22. I finally understand by Marxist+Hacker+42 · · Score: 0, Offtopic

    The one thing I, as a microcomputer (not neccessarily limited to Windows, just forced there by the market) programmer have never understood: The propensity of mainframe programmers to output huge numbers of columns of text for import/export files. At the state agency that I currently am contracting at, I've seen 200-300 columns of data in basically position delimited flat file format, which gets imported into 20-30 tables of relational data. I never understood this until I RTFA'd- and now I understand- they're going for least common denominator probably due to the huge amounts of storage available on a mainframe.

    --
    SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
    1. Re:I finally understand by Dadoo · · Score: 1

      Out of curiosity, what format do you usually use?

      --
      Sit, Ubuntu, sit. Good dog.
    2. Re:I finally understand by Marxist+Hacker+42 · · Score: 1

      An XML representation of a third-normal form relational database- because that is usually both what I'm coming from and what I'm going to. Since learning database normalization in college about 10 years back, I'm surprised that ANY Real World application uses mere flat files anymore- even when I'm storing data in text files I had a tendency to create relational text files (basically the same data, one table to a text file, as if I was actually using a real relational database, coding carefully to ensure data integrity on the client side). I have not coded numerically sequential fields in years- I always make a child table instead.

      --
      SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
  23. 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.
    1. Re:it's easier than you think by TummyX · · Score: 1


      1. Learn to CamlCase your API, variable names, etc


      FYI that's PascalCasing. camelCasing uses a lowercase for the first letter.

    2. Re:it's easier than you think by Anonymous Coward · · Score: 0

      ls -l = four characters
      dir = 3 characters

      therefore:
      dir is more efficient

    3. Re:it's easier than you think by Anonymous Coward · · Score: 0

      Thank you. I was just going to point that out. To me there is a huge difference in readability.

    4. Re:it's easier than you think by Mister+Transistor · · Score: 1

      Actually they don't do the same thing. To get the full directory listing, you need to:

      ls -l = five characters (you forgot the space)
      dir /x = six characters (for a true full dir list)

      therefore:
      sorry, but ls wins...

      --
      -- You are in a maze of little, twisty passages, all different... --
    5. Re:it's easier than you think by TummyX · · Score: 1

      alias l='ls -l --color'

      One letter :P

  24. 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.
    1. Re:A summary: by beforewisdom · · Score: 1

      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. If this wasn't a facetious post it would be indicative of an ignorance of all kinds of programming. Even VB programmers, at some point, have to type their code in and I am sure they do a lot of it for complex applications.

  25. Mod topic -10 Clueless by Anonymous Coward · · Score: 0

    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 fact that you even have to ask shows that you haven't a clue. Linux and other hardcore Unix users will die wondering what it was all about and why things like command lines, /usr/bin/ and X11 never really caught on. If you don't know the answer to why Linux's giant wardrobe computiting mentality is not compatible with life for 99% of people then what is the point.

  26. Programmer generalizations by Anonymous Coward · · Score: 0

    Windows: best-balanced
    Unix: smarter
    Linux: uglier
    Mainframe: older

    1. 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.
    2. Re:Programmer generalizations by Anonymous Coward · · Score: 0

      Well, where I work, we develop UNIX applications but we use Visual C++ to program and debug 95% of the time. So my view might be a bit biased. I think I am smart and beautiful ;)

    3. Re:Programmer generalizations by Ender_Stonebender · · Score: 1

      Damn right! and Mod parent up! and other good shit like that.

      You need to understand not only what you're doing but what the inputs and outputs of the program you're writing are, preferably in as raw a form as you can get them. If that means dummying up a server on port 80 so you can look at raw HTTP requests, do it!

      --
      Loose things are easy to lose. You're getting your hair cut. They're going there to see their aunt.
    4. Re:Programmer generalizations by jo42 · · Score: 1

      Where I work, it took a packet sniffer to show a bunch of ASP 'programmers' what they where doing wrong. I guess they couldn't debug their 'code' via response.write statements all over the place...

  27. 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
  28. 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?

    1. Re:Does it Measure Up? by gg3po · · Score: 1

      Windows - Clean shaven
      Linux - Goatee
      UNIX - Shoulder-length
      Mainframe - Knee length

      --
      ---
  29. Simple. by Anonymous Coward · · Score: 0

    Mainframe Programmers are RETAAAAADED!

    1. Re:Simple. by Anonymous Coward · · Score: 0

      Retaded?

    2. Re:Simple. by Anonymous Coward · · Score: 0

      Yes, that's "retarded" with a Boston accent.

  30. 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?
    3. Re:Don't reboot by iggymanz · · Score: 1

      Sometimes the jobs I would submit would run on mainframe in the national lab were I worked, sometimes it was farmed out to a sister lab, which sometimes farmed it out to state schools' systems. The "job" was a complete self-contained package: JCL plus programs plus datasets, all as a virtual pile of punched cards. After a couple hours one would walk by the labelled boxes of user's printouts to see if the job was done, usually one didn't bother the operators to track down where it was

    4. Re:Don't reboot by gpoul · · Score: 1

      Which is exactly the way it should be even with the servers that now run zOS, Solaris, AIX, Linux, or even Windows. wait... it actually IS that way :-)

      Why should anyone let programmers mess up a production system again?

    5. Re:Don't reboot by kinkie · · Score: 1

      Well, a complete IPL (boot-up) for a mainframe can take up to 4 hours when you have lots of partitions etc. That is assuming that the disks are OK (and they usually are - mainframe filesystems are really unuseable to non-MFers but very solid)

      --
      /kinkie
    6. Re:Don't reboot by louism · · Score: 1

      Mainframers avoid reboots because nobody's quite sure they remember HOW to boot the system. Uptimes are about as relevant as the computer's age, in days. We had a customer who got himself into a little jam on their IBM Multiprise (a sort of pseudo-mainframe) because someone used the bootloader PC for something else and one day a total system reboot was required in a rush.

      UNIX admins boast when they have uptimes of hundreds and sometimes thousands of days. An new sysadmin working close to me was rather unhappy when he realized all his nice uptimes would be lost due to a long scheduled building outage. He felt this was unfair to the systems and wanted a way to patch the uptime counter when the systems come back up.

      Windows admins with a few hundred days uptime are obviously not installing their service packs....
      I don't think I've ever met a Windows admin who even cared about his system's uptimes in days. In percentage, maybe.

  31. Firmly in a closed box by Anonymous Coward · · Score: 0

    Mainframe programmers are non-creative, repetitive programmers. They don't know how to do anything new. It is tha same rehshed, crappy stuffy code, over and over again. All they know are flat files and copybooks. Best thing to do is to unplug the mainframe. At least it will help stave off global warming.

  32. 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 BigDog1942 · · Score: 1

      This should be Modded Funny

    2. Re:Simple by Anonymous Coward · · Score: 0

      The last group actually considered little issues like security, stability and recoverability. I'm not sure that the first group even knows what these words mean.

    3. Re:Simple by Anonymous Coward · · Score: 0

      What?

    4. 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.

    5. 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
    6. Re:Simple by blane.bramble · · Score: 1

      Now as far as security, I'd say mainframe security is 99% security by obscurity.

      No, some of it is decent design - when I used to use TSO (I think it was TSO, so apologies if my memory is wrong), in order to do any administration of the system you had to log on with both an administrator account and your own - that way any changes to the system had your name against the audit logs.

    7. Re:Simple by arkanes · · Score: 1
      How many black hats can get into a mainframe, anyway, and know the mainframe utilities?

      Does it take more than one?

      In my personal experience (note lack of generalization to the common case), the reliability of mainframes is highly overrated. The one I leared to hate was up all the time, sure - because they took it down for 6 hours *every day*. My experience with extracting data from VSAM files, compiled over 10 years from applications with none (thats right, zero) input validation was fun too. Everyone bragging about the superior power of the mainframe can just go bite me.

    8. Re:Simple by Pig+Hogger · · Score: 1
      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.
      Hmmm. Sounds like Unix to me...
    9. Re:Simple by j-pimp · · Score: 1

      The one I leared to hate was up all the time, sure - because they took it down for 6 hours *every day*.

      I manage as/400's as well as all manner of Unix boxen for a managed service provider. On the as/400 end I'm a monkey level admin. Alot of the mainframe principles apply to as/400s. Yes you do have to take the system down to do a full backup. However, thats only neccessary after a full backup, and the latest versions of os/400 let you save objects (files) whil e there active (have locks).

      Having never dealt with a real mainframe, only there little brothers, I can't tell you how much of this applies to zSeries or there ancestors. I understand that people wait much longer between upgrades on true big iron, so even if all these features are available on the latest zSeries OS, most people don't have them.

      --
      --- Justin Dearing http://www.justaprogrammer.net/ We're just programmers.
    10. Re:Simple by Mark+of+THE+CITY · · Score: 1

      What are the differences between Windows, Unix, and mainframe programmers?
      GUI, shell scripts, and JCL.

      --
      The clearance system sounds logical. It is not. It is completely arbitrary. -- John Bolton
    11. Re:Simple by Anonymous Coward · · Score: 0

      >> What are the differences between Windows, Unix, and mainframe programmers?

      > The latter groups of people are not afraid of the color blue.

      That's because core dumps are all black and white.

  33. Minicomputer culture (close) by Frumious+Wombat · · Score: 1

    My past experience was that you tend to think in terms of queues; you (physically) queue up for the keypunch, submit your job to a queue, and go find the appropriate print queue the data came back off from. The other experience has always been (Unicos, VM/XA or VM/CMS systems) that the software environment is antiquated to the point where you're encouraged to do as much off-line as possible. Get in, do work, get out.

    The computer, therefore, is a far more abstract, remote, and non-interactive object. I remember what an unpleasant change moving from an 11/785 running VMS to a 3090/VF running VM/CMS. The programming tools were arcane, the OS didn't even have subdirectories (it did have minidisks; i.e. your own virtual pile of floppy disks), and the editors definitely underwhelming. On the other hand, like a VAX/VMS system, the queueing system was an integral part of the OS, so it worked smoothly, as opposed to the unix solutions that are bolted on the side as an after thought. Sun Grid Engine and LSF are pretty close to the old VAX queues, but still not quite as well integrated.

    This, of course, is not entirely fair, as large VMS systems were used like mainframes, but still had good tools and a friendly user environment. In the end, think of it generally as a tightly-regulated, non-interactive environment. It's the kind of environment for utter reliability, where it's primarily computers talking to other computers.

    --
    the more accurate the calculations became, the more the concepts tended to vanish into thin air. R. S. Mulliken
  34. 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 smed · · Score: 1

      ###
      This is the best analogy I've seen in a while.
      Mod this up+

      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.

    2. 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".

    3. Re:On the difference by Anonymous Coward · · Score: 0

      From time to time I have to work on Client/Customer systems running Windows Server class O/S using Terminal Services and/or Remote Desktop. At these times I feel like I am in a chroot jail or worse. I can't do such simple things as counting number of lines in a text file (because there is no wc), or look for a particular pattern in a logfile.
      I can't install cygwin over there, so I build a simple wc copy it over with great difficulty (beacuse there is ftp/rcp/scp on these machines).
      OTOH, when I login to a *NIX system all tools are already there.
      That is the lego set with which you can build anything you want.

    4. Re:On the difference by smed · · Score: 1

      dude -
      No where in my post did I even mention pipes...
      No where in my post do I imply that Unix admins can "adequately perform the job of a knowledgeable Windows Amin"

      Still you rant on and on about off topic bullshit.
      STFU.

    5. Re:On the difference by Anonymous Coward · · Score: 0

      And mainframe code is like the blocks the Egyptians used to make the pyramids. Not very wieldy to build with, perhaps, but once you've built it, it will stand up over the ages to sandstorms, wars, and the occasional swarm of locusts better than lego sets.

    6. Re:On the difference by bar-agent · · Score: 1

      Windows scripting is shit. It is poorly organized, poorly documented, and as inaccessable as the ex-Seal's virginal daughter.

      You are right that it is not Windows' fault that the scripting is shit. The responsibility for that lies squarely on the app developers. But that doesn't make a difference. It's still shit.

      --
      i'd hit it so hard, if you pulled me out you'd be the king of britain [bash.org]
    7. Re:On the difference by tyler_larson · · Score: 1
      Wow.

      In all seriousness, that is the single most insightful comment I've seen on Slashdot in at over a year's time. A brilliant metaphor that so completely encompasses the paradigm shift between using the provided tools in Windows versus Unix programming.

      For over a year now I've been attempting to explain this very concept to my associates (whom I am supposed to teach Unix programming adn administration basics). So far, the best I could come up with is, "simple tools combined in clever ways." I hope you don't mind if I quote you verbatim in my own presentations.

      --
      "With sufficient thrust, pigs fly just fine. However, this is not necessarily a good idea...."
      RFC 1925
    8. Re:On the difference by jeryan2 · · Score: 1

      Yes, Very nice analogy. [But] What of the Mainframe programmers (question about which started this flame fest)? Do they predate Lego? Stretch your mind further grasshopper, you are still to grasp the unseen.

    9. Re:On the difference by zx75 · · Score: 1

      Wow, thats probably one of the best analogies I've heard in this thread filled with half-jokes and analogies. Especially now that in the interests of code separation, speed, and maintainability I've spent the last day trying to bang one of these newfangled square pegs into the traditional round hole, and its just not working.

      --
      This is not a sig.
  35. Here's a Book on Mainframe Culture by Crispin+Cowan · · Score: 0, Flamebait
    Here's a book on mainframe culture, and it was just posted to /. a couple of hours ago :)

    Crispin

  36. Dilbert Explains It... by Comatose51 · · Score: 1

    Here... Go ahead, Slashdot my File Farmer account. Got it for free.

    --
    EvilCON - Made Famous by /.
  37. 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 GeneralCern · · Score: 1

      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.

      That isn't actually true. I got my MS and BS degrees in Computer Science from a University where we had to create the same data structures that everyone else creates in C, except we had to do it on an IBM 360. COBOL was a pre-req for Assembler, which was a pre-req for an advanced data structures on the mainframe course. And this was in the year 2000.

    2. Re:Programming in COBOL by frank_adrian314159 · · Score: 1
      This will cause mainframers to be confused about why you can't assign a linked list to an array and have it "just work".

      Actually, they're right about this one. They're both sequences and in a non-stupid world hey would both inherit from a base class called Sequence that had generic indexing methods, insertion menthods, concatenation methods, etc. (Look at the ANSI Common Lisp standard or Dylan for this done correctly; look at C++'s STL for it done sort of correctly.) And they should be easily interconvertable. Why aren't they? Bad language and library design.

      --
      That is all.
    3. 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.

    4. Re:Programming in COBOL by Anonymous Coward · · Score: 0

      Yea... you might be right... However, most of the good COBOL developers I know have a foundation in Assembler and would not need to take a class in Java because they would already learn it on their own.

      On the flip-side... many trade-school COBOLer and community college COBOLers are not educated in this fancy linked-list jargon you speak of.

    5. Re:Programming in COBOL by Anonymous Coward · · Score: 0

      COBOL has arrays.

    6. Re:Programming in COBOL by jstott · · Score: 1

      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.

      20 years? More like 40 years ago. At the universities I've worked at, CS departments split off from EE (or, occasionally, math) departments in the 60's. By 1985 (20 years ago), CS was pretty universally its own department.

      -JS (showing my age, alas)

      --
      Vanity of vanities, all is vanity...
    7. Re:Programming in COBOL by Anonymous Coward · · Score: 0

      Hello Northern Illinois University?!?!?!

    8. Re:Programming in COBOL by cratermoon · · Score: 1

      Your comment is well-put. Sadly, the languages popular with IT shops now are strongly/manifestly typed -- meaning no common Sequence implementation exists.

    9. Re:Programming in COBOL by Anonymous Coward · · Score: 0

      Go Huskies.

    10. Re:Programming in COBOL by cratermoon · · Score: 1

      Yes but. COBOL arrays, or as they are called, tables, are extremely simple. In fact they are barely above indexed addressing in assembly -- not surprising. They are nowhere near as powerful as the array type in modern languages, e.g. Ruby Arrays. In fact they don't really measure up to Java's array, which at least knows its own length.

  38. 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 cratermoon · · Score: 1

      Definitely true. They are ready to drop everything and head out the door at 5pm Friday (provided there are no "production issues") and not think about computers again until 9am Monday. The idea of software development as a profession that requires continuous learning is foreign to them.

    2. Re:M/F is just a job by Neil+Blender · · Score: 1

      They are ready to drop everything and head out the door at 5pm Friday (provided there are no "production issues") and not think about computers again until 9am Monday.

      There is something to be said about that. For me, computers are M-F (hobby stuff at night), and weekends are for anything but.

    3. Re:M/F is just a job by Anonymous Coward · · Score: 0
      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.


      Judging from all the horrible code written by Windows programmers (which is the majority of the Windows-application code that I've seen, and I've seen a lot), Windows programmers don't enjoy writing code, they enjoy making the users and maintainers of that code suffer. What a bunch of sadomasochists.
    4. 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.

    5. Re:M/F is just a job by duffbeer703 · · Score: 1

      Also note that they are all 40-50 years old and employed.

      "Modern" IT is all about burn & churn. 60% of Windows & Unix guys are gone from the profession in 5-7 years, 20% in 7-10. Whomever's left works in some big company or government agency and takes up space or gets promoted into management.

      --
      Conformity is the jailer of freedom and enemy of growth. -JFK
    6. Re:M/F is just a job by nicodaemos · · Score: 1

      The short interaction I had with mainframes and JCL about 15 years ago still makes me shudder when the AC is turned up too high in my place. To me the mainframe world was all about central control and the individuals were like cogs in a giant machine. I can see why it holds a much smaller share of the marketplace.

      I've not met many Windows programmers that really enjoy programming. Mostly they seem to enjoy slapping some windows together quick enough to sell to some unsuspecting user.

      Unix users really enjoy programming, but they make the mistake in assuming that everyone can be as smart as them. They push the user to apply themselves, RTFM and work on a few open source projects. Lord knows I've tried but my Grandma just doesn't seem to do well in the code reviews.

      But the OSX programmers have it the best. All the skill of the Unix programmers and an ease of use, sense of style and fanbase that Windows could only dream of having.

    7. Re:M/F is just a job by Tablizer · · Score: 1

      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.

      Ever considered the possibility that they've been in it so long that the pleasure and newness is gone? Thus, they might be you in 20 years.

      I've worked with some mainfraimers, and they seem the usual mixed bag. Some took pride in their ability to debug and tweak JCL, being the in-demand guy in the office, others just went thru the motions.

    8. Re:M/F is just a job by frooddude · · Score: 1

      Yeah well, when I wrote crap for a mainframe (mind you I was trained for 1 day, and rewrote a very very specific app for varying input and invariable output) when I f'd the pooch the damned continuous form laser printer usually spit out about 500-1000 pages of "error" text before the job got cancelled by an operator.

      So yeah... C++ or Java errors of the most incomprehensible kind are a walk in the park. People get annoyed when you burn entire forests down with every screw up.

    9. Re:M/F is just a job by symbolic · · Score: 1


      laser printer usually spit out about 500-1000 pages of "error" text before the job got cancelled by an operator.

      um...wow. I didn't know what kind of scale you were talking, but that's um, BIG.

      I still don't know that I'd classify the java/c++ stuff a walk in the park - depending on how deeply the problem is buried, it can take a fair amount of effort to track down the cause.

    10. Re:M/F is just a job by corngrower · · Score: 1

      Were you around in the early '90s when standard templates were just being added to C++. Holy c2*)_#^! You quickly learned to avoid them like the plague. If you did something a little bit wrong, you got three screens of error message with names 200 characters long, none of which corresponded to any type or variable in your program. Because the line number, and even source code file scrolled off the screen so far, you wouldn't even have a *_)# clue where the error occured. The only thing you could deduce was:
      'You got an error in your program somewhere, and it's got something to do with using templates.'

    11. Re:M/F is just a job by micrometer2003 · · Score: 1

      I started on m/f and now work with all systems. I enjoy the work enough to do it for free sometimes. The m/f is fussy about what you tell it to do but the worst that can happen is my "job" would fail. I made my own share of mistakes but never, ever, did I see an individual user crash a m/f. I often wonder about "buffer overruns" and such that create so many terrible problems in the non m/f realm today. Did the user not set the length parameter to agree with the intended physical transmission? I would rather have the o/s catch these oversights before doing something I didn't really want. Also, the error messages, though seemingly "random nonsense", do contain every bit of information needed to correct the problem, unlike today's "drop dead" messages that tell you little more than something didn't work.

    12. Re:M/F is just a job by Schnapple · · Score: 1
      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.
      Yeah but JCL (Job Card Language) is different - it's basically the batch file that runs the program. It's not the program itself (usually, there is some scripting sometimes). It's like fighting to get the program done only to then fight to get the batch file written. An afterthought on, say, a DOS or Windows system where the batch file is literally just a series of commands. The JCL file has to tell how many blocks or cylinders the output files need, and it's sort of a crapshoot unless you have enough experience to guess properly. And when the job dies you get called at 3 AM.

      At least with C++/Java debugging stuff it's what you signed up for. JCL's like spam.

    13. Re:M/F is just a job by Schnapple · · Score: 1
      laser printer usually spit out about 500-1000 pages of "error" text before the job got cancelled by an operator.
      um...wow. I didn't know what kind of scale you were talking, but that's um, BIG.
      My personal record was 12 boxes of paper, but a coworker did 30 once. We're talking the boxes that hold a dozen reams of paper or more.

      This was at my last gig, a MVS programmer at a University, so the operator manning the thing was some minimum wage overnight college kid who would randomly look up from sleeping or studying or whatever to see that yes the output doesn't seem to be ending and is in fact random characters. The best part was when they wrote evil notes on the boxes to say that you weren't doing your job which was ironic as they fed Box #11 of paper before thinking perhaps there was an infinite loop involved.

    14. Re:M/F is just a job by CommieOverlord · · Score: 1

      You make that sound like a bad thing? My job is not my life.

    15. Re:M/F is just a job by Anonymous Coward · · Score: 0

      Now imagine going to school for 4 years where the CS dept. punishes you with exactly the sort of mainframe torture you describe.

      Oh, and all jobs are submitted via FTP -- insecure, plaintext-passwords, FTP. Job output is received the same way. A cumbersome, insecure interface to a cumbersome, prehistoric computing environment.

      And the school wonders why the majority of the students hate the curriculum in the dept. Duh.

  39. 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 Brandybuck · · Score: 1

      Joe Coder: "The NOC filled up with smoke and the entire building had to be evacuated? I think it's just a corner race condition that won't happen in production, so let's reboot and try it again!"

      --
      Don't blame me, I didn't vote for either of them!
    3. Re:I agree by Knetzar · · Score: 1

      Please give some examples. Many of the people here could learn from what you learned.

    4. 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.

    5. 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.
    6. Re:I agree by Zaak · · Score: 1

      I think it's still an important language to learn and understand as a beginner programmer.

      As a beginner programmer perhaps, but please don't teach it as a new programmer's first language. Like BASIC, it causes brain damage which is difficult to repair.

      TTFN

    7. 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
    8. Re:I agree by bladesjester · · Score: 1

      I read this and thought of a Febuary day several years ago when I was working as an admin.

      I walk into the building after my first class of the day and, as I head toward the office, I catch the words "fire" and "lab".

      Taking the stairs (the elevator was notoriously slow) and walking into the lab, I find that it's freezing cold and smells terrible. It seems as though one of the machines did indeed literally catch fire and was largely engulfed in flames by the time maintinance realized there was a problem (it occured before anyone got to work in the lab).

      That was the day that all of the windows and doors were open in order to evac the smoke and actually allow people to get their things (nobody could work in there until the afternoon due to the smoke) as snow fell from the sky and blew into the room.

      It had burned long enough that the motherboard was black and blistered from the heat. Not to be outdone, a few days later, the monitor connected to the PC which our graphic person was using exploded and let off it's cache of magic smoke.

      He came downstairs giggling hysterically and started off with "I know this week's been weird already..."

      That was a truly fun and interesting week (for unusual values of fun and interesting). I got to spend lots of time with our supplier ordering new equipment that week. =]

      --
      Everything I need to know I learned by killing smart people and eating their brains.
    9. Re:I agree by Mad+Merlin · · Score: 1
      At the very least people could prefix strings they're transmitting with the # of bytes in them, so that memory access is efficient.

      In a conversation about programming mistakes, that would seem to be a potentially huge one. Just trust the sender that the TCP packet you just recieved really is 8T, or perhaps 1 byte? The marginal benefits in terms of memory access would seem to be heavily outweighed by the potential for buffer overflows, memory wasting, etc.

    10. Re:I agree by spectecjr · · Score: 1

      In a conversation about programming mistakes, that would seem to be a potentially huge one. Just trust the sender that the TCP packet you just recieved really is 8T, or perhaps 1 byte? The marginal benefits in terms of memory access would seem to be heavily outweighed by the potential for buffer overflows, memory wasting, etc

      An option available as part of the HTTP 1.1 spec is for servers to send documents wrapped in gzip. This suffers the same potential problems you're discussing. So do GIF files, JPEG files, etc. The problems are similar no matter what you do - except in the case of ASCII you're trading fixed buffer lengths for minimal decoding penalty.

      --
      Coming soon - pyrogyra
    11. Re:I agree by mdarksbane · · Score: 1

      Agreed. It took a long time for me to really start thinking in Object-Oriented terms after learning C to start. None of the OO stuff we did felt like actual *programming* compared to the C stuff I learned. I mean, if I'm just using objects that somebody *else* made, what's the point? ;-)

      Start with something good and object-oriented, like Java or Objective-C (if you're on a mac). C++'s object-orientism, while very useful, *feels* like more of a hack and doesn't seem at all as good for teaching the fundamental principals of the object oriented programming. I had three different courses on C++ and still didn't really understand polymorphism. Five minutes into my Objective-C book it all made perfect sense.

    12. Re:I agree by PakProtector · · Score: 1

      Java is useless. I'm sorry. But before you mod me down, read on.

      I live in Gainesville, Flordia, four blocks north of it on W 17th Street. Here, they use Java for their Computer Science classes. It's a big mistake.

      How many of you out there who are programmers use Java? Very few. Unless you're developing for very, very specific things, you generally don't use Java. C++ is a much better choice for learning, particularly at the University level. It's Object Oriented, and it's actually useful in the real world.

      --

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

    13. Re:I agree by Spazmania · · Score: 1

      I live in the outskirts of Washington DC and about 80% of the local programming jobs call either for Java or for a mix of languages including Java. Some want C or Visual Basic and even Perl but almost nobody servicing the Federal Government calls for C++.

      IMHO, C++ is among the worst languages. The OO stuff encourages the programmer to move away from C's efficiency while pointers continue to saddle you with C's most troublesome trait. But don't take my word for it, judge for yourself. Windows is written in C++. Unix and Linux are written in C. Which runs faster with fewer problems?

      If you want the benefits of OO, use a language like Java that also has good error catching and few buffer overflow problems. I'm not a big fan of Java -- its super clunky on text processing jobs -- but I'll give it this: Java does Object Oriented right.

      If you need the raw speed, stick with C like the real gurus do.

      --
      Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
    14. Re:I agree by warkda+rrior · · Score: 1
      all I see is wasted entropy and bandwidth

      You should optimize a system (be it a program, a network protocol, or any combination thereof) only after it is working perfectly. I do not think that, for example, SMTP is perfect -- it will have to go through more improvements before we can say "SMTP is done."

      First rule of optimization: DON'T!

      --
      You need to install an RTFM interface.
    15. Re:I agree by PakProtector · · Score: 1

      I would say that the efficiency of Unix and Linux over Windows is not due to the fact that they're written in C as opposed to C++, but due to the fact the the programmers who write them put more stock in efficient, well written, bug free code.

      As I see it, Java is only good for one thing: Writing code that must work the same on many platforms all at once. However, I prefer C, and C++, to Java, one of the reasons being that it lets me use pointers. You may never need to use pointers, but it is good to have a good grasp of the fundamentals of how computers work, and one of the things that Java lacks for that is Pointers. At the local University, it's not until you get into advanced courses that deal with the nitty-gritty of how computers work that you use C or C++, and then you quickly go from those to actual machine language.

      --

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

    16. Re:I agree by william_w_bush · · Score: 1

      While I don't agree with you about ASN.1 specifically (bad h323 experiences), I agree in the general sense about strictly typed data. I cannot believe in 2005 people still go around throwing char*'s at each other, and then wonder where the buffer overflows come from. Simple data typing is easier to debug overall than ascii fire/forget, and one of the things I think java could have brought to the software mainstream was implicit member length and auto-alloc/free.

      As a unix junkie myself I don't see why everyone still tends to program like they're on a vax-10, with the basic c declarations and pointer throwing. Why in hell are unix strings still defined as char*'s? We've had length prefixed unicode for 20 years, it's infinitely more secure, use it instead of patching sendmail and apache every time someone finds a new way around the length specifier.

      Ironically, windows has a spec for length prefixed unicode strings, but people hate using them because they use 6 different api's and semantics, and have to be converted back to lpstr's any time you want to use a string function or most api calls, so almost all of windows uses the same string type.

      Makes me wonder why nobody made a (length prefixed unicode) lib, with the same api semantics that could convert ascii and allocate/free easily.

      --
      The first rule of USENET is you do not talk about USENET.
    17. Re:I agree by spectecjr · · Score: 1

      You should optimize a system (be it a program, a network protocol, or any combination thereof) only after it is working perfectly. I do not think that, for example, SMTP is perfect -- it will have to go through more improvements before we can say "SMTP is done."

      First rule of optimization: DON'T!


      There's a difference between blind optimization, and choosing the correct algorithm or data structure for the job.

      For example, you wouldn't choose not to use a tree structure because that's more optimized than a list, would you?

      Or maybe you would...

      --
      Coming soon - pyrogyra
    18. Re:I agree by Anonymous Coward · · Score: 0

      And I disagree. As a programmer working in the princeton area, most of my work is done with java. There are advantages that simply can't be beat; hotswapping compiled class files while you're running the program, the ability to call down stack traces from the heavens whenever you so choose without requiring a debugger, removing the trouble of memory maintainance (mostly), and so on and so forth.

      Should everyone use java? Heck no. But please, don't base your assumptions on the language based on what you did with the clunky old SDK from 5 years ago.

    19. Re:I agree by Anonymous Coward · · Score: 0

      There's a difference between blind optimization, and choosing the correct algorithm or data structure for the job.

      Which does the job? Assuming you're using a good OO language where you can simply change an identifier in a place or two and switch from one to the other, there's better things to do then pull up the O() notation for each operation you'll perform and calculating the number of searches relative to number of insertions relative to deletions to determine whether a balanced tree with fast searches and slow insertions is "better" than a slow search but fast insertion/deletion list. Or maybe you want a B* tree? Well, you'll figure it out someday, but right now the rest of the program isn't writing itself.

    20. Re:I agree by spectecjr · · Score: 1

      Makes me wonder why nobody made a (length prefixed unicode) lib, with the same api semantics that could convert ascii and allocate/free easily.

      Actually, ATL comes pretty close to this with its CString class, if you combine it with the Cx2x (CW2T, CW2A, etc) classes. It's also nice and lightweight... which is a plus.

      --
      Coming soon - pyrogyra
    21. Re:I agree by crazyphilman · · Score: 1

      Try Mono/C#.

      It has all the good features of Java, plus some of the good features of C++ like pointers and access to unmanaged code.

      It's also completely free and open source. And if you ever find yourself working with Windows, you'll already know the main language for doing so.

      --
      Farewell! It's been a fine buncha years!
    22. Re:I agree by cide1 · · Score: 1

      Umm, I program in Java. I've been a developer for 8 years, in a mix of C, C++, Python, Assembly and Java. For sheer ease of programming, I would have to choose Java, for two simple reasons. One, Javadoc is great. (Pydoc is also great). Having a concise reference of the language is something that is horribly missing in c and c++. Second is Eclipse. Eclipse is constantly evaluating your code, so you fix your typos while you code. You know about type mis-matches, or it will ask you what to import to resolve a dependency. This means that when I write Java code, it normally works the first time.

      I do develop for very specific things, such as manufacturing test equipment for medical devices. Java can be very flexible. JNI allows Java to call third party device drivers. I was able to port our proprietary messaging library in about 15 hours time from Solaris C to Windows Java. I can control National Instrument's boards, bar code scanners, all kinds of stuff. I can talk over serial, parallel, usb, ethernet, gpib, etc... Things like database drivers and XML parsers are part of the language standard. Eclipse + SWT Designer allows one to make high quality user interfaces fast, and the resulting code is human readable (Not that I'd compare it to Visual Studio)

      Java used to get a bad rap for speed, this is no longer true with the newer VMs. Java used to get a bad rap for being inflexible, but this also has improved.

      All languages suck at something, but Java isn't bad. It would be nice if you could overload operators, but I understand the reasoning of why it isn't done. When I pick up someone else's code, it does make it easier to understand. I suspect Java will gain more momentum with the GNU Java Toolchain finally coming together.

      Anyway, flame away... These opinions seem to be rather unpopular here.

      --
      -- the computer doesn't want any beer, no matter how much you think it does. NEVER, EVER feed your computer beer.
    23. Re:I agree by moronikos · · Score: 0

      Actually, Windows is written in C

    24. Re:I agree by zhrinze · · Score: 1

      The problem is that schools have long been doing it wrong. It used to be you *started* with assembler and worked your way up. This way, you were forced to see the consequences of things like improper looping, improper memory addressing, frivolous use of storage, etc. Learning any high-level language before assembler makes any true understanding of interpreters or compilers *meaningless*. Similarly, OOP people seem to think that learning OOP languages without learning procedural languages first is some benefit. That's ridiculous. It's like saying, "skip all that algebra crap, send me straight to calculus." ALL object-oriented languages are built on extending the capabilities of procedural languages, and adding a layer that improves productivity for complex tasks. Just as assembler improved on binary entry, and high-level procedural languages improved on assembler, OOP languages improve on procedural languages. Certain tasks call for certain types of languages. Nobody would write an OS in COBOL or RPG, but C/C++/C#/Java et al will never approach the simplicity for data processing of records. Database languages are the only thing that can surpass the likes of COBOL or RPG - and even then it's sketchy since these languages interface with database engines so easily.

    25. Re:I agree by antoy · · Score: 1

      I 'read on' but I didn't see any justification for your 'Java is useless' conclusion.
      My brother uses Java exclusively. The whole company he works at does. Most companies that do web applications use Java. In fact, I've been studying here in the US for a year and only met people who worked with either Java or .NET.

      So, no, Java is not useless.

      (I'm not actually a Java evangelist/apologist/whatever, I've gone from C++ to C# and prefer both to Java. But let's stick to the facts shall we?)

    26. Re:I agree by PakProtector · · Score: 1

      Well, normally I stay away from anything named 'Mono,' but I'll look into it. Thank you.

      --

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

    27. Re:I agree by PakProtector · · Score: 1

      Yeah. You roommate is in his fourth year of Computer Sci (and he very well could get the degree in Computer Sci and Engineering, since he's taken the requisite courses just for fun) and he's been programming for a rather long time, and programming for money for almost as long.

      He's the one who has been helping me as I have been learning new concepts that I've never had to deal with before (writing a MUD can be a bloody headache, particularly when you're attempting to do a Graphical MUD) and one day when we were talking about optimising the C code I was using for the server of the last incarnation (a non-graphical one) he advised that I look at the assembly files generated. And I did. And it blew me away.

      C is a low level language. Often you can just look at a good deal of the code and have a fairly good idea of exactly what the processor is going to do. And that's the problem with programming today, atleast how it's taught. It's a diploma mill to generate people who don't neccessarily like computers, but do like the idea of making 55 thousand dollars a year. And most of them have no idea of how things are actually achieved.

      --

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

    28. 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!?"

    29. Re:I agree by PakProtector · · Score: 1

      An opinion may be unpopular (and this is /., so you may get flamed) but I do thank you for your view of the situation, seeing as how you actually use Java a great deal. Thank you.

      --

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

    30. Re:I agree by byteherder · · Score: 1

      I'll post a pearl of wisdom since nobody else seems to be doing it.

      "5 hours of design will save you 5 days of coding."

      Plain-speak - Don't be too anxious to get into coding, getting a good design will save you a lot of work in the end.

    31. Re:I agree by spectecjr · · Score: 1

      Which does the job? Assuming you're using a good OO language where you can simply change an identifier in a place or two and switch from one to the other, there's better things to do then pull up the O() notation for each operation you'll perform and calculating the number of searches relative to number of insertions relative to deletions to determine whether a balanced tree with fast searches and slow insertions is "better" than a slow search but fast insertion/deletion list. Or maybe you want a B* tree? Well, you'll figure it out someday, but right now the rest of the program isn't writing itself.


      Or maybe you just learn which does what, and choose the right design from the get-go, and modify your assumptions only as part of an optimization pass?

      BTW: I don't know of any OO languages where you can willy-nilly swap out identifiers to switch from one to the other; there's always gotchas with the design where you can't.

      --
      Coming soon - pyrogyra
    32. Re:I agree by jadavis · · Score: 1

      Interesting. I always thought Java was the primary cause of irreperable brain damage to new programmers. Not because it's bad; I don't think it is. I just think it's a bad way to learn.

      A new programmer is confronted with classes, inheritance, and exceptions right away. It's hard to understand because when you're writing "My First Hash Table", the professor has a hard enough time explaining why a hash table is useful. Then when someone wonders "why are we using this class thing" the professor can't say anything other than "because I said so". That can lead to a weaker understanding of OOP where students are thinking imperitively and programming with objects.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    33. Re:I agree by Anonymous Coward · · Score: 1, Insightful

      um.
      tcp/ip does that in the next layer down.

    34. Re:I agree by crucini · · Score: 1

      Remember, these text protocols were not the first in their space, and were not guarranteed to succeed. They succeeded largely because they were simple and easy to debug. Many people built hypertext systems before the web took off. Several complicated binary email systems have faded out.

      It's useful to be able to telnet to port 25 and troubleshoot a mail server.

    35. Re:I agree by antoy · · Score: 1

      I wouldn't call web application development an 'extremely specific thing'. I would be closer to the truth if I called it 'half the software industry'.

    36. Re:I agree by mrselfdestrukt · · Score: 1

      Thanks for giving me your address. I'll come by at say 03:00 AM and pick up your PC while you're asleep. What stereo do you have?

      --
      "I used to have that really cool,funny sig ,but it got stolen."
    37. 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!?"

    38. 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.
    39. 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.

    40. Re:I agree by karmatic · · Score: 1

      Your google bombing attempt (in your sig) will fail utterly. Slashdot does not send sigs to users who aren't logged into an account (i.e. Google).

    41. 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.

    42. 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.

    43. Re:I agree by Jellybob · · Score: 1
      -1: OP was on crack

      How many of you out there who are programmers use Java? Very few. Unless you're developing for very, very specific things, you generally don't use Java. C++ is a much better choice for learning, particularly at the University level. It's Object Oriented, and it's actually useful in the real world.

      You'll probably find that large wedges of the programming world are using Java - usually for internal corporate systems, which is probably why you don't hear about them so much, but they are definately out there.

      I'm also not sure what you mean by "It's Object Oriented, and it's actually useful in the real world."

      Java is definately object oriented, since you can't do anything without at least one class around, whereas C++ is OO tacked onto C as an afterthought.
    44. Re:I agree by Anonymous Coward · · Score: 0

      Java isn't bad. It would be nice if you could overload operators, but I understand the reasoning of why it isn't done.

      Admittedly, I haven't programmed much in C++, but this is by far the most significant thing that terrifies me about the language. So clever, and yet... the possibilities for creating fiendishly subtle and impossible-to-track-down bugs seem to lurk round every corner.

    45. Re:I agree by EllisDees · · Score: 1

      That's odd. I've been a professional programmer for 8 years, and have yet to come across a company that wanted anything written in C++, but there have been a few java projects along the way. As far as I can tell, nobody uses C++ except for learning.

      --
      -- Give me ambiguity or give me something else!
    46. Re:I agree by aaronl · · Score: 1

      Most programs today are bloated to hell and incredibly slow. There are many reasons for this, but the abstract language bloat doesn't help at all. Perhaps they shouldn't be written in Java or Python or whatnot so that they could run at a reasonable speed. And no, all the people that will chime about how Java isn't slow, you're simply wrong. You're making it up and anyone that isn't you could prove you wrong. All it takes is starting a Java program.

      Most program today *should* be written in C/C++. Those programs simply work better, run faster, and consume less resources. They aren't as dependent on outside code as Java/etc programs are. They have the ability to do GUIs faster than ice crawl in an ice age. They also don't make the computer completely stop while the JRE starts.

      There's also huge amounts of things you simply can't do in any of todays toy languages, because they won't let you. You can't do drivers, windowing and GUI, often low-level networking, high-speed I/O (memory or storage), etc. You can do the parts of those things that the current VM provider decided you should be able to do. You can't make it on your own without, gasp, going back to C/C++.

      This Joel guy talks about all these string and interation problems in C. That's fine and good, but Java has *ALL* those problems at least twice. It was written in C++ and not assembler, and it uses C operations. He makes his own argument about why we should all be using C/C++, and then says we shouldn't be! He does, however, explain well why you shouldn't store databases in XML formats.

      If a competent programmer writes in C, then code is easily maintained and fast. If an incompetent programmer writes in Java or Python, it's still just a pile of junk code. Very goods odds are that the Java/etc programmer doesn't know anything about theory, doesn't know enough math to properly optimize algorithms, and doesn't know how the computer works. Add these together and it comes down to Java/etc lets you program without knowing how to program. This is very obvious with a C program, just by looking at the code and performance profile.

      Rather than teaching people the language of the day, perhaps teaching them CompSci first would be a good idea? Or have we forgotten all the essential languages of the last six years? Python, PERL, ASP, VB, .NET/C#, Java, and on and on.

      The Robert Read essay looks pretty good, though.

    47. Re:I agree by Anonymous Coward · · Score: 0

      Adequate analysis
      Documentation
      Planning

      MF teams have often become too bogged down in formality leading to the success of the faster PCs right at the start.

      But they threw out the baby with the bathwater. A little bit can help!

      Old Hacker.

    48. 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.

    49. Re:I agree by davecb · · Score: 1
      spectecjr wrote:I feel the same way whenever I look at the SMTP spec, [...]At the very least people could prefix strings they're transmitting with the # of bytes in them, so that memory access is efficient.

      Actually you only have to fetch one word (4 bytes) in SMTP to get the four-character command and the three-plus-one-character response code. This makes the switch code for the DFA easy.

      These were ARPA standards, by the way, from the mainframe era. All the protocols worked that way, and reading records was assumed to be length-counted at what we now call the "presentation" layer on machines where I/O was done in records.

      --dave

      --
      davecb@spamcop.net
    50. Re:I agree by miu · · Score: 1
      First rule of optimization: DON'T!

      That has got be up there with "when in doubt - use brute force" and "premature optimization is the root of all evil" for useful little aphorisms.

      Integration and performance testing will catch many cases that need to be optimized and real world use will catch many more, but over designed super optimization from the get go turns out things like CORBA, ASN.1 and Ada. How long have those specs been out, and how well does anyone understand or use them - governments and utilities use them because they are mandated, but programmers that are not forced to use them tend to look into them and then throw up their hands and use something simpler that works for the vast majority of their needs.

      Simpler is better until you really understand what you need.

      --

      [Set Cain on fire and steal his lute.]
    51. Re:I agree by sydb · · Score: 1

      Hey, you're right, no-one buys J2EE application servers do they. IBM, BEA, Sun and JBoss are delusional. And why be a Java developer when no-one is running a J2EE environment?

      Yeah, right.

      --
      Yours Sincerely, Michael.
    52. Re:I agree by ednopantz · · Score: 1

      Absolutely, you can fire up telnet and examine the badly designed stream of text that is causing the trouble in the first place and devise appropriate hacks to get it to parse.

    53. Re:I agree by blane.bramble · · Score: 1

      If you think SMTP is badly designed, then you are way off. It is an extremely elegant protocol.

    54. Re:I agree by Decaff · · Score: 1

      ALL object-oriented languages are built on extending the capabilities of procedural languages, and adding a layer that improves productivity for complex tasks

      This isn't true. Languages like Smalltalk and object-oriented LISP certainly aren't.

      It used to be you *started* with assembler and worked your way up. This way, you were forced to see the consequences of things like improper looping, improper memory addressing, frivolous use of storage, etc. Learning any high-level language before assembler makes any true understanding of interpreters or compilers *meaningless*.

      Having been developing for 30 years, this is not the way I remember things. Assembler was always a specialised and advanced subject. Computing was taught in terms of data structures (starting with simple variable) and how they were processed. Then, as simple language like Basic or Pascal was presented as a way of expressing such processing. No mention of assembler. ...Java et al will never approach the simplicity for data processing of records.

      These days a lot of data processing in Java is not coded as processing records. It is coded as the processing of objects, and mechanisms like ORM (Object Relational Mapping) transparently translate this to record handling. This means that data processing in Java is certainly as simple as in COBOL or other such languages.

    55. Re:I agree by Decaff · · Score: 1

      How many of you out there who are programmers use Java? Very few.

      The number of downloads of Java development kits is in the millions.

      Unless you're developing for very, very specific things, you generally don't use Java.

      Very specific things like web applications, mobile device applications, high-performance databases (HSQLDB), Office applications, IRC/chat clients, CRM systems, image processing software, GIS (Graphical Information Systems) programs, embedded applications, real time device control, security software, mathematical modelling, banking, stock trading, compiler software, interpreters...

    56. Re:I agree by idontgno · · Score: 1
      C++ is a much better choice for learning, particularly at the University level. It's Object Oriented, and it's actually useful in the real world.

      Talk to us about it after you join the real world.

      A great deal of transactional realtime production code is being written RIGHT NOW in the military technical center in which I work. They're porting 30-year-old mainframe FORTRAN into Java 5 and running it on a variety of workstation, server, and (dare I say it) mainframe systems, under about 6 different operating systems, and IT WORKS. It runs faster than the compiled native-code (FORTRAN and C) intermediate versions they were running 5 years ago and had to throw away because they couldn't recompile and use the code under anything besides Solaris. (Yeah, it's probably faster because of newer hardware. But the Java "performance penalty" isn't materializing.) And newer object-based replacements for some major subsystems are allowing types of interconnection, data sharing, and research that the old code and databases couldn't.

      Don't get paranoid; we're talking meteorology here, not spies-r-us.

      Java can work. C++ would have been much harder to port across new platforms, and good acquisition practice dictates avoiding lock-in to one platform just because you chose the wronge coding language.

      --
      Welcome to the Panopticon. Used to be a prison, now it's your home.
    57. Re:I agree by springbox · · Score: 1

      What's with you people and saying C is so bad? It only seems to make bad applications because lazy people are using it too. Your safe interperted languages like Java are not acceptable replacements for C in my opinion. They have their place, but running an interperter always introduces extra overhead, slowness, etc. As long as you're careful C is a very powerful tool that CAN make solid applications (shocking, I know.)

    58. Re:I agree by idontgno · · Score: 1
      I hate responding to myself, but I hit submit before getting through my rant.

      Java is a great programming language for teaching object methodology and basic programming. It doesn't easily allow the teaching of the abtruse and hairy realities of a computer, such as bits and memory mapping and registers, but most colleges CSCI programs have a "computer architecture" or "organization" classes that are supposed to handle that.

      I'm a bitter old mainframe programmer, so I'd maliciously prefer that the first programming language you kids learn is mainframe machine code, just so you know and appreciate how good you've got it now.

      Anyways, Java. If you're gonna teach basic modern software development theory and practice, why don't you use a language that maybe a future employer of your student will need that employee to know? C++ has a production following, that's true, but Java does too, and in heterogenous enterprise settings I'd bet it's bigger.

      Why, yes,I do have a grey beard.

      --
      Welcome to the Panopticon. Used to be a prison, now it's your home.
    59. Re:I agree by Jay+Maynard · · Score: 1

      Actually you only have to fetch one word (4 bytes)
      All the world is not a VAX, or a Pentium...

      --
      Disinfect the GNU General Public Virus!
    60. Re:I agree by spectecjr · · Score: 1

      Actually you only have to fetch one word (4 bytes) in SMTP to get the four-character command and the three-plus-one-character response code. This makes the switch code for the DFA easy. ... except you still have to read the email addresses etc. that go along with that. So sure, you can read the 4CC in, but what about the rest?

      --
      Coming soon - pyrogyra
    61. Re:I agree by mollymoo · · Score: 1
      Most program today *should* be written in C/C++. Those programs simply work better, run faster, and consume less resources.

      Perhaps you haven't noticed, but computers are getting faster and C/C++ developers aren't.

      For many applications (particularly those where you both write the app and buy the boxes to run it on) it's cheaper overall to have the computer work harder so the developers can work faster. The set of applications for which this is true can only expand as computers get faster.

      Your app may be able to serve 7000 concurrent users from a 386, but my app has been running on room full of Sun boxes for the past year, during which time I've taken all your customers.

      --
      Chernobyl 'not a wildlife haven' - BBC News
    62. Re:I agree by aaronl · · Score: 1

      In that situation, then fine, I really wouldn't care what you use regardless. :) That's an app you had developed for your own corporate use. You're spec'ing and running the machines. You need to push things out the door fast, fully functional, and debugged. Use the best tool for the job, which happens to be some kind of managed code in your case.

      For general use applications, that approach doesn't cut it. You don't have control over any of the factors, hardware or software. You have no idea what is going to be done with it. You have a longer development cycle and you need to end up with faster and tighter code since people don't want to wait for an application load or a GUI redraw.

      Completely different situations. If you're running the code as a web application or other client/server type setup, then you don't have to worry about load time or GUI speed or similar.

      (I'm just picking a few factors here; there are certainly a heck of a lot of other ones.)

    63. Re:I agree by aaronl · · Score: 1

      Except that wouldn't be true. The vast majority of the software industry is end user applications. The closest end users typically get to web apps is online banking and webmail. Many users don't use either of those.

      By corollary this would mean that the vast majority of applications are written in C/C++, sometimes in VB.

      Web apps are an extremely specific thing. An application written to run as an extension to a web server platform. The only other two circumstances that I can come up with remotely similar are server software and OS'.

    64. Re:I agree by aaronl · · Score: 1

      I actually never considered C/C++ to be outside of portablility. If you have a consistent API (for example, a JRE) and properly written code (like Java), then you simply convert the code into native instructions from an intermediate step (like bytecode).

      Thinking of it that way, it's fairly easy to write highly portable C/C++ code.

      Java is only useful for web apps because you load the JRE once, when you load the web server. If you had to load it for each connection, this would be a pretty terrible choice of languages.

    65. Re:I agree by aaronl · · Score: 1

      You're better off describing C++ an object oriented language that happens to be compatible with C source. That's closer to reality.

      You're definitely right that Java is useful in the real world... it's just not appropriate for end user applications.

      People should be thinking "The right tool for the job" instead of "The tool I like for every job".

    66. Re:I agree by aaronl · · Score: 1

      Going down the list of your things, while there are Java versions of many of these things... Java is only actually used for the first two. Java for mobile devices, and Java for web apps. A few others things you listed often include a web app as part of the solution.

      web apps = yes
      mobile devices = yes
      databases = C/C++
      office apps = C/C++
      chat = C/C++
      crm = C/C++
      image processing = C/C++
      GIS = C/C++ (Java webapp frontends)
      embedded apps = C/C++/Assembler
      real time ANYTHING = Assembler/C/C++
      security = C
      math = C/C++/Assembler/MATLAB/Fortran
      banking = C/C++/COBOL/others
      stocks = C/C++
      compiler = C/C++/Assembler
      interpreters = C/C++

      I'd also like to point out there there are orders of magnitude more people that have downloaded C/C++ compilers. I've personally downloaded the JDK around 100 times for my own use over the many releases that have happened. I don't tend to do anything in Java if I have a choice in the matter. I've never been in a situation where it was the right choice.

      Also, you might want to look up the word "generally".

    67. Re:I agree by aaronl · · Score: 1

      I've always thought you should use the language that best embodies what you're trying to teach. This would include assembler, C, Java, LISP, or whatever else. The language isn't important.

      Then again, I don't think you should actually be programming in your first year of a CS major. Silly me and my thinking that CS was applied math. ;-)

      Unfortunately most colleges don't offer CS=CompSci anymore; they offer CS=SoftEng. If they want to get into heavily used languages later on, then that's perfectly reasonable. But this way you don't end up with Java programmers or C programmers, you end up with CompSci people that can program in whatever language that is needed and write decent algorithms.

      Of course, thinking back on my college days, I remember people in second year classes that still didn't get a handle on zero-base counting.

    68. Re:I agree by Decaff · · Score: 1

      Java is only actually used for the first two

      I'm sorry but this is total nonsense!

      A few minutes with google will prove otherwise.

      In every case I have described there are major products which use Java. For example, in GIS Java is now the main language for application development. Boeing now uses Java for embedded real-time apps. There are major interpreters written in Java: Jython, Groovy etc. Banking hardly uses C++ for new development at all now. Most major stock markets use Java/J2EE for handling stock trading.

      I don't tend to do anything in Java if I have a choice in the matter. I've never been in a situation where it was the right choice.

      Why do you assume that your approach is the same one every one else uses? You may not think things are the right choice, but millions of others don't.

      Also, you might want to look up the word "generally".

      I would suggest you do before commenting further, and that you research other things.

      Check the TIOBE index of website resources. Check the job market. You will see that as C++ declines, Java is picking up those jobs in all areas (with the exception of system development).

      I'm not saying this is good, or that Java is a great language. I'm just saying that this is the actual situation in the real world away from the frequent Slashdot fantasy that 'Java is hardly used'.

    69. Re:I agree by davecb · · Score: 1

      In those days it was a IBM 360 (;-))

      --
      davecb@spamcop.net
  40. How to manage directories? by Anonymous Coward · · Score: 0

    Not even the mainframe peeps seem to get this right!

    rgds

  41. Not a dupe! by Anonymous Coward · · Score: 0

    With all the talk about dupes going around, I thought we should pat the editors on the back and proudly proclaim: This story is most decidedly not a dupe! It's the first story in hours that isn't, but... If we praise good story selection, they just might learn...

  42. The differences . . . by claywar1 · · Score: 1

    Windows Programmers are from Omicron Persei 7, as *nix users are from Omicron Persei 9?

  43. 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
  44. Command line apps are easy to use by Archimboldo · · Score: 1

    - You can link them together.

    - You have access to hundreds or thousands of commands in one window. No wending your way through endless menus and submenus.

    1. Re:Command line apps are easy to use by nazsco · · Score: 1

      - You can link them together.

      you like the pipes uh?. take a look at plan 9 then

  45. 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.
    1. Re:Look in the trunk by sl3xd · · Score: 1

      I have add my $0.02
      1.) The mainframe guys have cars?!? (I thought they had tractors-- the original 'off-road' vehicle, and still quite relevant).
      2.) The Windows crowd doesn't use screwdrivers. (That's what thumbscrews are for.)

      --
      -- Sometimes you have to turn the lights off in order to see.
  46. HA HA You Suck At Teh Manager!!onei!

    --
    I don't keep a lid on my coffee so when I walk around I look busy -me
  47. 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.
    1. Re:Not the best assumption. by Mo6eB · · Score: 1

      It's spelled viruses. Not virii. Viruses. V-I-R-U-S-E-S. Here's a link to prove it http://en.wikipedia.org/wiki/Plural_of_virus Back on topic. You are forgeting the antivirus, antispyware, antitrojan, firewall, etc. programs, that the user runs to protect himself from said things. And then forgets to update...

    2. Re:Not the best assumption. by snorklewacker · · Score: 1

      Obviously you don't know anything about proper pluralization. Now if you excuse me, I have to leave early to take the bus to work and transfer to another. It takes a while to take two bii to work.

      --
      I am no longer wasting my time with slashdot
    3. Re:Not the best assumption. by mollymoo · · Score: 1
      Wikipedia as proof? Very amusing.

      Wikipedia isn't even a credible reference, let alone an authoritative one.

      --
      Chernobyl 'not a wildlife haven' - BBC News
  48. 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.
    1. Re:From what I remember. by eclectechie · · Score: 1
      Where the control-key modifier is in Unix, the Enter/Return (one of these) is in Mainframes, is the wavey flag is in Windows.

      That would be: Enter/Record Advance, to the right of the spacebar.

      --
      "The empty vessel makes the greatest sound." -- William Shakespeare; Henry V, 4. 4
  49. 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.
    1. Re:AHH by Anonymous Coward · · Score: 0

      Well you read it both times and you've been coming here for at least two years, so what does that tell you?

  50. it's a state of mind by Anonymous Coward · · Score: 0
    I don't know if you can. I don't think bellheads will ever get the nethead think. Same with mainframe retreads. Or stubborn UNIX heads. Or Windows lovers.

    If you can understand the other side, the label doesn't fit in the first place. The label is an indication of narrowmindedness all in itself. My $.02.

    So, rather than asking how to get along, be openminded enough about different ways of thinking (or not) and the world will sort itself out.

  51. 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.
    5. Re:a few observations by Anonymous Coward · · Score: 0
      I think it is you who know nothing (or at least a lot less than you think).

      My personal experience with what Porky mentions (doing async I/O by hand in BAL) is that it results in the job completing much faster than it would otherwise. This was true in the 1980's, where I spent years working for one of the few application software ISV's of the day, as a BAL/systems programmer on both MVS and DOS/VS/E, supporting the COBOL droids as needed.

      Granted, this may not be entirely the fault of the OS's built-in I/O mechanisms. More likely it is the result of two things:

      - COBOL doesn't have any semantics to support async I/O, so it can't be done at the app level. Doesn't matter what the OS is capable of.

      - Some shops tuned their schedulers using some assumptions about the I/O-vs-compute pattern exhibited by the applications. Since the application languages don't support async I/O, this meant that the scheduler could safely grant higher priority to a compute-intensive task, knowing that it would not likely stay compute intensive for long (only until the next I/O was needed). By defeating this assumption with roll-your-own async I/O, one could effectively bump the priority for one's job. Like Porky, the operators at the datacenter hated my jobs, but they usually finished by the time the operator got me on the phone - as opposed to waiting for a couple of hours using sync I/O.

      Your comments about TSO/CICS/IMS-DC are just silly - you are aware that these applications ran as batch jobs on the OS ? The fact that the OS saw them as particularly long-running batch jobs (and was unaware that they were running interactive terminals over VTAM) doesn't change the fact that they were, from the OS's POV, batch processes.

    6. Re:a few observations by Anonymous Coward · · Score: 0
      I think it is you who know nothing (or at least a lot less than you think).
      Oh, my self-appraisal is reasonably critical. Once upon a time I presented myself as an expert in MVS. But MVS begat MVS/SE, then MVS/SP, then MVS/XA, MVS/ESA, OS/390, z/OS... over which time the operating system became substantially more complex. I became a manager, and lost some of my technical edge, and didn't have time to keep up with all the new stuff.

      These days, my MVS competence is pretty specialized.

      COBOL doesn't have any semantics to support async I/O
      Right, but this wasn't Porky's issue. Porky claimed that there was no I/O overlap, and that he had to write an assembly language program to handle multiple buffers. QSAM (and VSAM) handles all that quite well; someone should have told John Hancock about BUFNO.
      Your comments about TSO/CICS/IMS-DC are just silly - you are aware that these applications ran as batch jobs on the OS ?
      Um, what do you mean by "batch job"? If you mean to say that they run in separate address spaces, under the control of an initiator... well sure, most everything does. But I would define a "batch job" as one that might sit in a queue for awhile awaiting resources, that is self-directing once initiated (i.e. doesn't need human attention), has response time requirements measured in something other than tenths of a second.

      As I mentioned earlier, SRM has differentiated interactive and batch jobs for a very long time now. SRM has always known the difference between a TSO transaction and a batch transaction, and an API exists such that subsystems such as CICS can make their internal transactions visible to SRM.

      MVS is capable of supporting a spectrum of workload types. Suggesting that a CICS terminal or application server is somehow a "batch" job is misleading. Call it a "job", fine.

  52. #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.
    2. Re:#1 Cultural Difference by Rotten168 · · Score: 1

      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]

      Eh? I used to IPL the system (VSE/ESA ES9000) every week and it was just one guy (me) when I was an operator.

    3. Re:#1 Cultural Difference by rabtech · · Score: 1

      I know its funny to bash Windows uptime around here but our Superdome running Windows Datacenter 64-bit hasn't had any unscheduled downtime since it was installed over a year ago.

      My XP development workstation only ever reboots for patches - at times I go months without rebooting or even logging off.

      Just thought I'd share.

      --
      Natural != (nontoxic || beneficial)
    4. Re:#1 Cultural Difference by CommieOverlord · · Score: 1

      "Depending on the machine"

      Reading comprehension problems? Not every machine needs that much time and crew.

  53. spoiled by wardk · · Score: 1

    Mainframers are a sad lot, stuck with all those tools that actually work, and consistently.

  54. 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.
    2. Re:What the hell, I'll byte... by kunzy · · Score: 1

      4. Profit

    3. Re:What the hell, I'll byte... by WillerZ · · Score: 1

      You misspelt EVAR!!!111one as EVER!

      --
      I guess today is a passable day to die.
  55. A couple of comments by Anonymous Coward · · Score: 1, Informative

    if you're from Windows or Unix you think of systems as I have this much data space, I write these programs, I execute this, etc.

    MF world is very different.

    Dataspaces are shared by default - and are often owned by the application type rather than a user. And space is measured very differently (often blocks rather than kbytes).

    Not that this bothers the MF. Their job is to write a script (it's closer to a script than a program) to rip thus dataspace A, do something, and print the results to B.

    Tools? Provided by the OS. And more study is needed to master than unix tools (imo).

    If you think about data structures (or classes) you're in a different world the MF. They think about records (rows in that dataset).

    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.

    And don't get me started on EBCDIC

    1. 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...)
    2. Re:A couple of comments by duffbeer703 · · Score: 1

      The only mainframe shop that I'm familiar with is a Sperry/Univac/Unisys shop working on a codebase that was started in like 1973.

      The systems programmers, who are now getting pretty raere as they are starting to retire, actually wrote all sorts of system-level stuff. To meet some federal mandate they wrote and tweaked a TCP/IP stack which eventually became the reference implementation, for example.

      Pretty wacky when you consider that these days its rare to find a "systems programmer" who knows much of anything. (some consultants excluded)

      --
      Conformity is the jailer of freedom and enemy of growth. -JFK
  56. summary by slashdotnickname · · Score: 1

    So, basically, to summarize his blog entry...

    linux for nerds, windows for dumbasses

    Not to say it's was a bad article, it's a good read, but I couldn't find any new insights into this over-discussed topic.

  57. Um... by Anonymous Coward · · Score: 0
    The fact that you even have to ask shows that you haven't a clue.



    If he had a clue, he wouldn't be asking now would he?

  58. 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!
  59. It's the neckwear by Blitzkopf · · Score: 1

    The mainframe programmer is the one with the necktie.

  60. PF4 material by 74Carlton · · Score: 1

    When I see a troll like this, I just hit PF4. Now where did I put my apl keyboard...

  61. 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
    1. Re:The Tao of Programmers by Anonymous Coward · · Score: 0
      OP: 2/3 of Macintosh programmers think the same as Windows programmers.

      I only know two Mac programmers personally. One saw Unix, said, "yeah, ok, cool," and now he's paid a lot to be a unix geek, too. The other got pissed off about the whole OS9-OSX transition, dropped a ton of acid and went to Burning Man. Both think Windows is psychically repressive.

    2. Re:The Tao of Programmers by CodeBuster · · Score: 1

      I still think it's a good idea, and necessary, for everyone to be able to program down to bare metal

      Unless you need that level of control, and there are very few legitimate cases, then you are shooting yourself in the foot by not taking advantage of modern development tools and programming environments such as Java, C++, and C#. Your competitors are all using these tools to write high quality applications in 1/100th the amount of time that it takes an assembly hacker to do half the amount of work. You wouldn't dig the foundation for a skyscraper with a garden trowel so why would you chose assembly for your next enterprise project for which management has allocated just three months from concept to complete working system? If you chose to write your next project in Apple II assembly your competitors will eat your lunch and you will no longer be employed as a software developer. The choice of a higher level language and modern tools does not, as you suggest, demonstrate a lack of skill or understanding, but rather a pragmatic and logical approach to 99.99% of the programming problems which are likely to occur in the real world on a semi-regular basis. I manage offshore developers, yeah I know it's the dark side but that is another discussion, and let me tell you that a statement like that in a job interview will effectively eliminate you from my consideration.

    3. Re:The Tao of Programmers by feronti · · Score: 1

      He wasn't saying the people have to program down to the bare metal... he said they should be able to program down to the bare metal. And he's right. I've found that my experience (what little I have:) with assembly language programming on embedded systems has given me a better understanding of what happens in those higher level languages. Sure, for the most part I can ignore it because of how good hardware has become. But if I need to optimize, knowing how the hardware does its job and how the language represents its structures at the hardware level helps tremendously. You may not hire someone who makes the statement "Everyone should be able to program to the bare metal," but personally, a statement like that would give someone bonus points in my book, because that person obviously understands that at the end of the day, no matter what high level language you're using, it eventually has to run on the bare metal.

    4. Re:The Tao of Programmers by CodeBuster · · Score: 1

      The point was that assembly is an inappropriate choice for business reasons. You would get much more out of your programming dollars with efficient algorithm design and judicious use of design patterns in the high level language than you would by optimizing your assembly. When you compare the cost of developer hours w/the cost of hardware the choice becomes clear. The real world is not like the University where academic arguments are allowed to stand on their own technical merits. In the real world, at the end of the day, the company needs to beat competitors to market and turn a profit or we can all find different jobs when the company folds. The other reason that I am skeptical is that there are very few people anymore who can beat a modern optimizing compiler with hand-code assembly and those people, if they can be found at all, are going to be extremely expensive. It is sort of like the AI chess programs out there, sure there are a few grandmasters that can beat the best efforts of the Fritz programmers, but the rest of us will lose every time to the likes of deep blue and Fritz and it is the same when most humans go up against the modern compilers. I disagree with the bare metal argument in that not EVERYONE needs to know how to hand optimize assembly. If someone chooses to specialize in that then that is their choice, but in the vast majority of business cases assembly is way below the optimal developer noise level and should be left to the compiler. I would not hire someone who makes that argument because it indicates a lack of real world project experience in a business setting where money is at stake. I don't want an ivory tower academic *nix programmer fresh out of school who thinks that C is the best choice for my next business project because he believes that he is the best bare metal h4x0|2 in world. I will let my competitor hire him.

    5. Re:The Tao of Programmers by feronti · · Score: 1

      Arrrgh! And you are still missing the other poster's (and now my) point. Nobody said assembly was the right choice. Nobody said C was the right choice. And I agree that a modern optimizing compiler can do a better job than a human can (over the entire program in general, at least), and they're getting better all the time (gcc 4 is looking like it's going to have some really exciting new ways to optimize because it's going to have more knowledge about the whole program before it does optimization). But that wasn't the point.

      The point is that by knowing what happens under the hood you know which algorithms and patterns you should use. The point is that the programmer who knows how to program on the bare metal is more likely to be the programmer that:

      * Has a good idea where that wierd performance problem is that crops up when the system is under heavy load.

      * Has better debugging skills because he's done debugging where there was nothing there to help him (except maybe a logic probe).

      * Knows the value of clear documentation, because after a while all assembly (and all high level code:) looks the same.

      And those skills are what are going to help you beat the competition to market, and continue to beat them when they arrive. But I agree that if the programmer insists that C is the best tool for a business app, then he's probably not someone you want. But dismissing the programmer because he knows how things work at a level below the flavor of the week language is just foolish, and that's what causes business to fail. I guess my main argument is that if he can code on bare metal, he can code as well or better in a higher level language.

    6. Re:The Tao of Programmers by DynaSoar · · Score: 1

      Look, it's not my fault you and the mods who failed to mark it 'funny' missed the point. So I'll follow yours.

      After Apples I never learned to program. But I retained the ability to follow pretty much any code I was shown. I can't write, but I can read, with no proir experience.

      Had I chosen to learn to program other machines, I have no doubt I could learn to do many different way well and easily.

      I also can understand in a conceptual way what's going wrong with pretty much any machine, and can out guess first line tech support more often than not. I typically find myself talking as an equal to second tier support and solving the problem on that basis. I also tend to find my own work-arounds.

      By training myself to bare metal I have become the most educated kind of user there is. I'm not a programmer, and don't intend to be. But more than almost everyone I know, I understand that *I* can control my machine. Very few programmers ever think it terms of helping me to be able to do that. The programmers they're ultimately programming for (by programming for their OS) follow the corporate mind set which is that I don't need this control or understanding.

      Need, no. I can accomplish my job without it. But use, yes. I can avoid downtime because I can understand what's supposed to work and so what's not working right.

      The usual end point for programmers is to make the program run. It ought to be making life easier for end users. They should make the program operate in such a way that it can be understood what it's doing. If that understanding requires an understanding of stacks and pushes and POPs, then users should come equiped.

      --
      "I may be synthetic, but I'm not stupid." -- Bishop 341-B
    7. Re:The Tao of Programmers by Anonymous Coward · · Score: 0

      I think you are missing the parent poster's point as well. He doesn't care if it's optimized, or buggy, he just wants to get it out on the market before his competitors so that the suckers^Wcustomers can buy it.

      Therefore, I have come to the conclusion that the parent poster must work for Microsoft.

  62. Mainframe culture by rsilvergun · · Score: 1

    is the stuff that grows at the bottom of your mainframe after you spill a Coke in there.

    --
    Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
    1. Re:Mainframe culture by Ender_Stonebender · · Score: 1

      Sorry, food and drinks are not allowed in the dinosaur pen.

      Mainframe culture is the stuff that grows in the dust on the grate over the fan sucking air into the machine room air conditioners.

      --Ender
      Yes, conditioners. Redundancy is good for critical items.

      --
      Loose things are easy to lose. You're getting your hair cut. They're going there to see their aunt.
    2. Re:Mainframe culture by Anonymous Coward · · Score: 0

      Nice post. The word is spelled "relative", though.

    3. Re:Mainframe culture by Anonymous Coward · · Score: 0

      Why do people say 24x7x365?

      24 hours in a day, 7 days a week, 52 weeks in a year!.

      I guess you could say 24x365, but even that is false, since it's really 24x365.25.

      Hmm, maybe you should just state the percentage of reliability. Of course, most people will probably say "five nines" when they have no idea of WTF it means. Bleah. I give up!

    4. Re:Mainframe culture by Anonymous Coward · · Score: 0

      Pretty good summary. Nitpick: the S in JES is Subsystem (and there are two of them, we're a JES3 shop).

      In JES2 your job may indeed run immediately, and fail for lack of resources - you describe JES3 above, in which a resource shortage can be tolerated by queuing the job instead of failing it.

    5. Re:Mainframe culture by Anonymous Coward · · Score: 0

      JES = Job Entry Subsystem

    6. Re:Mainframe culture by ytm · · Score: 1
      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.
      How do they know which one is incorrect?
    7. Re:Mainframe culture by Anonymous Coward · · Score: 1, Informative

      (I'm not a mainframer, I just read the IBM Systems Journal from time to time.)

      Each instruction runs on two CPUs sharing the same die. When the CPUs disagree, the die/module is flagged as faulty and the OS re-schedules the task on a new CPU pair.

      Since all CPUs come in pairs, it doesn't matter which execution unit failed: both get replaced.

  63. 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 popeyethesailor · · Score: 1
      Are very fond of their new VT-100 terminal (2400 baud! Kick ass!);

      Well, that gives you out... You're no mainframe programmer, bud.

      And mainframe guys were copying 40MB files around long before you were born ;)

    2. Re:Ah. Ok, here are the differences. by yuri+benjamin · · Score: 1

      Who is Schezuan and why do so many people want to eat her?

      --
      You make the mistake of thinking you can educate the fundamental stupidity out of people. You can't.
    3. Re:Ah. Ok, here are the differences. by Anonymous Coward · · Score: 0

      " doesn't have to worry about spyware and viruses (much)"

      Much?!?!?

      You mean there actually *are* Linux viruses and spyware??? Since when?

    4. 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?

    5. 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
    6. Re:Ah. Ok, here are the differences. by LWATCDR · · Score: 1

      Mainframes do not use VT-100s. Those are for PDPs and Vaxen! Those are Minicomputers. 3280s are what real mainframe programmers use. I think it has been a long time...

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    7. Re:Ah. Ok, here are the differences. by Kamiza+Ikioi · · Score: 1

      And mainframe guys were copying 40MB files around long before you were born ;)

      Never underestimate the bandwidth of a station wagon full of tapes hurtling down the highway. ;)

      --
      I8-D
    8. Re:Ah. Ok, here are the differences. by crazyphilman · · Score: 1

      Doh! My bad. That's what I get for attempting unresearched humor... :)

      --
      Farewell! It's been a fine buncha years!
    9. 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!
    10. Re:Ah. Ok, here are the differences. by Spazmania · · Score: 1

      they still laugh about how "Emacs Makes A Computer Slow".

      Ah, yes, My first experience with Emacs was how some dipwit grad student using it on the Sparc 690 would make the machine drag for the other 20 users. I've hated it ever since. :-)

      --
      Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
    11. Re:Ah. Ok, here are the differences. by popeyethesailor · · Score: 1

      Well it might be funny now, but they may have the last laugh. An archival scheme is vital for sustained performance.

    12. Re:Ah. Ok, here are the differences. by technomom · · Score: 1

      Real mainframers use green screen 3277's. Only the young whippersnappers demand the color 3279's or 3280's.

      JoAnn

    13. Re:Ah. Ok, here are the differences. by LWATCDR · · Score: 1

      Don't let it happen again:)
      Actually I never got to work on a Vax just a LSI-11 version of the PDP-11.
      I did get to use a 370 in school.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    14. Re:Ah. Ok, here are the differences. by crazyphilman · · Score: 1

      I would agree, but the limitation they were talking about was pretty small. It was in the range of 80 or so records per user for a few thousand users, I'm guessing maybe a couple dozen meg at most?

      "All the power in the universe... Iiiiiitty bitty living space!"

      --
      Farewell! It's been a fine buncha years!
    15. Re:Ah. Ok, here are the differences. by crazyphilman · · Score: 1

      True story: when I was in college, we had a couple of very old, wimpy small Sparc workstations running some variant of Unix as development boxes. We did all our programming on them, right? One was called Eagle, the other was called Falcon. There was another called "Tardis" which mostly handled email, and I think there was something else hidden away somewhere.

      One day, the box we were developing our C++ projects on crawled to a halt. I mean, it was dead. If you tried a command, you got "no more processes" onscreen. Nobody could do anything.

      Meanwhile, the line printer in the back was going nuts, and was totally overheating. THOUSANDS of pages were coming out of it. All dense text, apparently from SPSS.

      Some dim-bulb Political Science adjunct professor had told her ENTIRE CLASS to print out something from the SPSS data dictionary. And she'd given them instructions on how to print the ENTIRE data dictionary instead of the little chunk they were supposed to print out.

      Two inches of green-bar paper, per student, times 20 students or so, times something like ten minutes per paper stack, with our wimpy little unix boxes trying to queue the print jobs, frantic admins, pissed off comp.sci majors, dumbfounded poli-sci majors saying "it didn't print, let's try it again"...

      Ah, the chaos of our college days!

      --
      Farewell! It's been a fine buncha years!
  64. Think Magicians... by jav1231 · · Score: 0, Offtopic

    Think Magicians. Windows people are like Doug Henning. *NIX people are like Penn and Teller.

  65. Hate for MFers by Anonymous Coward · · Score: 0

    /Sigh.

    Our shop switched from a mainframe to a unix environment a few years ago or so, and none of them have made the jump.

    A list of key differences:

    1) Most mainframe folks are ready to retire, or would have retired if they could keep their health benefits. Ask for as much or as little as you want and expect to get far less than you require.

    2) See #1. Most of these people checked out of the professional thinking business a few years ago. Spell out exactly what you need, because they've cashed in all the creativity that God has alloted them.

    3) They're usually on time. No, I don't mean projects -- they usually have a good set of excuses about how some policy or "miscellaneous barrier" is holding them back. But they typically show up on time -- just don't expect them to stay after. Ever. (I have my own family obligations and I almost always leave at my regularly scheduled hours -- unless one of the old MF'ers have left a hot potatoe for me).

    4) Watch your a$$. These people have years of experience honing their craft of making it Someone Elses Problem -- and they can confuses younger managers easily with their ancient jedi mind tricks. Learn to have a strong will and force them to keep their boring stories about "how things used to be" to themselves (Sure those stories are useful to hear once, but the 10th time? The 100th? /sigh).

    5) Training. LOL. ROFL. LMAO. What you and I typically call the daily activity of "learning", to these people is an opportunity for a vacation. Good luck trying to teach them yourself. They don't want to be taught. They want to go to Florida or San Antonio or somewhere to get away from their wife/husband -- if they somehow pick up something along the way, great, but you don't expect them to worry about it, do you? That's management's problem!

    Wow, didn't really expect this to turn into a massive flameout -- but I believe what I've written is pretty accurate, at least with every signle "MFer" I've been forced to work with.

    Look, it's not about what system you're got some comfort level with -- it's about identity. Either you're a fucking knowledge worker, and it doesn't matter what system is thrown at you because you'll work to figure it out, or you're someone who sits around collecting a paycheck and waiting to get downsized or a retirement buyout.

  66. my 2 cents by mrm677 · · Score: 0

    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. And more Unix programs are written for consoles

    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

    Unix has the philosophy of making small, indepedent programs that may communicate via simple means like stdin/stdout. How often to you make small console programs in Windows? Windows programs communicate with one another via the Windows message-passing pump

    People still often use plain ole' C in Unix. Nearly every Windows developer I know uses at least C++ if not C# or VB.

    Unix programmers are more likely to use standalone tools like vim/emacs/ddd/etc. Windows programmers are more likely to use an IDE like Microsoft Visual Studio.

    Unix programmers are more likely to use lots of homemade tools out of Python and Perl. Of course Perl and Python are available on Windows, but it isn't as widespread.

    1. 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 :-)

    2. 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"

    3. Re:my 2 cents by Anonymous Coward · · Score: 0

      You missed something :

      Windows does threads far better than it does procs. Unix does threads the same as it does procs. Unix does procs as well as Windows does threads.

    4. Re:my 2 cents by CyricZ · · Score: 1

      "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)."

      I fear you're getting your history quite confused.

      It is well known that Bob Scheifler and Jim Gettys began work on X in 1984, while at MIT. X11 was released in September of 1987.

      Microsoft Windows was first released in November of 1985, after first being announced in November of 1983.

      Indeed, GEM was demoed (ie. it was somewhat functional) at COMDEX in November, 1983.

      The fact that Windows was announced a year before work started on X suggests that your claim is quite invalid.

      --
      Cyric Zndovzny at your service.
    5. Re:my 2 cents by Dadoo · · Score: 1

      To counter your point, the problem with threads in Unix is that they are as expensive to create as processes.

      It's probably too late to contribute this, but here's a bit of anecdotal evidence.

      A few years ago, my company created a way to access our product through a web server. One of the capabilities it needed to have was to download files from our customers' main data servers. We were concerned about security, so we forced connections through the web server, which forwarded them to the data server. When we first started deploying the web-based solution, we had a lot of trouble with customers who were using Windows for their main data servers. The customers who had Unix (or Linux) servers were fine.

      After a *lot* of debugging, we finally found that, on Windows machines, the process would take too long to start up, causing the requesting process to time out. To fix it, we had to rewrite the forwarding program - the one running on the web server, which always ran Unix/Linux - to hold the socket open. That way, we managed to avoid the start-up penalty.

      We still use it to this day and we call it the "keepalive" process...

      --
      Sit, Ubuntu, sit. Good dog.
    6. Re:my 2 cents by Anonymous Coward · · Score: 0

      X11 is not the first version of the X Window System. There were quite a few X releases before 1986.

    7. Re:my 2 cents by Quantam · · Score: 1

      "It's simply that processes are as cheap as threads and offer more protection." That sticks out like a sore thumb in that post, in that it's rarely true. The only time that processes will not be significantly more expensive in storage resources is when two (or more) processes share (not get a duplicate copy - SHARE) an address space and set of kernel objects. While I've heard of that before in the Unix world, my understanding is that it's not the normal case. Then again, if both of these conditions are met, they're usually called threads on Unix, not processes (and they are indeed closer to threads than to processes).

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

      What are you? Like, 12 years old?

    9. Re:my 2 cents by Anonymous Coward · · Score: 0

      On some architectures, threads are orders of magnitude more expensive than processes.

      On linux they're about twice as expensive, mostly due to the memory map copy.

      However, if you have a lot of per-thread data (which can be useful for memory protection) then you need to copy those pages in the threaded model too.

      Basically it's a continuum--the more protection you get from other tasks, the more expensive it is to create more tasks. On Linux (and some other unices) the incremental cost is relatively linear with respect to what is shared. On some OS's, the incremental cost of a new process vs a new thread is extremely high.

    10. Re:my 2 cents by spectecjr · · Score: 1

      Windows does threads far better than it does procs. Unix does threads the same as it does procs. Unix does procs as well as Windows does threads

      If that's truly the case, then why is there this whole move to the next-gen threading system under Linux called NPTL?

      Article I'm looking at here says that the two benefits are "POSIX compliance and a performance boost".

      --
      Coming soon - pyrogyra
    11. Re:my 2 cents by CyricZ · · Score: 1

      X11 is not the first version of the X Window System. There were quite a few X releases before 1986.

      Of course. That is why, had you actually read my post before replying to it, you would have seen the part that states "... began work on X in 1984 ...". Indeed, you're correct in pointing out the fact that X was released before 1986. But X11, the most widely used release, was released in 1986. You must recognize that X11 is not X10, or any earlier X release.

      --
      Cyric Zndovzny at your service.
    12. Re:my 2 cents by Anthony+Liguori · · Score: 1

      If that's truly the case, then why is there this whole move to the next-gen threading system under Linux called NPTL?

      Threads and processes are implemented via the same syscall in Linux. The only difference is the amount of protection between the parent and child (actually, it's what they share).

      NPTL is meant to provide extreme scalability (100k threads) by providing super fast locks (futex) and some neat scheduling tricks.

      Unless you're an enterprise user, NPTL won't make much of a different to you I reckon.

  67. languages by nickos · · Score: 1

    Windows: C#, VBA
    Unix: C, Perl
    Mainframe: COBOL, PL/1

    1. Re:languages by radish · · Score: 1

      All three: Java

      Sorry, had to be said :)

      --

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

    2. Re:languages by Anonymous Coward · · Score: 0

      perl is to programming languages as grunting is to natural languages.

  68. 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.
    2. Re:Biggest culteral difference by iggymanz · · Score: 1

      yup, after they are 20+ years old they are not worth much except as scrap.

    3. Re:Biggest culteral difference by Anonymous Coward · · Score: 0

      Not TRUE!
      Mainframes don't FIT in dumpsters!

    4. Re:Biggest culteral difference by Federico2 · · Score: 1

      In Soviet Russia, mainframes throws YOU in the dumpster!

    5. Re:Biggest culteral difference by Anonymous Coward · · Score: 0

      Thats because the mainframe IS the dumpster

  69. Ask by kevin_conaway · · Score: 2, Funny

    Ask your team, also known as the entire mainframe community

  70. No more kernel programmers in New Jersey by anthony_dipierro · · Score: 1

    What are the differences between Windows, Unix, and mainframe programmers?

    Windows programmers live in Redmond, Unix programmers live in California or Texas, and mainframe programmers live off unemployment checks.

    OK, I'm just a bitter former unix programmer.

  71. 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.
    1. Re:Differences that I have seen over the years by sl3xd · · Score: 1

      Upon the 4th month, at the stroke of midnight, they will deliver the code.
      It's funny to say, but terrifyingly true. I've gotten to the point this seems normal.

      Although my boss is growing more and more grey hair these days.

      --
      -- Sometimes you have to turn the lights off in order to see.
  72. some radom thoughts by fermion · · Score: 1
    I have done a bit of programming on mainframe, minis, and microcomputers. The big difference seems that we have gone from utilities to applications. When computer were big, one would load in the text file of data, crunch it on whatever piece of hardware was available, using calls to whatever standard routines would work, and then manipulate, reduce, and graph. Pretty much a script or Fortran code would glue a bunch of stuff together. If one was really motivated, one would package the utilities under a screen menu.

    When the micro became big in the mid 80's, I began to use applications instead. Load the data into a database. Write it to a binary, that some other application could use. Let the other application crunch it. If I was luck I would have some scripting within the applications to work with, but often not between. In the end the data was in some weird binary file that I could do nothing with, other than in the application. If another application could read it, that would be great. Otherwise it was a dead end. Now some of this was caused by the GUI, but it actually started before.

    It has taken me some time to get back to the utility mindset. The fact that applications will write data as XML and parser utility are widely avaiable helps.

    So I would think that windows programmer would write applications directly, whereas other coders would write or otherwise cobble together utilities, which would then be gathered under a suitable GUI to complete a specific task. It is something I have seen in the MS Visual studio world. There are dependencies between objects that make no sense and are not neccesary. The widegets, and data, and controllers, and everything just get mashed together. It can lead to really weird bugs.

    The last thing i wrote, I tried to start from the GUI, and couldn't make it work. So then I wrote some utilities, packaged them as objects, and pretty soon has some really neat general utilities. Now I could repackage them and write a gui to make an application, but I don't really have the time right now.

    --
    "She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
  73. 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.

    1. Re:I'm on Mainframe and I'm "Young" by Anonymous Coward · · Score: 0

      I was even younger (19) when I started learning/working in 2001 on a S/390 with TPF (IBM OS for transaction processing) on it, writing code in high level assembler and C.

  74. pc v. linux v mainframe by Anonymous Coward · · Score: 0

    Windows PC: Crashed again, reset reboot.

    Mainframe: Post a sign in public place and send e-mail that reads "The system will be taken down the Saturday after next at 2:30am and one hour, If this crates a problem for you pease contact xxxx."

    Linux: Just download the latest RPM and instal it

    Mainframe: Another notice "The Change Control Board will meet Thurs at 1:00pn to discuse proposed changes and upgrades to installed software to be made after the next quarter. Transition plans for approved changes will be preented at the folowing months meeting"

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

    Simulation result will still be 42

    --
    3.243F6A8885A308D313
    1. Re:Reboot away by mbrewthx · · Score: 1

      Simulation is for the question you insensitive clod!!!!!

      --
      __________ Leave me alone I'm compiling a RPG II program on my S/36...Thanks to metamucil I'm a Regular Meta Moderator
  76. 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 Anonymous Coward · · Score: 1, Insightful

      Why the fuck did the power go out? That doesn't happen if the people running the place are worth anything.

    2. 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.

    3. 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.

    4. Re:Whoops! by inode_buddha · · Score: 1

      Well now... the Uni I went to bought a Burroughs back in 1974. It was booted exactly twice in its entire 30-year lifespan. The second boot was due to a fire in the early 1980's -- the power to the building was cut by the emergency crews.

      Is that a good enough reason to reboot?

      --
      C|N>K
    5. Re:Whoops! by Myself · · Score: 1

      And there's every chance that the motor-generators did more than provide intertia. A lot of mainframes use 400Hz AC power. The higher frequency means transformer cores can be smaller, and there's less ripple after rectification so filter capacitors don't have to be huge. "Rotary converters", as they're called, are a good way to convert betwixt DC of various ground references and AC of various frequencies and phases.

      You'll find 400Hz-tolerant power supplies in a lot of millitary hardware too, as shipboard power is also 400Hz. I have some gear that'll take anything from 100-250 volts, 47-450Hz.

      Of course, the other power philosophy says AC is silly, just use batteries and make all your equipment run natively from the DC power plant. If you're always on DC, there's no hiccup when the rectifiers lose their input.

  77. Real Programmers Don't Eat Quiche by Anonymous Coward · · Score: 0

    As a lowly student intern working in UF's instructional computing department to put myself through school, back in the early 80's, I was looking up something for my boss in his files when I ran across a badly faded memeographed copy of 'Real Programmers Don't Eat Quiche'... this was a place where mainframe programmers roved the halls, and the piece perfectly documents the type. If you want to become familiar with the culture, you could do worse than reading it, lovingly preserved at Real Programmers (http://www.codeproject.com/scrapbook/realprog.asp )

  78. 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.

  79. AMEN by Anonymous Coward · · Score: 0

    pundits suck

  80. Might be interesting : "VM and the VM Community" by 00lmz · · Score: 1

    I found this through wikipedia : VM and the VM Community: Past, Present, and Future (direct pdf link). The author's homepage also contains some other interesting material (ZORK for CMS (!))

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

    [ ] Unix
    [ ] Mainframe
    [ ] Windows

    beard #2

    [ ] Unix
    [ ] Mainframe
    [ ] Windows

    beard #3

    [ ] Unix
    [ ] Mainframe
    [ ] Windows

    1. Re:Identify the Beard by Anonymous Coward · · Score: 0

      Since when was Jon Postel a Mainframe guy?

    2. Re:Identify the Beard by Anonymous Coward · · Score: 0

      Guess network computer wasn't one of the choices (wonder if they have networks in heaven?). He had a decent beard though.

  82. lunix matrix by packrat2 · · Score: 1

    From: "packrat"
    Date: 18 Jul 17:31 (PDT)
    To: oclug@lists.oclug.on.ca
    Subject: Re: [oclug] Linux Users [and evolution]
    If these seem like goofy ideas... remember, I'm an average user and I know what I want.

    yah. entertainment, net and work stations, right? we are now looking for the magic hook, the killer app that MS CAN'T steal. (hard effort there. i think they're paying out 4 billion a year for stolen ideas (lawsuits) now.
    and it's a 'two steps forward and one back' (ala the current crop of intel.prop decesions) process.
    corperate formula would be along the lines of..
    (rant mode on)
    necessary, easy, fun.
    simple, conveient, reliable.
    friendly, smart and intelligent.

    ya don't need to know the process of generating that nifty up there. another pragmatic analyis of an existencial situation... (with the dimensional count being outta wack with current nuke-physics. tough beans, eh? I have issues with them over that.) seriously.
    outlawinbg MS is prop'ly a faster way.
    pat http://mywebpage.netscape.com/Patr44PDonovan

    --
    packrat ; writer-informer. http://packrat.comicgenesis.com http://www.youtube.com/area163 https://www.smashwords.com/
  83. Re:Do tell by symbolic · · Score: 1


    How about some examples?

    I've always been interested in doing things the "right way", but the only place you can get that, it seems, is, well, if you happen to be working with other people that practice these methods.

  84. Re:Everything Old Is Old Again... IEFBR14 by Anonymous Coward · · Score: 0
  85. Comments from someone involved in each platform.. by Anonymous Coward · · Score: 0

    Linux/Unix and Windows folks are not all that different. During the dot com boom, there was a disproportionate number of entry-level types in the Windows world, simply because it has better market share and thus many used it in non-professional ways and made the transition from whatever they were doing previously to IT. Today, things are much more balanced.

    As for distributed systems people and mainframers, this can be like trying to mix oil with water. I dont want to give any ill willed impression by that statement as it is not mean to be a troll comment. The fact is that they two platforms are in many ways opposites and thus those who work on them tend to have opposing ideaologies. Without going into this too deep, I think from a high level it is accurate to say that distributed systems people see technology vertically. They see hardware as commodity. Adding more memory or faster CPU's is a legitimate solution to many resource constraint issues. The mainframers see things horizontally. Since a CPU in the mainframe can cost more than many typical American's houses, it is not an option to just add another CPU to solve a resource constraint.

    It also does not help that distributed systems people and mainframe people speak totally different languages. It's not that they dont share the same terminology, it's that the definitions for those fundamental terms are different. This can cause a lot of confusion and misunderstandings.

    There is also the common issue that Unix people are used to seeing themselves as far more knowledgeable than the typical distributed systems person (i.e. Windows). Mainframers often wonder what the rest of the industry is doing because they mastered computing 40 years ago. And then the Windows guys/gals simply think the Unix and Mainframe guys need to get out more often. ;)

  86. 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...
    1. Re:Mainframe programmers as geeks by JoeStreet · · Score: 1

      They obsess over uptime and reliability way more than Windows or even Unix geeks

      That's because they have to. An old mainframer friend once cost a bank $3,000,000 in one night because the data line to the Federal Reserve was down at the time the bank should have been transferring funds. In some industries downtime can be very, very expensive.

  87. 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
  88. Need some help here... by Anonymous Coward · · Score: 0

    How do I open jpegs on mainframe?

  89. Addendum by Anonymous Coward · · Score: 0

    Transmission content is courtesy by a Windows programmer
    who read a book about Unix programmers.

    1. Re:Addendum by millennial · · Score: 1

      It's funny 'cause it's true!

      --
      I am scientifically inaccurate.
  90. How did you get a mod of 5? by jbplou · · Score: 1

    Insightful, how about idiotic. What can you program in Unix that you can't in Windows. In Windows you have C and C++ just like Unix. Java, Perl they are all there as well. 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.

    1. Re:How did you get a mod of 5? by Anonymous Coward · · Score: 1, Funny

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

      Er.. programs that run for more than 30 seconds without turning blue?

      Not that blue isn't a perfectly good color...
      no offense.

    2. 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 :)

    3. 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.

    4. 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.
    5. Re:How did you get a mod of 5? by jbplou · · Score: 1

      IS/IT

      Now your comparing apples and oranges. IS/IT is concerned with business programming which is move cocerned with RAD and they will buy up the hardware if needed to improve a poor design because speed of development is king in business. If you are writing a web front-end to an Oracle database knowing how to write a b-tree isn't going to do you alot of good, but knowing how to apply business rules will, this is what IS/IT focuses on. In Scientific programming performance becomes more important because funding is more likely to be limited and the calculations much more complex.

    6. Re:How did you get a mod of 5? by synthespian · · Score: 1

      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

      What you don't seem to know, is that you get all those little UNIX tools in Windows, including the ones made by Microsoft.
      http://www.research.att.com/sw/tools/uwin/
      http://www.microsoft.com/windowsserversystem/sfu/p roductinfo/features/default.mspx
      Now in UNIX nowadays, particularly Linux (BSD guys tend to be more conservative (*)) sometimes there's huge bloat for system configuration: you might need Ruby, Python, Lua, Perl, Scheme, Rexx, Bash, C, C++, and any other language people invent. And in some package managers, dependencies must resolve to a particular version of these languages, even though, for instance, the guy _never_ used generators, but still asked for Python 2.3. It's a big mess sometimes. That's why some want to keep it small and code in C for the most part (e.g., OpenBSD), for better or for worse. OTOH, C sucks.

      (*) Even though you even get to see Forth and Modula3 code in FreeBSD, for instance. But they're chosen for a reason, not just "hey, this language is kewl, dude!"

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    7. Re:How did you get a mod of 5? by jbolden · · Score: 1

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

      I'll give you a great example. A program to send an arbitrary packet (that is manual control of headers and data) out the network card either TCP or UDP. 2 lines in Unix hundreds of lines in Windows.

    8. Re:How did you get a mod of 5? by justine_avalanche · · Score: 1

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

      Right, effectively nothing. At the same time, you could also ask what can you program in Unix that you can't in a UTM? Well, nothing. Now what the original poster was refering to was the _philosophy_ behind the 2 programming environment offered by Unix & Windows. Unix follows the "do 1 thing and 1 thing well" then pipe-it up, shell-it up, awk-it up and 40 lines later you have what would have taken months of C, Java, C++ ; or $1000s.
      You could be really surprised by the power behind this.

      You can read about it more in this seminal paper by Unix gurus Rob Pike and Brian Kernighan: "Cat -v considered harmful"
      It's mostly about "managing complexity" aka keeping things simple so they can fit in our brains :)
      http://cm.bell-labs.com/cm/cs/doc/84/kp.ps.gz

      Another example I like to use is Editors. For example, most unix editor allow you to run a command on a selection of text. The text editor do not have to implement anything about sorting, indenting, this, that and grow and grow and grow ... there is a Elegance in this approach (see the latest editor sam for example).

    9. Re:How did you get a mod of 5? by corngrower · · Score: 1

      Can you, in Windows, with one a one line command parse through all your source files for your project and substitute one substring of text with another?

      What about sorting a group of lines in the file you're currently editing? Can you do that without exiting the editor?

    10. Re:How did you get a mod of 5? by spectecjr · · Score: 1

      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...


      Writing a shell script is not programming. Just FYI.

      --
      Coming soon - pyrogyra
    11. Re:How did you get a mod of 5? by spectecjr · · Score: 1

      I'll give you a great example. A program to send an arbitrary packet (that is manual control of headers and data) out the network card either TCP or UDP. 2 lines in Unix hundreds of lines in Windows.


      2 lines of what?

      If you can do that in 2 lines of C in Unix, I'll be impressed.

      Note: You're not allowed to shell out and spawn another app to do the heavy lifting - or I could do the same thing. In Windows.

      --
      Coming soon - pyrogyra
    12. Re:How did you get a mod of 5? by jbolden · · Score: 1

      There is no heavy lifting in Unix
      cat filexyz >/dev/eth0
      That's the part that's hard in Windows, getting Windows not to try and treat the input as data and wrap a "valid" header around the packet. As for 2 lines of C depends if you count all the #include's and main() and ....

    13. Re:How did you get a mod of 5? by spectecjr · · Score: 1

      There is no heavy lifting in Unix
      cat filexyz >/dev/eth0
      That's the part that's hard in Windows, getting Windows not to try and treat the input as data and wrap a "valid" header around the packet. As for 2 lines of C depends if you count all the #include's and main() and ....


      In other words, no, that's not C code. That's shell script. We're talking about programming, not kiddy toys.

      --
      Coming soon - pyrogyra
    14. Re:How did you get a mod of 5? by jbolden · · Score: 1

      I suggest you learn to program. The "kiddie toy" is equivelent to a C program.

      File *Fp = fopen("/dev/eth0", "w");
      fprintf(FP, "%s", "stuff you want in the packet");

    15. Re:How did you get a mod of 5? by sillybilly · · Score: 1

      hehehe... beauty of unix and C...

  91. 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.

  92. you don't even know what Unix is, shithead by Anonymous Coward · · Score: 0, Flamebait

    How is Linux "better"?

    1. Re:you don't even know what Unix is, shithead by MighMoS · · Score: 1, Funny

      I GNU there'd be someone who'd question our free superiority!

    2. Re:you don't even know what Unix is, shithead by spectre_240sx · · Score: 1

      Ugh, I think my brain just imploded. Nice one though.

  93. In other words by dmaxwell · · Score: 1, Troll

    Those who don't understand UNIX are condemned to re-invent it......

  94. Interesting subject by Anonymous Coward · · Score: 0
    First off, modern mainframes are all virtualized and while legacy apps run in legacy OSes, it appears that more unix like environments seem to be the popular place to develop and run newer applications. I had this argument with my manager at IBM in 1994, I was touting Linux and the future UNIXlike world while he was saying IBM would have a stranglehold on the mainframe, later on he let me know that I was being "too parochial" and that "mainframe" isn't a big set of fridge sized boxes and MVS, "mainframe" is high quality hardware and software with high uptimes and trusted for mission critical apps; a sun enterprise system is "mainframe" even though it's not even close to a 390.


    Typical UNIX systems aren't quite as "mainframe" as a z-series. There are a few that are close but not many. Windows is a joke in comparison. Although MS has conned some people in to buy windows clusters to run big SQL Servers with mainframesque performance expectations. Culturally, Windows seems to be "good enough" and focused on non-thought from the end user. None of that is bad, it's put computers in most of the homes in this country that wouldn't be there is we were using DOS still. Easy to use is better than 100% uptime in that world.


    The UNIX world tends to take it a little closer, more than one person usually uses a UNIX machine (not any more but that's how it was) you have to build stuff to stay up. I think this culture has started to seriously erode though, you'll see new world Linux and BSD "admins" rebooting all the time, acting like they own the whole machine. You've got me on why as many people trust MySQL as do, I have to assume that they are mostly "new" UNIX people because there are more reliable alternatives, I don't think MySQL is good UNIX culture.


    The mainframe world tends to take it to the extreme. Get your hands on a big IBM box and it's not too hard to get someone to notice you because you're just burning cycles. I was trying to locate very large prime numbers to see how fast that bad boy really was when they caught me. People take care of those machines, they stay up and if you do something to screw it all up (which isn't always easy but there are things that will draw their attention,) you might not get to play much longer on them. Generally when you buy one, you've got a purpose and when it's doing things other than that purpose, you're wasting money.


    Because of the concern for reliability, the code seems to reflect that. At times it can be simple to a fault. The older UNIX guys tend to do this the most, they scoff at threads, they scoff at C++ instead of C, they like to write really tight stuff that doesn't do too many things. Complex code? No worries, we'll just string a bunch of these simple pieces together; eventually someone sees how absurd it is to require 90 libraries to compile and run your little app and they do something to clean it up, or not and then they start static linking.. The mainframe world is a little more concerned with performance, they seem to grok it better and know when things are too simple. In some extreme cases they swing to the other side all together, earlier MF OSes were completely designed around database transactions but generally that's not the case. The windows world is harder to generalize because there are so damn many coders, there tend to be experiments though and different "schools of thought" like "threads make everything better" The most general rule in the windows world is that regardless of whether or not the code is clean and fast, you make it look fast.

  95. 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 #!
  96. Wow. Just... Wow. by Anonymous Coward · · Score: 0

    You, sir, are an awesome troll.

    You even sound like you're sincere, which is great, since it means that you've truly honed your skills.

    I wish to one day be as good a troll as you are.

    I doff my hat to you.

    -TrollKin

  97. attack of the mutant user-grandmas? by martin-boundary · · Score: 1

    After reading a lot of these kinds of essays, I can't help but feel that there is this huge sea of dark matter in user-space full of grandmothers using personal computers. In the old days, scientists had only discovered Aunt Gertrude, but now it seems there's also Aunt Marge, and I think I also read about Aunt Molly and Aunt Philly and OH MY GOD! THIS ISN'T A COOKBOOK! IT'S AN INVASION!

  98. Fuckin A Right! by camusflage · · Score: 3, Funny

    Like this?

    --
    The truth about Scientology, Xenu, and you: Operation Clambake
    1. Re:Fuckin A Right! by lbmouse · · Score: 1

      Holy shit is that an uber nerd.

  99. We're being led astray... by mozl33t_1 · · Score: 1

    If we're going to flame, let's flame GoBots Vs. Transformers or Micro-nauts vs GI Joe. This "main-frame culture" stuff sounds rather scary and really adult, and not the pay-per-view kind of adult, I mean the really boring adult. Like bragaboutmynewridingmower-adult. Let's get this back on the Gandalf vs. Raistlin stuff or perhaps Skeletor vs. Racer X. Hurry! Before my job is out sourced and I have to move back in with Mom-n-Boyfriend.

  100. Neither *nix nor Windaows are religions by jamej · · Score: 1

    Often the zeal for a platform reaches almost religous intensity. If everybody involved simply keeps their eye on desired capability vice which platform is their favorite it is easier to get along. I think most of us prefer *nix because the level of control is far superior and thus far has been more stable too. Windows is simply less customizable (if that's a word) and thus at times a bit less interesting. Focus on the customer and the capability the customer wants/needs is the cure for the conflict.

  101. 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

    1. Re:Corollary: End users by Rick.C · · Score: 1
      "MAINFRAME USERS THINK THAT USING ALL CAPS WHEN SENDING MEMOS IS PERFECTLY NORMAL "

      That's because the TN3270 app translates everything to uppercase. If you set TN3270 to pass through lowercase, ISPF will translate it to uppercase. To get lowercase, you really have to want lowercase and jump through some hoops to get it.

      "lowercase"(tm) - ask for for it by name.
      --
      You were 80% angel, 10% demon. The rest was hard to explain. - Over The Rhine
      "Math in a song is good."-Linford
  102. Well... by fyngyrz · · Score: 1
    What do we all need to know to get along in each other's worlds?

    ...the first thing you should know is that all three types of programmers basically want to bind the managers up in duct tape and drop them off the deep end of a pier.

    Hey, you asked.

    :-)

    --
    I've fallen off your lawn, and I can't get up.
  103. If you want to know about mainframes I recommend.. by exp(pi*sqrt(163)) · · Score: 1

    ...this book.

    --
    Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
  104. Indeed, you're correct about C. by CyricZ · · Score: 1

    C is a fantastic language for developing operating system kernels. It excels in that department, as it allows for code to be written extremely close to the hardware. But that's no surprise, considering it's origin. As long as things don't get too big, then everything is usually okay.

    In the mainframe world of software that cannot fail, then C is just not an option. The aforementioned benefits leave it far too vulnerable to coding mistakes. When you get programs that are millions upon millions of lines long, then C just doesn't cut it any longer. Indeed, that is why languages such as COBOL and especially Rexx are so prevalent in the mainframe world.

    A language like Rexx allows most non-systems tasks to be performed very easily and efficiently, but with a far greater level of safety and security. It is interesting to note that the OORexx is bringing Rexx to the Linux, BSD and Unix masses. Indeed, even today we are seeing Java take a far greater enterprise role.

    --
    Cyric Zndovzny at your service.
  105. Joel misses the point by sinewalker · · Score: 1

    The reference to Joel's article is a little silly, because Joel has obviously just skimmed the Raymond book without thinking things through... particularly his strange assumption that making inter-program communiction textual for other programmers is somehow limiting to users, or that you require access to the source code to debug an API interraction. The point of the textual interraction is that, even without the source code (in a closed-source, Windows world) you can still debug an API if the data flow is human readable...

    --
    “Our opponent is an alien starship packed with nuclear bombs. We have a protractor.” — Neal Stepnenso
  106. Differences between "Mainframe" & "Open System by CPNABEND · · Score: 1

    I am a Professional Services Project Manager for a vendor, and have dealt with both sides of the house. Both sides of the house are usually separated - and have completely different outlooks on life. Example: Large retailer. In the South. Mainframe people on one floor, that are locked down, ITIL to the MAX, change resistent, and risk-averse. On another floor... Open systems people that are more like outlaws, gaming the change control procedures, etc. to "get things done". Don't get me wrong - I love working with both of the groups; It is just fascinating seeing the difference in the approach to the job. P.S., I have worked with WIN flavors, Linux, and am a z/OS capacity planner / performance measurement person. I would really like to see an open systems vs. z/OS benchmark that was realistic.

    --
    My wife doesn't listen to me either...
  107. Differences by Anonymous Coward · · Score: 0

    THEY CATCH ON PRETTY QUICK AS LONG AS YOU COMMUNICATE (INCLUDING SPEECH) IN ALL CAPS AND DON'T BRING UP NEW-FANGLED BUZZWORDS LIKE "ODBC" AND "WORLD WIDE WEB".

    Lameness filter encountered. Post aborted!
    Reason: Don't use so many caps. It's like yelling!
    Lameness filter encountered. Post aborted!
    Reason: Don't use so many caps. It's like yelling!

    (If only the green screens would give this error...)

  108. Re: Dumpster by Migraineman · · Score: 1

    Nope, you're instructed by your clueless and cheap-ass PHB to move it to the loading dock so it can be moved to off-site storage (i.e. the loading dock ... see "cheap-ass" reference, above.) Your glorious leader has purchased a new machine from the company with best salespeople (i.e. short skirts, cleavage, and heels.)

    Besides, you don't throw a mainframe computer ... ever. You might tip it over by backing into it with a forklift, though.

  109. 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
  110. Yeah, but... by antispam_ben · · Score: 1

    And mainframe guys were copying 40MB files around long before you were born ;)

    Yeah, but that was tape-to-tape...

    --
    Tag lost or not installed.
  111. Best way to learn mainframe funamentals? by Anonymous Coward · · Score: 0

    I am the admistrator of a small but growing development SAN at my job that deals primarily with open system storage and servers. Ive been getting more and more requests lately for MF/zOS access to the SAN so they can test against the various arrays we have. Whats the best way to get a grip on how the MF world lives compared to the intel/x86/unix world? Namely things like LCU's and 3990 Mod types?

    Thanks

  112. 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.

  113. 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.

  114. 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 !

  115. That depends on the application mix. by Richard+Steiner · · Score: 1

    If you're running online transactions rather than batch and have an application which can spike at various times due to unforeseen events (e.g., bad weather), you probably want to keep your peak CPU at a lower level than a batch-only system.

    --
    Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
    The Theorem Theorem: If If, Then Then.
  116. Mac programmers by Anonymous Coward · · Score: 0

    Notice that all throughout the comments there are references to mainframe programmers, Unix programmers, and Windows programmers.

    Where are the Mac programmer references?

    Oh that's right... there aren't any mac programmers! I think they wonder when the horrible pain is going to stop.... OS 9 -> OS X -> 10.1 10.2 10.3 10.4 -> OS X86 ... the pain!

  117. Grep is too inefficient. by Richard+Steiner · · Score: 1

    When I have a few thousand source modules to search through for various things, I'd rather use a tool like @CULL to create a pre-processed search database and a tool like IACULL or FINDREF to search for keywords. Much faster. Think cscope on steroids. :-)

    --
    Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
    The Theorem Theorem: If If, Then Then.
  118. Bignums: 1979 Mainframe vs. 1999 Micro by antispam_ben · · Score: 1

    Not quite addressing the question, but perhaps others will find this interesting. This is a webpage I wrote six years ago about doing factorials (also prime numbers on micros, but scroll down about halfway for factorials), and what a difference a couple of decades made in the availability of computing power:
    http://www.mindspring.com/~benbradley/number_theor y.html

    --
    Tag lost or not installed.
  119. Mainframe hacks by Anonymous Coward · · Score: 1, Informative
    Take a magic marker and draw a diagonal line across the top of your deck of punch cards so that if you drop them you can put them back in order.

    Versioning was a lot easier on mainframes. You just applied the updates when and where you wanted them. Merging something from a branch to the main trunk in CVS is a nightmare if you didn't get the tags just right or forget to put tags in to begin with.

    Mainframe programmers generally never get root privileges so they learned how to get along without it. Windows programmers are on the other extreme. They can't do anything without root. Unix is somewhere in the middle.

    Mainframes have something called system programmers which is something like a unix admin but different. It's the same in the sense that what they did required special privileges. Mainframes always had much better security and much more scheduling and resource control than unix. Unix still looks like a toy in that regard.

  120. Fifth year and you want advice?? by Anonymous Coward · · Score: 0

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

    Buddy, if you don't know by know, then how the heck is any /.er gonna?

  121. mainframe culture by ediacaran · · Score: 1

    It's a strange world.
    What a human would call "memory" they call "storage".
    What a human would call "disk" they call "DASD".
    They think it reasonable to pay about 10X as much for the same hardware.
    And they're all about 5'6", kinda chubby and nice guys. Usually with beards. I think they're clones.
    Alas, they are an endangered species, living mainly at banks and other financial institutions.

  122. Difference is scope of understanding by Anonymous Coward · · Score: 1, Interesting

    Mainframe programmers can and often do have at least some level of understanding of every aspect of the computer system, and have mastered several ancient but useful computing languages.

    Unix programmers can and often do have some understanding of every aspect of the Operating System, and have mastered several current and useful computing languages.

    Windows programmers can and often do have some understanding of every Microsoft product and have mastered several GUI-based integrated development environments.

  123. Been there... by elgee · · Score: 1

    I have done a variety of programming environments and every one of them thinks they sit at the feet of God. Or Gawd. Or Dog.

    My attitude is that "You go to your church, I'll go to mine."

    Programming is cool whereever you do it. Got that?

  124. 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...
  125. JCL versus OCL? by LoadWB · · Score: 1

    Without resorting to Google just yet, I'm curious how JCL compares to OCL I used on the System/34.

    We had two of 'em at my high school in NM. I had fun programming RPG-II, COBOL, and working down to OCL and making menus on these beasts. I think I still have my library dump on 8" floppy, though it's probably useless these days -- it has been 15 years, after all.

    1. Re:JCL versus OCL? by pilgrim23 · · Score: 1

      I do not know System 34 very well, just AS400, and my OCL is tiny, but I know a bit of JCL. the System 34/36/as400 world was not as much "Batch oriented so I doubt there would be much similarity.
      In House Mainframe Joke:
      Q: How do you tell a Male dataset from a Female Dataset?
      A: //SYSIN DD PGM=IEBGENDER

      -What HS in NM? mine was LAHS. and I did some time at the UNM Computer Center.

      --
      - Minutus cantorum, minutus balorum, minutus carborata descendum pantorum.
    2. Re:JCL versus OCL? by LoadWB · · Score: 1

      Clovis, NM. We participated in the First Annual New Mexico High School Super-Computer Challenge. Unfortunately, our team fell apart shortly after we started. The school ill-equiped us, one team member dropped, one turned out to be a coming-of-age criminal, and I got banned from the computer lab partly because of the second mentioned. We did have fun in Albequerque, though.

      Primarily, I got in trouble in the computer lab because I stood up to the administration. We were given an unused office in the lab and a phone line to dial in to LANL. We found out that we shared a fax line with the guidance office, and that we weren't to use it during school hours, or the hours we were allowed to use it did not coincide with our time in the office. They would not allow us to adjust our schedules so we could work together. Instead, we were told we could only work on the project before and after school. The problem with that was the instructor refused to come to school early since she didn't have a first period class, and she hardly ever stayed late. So, we figured out how to break in so we could do our work. Got busted for that twice. Finally I went to the associate principal's office and started shouting about how if we were the football team we would have the school eating out of our hands. That did not go over very well.

      Ah, but another story of teenage angst. When I started at the school there was a guy that helped the computer lab instructor run the S/34s as an operator. He was a senior and began teaching me how to work as an operator as well. I got curious, set up my own library, and started writing my own menus and programs, and even gave some friends user accounts into my library. The next year I found someone with interest like myself and took him on to teach him as I was taught. But he turned to the dark side. He began giving students access to my programs, hiding some of the messaging scripts in menus so they could send each other graphical fingers (multiple messages, made the solednoids in the keyboards go absolutely mad for several seconds.) So, when he was cornered he told them that I showed him how to do it, and I got busted. Not technically inaccurate, but definitely not what I had intended for him to do with his new-found knowledge. Little bastard.

      All of that combined lead to my expulsion from the computer lab. *sigh* Ah, well.

  126. Ah-Hahahahaahah! by drewzhrodague · · Score: 1

    I would say:
    #1 - Mainframe
    #2 - Unix (RMS)
    #3 - Windows -- is that who I think it is?

    --
    Zhrodague.net - I do projects and stuff too.
    1. Re:Ah-Hahahahaahah! by colinrichardday · · Score: 1

      Oh yes, it's Bill!

    2. Re:Ah-Hahahahaahah! by Anonymous Coward · · Score: 0

      It's Bill after being arrested for speeding and driving with no license. That renegade!

  127. Windows Programmers and Phone Sanitizers by rocker_wannabe · · Score: 1

    I believe that Douglas Adams had the right idea. We need to put the Windows Programmers and the Phone Sanitizers on the first rocket to another planet. Then they can get the planet ready for the rest of us. I would hate to move to a new planet and not have Windows programs and clean phones at my disposal.

    We'll be right behind you in the next rocket!!

    There is nothing we give as liberally as advice - duc de la Rochefoucauld
    --
    "Meaningless!, Meaningless!" says the Teacher. "Utterly meaningless!"
  128. Short lingo tutorial by EraserMouseMan · · Score: 1

    Where I work there is an AS400 group. We often work together on projects where I put some "AS400" content on the web. Here are some of the things I had to get used to.

    A "Database Table" is to a Windows programmer as a "File" is to an AS400 programmer.
    A "File containing code" is to a windows programmer as an "Object" is to an AS400 programmer.
    A "Database" is to a windows programmer as a "Library" is to an AS400 programmer.
    They don't realize that their "Files" reside in a IBM DB2 database. Some of them still think the data is in huge text files!

    Also, the 400 guys where I work don't even use SQL. So I'll write a SQL report for them and they'll come in and say something like, "I know you're going to kill me for this, but can you rearrange these columns." I don't know how the heck they are writing their reports that makes the columns a major pain to rearrange, but whatever!

    The funny thing about their terminology is that all of their apps actually run off of a DB2 database. But there are a couple of them that look at me like I've got a third eyeball when I say something like, "Just hit the database and grab the account number from the Account table." They don't even have any idea what a database is. Just crazy.

    1. Re:Short lingo tutorial by cr0sh · · Score: 1

      I don't know how the heck they are writing their reports that makes the columns a major pain to rearrange, but whatever!

      If you have never had to directly write a report that prints to a line printer, consider yourself lucky.

      Imagine having to take care of everything that goes into a report design - horizontal positioning of the columns on the page, proper centering of report titles, page numbers and date information (right and left justified, respectively - oh, and on the same line as the centered title), proper calculation in the columns, sometimes variable number of columns, or multipart reports. Then there is the form feed and vertical tabulation checks and routines. Who can forget about pre-printed forms, making sure every line is located in its proper position, printing tests on greenbar, then holding the form and greenbar up to a light (typically the florescent ceiling light above your cubicle mocking you) to make sure it is all aligned pretty...

      Then - in the middle of the night - getting a call from your boss or client screaming at you that the check remittance "report" (which actually writes the check amounts on pre-printed "check forms") has screwed up because you assumed (most likely because the spec the client signed off on said so) that the amount field would never contain more than six figures - and now a whole box of checks (thousands of them, and they aren't cheap) has been wasted - and damnit! - we need it fixed now because payments go out tommorow.

      Sometimes I miss those days of working with greenbar on a line printer, loading a box of paper onto the tractor feeds, cleaning the chaff and chads out, reloading a new ribbon, listening to the whine of the printer as it form feeds and then starts a new job with the buzz of a thousand hornets...

      Then I remember writing the reports...NOOOOOOOOOOOOOOOOO!!!!!!!!1!!!1!!!!one

      --
      Reason is the Path to God - Anon
  129. -10 offtopic by nazsco · · Score: 1

    morse translation:

    - oooo o ooo oo --o = thesig

  130. UNIX vs Windows by justine_avalanche · · Score: 2, Insightful

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

    Brian K. & Rob P.

  131. They are more alike than you think... by Anonymous Coward · · Score: 0

    Mainframer: They would never fire me or lay me off. Nobody could ever figure out this twisted logic that has evolved over the past 20 years. Besides, nothing ever happens fast on a mainframe, with all this change control implemented they would be afraid to put a new guy in these shoes. Pay me.

    Unix hacker: My god, there are a million and one ways to attack this problem, but it would take a miracle to have someone ever figure out how it is implemented in this latest update routine. I have so many IPC and shared memory calls between threads nobody could possibly understand this stuff. Pay me.

    Windows programmer: I follow all the rules (yea, right) and once I finish my latest fling of code its straight into production. Blue screen, yea? So what, thats Micky soft's, not my problem.Call support! I did what the book says so don't bother me Ok? Oh, you want this to actually DO something? Pay me.

    See, they are actually all the same!

  132. 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
  133. 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

    1. Re:not only was he insightful, I'd mod YOU down by Jimmy_B · · Score: 1
      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.
      This is demonstrably false, because Windows games don't use the funny shaped blocks Windows provides, because they (a) don't mix well with 3D rendering, and (b) usually don't match the aesthetic the game designer wants.
    2. Re:not only was he insightful, I'd mod YOU down by Tony-A · · Score: 1

      mainframes don't seem like fun at all

      Probably still holds.
      Mainframes are big and expensive, for stuff you have to do.
      PCs are small and cheap, for stuff you like to do.

      They live in very different worlds.
      Mainframes live where problems are big and the computer is small.
      PCs live where problems are small and the computer is big.

      You can safely expect the user interface on PCs to be more pleasant than on mainframes.
      Getting a lot of actual work done through the system may be a different matter.

      The approach of Unix is fundamentally different.
      Given a computer, and not a lot of resources, how far can you push it, and in a practical sense not just a theoretical sense.

  134. Art of? by Anonymous Coward · · Score: 0

    What would eric raymond know about the art of programming? The retarded little cripple can't code for shit, and he tries to put himself in the same basket as Knuth? raymond isn't even RMS' dangleberry, let alone the dogshit on Knuth's front lawn.

  135. Interesting by beforewisdom · · Score: 1

    Interesting I should find this article on slashdot tonight. I met a mainframe programmer at a dinner I went to. She said she used to make a lot more money and her opportunities are much more tight then they used to be. I thought it was cool that she was still employed

  136. 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).

  137. And the difference is: by buss_error · · Score: 1
    What are the differences between Windows, Unix, and mainframe programmers?

    A Windows programmer bangs and bangs away throwing all kinds of code (much of it provided by the IDE) at the problem until it is declared by Fiat to be solved (usually it isn't. Solved, that is.)

    A mainframe programmer comes in early, carefully considers the problem, evaluates the business need, and spends weeks coding in RPG or COBOL to solve it, and stays late every night, and carefully updates the site log to add the new program. Once solved, it's solved! (It had better be!) Oh, and they have these nifty pocket protectors...

    A Unix programmer comes in late, kicks off his shoes, yawns, scratches, reads the email for the project out line, pounds out some code before lunch, takes a two hour lunch, leaves early, and right before he goes sends the email back saying "Check this and see if it's what you want, to be sent sometime after midnight.

    Those are the chief differences between programmer types... Oh, yeah, none of the above can stand the others. The Unix admin is the hardest to tell, but check with the others to see if they are getting all their email, and you'll know, you'll know...

    Truthfully, though, a PC programmer normally has a small outlook on the problem. If it's a large process, he may think in terms of server/client, EG: lots of clients pinging a server with results for colation. A mainframe programmer looks at a problem monolithically, EG: it's all done in one place. A Unix programmer tends to think in distributed/monolithic terms... parts are done with child processes/offloaded to other cpus, with the final results on one machine.

    Of them all, I'd say that Unix programmers gennerally get huge multi-threaded projects done the best, mainframe programmers are great for business intelligence programs, and PC programmers are great for games and pretty pictures on the screen... You might say, call a Unix programmer to solve a problem, a mainframe programmer to report how it was solved, and a PC programmer for the PHB eyecandy/dumb salesclot interfaces.

    --
    Necessity is the plea for every infringement of human freedom. It is the argument of tyrants; it is the creed of slaves.
  138. 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

    1. Re:Windows Admin has bad name from NT 4.0 Days by archen · · Score: 1

      I think one of the problems with the way windows scripting works is that it's too much into programming. Scripting things on your system should be simple and natural. I can go on a Unix machine and at a terminal and type 'cp f1 f2', and no surprise but I can do exactly the same thing on a script. With Windows Scripting host you need to create a shell object, etc. That's strait programming, and is sort of bad that you have to be a strait out programmer to automate anything.

      I use windows script (jscript - the language MS halfway supports) all the time, but trying to do crap like change the permissions on a file is mind boggling compaired to useing chmod/chflags. And there are quite a few instances where WSH cannot do system administration tasks (ex, set permissions on registry keys).

      The third problem is addon programs in windows. There is no way to control them without crap like sendkeys (which works but isn't what I would call reliable or the way it SHOULD be done). Applescript is of course a work of art. You can drive just about anything in KDE with dcop. Windows? Half the time you have widgets that don't even allow shortcut keys so you have to freaking tab through crap using sendkeys.

      So why wouldn't I learn scripting on windows? Well why would I attempt to use a tool that is already blunted in it's capabilities, is an entirely new jobset that really doesn't have much to do with my task, and may not even be capable of doing what I need it to?

      MS had a chance to fix this with MSH but again seems to have let that one fall on it's face. Although I have the unfortunate suspition that it's just going to be ANOTHER programming language instead of the scripting language we need on windows. Well there's zsh til then I guess.

  139. MVS multitasking, asynch I/O, Cobol, etc. by Anonymous Coward · · Score: 0

    For the guy who says MVS didn't have preemptive multitasking, that the only interesting languages were Cobol and BAL, and that Cobol didn't have asynch I/O, you're batting 1000 . . . wrong.

    MVS had an extremely elegant preemptive multitasking scheduler (based on what IBM had learned from TSO). It gave managers and operators extremely fine-grained (actually, too fine grained) control over priorities. And it managed to schedule interactive users at the same time.

    As for languages, it's obvious you never really investigated the situation: you forgot PL/I, which laid the system pretty much wide open (and had the trapdoors required to exit to the brief BAL interfaces required to get into supervisor state). It could be done with Cobol as well, but it was a bit more difficult.

    Cobol I/O was asynch by default (buffered to the extent you specified in the JCL). It's just that the programmer never had to issue starts and waits--that was all done by the access methods.

    Clearly, the problem here is that you really didn't know that much about the system you were using. Typical problem in the financial segment of the mainframe world. Those of us who could see beyond the job stream to run that night knew about all sorts of neato keeno stuff (like how the Fortran H compiler did its optimization, and how to use the interactive PL/I checkout compiler, and how to do all kinds of system programming without the nuisance of BAL [yes, if you know how the compiler works, you don't get hit with nasty inefficiencies], and how to reduce the run times of Cobol programs by an order of magnitude by changing one compile-time parameter). Please, you were in a rotten job. Doesn't mean that the equipment and software you were working with was as bad (and VM was quite some interesting system, if you understood what was going on; disaster if you didn't).

    An old mainframe programmer who also writes Unix code in more languages than C and C++.

  140. 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.

  141. Additional cultural differences... by Nick+Driver · · Score: 1

    Mainframe programmers (used to) write their code with the philosophy that it was intended to last indefinitely, and that they could possibly spend their entire careers maintaining and evolving a piece of software. They also tend to think that nobody else will ever be touching the innards of "their baby", as mainframe programmers tend to "keep to their own turf" and don't want anything to do with anybody else's programming project, nor do they want their peers poking around in their stuff either.

    Unix programmers write their code to be as efficient, clever-witted and esoteric as they can possibly get it. They know that there will be a certain number of their peers reviewing their work, and they want to impress their peers with the output of their brains. In every group of unix programmers, there exists a pecking order and a constant desire to impress one's peers and thus increment themselves one more notch up the ladder of that pecking order. This instills into unix programmers the philosophy that the code they write should be portable across many *nixes and will also naturally be passed on down to some new junior programmer that comes along, once that newbie proves he has acquired the chops to grok the code. For some odd reason, many unix programmers tend identify just a little too disturbingly close to the Jedi Order from the Star Wars movies. Either that are they are often too deep into that medieval wizards and dragons fantasy crap. Worse yet are those who do both, and have no real life outside of their hobbies or computers. When not at work, you'll find them in their mothers' basements.

    Windows programmers write their code with the intent to hurriedly slap together something that sorta kinda works under most sets of circumstances, but has plenty enough eye candy to wow the typical customer who only is smart enough to see GUI-skin deep. Often the software is deliberately written to just to "grease a squeaky wheel" for solving a short term need, and the only long-range planning ever done is to see how many times you can get the customer to repeatedly re-purchase the whole nine yards every 18 months. Also, Windows programmers have a penchant for writing code that only they can understand... to help bolster their own job security since their position will be outsourced in a heartbeat if the company can get away with it. Everything in the Windows world seems centered around a cultural core of pure temporariness. Both the code and the programmer are 100% disposeable. And come to think of it, all too often so is the employer (any typical ISV company) themselves. Windows software companies come and go like thunderstorms in Oklahoma.

    1. Re:Additional cultural differences... by spectecjr · · Score: 1

      Windows programmers write their code with the intent to hurriedly slap together something that sorta kinda works under most sets of circumstances, but has plenty enough eye candy to wow the typical customer who only is smart enough to see GUI-skin deep. Often the software is deliberately written to just to "grease a squeaky wheel" for solving a short term need, and the only long-range planning ever done is to see how many times you can get the customer to repeatedly re-purchase the whole nine yards every 18 months. Also, Windows programmers have a penchant for writing code that only they can understand... to help bolster their own job security since their position will be outsourced in a heartbeat if the company can get away with it. Everything in the Windows world seems centered around a cultural core of pure temporariness. Both the code and the programmer are 100% disposeable. And come to think of it, all too often so is the employer (any typical ISV company) themselves. Windows software companies come and go like thunderstorms in Oklahoma.


      Wow. Talk about an overgeneralization with a stupidly broad brush.

      If any of my guys wrote code for job security, I'd ask them to rewrite it. If they persisted, I'd fire them. End of story.

      --
      Coming soon - pyrogyra
    2. Re:Additional cultural differences... by sillybilly · · Score: 1

      I think he was very much on the mark, in every respect.

    3. Re:Additional cultural differences... by spectecjr · · Score: 1

      I think he was very much on the mark, in every respect

      And your experience of windows developers comes from where, exactly? Or are you parroting someone else's tripe?

      --
      Coming soon - pyrogyra
    4. Re:Additional cultural differences... by sillybilly · · Score: 1

      I meant the every respect as in not just the windows part. Listen to the reward system of the unix part - it's not money, not cash, but appreciation of peers. In real life people need money for 2 things - to make a comfortable living and feed themselves and their families, and above that level they need even more money to impress. Money shouldn't be the way to impress, impressing others should be based on character, skill, talent, so that everyone tries to make themselves a better person. I used to tutor math in college, for minimum wage. It was the best use of me, I was the biggest benefit to the world while doing that. I got so tired, but it was a good deed. Yet, over and over, kids came to me, and I just taught them calculus, analytical geometry, and they became fluent, yet all I got in return was a big feeling sorry for me look in their eyes. Why? Because I was making minimum wage. Something is horribly wrong with that. Where I came from, I had a math professor, who didn't live lavishly, he lived very simply. He was past 70, yet everytime he said it's time to retire, he couldn't. You know why? Because the parents went and pleaded with him not to, to teach just one more class, just one more year. What else could he do? Even when he could feel his old age, senility and forgetting stuff, he was still there, teaching, and getting a lot of respect. I can't even start to begin to describe what a benefit it was him teaching me, compared to, say, my biology professor. This math professor was a very happy man, even without lots of money. When the most impressive people in the world are the ones coming up with the biggest schemes to screw the other guy out of their buck, where is the value generation part, instead of the destruction part? By the way, in the days of true scientific advances, appreciation of peers was the major intellectual cash. Professors could go to a conference and freely talk, and if someone asked for a sample and wanted to collaborate on a topic, you didn't have to send them to the college's legal department, to sign a waiver that anything he ever discovers becomes the IP of the other university, inluding derivative works, so forth and herewith, and he's not allowed to disclose his achievements. Yeah, talk about turning intellectual creations into property in order to boost their creation - just look at unix code vs. windows code. I think the original poster was very right on every remark. When will windows coders not be pressed by a deadline, and instead be allowed to be like artists creating a sculpture, for years if that's what it takes, as long as it can shine and stand the test of time for quality, like the Mona Lisa can? Money, and making a living are very important, but past a certain point, money doesn't function well as an incentive, unless you pervert it into an incentive.

    5. Re:Additional cultural differences... by sillybilly · · Score: 1

      In a sense you have to feel sorry for the people like Andy Fastow, who fell victim to a system that's not perfect. They were just doing their best at what their cultured asked from them, they were pursuing a value system instilled into them, the way everyone else was doing it - coming up with schemes to screw the other guy out of their buck. Plain and simple, what's wrong with that when everybody else is doing it? Why am I picked on for excelling in this? Why is Bill Gates hated/envied for excelling at amassing money? Contrast that to behaviors in past eras, such as a captain man enough to stand at the helm of a sinking ship, because he wants the appreciation of his peers, the look in their eyes, and acting differently would simply invite a horrible look. Principles are often held because of public opinion, culture, not simply because of self control. It's a very powerful feedback mechanism, becaue people are social beings, they care very much about their place in society. The japanese are still heavily dependent on public opinion, on the respect of their peers, even inside money-means-everything companies, and look, they are making better cars! John Stuart Mill, in his essay "On Liberty" wrote about the "tyranny of public opinion," but, like to everything, there is always two sides to every story. Without public opinion you can become "collectively unfit" very very fast. In a sense, you need the tyranny of the public opinion, it's a benefit to you. As in everything, finding the proper balance is the key, and the hard part.

  142. Or more specifically... by Anonymous Coward · · Score: 0

    Unix and mainframe programmers are more likely to assume that Windows programmers do not know multiple systems and as such will act condescending towards them causing the Windows programmer to kick their ass.

  143. This is a Troll Thread by techsoldaten · · Score: 1

    If I have ever seen a thread designed to ignite a Troll War, this is it. I have been debating whether or not the moderators really do this sort of thing and just got my proof.

    Everyone knows the real difference between Windows programmers and Unix programmers is volume labels. One group uses them and the other relies on other means. An analogy: 2 kids enter the kitchen and one dies from drinking a bottle with a big Mr. Yuck sticker on it. One kid knew what it meant, the other one thought green means lime taste.

    Know what I mean?

    M

    1. Re:This is a Troll Thread by Anonymous Coward · · Score: 0

      you are a fuckwit and I hope you get shat on by a penguin

  144. No, no, no by BerntB · · Score: 1
    you should take the rantings of Joel, ESR, and any other pointless windbag and send them to the bit bucket.
    But they are funny!

    Those trying to integrate and make good GUIs on Linux are the distros. Some are quite good and they are getting better.

    Joel is judging the GUI people at the distros after a book about programming philosophy!

    The argument is so stupid that you really wonder if he is honest.

    Also, consider when Joel wrote this:

    At the very least, Windows programmers will concede the faults of their culture and say pragmatically, "Look, if you want to sell a word processor to a lot of people, it has to run on their computers, and if that means we use the Evil Registry instead of elegant ~/.rc files to store our settings, so be it."
    He doesn't even mention that anyone which sells a lot of new word processors on Windows will get his oxygen supply cut off like Netscape. There are many well documented examples.
    --
    Karma: Excellent (My Karma? I wish...:-( )
  145. Re:If you want to know about mainframes I recommen by Anonymous Coward · · Score: 0

    2.625374126407571e+17? what's the signifigance of that?

  146. Joel had a good point by ClosedSource · · Score: 1

    "The Unix programming culture holds in high esteem programs which can be called from the command line, which take arguments that control every aspect of their behavior, and the output of which can be captured as regularly-formatted, machine readable plain text. Such programs are valued because they can easily be incorporated into other programs or larger software systems by programmers."

    If your idea of programming is piping one command line utility to another or writing scripts to manipulate existing GUIs.

    Whether I'm writing a Windows application or a UNIX application I don't feel the need to make a detour through an existing program. I use code libraries or components for reuse, not entire programs.

  147. Wish I had mod points today by BerntB · · Score: 1
    Great post.

    Not only good content, but well written.

    --
    Karma: Excellent (My Karma? I wish...:-( )
  148. I don't see the relevance by b00m3rang · · Score: 1

    ??? (n/t)

  149. Not exactly... by SuperKendall · · Score: 1

    I don't know why you were labled troll and not "funny", but I would have phrased it that "Given an infinite amount of time, all systems become UNIX - OS'es or Applications.

    Mine's not funny at all but it's a shorter form of what I was trying to say.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Not exactly... by dmaxwell · · Score: 1

      Some people finish that quote with the word "poorly". Just an ax-grinder with mod points I suppose.

    2. Re:Not exactly... by wild_berry · · Score: 1

      His first line or his second? (It could be either, could it not?) :-)

  150. Re:Mainframe is process-centred, *nix/windoze is n by micrometer2003 · · Score: 1

    This is all very true. It is frustrating to me that today, many things don't work, or only work sometimes, or only work on some machines and that it is considered "normal" or "acceptable". Especially irritating are functions involving plain text. I can understand a few kinks if I am trying to watch a movie on my computer. But if I just want to pass a string of text and get a simple, but crucial result, I am often disapointed.

  151. Been there done that got the t-shirt. by Wargames · · Score: 1

    On four legs I was a mainframe programmer, on two a Unix Programmer, now that I am ancient and over 40, on three legs I am a Windows programmer.

    Here is my quick take on the three lifestyles and some random observances.

    Mainframe programming: Company/Intranet
    Suit and Tie, dress shoes.
    Languages: ALC, COBOL, Rexx (The Best)
    Editted with XEDIT, ROSCOE, or the TSO editor.
    Shells: VM/TSO/Roscoe
    For me, the mainframe was best for collaboration (A bunch of people working on a big problem together.) and interacting within a large company while still being isolated/protected from the world at large. Instead of being distracted by the world you are distracted by corporate politics. It reminds me of a horse designed by a committee of blind men who are making thier opinions known by feeling different parts of an elephant.

    Unix Programming: Individual/Network
    Jeans, Hawiian Shirt, sandles.
    C, Regina/Rexx (Rexx is best), Perl (A vile programming language)
    Editted with vi (An editor that goes well with Perl, tied with edlin for the worst editor ever)
    Shells: BSH, CSH
    Best environment for people who do not want distractions. Best place to create your own little world and live in it. The OS most favored by people who either did experience the 60's or wish they had you can tell because when you go to the UNIX conventions everyone looks like Jesus and I had a beard too when I did it this is a run-on sentence I know. Living in unix means your fingers will hurt and you will need to think of everything as a long string of characters because its all going to be one thing at a time and if you make a mistake and enter rm / -r you are screwed because there is no undelete in unix and no trash can and there is nobody to do your backups for you but you.

    PC/Windows/Mac: Society/Internet
    MS Visual Basic, Regina/Rexx, HTML, Kedit/Kexx, Access/VBA, SQL, .NET
    jeans or shorts or underwear, and t-shirt or noshirt, barefoot or tennis shoes
    Edited with Kedit (The best editor ever.) or the MS editor that comes with the language and pops up all the possible commands and values and properties automagically when you type making programming less of a memorization problem. JAVA and .NET are deep monsters with so many classes no normal human can know them.
    Shells: DOS/none/or whatever program has the focus
    The most connected to the world with the most distractions. The best for communicating and the most prone to viruses. Most opportunity and potential for success or failing on your face. The least safe and the most free. A dichotomy at once while still growing.

    --
    -- Each tock of the Planck clock is a new world and here we are still life. --
  152. 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.
  153. Re:A Windows admin, Unix admin and a Mainframe adm by Anonymous Coward · · Score: 0

    Urine's generally sterile. It's cross-contamination you have to worry about.

  154. technical differences m/f vs non m/f by micrometer2003 · · Score: 1

    I have worked with all systems but started on m/f. The two most pervasive differences to me are data structures using fixed-length fields (m/f) vs those using delimiters (non m/f) and decimal arithmetic (m/f packed binary-coded-decimal) vs non-m/f alternatives (integer,float,double). I tend to prefer the fixed-length fields for readability and predictability, even though it can be "wasteful" of once-precious resources. I miss the decimal math for business-oriented apps but use integer cents displayed as 2 decimal dollar floats. Passing data between these two worlds always has to deal with these differences. Occasionally the computational differences are an issue that can be mitigated, but not eliminated.

  155. Stupid oracle commercial by yecrom2 · · Score: 1


    It's interesting that this shows up now with the ads for the "Oracle Grid" running on TV. It's a cluster. Big freaking deal.
    My favorite part is near the end where it says about the mainframe "When a mainframe dies, the server dies." The only problem there is that MAINFRAMES DON'T DIE! Everything is redundant, ECC'd, hot-swappable, etc.

    I've never worked on mainframes, but I've worked on AS/400s. We were able to kill one, but it was because of a mislabeled patch tape from IBM.

  156. Re:Mainframe is process-centred, *nix/windoze is n by sinewalker · · Score: 1
    The sad fact is that, in today's environment, especially after the dot-com cowboys set Upper Management expectations, following Process is just too slow, or too expensive. Convincing management that a bigger cost up front will result in a lower cost in the long run is also futile when mgt sees it as "normal" for computer systems to break. After all, their Windows machine on their desk has been doing that for 20 years now, so it must be normal, right?

    What matters most to managers or clients when deploying new systems these days seems to be "time to market", and the only consent to quality is that the IT dept/company follows check-list processes like CMMI or ISO9000 which do not address the real issues and put too much into the Process rather than the Result. Also, when the system breaks, it's typically at the expense of the IT company that built it, or was stupid enough to agree to use the off-the-shelf product in the first place, so there is nothing to drive a change of behaviour from the clients.

    --
    “Our opponent is an alien starship packed with nuclear bombs. We have a protractor.” — Neal Stepnenso
  157. I HAVE ANSWER, KIND SIR! by Anonymous Coward · · Score: 0

    In Soviet Russia, mainframe windows unix.

    Oh yeah.

    1. Re:I HAVE ANSWER, KIND SIR! by Petersson · · Score: 1

      In Soviet Russia nobody cares for what is going on in Soviet Russia and mainly everybody's framed there.

      --
      I'm not insane. My mother had me tested.
  158. Mainframe is bulletproof by terminal.dk · · Score: 1

    Mainframe guys thinks everything on the computer is secure. The hardware is bulletproof after all.

    Windows guys thinks that security is impossible, since every machine is spyware infected. So they do not even bother writing secure code.

    Mainframe guys think, that because they know assembler language, they are way superior to the rest of us.

    Mainframe guys tries to keep things secret and mysterious. Or we might find out they are easily replaced.

    Mainframe guys knows that they company can't get rid of the mainframe before they are dead.

  159. 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.
    1. Re:Difference in terminal users expectations by golgafrincham · · Score: 1

      Terminals in mainframe culture (CMS, TSO, CICS...)

      if we speak about the same CICS (and i think we do), then CICS is after all a transaction monitor, like IMS, hosting programms that manipulate data. with these applications you interact when using a 3270.

      i'm working with both of them (CICS, IMS) via JCA in a J2EE env. It's a very interesting field of work.

      --
      beer as in "free beer"
  160. strings by crucini · · Score: 1

    Lots of programmers have their own string code. For example, postfix has vstring. In the spirit of C, such arbitrary things aren't built in to the language.

    Have you used C++? It has a standard string class which solves these problems and is much smoother to use than the various C libraries.

  161. 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.

  162. outsourcing and inhouse programming by chrisranjana.com · · Score: 0

    Next we will be discussing outsourced programming culture vs in house programming culture.

    --
    Chris ,
    Php Programmers.
  163. 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

    1. Re:The difference IMHO by iBod · · Score: 1

      Thanks for a very informative post.

      As a part-time MVS sysprog (not a 'sysadmin' ugh!) I've worked with it for almost 18 years, I appreciate where you're coming from.

      I do a good deal of UNIX and Windows development too, and the difference in cultures often astounds me.

      The level of refinement (in hardware, software, proceedures, documentation, etc. etc.) in the mainframe environment is still light years ahead of the UNIX and Windows worlds.

      Absolutely right about diagnosis and intelligent workload management. There isn't anything close to Omegamon or SRM it in UNIX, let alone Windows.

      UNIX and Windows geeks think they invented everything, even though it's been around on the mainframe for years. Some stuff they haven't even invented yet!

      When I work with the Windows and UNIX teams I feel like a sloppy hack, and I think it's rubbing off on me.

      Anyhow, I just need to slam in some user-exit changes in before I go down the pub. I'll tell the operator to IPL with a different parmlib if it goes tits up!

  164. Ha! by samael · · Score: 1

    I was part of an intake of graduates being trained in mainframe programming two years ago. There's always a need for new coders...

  165. 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!

    1. Re:Why you need to wash your hands by It'sYerMam · · Score: 1
      I wonder why I haven't died of a fatal infection, then?

      Just don't ask me to prepare your food ;)

      --
      im in ur .sig, writin ur memes.
    2. Re:Why you need to wash your hands by logpoacher · · Score: 1
      I wonder why I haven't died of a fatal infection, then?

      Ok, but how would you know if you had? Seriously, though, it's probably one of the multitude of things that accounts for why we die at 80, not 40.

      Just don't ask me to prepare your food ;)

      Just cook it very, very, very thoroughly :-)

    3. Re:Why you need to wash your hands by ThePromenader · · Score: 1

      (rolling eyes thoughtfully to cieling) "Hmmmm ...penis flavour. Dang mainframe guy's in the kitchen again."

      --

      No, no sig. Really.

      ThePromenader
    4. Re:Why you need to wash your hands by Anonymous Coward · · Score: 0

      I'm afraid I wouldn't recognise that particular flavor.

    5. Re:Why you need to wash your hands by ThePromenader · · Score: 1

      Perhaps you're not that kind of girl then : )

      --

      No, no sig. Really.

      ThePromenader
    6. Re:Why you need to wash your hands by Anonymous Coward · · Score: 0

      Ridiculous.

      You have to wash your hands for unzipping because of that deadly e-coli bacteria. But your wife hasn't died from giving you oral sex yet.

      Yah.

  166. In soviet Russia... by Anonymous Coward · · Score: 0

    In soviet Russia, mainframe programmers say:

    "East or West, COBOL is best!"

  167. The dangers of Mono by Dogtanian · · Score: 1

    Try Mono/C#

    Meanwhile, back in The Real World...

    It has all the good features of Java, plus some of the good features of C++ like pointers and access to unmanaged code.

    And it has the disadvantage that it's constantly playing catch-up with Microsoft, and essentially has to do what they want to do, because it's unlikely to ever become important enough in its own right to do what it wants (without losing its raison d'etre).

    And that's assuming it *can* implement the new features fast enough to be useful; as I said, we're playing the MS game, and MS like to add new features to get people to buy.

    We haven't even got into the whole legality issue; although MS probably claim their standards are open, you'll probably find exactly *how* open they are if someone ever comes close to producing a C# clone to rival MS's; if this is ever a possibility, they'll be sued into the ground on one of a million basises, because that's the nature of the beast.

    Of course (getting conspiratorial here), MS might tolerate and even covertly support Mono in the early stages because (a) It's a good way to split support/programming skill in the open-source community, and (b) If Mono gains sufficient ground, and people start using it for serious projects, then.... whoops! MS decide to sue Mono users on some ethically dubious but legally-sound basis because Mono infringes [whatever], effectively killing the project in a worthwhile form, and leaving all those Mono projects stranded.

    So... choice; do you (a) Rewrite the whole thing from scratch using a different "open" environment (taking lots more money and time which you don't have), or (b) accept MS's "kind" offer to move to a paid "legal" implementation of C#/.Net (theirs) *plus* they won't sue you....

    No-brainer; in the real world, people will go with (b) and be severely pissed off with "open source", rightly or wrongly. And Microsoft have another large customer.

    As far as I'm concerned, the "must copy MS" requirement on its own is bad enough. It limits the flexibility of Mono; it dooms it to always being one step behind, and opens up the possibility of MS deviously introducing certain features solely to make it hard for the developers of Mono to copy them (forcing them to take up their time and resources in order to remain compatible).

    --
    "Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).
  168. Dilbert by elgatozorbas · · Score: 1


    Like this you mean?

  169. Silence is golden by dajak · · Score: 1

    From the article:

    [..] there is a core value in the Unix culture, which Raymond calls "Silence is Golden," that a program that has done exactly what you told it to do successfully should provide no output whatsoever. [..] By contrast, in the Windows culture, you're programming for Aunt Marge, and Aunt Marge might be justified in observing that a program that produces no output because it succeeded cannot be distinguished from a program that produced no output because it failed badly [..]

    Aunt Marge is right. It is a golden rule in Windows that programs that failed badly will usually produce no output whatsoever. Therefore open your task manager and try to kill it if it produces no sign of live.

    A corollary of this golden rule is that the badly failed program will usually not respond to the kill event either. This is i.a. because for many years most Microsoft example programs included with Visual C++ did not properly check for being killed. Microsoft culture does not accept failure, and does not waste useful time programming meaningful feedback messages.

  170. install your own System/370 by grassman · · Score: 1

    Hercules and have hours of fun

  171. Change control: UNIX is worse by Baki · · Score: 1

    At least in the large bank where I work.

    On the mainframe a healthy balance between rigorous procedures and practicality has been reached. On the big UNIX machines they are trying to push through the same kind of rigorousness, but without consideration for practicalities, resulting in a disasterous situation.

    On the mainframe, the developers can have direct access to data of their "own" application, that is the one they have to provide 3rd level support for. On UNIX, such access is impossible, firewalls are everywhere and you need 10 signatures to make a production change. In short it doesn't work but for the most trivial appliacations.

  172. Re:A Windows admin, Unix admin and a Mainframe adm by Anonymous Coward · · Score: 0

    What ? You have HANDLES on your urinals ???

    What planet do you live on ?

  173. Unix doesn't abend by Secrity · · Score: 1

    I am a Unix sysadmin and also admin an application that sends data to a mainframe. I cannot get over the lack of error handling on the mainframe side concerning input data. From my experience, Unix applications are designed to gracefully handle errors, frequently by discarding the input data and writing an error message to a log; sending an email message /page is optional. From what I see of the mainframe world, if the input isn't available when the mainframe wants it or the mainframe doesn't like the data for some reason the mainframe pukes, frequently rewinding the virtual input, process, and output tapes and starting over. If a 500,000 line data file has one field with 21 characters when the mainframe is looking for 20 characters, ignore the bad line and report the error - don't have a hissy fit and reject the entire file.

    1. Re:Unix doesn't abend by Anthony · · Score: 1

      An input record was written for a reason. If there is a problem with the input, the reason needs to be investigated. Data integrity is very important. If it doesn't fit your specs, that is a problem. A user abend gets everyone's attention before bad data corrupts your database. This is the mainframe mindset I was taught.

      --
      Slashdot: Where nerds gather to pool their ignorance
    2. Re:Unix doesn't abend by micrometer2003 · · Score: 1

      There is an old saying about "garbage in garbage out" (GIGO) that still applies. m/f are not very fault tolerant in this respect but a return code of zero speaks volumes for data integrity.

  174. different kind of skills by Stu+Charlton · · Score: 1

    we see CASE tool technicians masquerading as software engineers.

    I can guarantee you that a talented .NET or Java programmer abhors CASE tools as much as a UNIX guy.

    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".

    Why would I build something from scratch , so far removed from my real intent (to build an order management system)?

    To counter your experience, I've seen plenty of UNIX folks that wrote server programs system that leaked memory and crashed often, and didn't really perform that well, all in the name of "it's better if I write it my way". I"ve also seen plenty of Java folks do the same, though this time in the name of "I can't be bothered to research what I'm re-using, whether a library or an RDBMS". Ignorance has many faces.

    --
    -Stu
  175. Have them learn Java by FatherOfONe · · Score: 1

    Well, Java runs great on the mainframe, UNIX, and Windows. Your mainframe guys will probably love the fact that they don't have to bang out COBOL code any more, and they will be learning a "newer" language. Then "if" you migrate to any other platform, you will be able to use that code again.

    The last time I looked, IBM took all the JAVA commands and compiled them on the mainframe, so the performance was excellent, granted they didn't have any of the AWT/Swing stuff working :-)

    --
    The more I learn about science, the more my faith in God increases.
  176. The success criteria are vastly different by gelfling · · Score: 1

    In mainframe culture the success criteria cluster around finely hones change control, getting a finite sized chunk of code to work, and work cleanly, fast, first time with known bells and whistles and no more.

    Unix success criteria cluster around getting it done somewhat quickly, build it light so you can change it on the fly, include lots of function stubs for unimplemented functions you MIGHT need later on, don't worry about reusability or longevity and make it run good enough.

    Each approach has its advantages and disadvantages but each is disasterous for the other. If you try to run with mainframe mindset in the Unix world you'll fall too far behind. Conversely if you approach mainframes with Unix success criteria you will never get anything done at all.

  177. Real perspective by Spiked_Three · · Score: 1

    There doesn't seem to be many comments that are focused on reality (although one about cat herding got moderated to a +4 interesting) but here is some perspective for those who have not lived through it all;

    Mainframes where designed when UIs were not an issue, but cost was. In order to process 1000s of payroll checks for the least amount of money, performance was #1 priority and you will find most of the mainframes designs centered around that. For instance, multiple busses - the original IBM mainframes had more parallel IO than today's PCs designed 40 years later (and no, not because today's PCs are faster, its because today's PCs are made cheaper). They increased performance by adding multiple paths to the same devices - sometimes up to 8 physical paths. Today's PCs? They string 8 disks on the same cable. Dumb, slow. The mainframe OS was written with performance in mind. Heck, half of the OS was dedicated to handling print spooling - since there was only one slow printer most of the time. Unfortunately it is some of the most disgusting monolithic designed on the fly code ever created, but it performs well.

    Then came the terminal - 2 approaches; The interactive approach (*nix) and the high performance approach (CICS mainframe). Again cost and performance was #1 priority for mainframes and not an issue for *nix. Mainframes terminal 'transactions' are all pre-defined, the files pre-opened and the screen layout pre-written. The results was you could handle a 1000 terminal call center with ease. The most Unix terminals you could run on similar cost hardware with similar transactions was about 16. Again, different purpose, one was for performance, and one was for flexibility.

    Then came the PC - The GUI (eventually) became the #1 priority. Prices were cheap, relative speed was fast, so it all gets bloated up without true regard to performance. It sure does look nice, but it is about as efficient as using sand for motor oil.

    I have had many discussions with those who are responsible for Windows and Unix internal OS design as far as performance goes, and it clear that they just don't really get the big picture. Sure they know their little version of it, like LRU paging algorithms - but talk to any one of them about capacity planning and how it relates to resource consumption and resource management and you get blank stares. Talk to them about hierarchical storage management and you get "huh?". When the performance GURU at (insert OS software company here) says "when CPU busy exceeds X then you need a faster processor" you know he hasn't a clue what he is talking about. The definition of performance is that you achieve more than X percent utilitization or you aren't tuning you system correctly. The things that were done on the mainframe 20 years ago to increase performance and lower costs will slowly make its way into the PC environment, as the PC crowd realizes that cost is again an issue.

    But for now, it is a different world, one where cost is not the issue (or at least not really taken seriously) ($5m for a mainframe v. $500 for a PC). Why would anyone think that they should "get along"?

    --
    slashdot troll = you make a compelling argument I do not like the implications of.
  178. Re:Mainframe is process-centred, *nix/windoze is n by QuestorTapes · · Score: 1

    Good post; one nitpick. Anytime you have a post of the form 'A is [blank], B is ![blank]' you've probably given short shrift to the B side. It assumes the question is true-false.

    I would say that *nix/Windows are not so much 'not-process-centered' as small-task centered.

    Processes, in this case, would have a fairly directed, machine-based goal. Since there is a goal, there has to be a reason for doing it, a risk analysis, and fallback planning. Even if this is done only in the head of the mainframe programmer.

    Tasks are small, lightweight, and less critical. You can toss a task out there as an experiment. In Windows or in *nix, you can run something to see what happens, even if you aren't sure what it will do. You can code up things just to test an idea.

    This means that you can experiment a lot on *nix and Windows.

    In Windows, this is usually seen by programmers running something in the Visual Studio IDE, or in VB Classic. In *nix, this is usually done in a shell script or Perl script.

    I think in the mainframe world, these experiments are mostly done in the mind of the programmer; maybe with a whiteboard.

    Interesting post; I tend to agree with your conclusions.

  179. Re:Everything Old Is Old Again... IEFBR14 by rah1420 · · Score: 1

    Ah, IEFBR14. The original proof that even IBM couldn't write a one line program without having a bug in it.

    Its only purpose is to return control to register 14 (BR 14), which contains the instruction to pass control back to the mainframe; so IEFBR14 did, in effect, nothing. (Also how it got it's name, for obvious reasons.) However, it sometimes passed back a nonzero return code so they had to add another two bytes to the program; an SR 15,15 to zero out the condition code register.

    The SAS-L archives has one programmer's recollection. I heard the story years ago but never found the cross reference; it was always passed down from sysprog to sysprog as part of our oral tradition. :)

    --
    Mit der Dummheit kämpfen Götter selbst vergebens.
  180. What can you do in Unix that you can't do in wdoze by wadiwood · · Score: 1

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

    A secure system. One that is not readily affected by outside hacks including virii, spyware, malware...

    A reliable system. One that does not crash unless the power fails and the back up power fails. And then it will start up and recover all by itself.

    A scary system - one that takes your bodgy typo ridden command and eats it, performs it, exactly as typed not as intended, and doesn't tell you what it did.

    A customizable system. Of course when building user interfaces for end users, you can program for the typos. In fact you can even tailor your own user interface to catch your most frequent typos or most dangerous ones and not quietly execute them as written.

    I've worked in all three environments, I'm old, I've got grey hair, but I will never have a beard.

    --

    -- it must be true, it's on the internet.
  181. Ignorance is bliss in the Windows culture. by cabazorro · · Score: 1

    Mainframe programmers by definition, must have a larger pool of knowledge on computing and network architecture.
    As their knowledge increases thought their Happiness decreases!. I even made a graph!
    happines | \
    knowldedge ------
    "I make a lot of graphs" Lisa Simpson.

    --
    - these are not the droids you are looking for -
    1. Re:Ignorance is bliss in the Windows culture. by silverbax · · Score: 1

      I'm not sure if I could agree that Mainframe programmers must have a 'larger pool of knowledge on computing and network architecture', considering that most Windows programmers are not targeting a single server, but thousands or hundreds of thousands of unknown machines, or networks.

      I've worked on all of these systems at some time or another, and each has it's own issues. One thing is constant - all have programmers who only know their system and think their system is the most complex.

    2. Re:Ignorance is bliss in the Windows culture. by cabazorro · · Score: 1

      What is more complex? A:One program running in one million computers B:One program running in one computer and being used by a million people.

      --
      - these are not the droids you are looking for -
    3. Re:Ignorance is bliss in the Windows culture. by Anonymous Coward · · Score: 0

      Damn near every month there is a new worm, a trojan, or a virus that demonstrates just how easy it is to get one program running on millions of machines.

  182. 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.

  183. Re:A Windows admin, Unix admin and a Mainframe adm by pebs · · Score: 1

    What ? You have HANDLES on your urinals ???
    What planet do you live on ?


    I work on a space station you insensitive clod.

    --
    #!/
  184. Ok, I've done all three by Mycroft_514 · · Score: 1

    1. To stress a mainframe system takes an expert. They are called either systems programmers or more likely DBAs. (Most recent case, I stressed a Mainframe to 100% myself for about 4.5 hours during the July 4th holiday)

    2. Mainframe = What do you mean, change the OS? Unix = Change the OS on the fly right here. Windows = What's an OS?

    3. Mainframe = production WILL run, whatever it takes. Unix = oh, it will run, 8 to 5. Windows, re-boot and try again.

    4. Editors = Mainframe = SPSF - nothing special, just edits what you see. Unix - VI - Virtually impossible - arcane syntax (the most user hostile editor ever written). Windows - Word - We'll do it for you, even if you meant something else.

    Oh, I've done IT for 24 years, a degree is CS, programmed everything from OS/8 to DOS, to UNIX, to MVS, to VM, to Windows, to OS/2, to Palm, stopping off for about 7 or 8 DBMSes along the way.

  185. Several differences... by aixguru1 · · Score: 1

    On the mainframe, a programmer must have the concerns of system resources and getting it right the first time. Jobs for mainframe are scheduled to optimize system usage and consistantly run at a set capicity designated in planning. This said the worst thing that happens to a mainframe programmer is an abend (a job that fails and requires interaction, often causing other jobs to get backed up). Loss of system time means a significant loss of money in the mainframe world. That directly affects the process they must take to submit and run jobs. If they are coding JCL or COBOL, their code must be reviewed and run on a test mainframe if possible. It must be exact which takes a certain kind of programmer to get it right. As a suggestion in handling mainframe programmers, it is important to improve upon the stress that comes from deadlines and being right the first time. Most mainframe programmers I know are over stressed, over worked and need the support and coaching from their manager that will make their lives a little better. Be cautious of resource usage and allocations though and make sure they have a procedure for implemtation that is strictly followed. As a manager over mainframe teams, you should be strict with procedures, but don't hold it over your employees heads. They have a hard enough job to be constantly docking them in their reviews because of not quite getting it 100% every time. After all there are not as many mainframe programmers as they used to be, so keep the ones doing a good job. UNIX programmers on the other hand depend on what their designation is. System level coders usually have attitude to cope with and you have to take that in stride. On the System Engineers level, you have to also manage resources and allocations. It is important for them to worry about a balanced system performance and ensuring that a poorly written application can be dealt with, not causing pain to the other applications since it is a multi-user system. Proper tuning will handle this. On the application programmers side, the most important thing is to make sure the "big picture" gets taken care of. You need an architectural layout and design of your applications that will fit into the business model over all. The right people need to be consulted to ensure your programmers are not writing a peice of code that doesn't fit well. Code reviews and some level of strictness are required, but not to the level of a mainframe programmer. In UNIX you can recover and risk far less losses with application downtime than on the mainframe. Restarting applications here is not as costly. On the Windows side, it's about interaction and getting the product moving quickly. Windows programmers are either concerned about the tightness of the application or the features it provides. To properly write and deploy a Windows application, strict QA must be implemented and some minimal level of profiling must be done. The important factor is user perception in this case. You want the end user to see it run fast and have tons of features. It will have bugs and the bugs are not looked at interactively due to it running on a user system. You people need to be geared towards debugging problems with the minimal interaction available. This requires that your coders know their code in and out. You want to develop and culture that ability and make sure you keep track of bugs for improvements. Overall, people are people, but the stress levels of a mainframe coder are for getting it exact and right to prevent downtime and backing up jobs. For UNIX engineers and applications programmers, it's in stability of the system and proper interaction with the system and business architectures that is stressful. With Windows programmers it's in the end users perspective and timeline to release to market that is the most stressful. Realizing those things, you can appropriately develop a plan to help manage and cope with the managerial needs of your people. Keep in mind, if you are a resource and career manager, make sure you keep your people

    --
    root 10956 5164 0 Oct 22 - 0:23 sendmail: rejecting connections: load average: 70 (isn't sendmail just too kind)
  186. 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.
  187. For a cross-culture experience try an iSeries by JoeStreet · · Score: 1

    It scales to mainframe class performance, runs AIX and/or Linux in a partition, and can host and manage Windows servers all in one box. Truly amazing.

  188. The basic difference... by Grail · · Score: 1

    The unix way:

    1. Make it work
    2. Make it work right
    3. Make it work fast

    The Windows way:

    1. Make it pretty
    2. Make it work
    1. Re:The basic difference... by Mongo222 · · Score: 1

      That's great and all, but the point of the posters question was what's the mainframe world like.

  189. Re:A Windows admin, Unix admin and a Mainframe adm by Monkey+Angst · · Score: 1

    Boy, I remember when that joke was about soldiers and Marines.

    --
    stripShow - Where WordPress meets webcomics
  190. Re:If you want to know about mainframes I recommen by exp(pi*sqrt(163)) · · Score: 1

    The significance is 17 digits which isn't quite enough.

    --
    Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
  191. not all Mac developers are teh gayee! by Thud457 · · Score: 1

    That was no beard, that was his wife!

    --

    the preceding comment is my own and in no way reflects the opinion of the Joint Chiefs of Staff

  192. Daisy, Daisy, give me your answer do... by Thud457 · · Score: 1
    "I've never heared of a sound card on a mainframe."

    It's called a AM pocket radio and a very special stack of punch cards, you insensitive clod!

    --

    the preceding comment is my own and in no way reflects the opinion of the Joint Chiefs of Staff

    1. Re:Daisy, Daisy, give me your answer do... by Technician · · Score: 1

      "I've never heared of a sound card on a mainframe."

      It's called a AM pocket radio and a very special stack of punch cards, you insensitive clod!


      Wow does that bring back ancient memories. I remember that being done at the Columbia Basin College in the 1960s. They demonstrated their new computer by playing "The Flight of the Bumble Bee". They used a transistor radio for the sound card.

      Disclaimer, I wasn't a student then. My father was. I went to the open house. The other hit at the show was using the high speed hydraulic press to crack wallnuts.

      --
      The truth shall set you free!
  193. Observations over time by stormesj · · Score: 1

    Ok, I have been at this working professionally with computers from 1988 on. I have worked on Prime, IBM Big Iron (VM/CMS), IBM Little Iron (RS6000), Unisys (Sperry and Burroughs), SUN, Windows, Unix and Linux.

    The biggest cultural different is priorities. All the big mainframe shops I have worked at the goal was to keep thing running smoothly and be home by 5:00. All the PC shops (Unix and Windows) the goal seemed to be get it done fast but stay all night.

    There is also a stronger separation of the programmer from the app. With the PC almost every user is responsible for programming (call it automation or whatever). Even the accountants are expected to write lots and lots of excel macros. In the mainframe world the goal is to just let the user enter the data and give her/him the answer.

    There is also a stronger idea of operations; in the mainframe world there are programmers, system administrators, operators and users. Each with there assigned roles. In the PC world there are system administrators, power users and users, with the lines blurring at the edges.

    These are just my general observations, and of course there are exceptions to every rule.

  194. The big diff? by ebvwfbw · · Score: 1
    I have worked in all three environments. What they all have in common is that whatever their OS is that they know, it is the best OS ever developed. Everything else is trash. They will also try to convert you. Think of them as a strong Democrat, Republica, Green, etc.. Sometimes the arugments get about as heated.

    Mainframe guys (we are talking IBM type mainframes, aka big iron) are still in shock and awe over the mainframe's big data pipes (mainframes have channeled I/O and therefore can move a lot of data fast), structure and stability of the software. Why they will make such bold statements as "a mainframe NEVER goes down." and "You cannot break into a mainframe, it is way more secure than anything else." The truth is that they do go down and it isn't that hard to do. Just mention filling up a dataset, something any user can do. They also get broken into (duh!). Mainframe users deal with something called JCL (job control language) and they think it is wonderful, best thing since sliced bread. Mainframes also deal with data as fixed records - usually. Most of them still use a language called COBOL or PL/I. Some die hards may still use assembler. Mainframe users also have the illusion that they have more control than they do, they have to specify everything.

    Unix users know they have the best OS around. In fact Unix runs on mainframe style hardware. Your unix box may run on a S/390 mainframe. So you have to virtualize the machine wisely to take advantage of the impressive capability of that machine. While the CPU's may not be impressive, the I/O is. Again - big data I/O pipes via channeled I/O. Unix machines think of everything as a file. Well most everything and if you keep that in mind you will be ahead of most people. Languages galore. Unix has been extended so much from the original it can do anything. It is also very, very stable. So stable the phone company has used it for decades. I have machines out there I haven't seen in years. Still running. Just update it remotely.

    Windows users - they think they have the best OS and everything else is trash. Sometimes they make silly statements like "everyone is using it" and "they have most of the market" to justify it is somehow the best. It is plagued with security holes throughout. The languages available are varied - some are common and others try to lock you into Microsoft. Most of these guys are not that smart, unfortunately (paper certified, recently a little girl got certified as a Microsoft professional). Microsoft tries to do everything for them so they think they are much better than they really are. As a result a lot of windows programs are poorly written. Sometimes I'm amazed at just how little these "professionals" know. Then there is the famous Blue Screen Of Death (BSOD). Windows users will try to gloss over or trivialize any problem with the OS. Sometimes they will even attack you saying you "should learn something new."

    Dealing with these three groups can be very challenging. The mainframe group should realize that even IBM and the other mainframe companies are moving to Unix based or Linux OS machines. It is just a matter of time. They should migrate and start using Linux/Unix. Most Unix guys are eager to help them make the transition. The Windows guys are usually too limited to work with. They will often say "Unix is too hard." As if they would know, they haven't even tried it. The best thing is to insist that they learn more of it. Send them to courses and such. Most see just how bad Windows is and switch. For those that don't I recommend you fire them. Let them be someone else's problem.

  195. On Cultural Pragmatism by ursuspacificus · · Score: 1

    Joel writes in his review:

    "The very fact that the Unix world is so full of self-righteous cultural superiority, "advocacy," and slashdot-karma-whoring sectarianism while the Windows world is more practical ("yeah, whatever, I just need to make a living here") stems from a culture that feels itself under siege, unable to break out of the server closet and hobbyist market and onto the mainstream desktop."

    I think there is Idealism and Pragmatism in both cultures.

    MS Windows people are economic idealists ("How do I maximize my wealth?") and computing pragmatists ("I'm not out to change the world, I just want to code for a living.")

    *nix people are economic pragmatists ("Can I afford something marginally more satisfying and nutritious than Ramen to eat?") and computing idealists ("How can I maximize efficiency, stability and flexibility in my code?")

    It's a question of what you're interested in forcing down the throats of others.

    The MS Windows people are, fundamentally, interested in forcing a rigid "thru-line" mentality on their users to minimize the cost of development and maximize profit. This is, to my mind, best represented by the "Wizard".

    The *nix people are, fundamentally, interested in foisting upon the world a huge box of tiny puzzle pieces (and the facilities to make your own, should the provided pieces not suit you) which all fit together to make just about any picture you might want to make, but requires that you learn how the pices fit together. This is becomes clear when a user types `ls /usr/bin` at a *nix command prompt.

    In either case, you have to become familiar with the local paradigm.

    Joel derides the choice available in *nix. Fine. Enjoy your narrow, shallow MS Windows experience, Joel.

    I used to love programming back in the "8-bit Home Computer" days... Then it became impractical to keep on using my tired old Atari 800XL... 5.25" Floppies became harder to find... I wanted to do things that took more than 64K of RAM... So I started with PCs... MS-DOS for starters, then MS-Windows... My interest in doing New Things faded quickly, because my options were so narrow, shallow, oapque and expensive. I trudged through MS Windows for years... doing things and being productive, but bever really loving it. Since stumbling across *nix (GNU/Linux, specifically), my love of computing has returned. My interest in problem-solving has flourished.

    What's the difference between UNIX and Windows? Windows people are chained to a bench in the hold of a galleon, pulling their oars to the beat of a burly and unforgiving drummer.
    UNIX people are SCUBA divers.

  196. RPG... by buhatkj · · Score: 1

    I'm a windows/Linux coder who has been forced more and more to work in an as400/RPG/CL environment. Honestly It has been hard for me to let go of OO, to just accept that 50% of the meaning of every line of code is IMPLIED, and to give up on having any kind of useful GUI tools. Not to mention giving up on having an editor where you can USE your mouse. (websphere SORTA works...)
    It's really a whole different universe over in mainframe land, and frankly its just not where I wanna be.

    Honestly I'm pretty convinced the RPG language has a personal hatred for me, and all I can do now is hate it back, and get a better job ;-)

    for my part, when the mainframe way is run right, it can be efficient and slick, but without those rigid change controls, and with businesses pushing more and more for shorter devel times and more frequent changes, (at my company at least) we are rapidly finding the RPG/as400 platform unfit to our needs. The damn thing is just too hard to change and maintain...

    --
    sometimes, i wonder if i'm the only conservative on teh intarweb. ah well, back to mah hogs and warmongerin'....
  197. JCL by Mark+of+THE+CITY · · Score: 1

    The Computer History Museum had an event celebrating 40 years of System/360. Someone fessed up to being part of the JCL team, saying they weren't careful because they were in a hurry, and were sure it was an interim product, that something better would replace it.

    --
    The clearance system sounds logical. It is not. It is completely arbitrary. -- John Bolton
  198. "The Unix way" by QuestorTapes · · Score: 1

    > a great many people would argue that the "UNIX way" is FAR more elegant.

    This is one area where I feel the *nix techies are out of touch with a large part of the overall community.

    I would absolutely agree that at its -best-, the Unix way -is- far more elegant. The problem is that only a very small minority of what is coded for modern *nix platforms is -really- coded "the Unix way." Most of it is coded as poorly as most of what is coded for Windows.

    > UN*X is very uniform in how it works, just like a bucket of classic Lego bricks.

    Not so much. I agree that it -used- to be. Unfortunately, a lot of what is coded for *nix now is just about like the poorly written Windows stuff. It requires 'X.1.1' version of 'Y' library.

    "Oh, don't get version X.1.2; it not only won't work with X.1.0, but X.1.2 broke the hack we used in it. But you can download version X.1.1. No, X.1.1 is not available for download as a binary, you need to compile it. It's easy, just download this older version of gcc (newer version won't work), then edit the Perl script that builds the makefile. You need to change all the nonstandard paths to what's appropriate for your system. Oh, and you'll need to download the right version of these 17 libraries, too. That's it!" *

    My point is not "*nix sucks, Windows rulez!" It's that the perception that *nix is this nifty, consistent, beautifully designed lego set is only true for a small subset of a typical *nix installation. Once you get past that subset, a lot of the differences disappear, and *nix developers run into the same crap as on Windows.

    > Instead, you have an overly complex framework in the form of DDE/OLE1/OLE2/COM/DCOM that was
    >largely designed to accommodate disjointed, inconsistent interfaces between various components/applications.

    True. The only big advantage I see is that the COM object interfaces act as namespaces, and COM simplifies linkage. Every stupid thing being in the C/C++ global namespace is about as big an annoyance on *nix as Windows.

    --------------

    * as stupid as that sounds, it's real. I ran into this a month or so ago. Almost verbatim, except it wasn't a conversation. This data was mined from FAQs and forums, one error message at a time.

  199. Re:A Windows admin, Unix admin and a Mainframe adm by gentlewizard · · Score: 1

    In mainframe culture, that's called "best practices." :-)

  200. Does IT Measure Up? by lbmouse · · Score: 1

    The length of the penis?

    penis #1

    [ ] Unix
    [ ] Mainframe
    [ ] Windows

    penis #2

    [ ] Unix
    [ ] Mainframe
    [ ] Windows

    penis #3

    [ ] Unix
    [ ] Mainframe
    [ ] Windows

    ...you can google for your own links or use your imagination... I'm at the office.

  201. The funny part is... by WindBourne · · Score: 1

    that urine is normally sterile, while your taliwhacker (point to the movie buff) is anything but. SO just the holding of it makes your hands dirty. IOW, the mainframer gets it wrong; again. But they think that they are doing the right thing and will fight your for it right after trying to force you to shake hands with them.

    --
    I prefer the "u" in honour as it seems to be missing these days.
  202. The Mainframe's impact on Java by mparaz · · Score: 1

    The Mainframe's impact on Java is in the Java Message Service. JMS evolved from commercial MQ products that talk to the mainframe, but is now message queueing readibly accessible as open source.

  203. Worthington's Law by decepty · · Score: 1

    That's right, Bob. Listen to your friend, a person who makes more money than you is better than you, and therefore beyond criticism. This is called the Worthington Law [which reads "More Money = Better Than"] and it's used to gauge the value of human worth. Carl Espick, economist, and editor of Value Magazine. LINK

    --
    Be careful! Bears shouldn't consume large furry dogs.
  204. Yep by apankrat · · Score: 1

    Well done :)

    --
    3.243F6A8885A308D313
  205. Re:A Windows admin, Unix admin and a Mainframe adm by budgenator · · Score: 1

    The Linus admin washed his hand before he pissed; no telling what those windows guys caught in their Email. It's just a matter of what's more important!

    --
    Apocalypse Cancelled, Sorry, No Ticket Refunds
  206. Re:A Windows admin, Unix admin and a Mainframe adm by Anonymous Coward · · Score: 0

    So you are saying that someone took a shit, wiped it with their fingers, then went out and flushed a urinal just for fun?

  207. Differences::Similarities Mainframe:*NIX:Doze by ntrcessor · · Score: 1
    It seems no one has seriously addressed the question as posted: How to get the three groups of people working together, not how to get the three groups of OS/machines working together.

    To manage such a project takes a proliferate understanding of each culture. I don't profess to understand the windows bunch, other than there seems to be a reliance on GUI. When it comes to nuts and bolts: Mainframe world has lots of compiled languages (Cobol, JCL, etc.) These compiled languages are routinely "improved"?upon using assembly. So most Mainframers I know, are very nuts and bolts type people, who dig deeper than is required, so that if something goes wrong, they are prepared to fix it,and are by nature of the beast forced to follow more bureaucratic guidelines. This means, coding, and testing on paper, and forced "TEST" beds. More strict adherence to "best" programming practices, with only a couple of runs needed usually for debugging. Also, it is necessary to be more willing to share info with co-workers, lest your list be the same name as someone else's and you accidentally overwrite there's with yours. There is more of a "team" mentality in the Mainframe world because of the way a mainframe is designed to run.

    Mainframes require load libraries for just about everything. Each job, has to have a complete list of files in the main library.

    Unix: uses a hierarchal filesystem, in which direct references can be made to the filesystem because the way the OS libraries are set up.

    This allows a more interactive approach to the programming debugging process. This also makes it easier to make use of private copies of things, and less likely to "interfere" with a coworkers project. While "open source" promotes sharing of ideas, most Unix people still want to do as much as possible on their own to get credit for their hard work. While sharing of information is crucial here, it is not as required as it is in a mainframe world, so the unix person is not as disciplined in this area. He is more disciplined in follow up though as he is used to having the time to debug on the fly. This often though leads to longer project times, as the design phase is largely neglected by many (not all) unix people. I know, I'm one of them.

    My take on windows people: Concepts of design are restricted to what Microsoft tells them is the way to do things, and is already available as a pre-made programming module. Sharing of information is not vital, because it's ok to overwrite someone else's copy and it's the other persons fault if there program doesn't work when you overwrite their dll.

    Windows programmers I work with use the SEP field a lot. (Somebody Else's Problem). If the scope of the original project did not include the new feature request, or it doesn't already exist as an easily addable module, then it can't be done. MicroSoft's mantra is "don't share anything, unless a profit can be made only by us."

    True, there are lots of people out there who fit all 3 categories, 2 of the categories, and groups not covered. And these are stereotypes. But if you understand these stereo types, you can understand what kind of things to expect when trying to manage a diverse group as a single coherent team.

    Best scenario for a group project: Let the mainframer's specify final data format, and work with Unix Gurus on protocols.

    Unix gurus should define protocol and data exchange formats.

    Windows people should define UI.They are closer to the end users needs.

    Together they should work on how to piece it all together.

    Unix guys can be used to translate necessary info from mainframe talk to PC talk and back, since unix takes lots of cues from both worlds.

    The filesystem in Windows, is a strange beast. At best it is a flat representation of something that should be hierarchal. This also describes the programming mindset. Not because that is how the people work naturally, but because how they are forced to think to make the problem fit the platform.

    --
    "Brrr, it's a titty bit nipple out(BLUSH) err, I mean a little bit nippy out."--ME walking w/ some coeds on a cold day.
  208. 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.
  209. Re:Lean towards textual interfaces because of dens by Anonymous Coward · · Score: 0

    What a load of hoo-ha.
    If anything, a gui allows more controls and greater information density, nevermind grouping and context control MUCH easier than any of these ascii kludges.
    Is there any reason we couldn't use guis as a tier and script our backends? not really although it isn't the MS Way.
    But to somehow take that to mean that ascii ui's are good? gah! even if MS thinks I want buttons that are made of candy for some &^$&ing reason,

  210. Yes. No preemptive multitasking. by porky_pig_jr · · Score: 1

    At least at that time. If your program in a tight loop and doesn't do any concurrent I/O, it will continue runing forever. That's why every job on MVS had some implied CPU time limit. Once the job has exceeded that limit, the whole thing is cancelled.

  211. MVS is batch oriented. by porky_pig_jr · · Score: 1

    and I know something about MVS internals, probably more than you'll evern now.

    TSO? It's a hack. It has never been succesfully integrated into MVS. I've worked enough with TSO, by the way. TSO, as any interactive task, does lots of things dynamically, and this intefers with the whole spirit of MVS which attempts to preallocate resources before the job is scheduled for execution. TSO is nominally interactive system, but try to do to any extensive work on that.

    Oh well, going through the rest of your messages, let me explain you something. I've been working as Mainframe application programmer for a couple of years (mostly BAL/370, even if you believe there is no such thing), then for about 5 years as a systems programmer on MVS/XA, MVS/ESA, and VM/XA and VM/ESA, did some installation, configuration, performance and tuning, then switched to mostly VTAM and SNA for a couple of years, and then drifted to TCP/IP. I know MVS and VM internals quite well.

    You, on the other hand, is mostly full of it.

    1. Re:MVS is batch oriented. by Anonymous Coward · · Score: 0
      and I know something about MVS internals, probably more than you'll evern now
      Since you don't know me, that's a foolish assertion.

      If you truly knew anything about MVS internals, you'd realize that your claim that there was no "preemptive multitasking" was way out there.

      TSO? It's a hack.
      TSO was glued onto OS/360 in... what? MVT release 18? Can't remember. You're right that it wasn't a performer, it was accompanied by that ROLLIN/ROLLOUT hack (no virtual memory then) for the so-called time sharing regions, and ran on pitifully small machines by today's standards. It acquired an early reputation for being a pig, and I remember Tone Software referring to it as FATSO in its ads.

      But by the time MVS came around, TSO was no longer an option, time sharing "regions" were a thing of the past, ROLLIN/ROLLOUT had been obsoleted by conventional paging mechanisms, and TSO was well integrated into the system. SRM had a variety of controls to manage TSO dispatching priorities and performance periods, and deeply integrated facilities such as logical swap were invented to keep from overwhelming the paging subsystem.

      The original "hack", as you refer to it, doesn't exist as such and hasn't for years and years.

      whole spirit of MVS which attempts to preallocate resources before the job is scheduled for execution
      Sure, JCL nominates datasets ("files" for those of you not conversant with MVS nomenclature) for preallocation on a step or job basis. But whether the initiator calls allocation or SVC 99 (dynalloc) does, you still go through (essentially) the same code. And there are lots and lots of subsystems that use dynamic allocation -- CICS, IDMS, IMS, TMP, VTAM, TCPIP, even the lowly IDCAMS. You can't seriously suggest that JCL is the only way to allocate resources.
      mostly BAL/370, even if you believe there is no such thing.
      There is no such thing, and I don't know anybody that calls the language that. Present company excluded, of course.
      I know MVS and VM internals quite well.
      I won't quibble with you on VM details -- I don't know that system. But you should be careful about representing yourself as an expert in MVS.

      You deserved to be spanked for your post, but you didn't deserve the ad hominem remarks I made ("l33t", "idiot"). I apologize for those.

  212. Re:Mainframe is process-centred, *nix/windoze is n by sinewalker · · Score: 1
    Don't know if anyone'll read this as it's old now... but thanks for the nitpick -- I wasn't even concious of short-strifting *nix/win!

    It is true that MVS is not conjusive to play or experiment, though I do know of some old-timers who went to a lot of trouble to build themselves a sandbox. While it's no trouble to set up a JCL card and submit some job to JES (if you have some templates handy!), and there are some pretty powerful scripting/pattern crunching tools, like REXX, the pipe metaphore is missing so it's difficult to build "bottom-up" like a Lego set, as someone else pointed out.

    So yes, there is another difference in Mainframe culture...

    cheers.

    --
    “Our opponent is an alien starship packed with nuclear bombs. We have a protractor.” — Neal Stepnenso
  213. Three stages of life by Anonymous Coward · · Score: 0

    Windows: clickity-click lickity-split

    *nix: tapity-tap lickity-split

    Mainframe: ZZZZZZZ zzzzzzz.....

  214. Mainframers don't flush, you insensitive clod! by Anonymous Coward · · Score: 0

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

    Mainframers don't flush, they have hardware to handle it for them...

  215. Such crap by Anonymous Coward · · Score: 0

    I have worked in mainframe shops so full of hacks you have to watch your fingers lest they get chopped off.

  216. History of Windows by QuestorTapes · · Score: 1

    > 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.

    Not entirely. Most Windows developers aren't interested in other platforms, and get all their information from Microsoft documentation. This limits their exposure to the context that would allow them to see what MS created and what they didn't.

    Worse yet, many Windows developers have never read the actual documentation, but only the "study guides" for various certifications. So while developers who actually -read- Microsoft's COM documentation would have been aware of other sources like the Object Management Group's DCE specifications, and how they were used in Microsoft's design of COM, most haven't.

    Add to that the fact that most have never worked outside of Windows, and you have people with a very limited world view. They can parrot back a few things, but they don't have the broader experience to make use of a lot of the data.