• Computers
  • Understanding what the bakers are up against.
2015/10/11 11:25:55
jatoth
Great article, written obviously by a long time programmer.
Next time we think about bashing the bakers, we should re-read it and reflect on just what they are attempting to do!
I've been coding for 34 years, and this guy has nailed it.
 

http://www.stilldrinking.org/programming-sucks
 
 
2015/10/11 12:51:33
fireberd
I worked as a Telemetry Processor programmer at NASA on the Apollo project.  It was all Octal machine language. 
I went on to be a Network Manager, not any calmer but didn't have to answer to "when will the program be ready" (I need it last week). 
2015/10/11 14:37:34
TheMaartian
I started on octal assembler, as well (PDP-8e; had several; used to run the neutrino beam line at Fermilab). 3-pass paper tape assembler. 1 MB 14" hard drive. TED editor. 32K x 12 of core memory. Woo hoo!
 
Here's a little program I kept from back in the day:
 
//
// Warning: do not compile; unpredictable results!
//
// Subject: *** Top Secret Microsoft Code ***
// Project: Version - Windows 95
//
// Microsoft marketing strategy (MARKET.EXE)
//
#include nothing.h /* MS Network Connectivity library (for the lawyers) */
#define say(x) lie(x)
#define computeruser ALL_WANT_TO_BUY_OUR_BUGWARE
#define next_year soon
#define the_product_is_ready_to_ship another_beta_version
void main()
{
    if (latest_window_version > one_month_old)
    {
        if (there_are_still_bugs)
            market(bugfix);
        if (sales_drop_below_certain_point)
            raise(rumors_about_a_new_bugless_version);
    }
    while (everyone_chats_about_new_version)
    {
        make_false_promise(it_will_be_multitasking);
        if (rumors_grow_wilder)
            make_false_promise(it_will_be_plug_n_play);
        if (rumors_grow_even_wilder)
        {
            market_time = ripe;
            say("It will be ready in one month");
            order(programmers, stop_fixing_bugs_in_old_version);
            order(programmers, start_brainstorming_about_new_version);
            order(marketing, permission_to_spread_nonsense);
            vaporware = TRUE;
            break;
        }
    }
    switch (nasty_questions_by_the_worldpress)
    {
        case WHEN_WILL_IT_BE_READY:
            say("It will be ready in ", today+30, "days. We're just testing.");
            break;
        case WILL_THIS_PLUG_AND_PLAY_THING_WORK:
            say("Yes it will work.");
            ask(programmers, why_does_it_not_work);
            pretend(there_is_no_problem);
            break;
        case WHAT_ARE_MINIMAL_HARDWARE_REQUIREMENTS:
            say("It will run on an 80386 with lightning speed \
                    due to its 32-bit architecture.");
            inform(INTEL, "Pentium sales will rise skyhigh.");
            inform(SAMSUNG, "Start a new memory chip plant 'cause all \
                    those customers will need at least 32 MB.");
            inform(QUANTUM, "Thanks to our fatware, your sales will triple.");
            get_big_bonus(INTEL, SAMSUNG, QUANTUM);
            break;
        case DOES_MICROSOFT_HAVE_TOO_MUCH_INFLUENCE:
            say("Oh no, we're just here to make a better world for everyone.");
            register(journalist, Big_Bill_Book);
            when (time_is_right)
            {
                arrest(journalist);
                brainwash(journalist);
                when (journalist_says_windows95_is_bugfree)
                {
                    order(journalist, "Write a nice objective article.");
                    release(journalist);
                }
            }
            break;
    }
    while (vaporware)
    {
        ++introduction_date; /* delay */
        if (no_one_believes_there_will_be_a_release_anymore)
            break;
        say("It will be ready in ", today+30, " days.");
    }
    release(beta_version);
    while (everyone_is_dumb_enough_to_buy_our_bugware)
    {
        bills_bank_account += 150 * megabucks;
        release(new_and_improved_beta_version);
        if (customers_report_installation_problems)
        {
            say("That is a hardware problem, not a software problem.");
            if (smart_customer_says_but_you_promised_plug_n_play)
            {
                ignore(customer);
                order(microsoft_intelligence_agency, "Watch this bastard.");
            }
        }
        if (bills_bank_account > skyhigh && bills_marriage > two_years)
        {
            divorce(woman_that_was_beautiful_when_I_married_her);
            wave(dollars, at_lusty_young_chicks);
            marry(young_blond_virgin_with_big_tits);
            if (tits_start_to_droop)
                dump(young_blond_former_virgin);
        }
        if (there_is_a_competing_company)
        {
            steal(their_ideas);
            accuse(company, stealing_our_ideas);
            hire(lots_of_lawyers); /* in process.h */
            wait(until_company_cannot_afford_another_lawsuit);
            buy_out(company);
        }
    }
    /* Now everyone realizes that we sell bugware */
    /* and they're all mad as hell. */
    order(plastic_surgeon, make_bill_look_like_poor_bastard);
    buy(nice_little_island);
    hire(harem);
    laugh_at(everyone, for_buying_another_unfinished_version);
}
 
