• (cs)
    Alex Papadimoulis:

    After the project was over, Frank never saw or worked with the Java Wizard again.

    I'll take "Statements that are demonstrated to be false three paragraphs later" for $500, Alex.


  • (cs)

    It's amazing how many people are assumed to be "phenomenal programmers" simply because everyone knows they're "phenomenal programmers".

    The lesson here, of course, is that a reputation is for suckers.

  • (cs)

    This WTF is pretty self-documenting. Nobody in their right minds would call anyone "Wizard" if they had the slightest idea of what he was doing.

  • (cs)
    Alex Papadimoulis:

    ... he took a job as a PHP programmer with some "minor" Microsoft Access programming duties.

    Surprise surprise, "minor" meant "entirely" and "PHP programming" meant "a platform we'd eventually like to switch to."


    I don't think that job description would have fooled me for a minute. You very rarely see PHP and MS Access working together, or even doing unrelated tasks in the same company. Kind of like a mosque hiring an Imam who will have some "minor" baptisms to do.

    Now I just set back and wait for all the contradictory evidence to roll in... :)
  • azaris (unregistered)

    The Java Wizard wears a silver tie with a red shirt. WTF?

  • my name is missing (unregistered) in reply to azaris

    He was also the Fortran wizard, and the Cobol wizard, and the Lisp wizard, ... and back in the dark ages he was the Wizard wizard.

    I think I work with him now.


  • (cs)

    Is "Advanced Technologies department" a euphemism for playing with stuff and never actually producing code that someone can use to do something useful?  Someone probably caught on to that after a while. 

  • (cs) in reply to azaris
    Anonymous:

    The real WTF is that a ***PROGRAMMER*** was impeccably dressed.  I've seen you fuckers at the user groups, and i feel blessed when  you use deoderant or wear a shirt.

    You have to do something to compensate if you are completely full of bs and suck at your job.  And sometimes it works.

  • Michael Nixon (unregistered) in reply to R.Flowers

    Captcha: awesomeness
    Which is exactly what PHP and MS Access working together are... Yes, they can interact. Yes, there are library methods for doing so. (It might be easier than writing a script to pull everything from an Access db and put the data into a mySql db; I don't know, I did the latter, as it was a 1-time thing. The former is certainly more useful for ongoing access.)

    Your mosque example still rings true, however.

    -Michael

  • (cs) in reply to CodeReaper
    CodeReaper:

    It's amazing how many people are assumed to be "phenomenal programmers" simply because everyone knows they're "phenomenal programmers".



    It's all relative to the level of knowledge of those who are evaluating said "programmer."  Go back in time, and neanderthals would think you were a god if you brought a lighter with you (assuming TSA didn't confiscate it).

    Likewise, a computer-illiterate person thinks anyone who can successfully use a mouse is some kind of technical genius.  This is how, during the dot-com boom, teenagers were able to display nothing more than basic HTML and Javascript skills and "earn" technical management positions.
  • (cs)

    OK, ignoring the apparently overrated talents of this guy, I have to admire the way that he's built up something almost like a cult around himself.

    Am I alone in now planning to set myself up in a similar manner? I think that it might help to start wearing a robe and crown or something. Perhaps bribe a few cheap people to act as disciples for a short while until it catches on.

    From now on I'll be known as "The Sultan of SQL" to my underlings.

  • TickleMeElmo (unregistered)

    What exactly is the WTF here? The long variable names? It's more verbose than usual, but that's not a WTF. That's considered good style by many, especially if (as in this case) the code is often inherited by other people.

  • (cs) in reply to RayS

    RayS:
    OK, ignoring the apparently overrated talents of this guy, I have to admire the way that he's built up something almost like a cult around himself.

    Am I alone in now planning to set myself up in a similar manner? I think that it might help to start wearing a robe and crown or something. Perhaps bribe a few cheap people to act as disciples for a short while until it catches on.

    From now on I'll be known as "The Sultan of SQL" to my underlings.

    I already enjoy that experience of a hush falling over the room when I enter.....

    (followed by snickers and a lot of pointing)

  • JR (unregistered) in reply to RayS

    RayS:
    OK, ignoring the apparently overrated talents of this guy, I have to admire the way that he's built up something almost like a cult around himself.

    Am I alone in now planning to set myself up in a similar manner? I think that it might help to start wearing a robe and crown or something. Perhaps bribe a few cheap people to act as disciples for a short while until it catches on.

    From now on I'll be known as "The Sultan of SQL" to my underlings.

    More like Viceroy of VB.

  • (cs)

    That's hardly wtf code. I would love to have overly verbose java wizard over the perl wizard. Anyone can read the java wizard's code. Of course nothing pisses off the perl wizard more than writing understandable code. Everywhere I've seen this sort of thing the "Java Wizard" is the guy doing all the work, while an entire staff has built up around him to do bugfixes and small product customizations. This goes back to the mythical man month. You've got the one guy who's extremely productive (can even be productive while writing descriptive variable names) and an entire department dedicated to working on the stuff he can't get around to (label changes, branding, etc). The wtf here is that there are projects that have kick off meetings that are standing room only. I'd start looking for another job.

  • Anonymous Coward (unregistered)
    boolean hasPermissionsRequiredToInitailizeClosingStep =
    currentInteractiveUser.HasSpecificPermission
    (
    SpecificApplicationPermissions.InitailizeClosingStep
    );

    I found the WTF! He spelt Initialize wrong.
  • wyz (unregistered) in reply to TickleMeElmo

    Anonymous:
    What exactly is the WTF here? The long variable names? It's more verbose than usual, but that's not a WTF. That's considered good style by many, especially if (as in this case) the code is often inherited by other people.

    Likewise, what is the WTF? Entertaining, but no obvious WTF. 

    Why was the wizrad with an Access project? Is the VBA/Access the wizard's work? Had he become a manager?

  • (cs)

    The Java Wizard is actually the guy who kills off Harry Potter in the final book. He teaches Potter a spell that is so verbose, the boy wizard can't cast it quickly enough when they have the final fight to the death.

  • (cs)

    This isn't that big of a WTF if it is one at all. Making a programmer that is well versed in Java (or any other real OO language) program in VB(6/A) is like making a car mechanic use a swiss army knife to replace a transmission. His variables aren't that big of a WTF if they are one at all. Each boolean is prefixed with has, which when read one can observe that it is most likely a boolean variable. The variable names describe what they are used for without getting into the why either. The code is very self documenting. I can't really blame someone for creating horrible VB(6/A) code when they come from an OO background.... Like I said before: mechanic, swiss army knife, transmission...

  • (cs) in reply to Anonymous Coward
    Anonymous:
    boolean hasPermissionsRequiredToInitailizeClosingStep =
    currentInteractiveUser.HasSpecificPermission
    (
    SpecificApplicationPermissions.InitailizeClosingStep
    );

    I found the WTF! He spelt Initialize wrong.
    At least he was consistently wrong, though.
  • (cs) in reply to Anonymous Coward
    Anonymous:
    I found the WTF! He spelt Initialize wrong.

    Obviously that's a joke, but have you ever worked with somebody who consistently spells words wrong?
    It's surprisingly annoying, especially when in an environment that does not have code completion.

  • actionscripted (unregistered) in reply to Xarium

    Code completion? I don't think my Vim has that...

    Captcha: Zork. (awesome)

  • (cs) in reply to Digitalbath
    Anonymous:

    The real WTF is that a ***PROGRAMMER*** was impeccably dressed.  I've seen you fuckers at the user groups, and i feel blessed when  you use deoderant or wear a shirt.

    Hey, I'd be glad to use a "deoderant", but I can't figure out what that is.

  • (cs) in reply to Xarium

    Xarium:
    Anonymous:
    I found the WTF! He spelt Initialize wrong.

    Obviously that's a joke, but have you ever worked with somebody who consistently spells words wrong?
    It's surprisingly annoying, especially when in an environment that does not have code completion.

    Code Completion is how he consistantly spells it wrong

  • (cs) in reply to actionscripted

    For code completion in vim try CTRL+P and CRTL+N It has been around for a few years now.

  • Captcha: Zork. (unregistered) in reply to actionscripted
    Anonymous:
    Code completion? I don't think my Vim has that...

    Captcha: Zork. (awesome)


    If it doesn't you're doing it wrong. vim does have code completion. :)
  • (cs) in reply to Digitalbath
    Anonymous:

    The real WTF is that a ***PROGRAMMER*** was impeccably dressed.  I've seen you fuckers at the user groups, and i feel blessed when  you use deoderant or wear a shirt.

    Never trust a pogrammer in a tie.

     

     

    Ever.

     

  • LoPo (unregistered) in reply to azaris
    Anonymous:
    The Java Wizard wears a silver tie with a red shirt. WTF?


    He's "that" good.
  • (cs) in reply to actionscripted
    Anonymous:
    Code completion? I don't think my Vim has that...

    Did you try ":help completion" or some of the available add-on scripts?

  • (cs) in reply to Xarium

    you know what's really bad? there's part of the microsoft windows printer driver API that's misspelled consistently. Look up PRINTPROVIDOR and the functions that use said structure.

  • (cs) in reply to mratzloff

    I'm about 99% sure Alex is the one who spelled it wrong.


    Edit: That was to the Initialize comment. Grr.

  • Fury (unregistered) in reply to azaris
    Anonymous:
    The Java Wizard wears a silver tie with a red shirt. WTF?


    It's brushed aluminum. High performance, lightweight and does not wrinkle. Every wizard knows that!
  • Kenton (unregistered)

    I assume when Alex says "functional code", what he really means is "procedural code".  There's a huge difference...

  • (cs) in reply to Jojosh_the_Pi
    Jojosh_the_Pi:
    The Java Wizard is actually the guy who kills off Harry Potter in the final book. He teaches Potter a spell that is so verbose, the boy wizard can't cast it quickly enough when they have the final fight to the death.


    Reminds me of the pooping sessions in that COOL show Dragonball Z.


    GOKU: You killed all my friends! I'm so upset I could just level-up! AAAARRNNGGGGGGGG (charges)

    FRIEZA: oh shit he's charging

    GOKU: RRNNNGGGNNGNGGNGERRRRRNNGGG

    FRIEZA: ...

    GOKU: NNGGGRRRNGGRRRNGGG

    FRIEZA: wtf

    GOKU: (gets blasted)
  • (cs) in reply to TickleMeElmo
    Anonymous:
    What exactly is the WTF here? The long variable names? It's more verbose than usual, but that's not a WTF. That's considered good style by many, especially if (as in this case) the code is often inherited by other people.


    ExcessivelyLongCamelCasedIdentifierNames AreExactlyWhy IRarelyFindItFunToReadJavaCodeAtTimes. (AlsoWhy MyOwnWritingWiki NowadaysUses MediaWiki. =) MoreSo IfThereAreALotOfThose AndTheyAllReadAlmostLikeSame SoYouDontKnow WhatTheHeckIsGoingOn. IAlsoHate StuffWithConfusingNames.
  • (cs)

    I wrote this before lunch, but the forum didn't let me post it.

    Fregas:


    Yeah, was this WTF supposed to get me off?  Where's the punchline?  So he had some ridiculously long method and class names.  So he sucked at VBA for a while.

    The real WTF is that a PROGRAMMER was impeccably dressed.  I've seen you fuckers at the user groups, and i feel blessed when  you use deoderant or wear a shirt.

    Seriously, lets go back to some code WTFs...

    There's no dress code where I work. I wear slacks, a nice shirt - with an undershirt - and nice, comfortable shoes. (And yes, for the literalists, I also wear underwear, socks, a belt, two rings, and an ID badge.) That's because I want to portray a presentable, knowledgeable, and professional image. Dress like a homeless guy and you'll be respected like a homeless guy.

    Frankly, if someone can't figure out how to use deodorant or how to get their belt to match their shoes I have no faith in their ability use a debugger or work out the finer points of an interface.

    The WTF in the code is rather subtle. It goes beyond the silly names (which are long, yes, but better than x, u, etc.

    If he wants to learn a new language (like VBA) that's cool. Some of the crap I've written in VBA when I was learning it (on a workterm) was awful. I'm better at it now. When you're learning, you can make mistakes. I don't expect my toddler to use the toilet every time. The same thing applies here - when you learn a new language, expect to see crap on the floor sometimes. You wipe it up, learn from the mistake, and don't get embarrased about it.

    He just doesn't understand any of the following:
    1."Self-documenting" code.
    2. Javadocs.
    3. Code comments.

    And yet, he is the "Java Wizard". Which means that he's got good people skills, but when it comes right down to it, he just can't do it. He can make code that works and runs and probably meets the requirements, but it's not elegant and it's not simple. That probably means he failed out of school after taking a few courses. His line would be "the courses were just too slow for me; I wasn't learning anything." Let's change his code to simple names (I am NOT saying these are good names.):

    // Get Current Interactive User's Permissions for
    //  CompleteClosingStep, HasSpecificPermission,
    //  and CompleteApprovalStep
    bool foo = user.okay( permit.CompleteClosingStep );
    bool bar = user.okay( permit.InitailizeClosingStep );
    bool tar = user.okay( permit.CompleteApprovalStep );

    // Determine if Current Interactive User is authorized
    // for the Renegotiation Action, which requires that
    // the user has CompleteClosingStep, HasSpecificPermission,
    // and CompleteApprovalStep
    bool yes = foo && bar && tar;

    Let the class madness be acceptable. What he's got is three booleans created expressly for the purpose of setting another boolean - that is not in the "user" object. What this says to me is that he's not even totally clear on the class concept, and he's using the huge names to obfuscate his code while disguising it as "self-documenting".

    It also says that it's lunchtime.

  • (cs)
    Anonymous:
    I wrote this class the other day.  Is the class name too long for you?  Should I have just used ACTSCT?

    <font size="2">public abstract class AbstractCorpTransactionalSpringContextTests extends
            AbstractTransactionalSpringContextTests {

        /* (non-Javadoc)
         * @see org.springframework.test.AbstractDependencyInjectionSpringContextTests#getConfigLocations()
         */
        protected String[] getConfigLocations() {
        }

    }

    </font>

    Here is the name of a class in the app I'm working on:
    AddSecurityRolesOverrideAffAccessServiceAgreementCmd
    And it's test
    AddSecurityRolesOverrideAffAccessServiceAgreementCmdTest

  • (cs) in reply to JR
    Anonymous:

    RayS:
    OK, ignoring the apparently overrated talents of this guy, I have to admire the way that he's built up something almost like a cult around himself.

    Am I alone in now planning to set myself up in a similar manner? I think that it might help to start wearing a robe and crown or something. Perhaps bribe a few cheap people to act as disciples for a short while until it catches on.

    From now on I'll be known as "The Sultan of SQL" to my underlings.

    More like Viceroy of VB.


    Can I be "The Embedded Emperor"? I've even got a hat.

    Please don't ask why I have that hat.
  • (cs) in reply to dhromed

    Wizards like that should be required to wear a big pointy hat that says "WIZZARD" on it. Just to warn people of who they're dealing with.

    Tomorrow's installment: The JavaScript Wizard. shudder

  • (cs) in reply to WWWWolf

    WWWWolf:
    Anonymous:
    What exactly is the WTF here? The long variable names? It's more verbose than usual, but that's not a WTF. That's considered good style by many, especially if (as in this case) the code is often inherited by other people.


    ExcessivelyLongCamelCasedIdentifierNames AreExactlyWhy IRarelyFindItFunToReadJavaCodeAtTimes. (AlsoWhy MyOwnWritingWiki NowadaysUses MediaWiki. =) MoreSo IfThereAreALotOfThose AndTheyAllReadAlmostLikeSame SoYouDontKnow WhatTheHeckIsGoingOn. IAlsoHate StuffWithConfusingNames.

    Right On!

    What is up with the trend of younger programmers to try name everything with a sentence!

    Keep the names as short as possible. I'm trying to read code, not a novel. If more clarity is needed, write a frikin' comment!

    I long for the days of the 8-charactor limit on names...

    PS_1: InsteadOfCamelCasing, lets_all_try_to_use_the_underscore. Much_easier_to_read!

    PS_2: And Just because spaces are technically allowed nowadays doesn't mean you have to use them.

    Sheeeesh!

     

  • AnonymousNoelCoward (unregistered) in reply to GrandmasterB
    GrandmasterB:
    Anonymous:

    The real WTF is that a ***PROGRAMMER*** was impeccably dressed.  I've seen you fuckers at the user groups, and i feel blessed when  you use deoderant or wear a shirt.

    Never trust a pogrammer in a tie.

     

     

    Ever.

    I wear a tie every day, and my kung fu is unstoppable. Some of us just have the audacity to clean up well and it doesn't get in the way of technical skill.

     

    Deal.

  • AnonymousNoelCoward (unregistered) in reply to rmg66
    rmg66:

    What is up with the trend of younger programmers to try name everything with a sentence!

    Keep the names as short as possible. I'm trying to read code, not a novel. If more clarity is needed, write a frikin' comment!

    I long for the days of the 8-charactor limit on names...

     

    Rht on! I hte bng abl to undrstd wht Im rdng.  Ths chrtrs cst valbl ln sp.

  • XMLord (unregistered)

    I gues he was more like a Java wiZZard...

  • XMLord (unregistered) in reply to Arancaytar
    Arancaytar:
    Wizards like that should be required to wear a big pointy hat that says "WIZZARD" on it. Just to warn people of who they're dealing with.

    Tomorrow's installment: The JavaScript Wizard. *shudder*


    Oh damm it. I guess now all I have to say is:

    Frist!
  • AbstraktMethodz (unregistered)

    IMO the WTF is this:

    hasPermissionsRequiredToCompleteSigningStep

    SpecificApplicationPermissions

    currentInteractiveUser

    how often are permissions not required, or specific, or the current user not interactive?  long names are find if they're needed.

    CAPTCHA: java

  • Avdi (unregistered)

    I'm missing the WTF here.  So he used long, descriptive variable names?  This is generally considered a Good Thing, and one of the benefits of working with modern languages which have allow long identifiers.

  • Dazed (unregistered) in reply to themagni
    themagni:
    Can I be "The Embedded Emperor"? I've even got a hat.

    Please don't ask why I have that hat.

    I'll be The Lord High Everything Else.

    (Why do you have that hat?)

  • SomeCoder (unregistered)

    At first I was going to say "Where's the WTF?"  This one is kind of weak...

    However, after thinking about it for a bit, I think I know what the real WTF is...

    Anyone who commands such respect as this "Java Wizard" was given is either one of two things: a cocky, moron who doesn't know a compiler from their own asshole or someone who should quit his job immediately and begin writing programs that can cure cancer.

    Yes... cure cancer.

    I've worked at companies where we had a "Fill-in-the-blank Wizard".  He was awed just like he could walk on water but when it really came down to it, he was tremendously overpaid, produced almost no useable code, and acted like a cocky ass.  These types are almost always laid off after a few years because management usually catches on that the 20 year old kid still in college produces more usable code for much less money than the "Wizard"

    In my opinion there are those who deserve respect.  But almost nobody deserves the kind of respect this guy was given.  Looking at his code, I fail to see the "wizard" in it.  It's got overly verbose names (not necessarily a bad thing) and doesn't really accomplish that much.  Granted, we're only being shown a snippet, but based on this, I'd say I'm the Java GOD.  And the last time I really programmed in Java was like 4 years ago...

    So overall, not the best WTF, but it's still decent.  And it's a new pattern that I've seen elsewhere (but not on here): the overconfident Wizard pattern.

  • (cs) in reply to AbstraktMethodz
    Anonymous:

    IMO the WTF is this:

    hasPermissionsRequiredToCompleteSigningStep

    SpecificApplicationPermissions

    currentInteractiveUser

    how often are permissions not required, or specific, or the current user not interactive?  long names are find if they're needed.

    CAPTCHA: java



    Good point, however you cannot assume that Alex did not change those variable names. Most likely he changed them to "protect the guilty".
  • rxd (unregistered) in reply to Avdi

    The WTF is not in the long names, although that can be annoying too. Look at the logic of that code. Ever heard of short-circuiting of logical operations? This code completely suppresses it. And yes, it deserves the WTF.

Leave a comment on “The Java Wizard”

Log In or post as a guest

Replying to comment #:

« Return to Article