void bugfix()
{
    charge(a_lot_of_money);
    if (customer_says_he_does_not_want_to_pay_for_bugfix)
        say("It's not a bugfix. It's a new version.");
    if (customer_still_complains)
    {
        ignore(customer);
        register(customer, Big_Bill_Book);
        /* we'll get him when everyone's using Billware!!! */
    }
}
2015/10/11 14:42:12
TheMaartian
Also, I've posted this before, but can't find it. Priceless, IMO.
 
 
THE PROGRAMMER'S QUICK GUIDE TO THE LANGUAGES
 
The proliferation of modern programming languages (all of which seem to have stolen countless features from one another) sometimes makes it difficult to remember what language you're currently using. This handy reference is offered as a public service to help programmers who find themselves in such a dilemma.
 
The Task: Shoot yourself in the foot.
 
C: You shoot yourself in the foot.
 
C++: You accidentally create a dozen instances of yourself and shoot them all in the foot. Providing emergency medical assistance is impossible since you can't tell which are bitwise copies and which are just pointing at others and saying, "That's me, over there."
 
FORTRAN: You shoot yourself in each toe, iteratively, until you run out of toes, then you read in the next foot and repeat. If you run out of bullets, you continue with the attempts to shoot yourself anyways because you have no exception-handling capability.
 
Pascal: The compiler won't let you shoot yourself in the foot.
 
Ada: After correctly packing your foot, you attempt to concurrently load the gun, pull the trigger, scream, and shoot yourself in the foot. When you try, however, you discover you can't because your foot is of the wrong type.
 
COBOL: Using a COLT 45 HANDGUN, AIM gun at LEG.FOOT, THEN place ARM.HAND.FINGER on HANDGUN.TRIGGER and SQUEEZE. THEN return HANDGUN to HOLSTER. CHECK whether shoelace needs to be re-tied.
 
LISP: You shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds...
 
FORTH: Foot in yourself shoot.
 
Prolog: You tell your program that you want to be shot in the foot. The program figures out how to do it, but the syntax doesn't permit it to explain it to you.
 
BASIC: Shoot yourself in the foot with a water pistol. On large systems, continue until entire lower body is waterlogged.
 
Visual Basic: You'll really only appear to have shot yourself in the foot, but you'll have had so much fun doing it that you won't care.
 
HyperTalk: Put the first bullet of gun into foot left of leg of you. Answer the result.
 
Motif: You spend days writing a UIL description of your foot, the bullet, its trajectory, and the intricate scrollwork on the ivory handles of the gun. When you finally get around to pulling the trigger, the gun jams.
 
APL: You shoot yourself in the foot, then spend all day figuring out how to do it in fewer characters.
 
SNOBOL: If you succeed, shoot yourself in the left foot. If you fail, shoot yourself in the right foot.
 
Unix:
 
 % ls
 foot.c foot.h foot.o toe.c toe.o
 % rm * .o
 rm:.o no such file or directory
 % ls
 %
 
Concurrent Euclid: You shoot yourself in somebody else's foot.
 
370 JCL: You send your foot down to MIS and include a 400-page document explaining exactly how you want it to be shot. Three years later, your foot comes back deep-fried.
 
Paradox: Not only can you shoot yourself in the foot, your users can, too.
 
Access: You try to point the gun at your foot, but it shoots holes in all your Borland distribution diskettes instead.
 
Revelation: You're sure you're going to be able to shoot yourself in the foot, just as soon as you figure out what all these nifty little bullet-thingies are for.
 
Assembler: You try to shoot yourself in the foot, only to discover you must first invent the gun, the bullet, the trigger, and your foot.
 
Modula2: After realizing that you can't actually accomplish anything in this language, you shoot yourself in the head.
 
2015/10/11 17:47:07
BobF
I worked as a ****** for *** years, from **** to ****, at ****.  That was nearly ** years ago, but I still can't even use my real name on ******** applications.
 
2015/10/11 17:47:17
BobF
Cool story
 
 
2015/10/16 19:53:19
townstra
That was good.  I code in SAS 5 days a week and need a break in my free time to record music.  I am amazed at the speed and quality of updates Cakewalk produces. 
2015/10/17 16:00:51
bapu
BobF
I worked as a ****** for *** years, from **** to ****, at ****.  That was nearly ** years ago, but I still can't even use my real name on ******** applications.
 


Ewe two?
2015/10/21 09:54:32
Wookiee
My first programming experience was with hand punched paper tape, which had to be sent to the Main frame about 25 miles away.  The Main Frame had a stunning 1Kbyte of memory, our programs took a week to go through the cycle of being sent, run and the results returned.  Sometime later I went through the lessons of Fortran, COBOL, Basic, TransBasic, Pascal, C etc.  Consequently I fully sympathise with anyone who write code.

My experience of writing code basically consisted of 99% putting badly written code right, 1% wiping the blood from my brow having spent some more time than necessary explaining (=banging head against wall) to the sales and marketing team you should ask us before you say yes.
2015/10/25 09:26:03
bitflipper
"...all your snowflakes are urine and you can't even find the cat"
 
This obtuse analogy probably won't help a non-programmer understand "what the Bakers are up against".
 
Spending an afternoon reading the Coffee House might, though.
12
© 2024 APG vNext Commercial Version 5.1

Use My Existing Forum Account

Use My Social Media Account