Eclipse is not for compiling or testing code



  • New job, team, project. I'm told we develop in Eclipse, use Hudson for scheduled auto-checkout/build, ant and Eclipse. Ok, no problem.

    I connect to the repository and check out everything on the list. Unfortunately, there are more errors than lines of code. What? You don't check in the project or classpath files? Ok, so I figure out all the dependencies and get the thing to build.

    Then they tell me that they have an environment set up where each user has their own deployment directory and runs the product on their own port. Ok, no big deal. I go to set up using the debugger on the remote application, and am told that we do NOT use eclipse for debugging, or compiling, or testing. We deploy the code into our own little slice of heaven, run it and then review the log statements to see what worked/didn't work.

    But, but, but... NO! Our procedures are that eclipse is just an editor, like notepad. Do NOT use it to debug the code! So to debug, I type the code into eclipse, then use ant to build and install the jars, then run it without the benefit of a debugger and pray it works?

    And the conversation went downhill from there.

    At least I can work whatever hours I want; it'll be nice going home early during the summer. Then....



  •  Did they say why they do this? You know, apart from "it's the procedure"?

    Also I take it you're going to be using Eclipse for debugging when they're not looking?



  • @snoofle said:

    And the conversation went downhill from there.
     

    Down from there?  Isn't that already pretty close to the bottom?


  • Discourse touched me in a no-no place

    @snoofle said:

    New job, team, project.
    You're not having much luck, are you?


  • 🚽 Regular

    @snoofle said:

    At least I can work whatever hours I want; it'll be nice going home early during the summer. Then....
     

    Well, then secretly use a debugger during off hours when nobody is there. Easy.



  • If not Eclipse, then how about NetBeans? I endorse it, and it doesn't have a contraband debugger.



  •  @PJH said:

    @snoofle said:
    New job, team, project.
    You're not having much luck, are you?

    I do seem to pick winners.... [un]fortunately, I did this exact same project at my previous job, so I know what works and what won't, so they saw me as perfect for the position. On the itnerview, they asked me if I knew how to use eclipse. It seemed a harmless enough way of telling me this is the IDE we use. Who would think to ask if they actually used it for anything more than just a text editor?

    The explanation I was given re not using *any* debugger is that the debugger sometimes hangs, which causes the db (oracle) to hang. Yeah, sure, it's eclipse. It's not the code that was written and debugged by simply reading log statements or anything.

    OTOH, what they've asked me to do in the next few months is straight line coding, and will take me about 2 hours to code - if it compiles, I absolutely guarantee it'll work (just adding a parameter to a stack of function calls). The DBA's have to do all the real work, and while it would normally be done by me, in this case I think I'll let THEM be responsible for all the changes to the db.

    In the few weeks I've been here, 13 people have resigned (all of whom have between 3-4 years here) - yeah that can't be good. However, they're furiously interviewing to replace them, and hire more on top of that.



  • ♿ (Parody)

    @snoofle said:

    The explanation I was given re not using any debugger is that the debugger sometimes hangs, which causes the db (oracle) to hang. Yeah, sure, it's eclipse. It's not the code that was written and debugged by simply reading log statements or anything.

    Thats...imaginatively stupid. Hey, if you don't cause the DEV DB instance (oh, god, they're not a developmestuction shop are they?) to hang now and then, you're obviously not doing very much.


  • 🚽 Regular

     @snoofle said:

    The explanation I was given re not using *any* debugger is that the debugger sometimes hangs, which causes the db (oracle) to hang.

    $50 says they don't know what a debugger is and they're confusing hitting a breakpoint with "hanging" and the db hanging is something completely irrelevant.

    In any case, I would just throw in the suggestion that you use some mock db interfacing object for testing purposes so that oracle doesn't "hang". Sure, they'll probably veto it, but at least you tried, right?



  • @RHuckster said:

     @snoofle said:

    The explanation I was given re not using any debugger is that the debugger sometimes hangs, which causes the db (oracle) to hang.

    $50 says they don't know what a debugger is and they're confusing hitting a breakpoint with "hanging" and the db hanging is something completely irrelevant.

    In any case, I would just throw in the suggestion that you use some mock db interfacing object for testing purposes so that oracle doesn't "hang". Sure, they'll probably veto it, but at least you tried, right?

    I don't think so, as I've had some cases in which a debugger would cause things to hang if the application used multithreading. Of course it all came back to poolry written code... a thread expected some other specific thread to respond within some time and time-outs were mishandled.

    I've had my share of "we don't use that built-in feature from the technology stack we chose because it's fucked" too. In a previous job the techies didn't trust the garbage collector. Thus every type had to handle its own destruction, which in the end only caused more bugs. And in another job five years ago my boss had a personal hatred for .NET's DateTime struct. Cheers for the not-invented-here syndrome!



  •  This sounds like the procedure of some Oracle developers we recently had on-site... Are you at Oracle or an Oracle-related shop?



  • Are you telling me i shouldn't have debugged with eclipse those applications for year while they were connected to our critical production oracle server? (Well, actually, our only oracle server) ? The only time i saw it really ahng up was when an admin deleted it's database file by mistake :)



  • Are all developers testing against the same database?  If so, then yes, an unfinished transaction could hold a lock that would prevent other instances from proceeding.  But that would be a really stupid way to develop code.



  • Oh i've run a project where we code in C. It was my resit semester, me a 4th year student together with 3 second year students. Of course i was massive outnumbered, so getting any of the engineering techniques i learned in the past 2 yeas in practice was impossible. One of these guys even skipped the first year for reasons that are beyond me.

    We used eclipse to write our code. However these guys swore to makefile to compile there code. Not to mention complicated stuff like memory management was too difficult for these guys. Somewhere around the first day of the project eclipse failed to even build the project. There was some makefile magic going around that made the thing compile.

    Going forwards 2 weeks, i got eclipse to compile the code, using different compiler parameters. Debugging was still impossible for some reason. At this point it almost made me cry, obviouse i was the only one that even needed a debugger "You can add printf to your code right?". And also the only one that spend half his time fixing eclipse setting nobody else used.

    Beside, i was now getting random crashes when i ran the application from eclipse, but building with the makefile it was still solid stable.

    Not to mention the project was evolving into a beast where every C file included every possible header in the project. All so called modules knew all other modules, all module's wrote (should be-private) vars in other module's. And we where still slugging forwards.

    Around the end of the project,  i figured out you could check for memory-leaks with tools like valgrind. Fixing 2 dozen of memory leaks later (including one that let us leak 5kb/msg send to the server) the eclipse build started to be more stable, and after fiddling a bit more with compiler settings, i could actualy debug the code. Some more searching showed there was a buffer overflow, or freed memory (or both not 100% sure) somewhere in the code that was still used. This made the eclipse build die horrible, but the makefile build didn't mind it if you kept using this memory address.



  • Surely the real WTF is management mandating what editor the developers must use in the first place? Or is that relatively common in enormous corporations?


  • 🚽 Regular

    @kc0a said:

    Are all developers testing against the same database?  If so, then yes, an unfinished transaction could hold a lock that would prevent other instances from proceeding.  But that would be a really stupid way to develop code.
     

    Seriously. The biggest problem with that is if something goes awry during testing, you don't immediately know if it was due to your test, or someone else's test they may have made at the same time... not to mention if you ever had to do schema changes there's no way to do that on a shared database without stepping on everyone else's toes.



  • @bertram said:

    Surely the real WTF is management mandating what editor the developers must use in the first place? Or is that relatively common in enormous corporations?

    In many corporations the use of a given editor is mandatory because it does more than editing. Different IDE's make different auto-generated code.



  • @bertram said:

    Surely the real WTF is management mandating what editor the developers must use in the first place? Or is that relatively common in enormous corporations?
    Yes to both, but don't call me Shirley.



  • @locallunatic said:

    @snoofle said:

    And the conversation went downhill from there.
     

    Down from there?  Isn't that already pretty close to the bottom?

     

    Try debugging an embedded device where you have to burn the software onto an EEPROM and you don't have the hardware debugging equipment. Ancient stuff, but some are still around. So no, that isn't the bottom.



  • @pitchingchris said:

    @locallunatic said:

    @snoofle said:

    And the conversation went downhill from there.
     

    Down from there?  Isn't that already pretty close to the bottom?

    Try debugging an embedded device where you have to burn the software onto an EEPROM and you don't have the hardware debugging equipment. Ancient stuff, but some are still around. So no, that isn't the bottom.

     

    Well yes debugging can obviously go down from "run it and check logs", I meant more of the conversation going down from there as after that there really isn't a reason to keep talking to someone who takes procedure so seriously.



  •  Snoofle. I've been reading your posts over the years and I've come to the decision that you are either really really bad at picking jobs or you live in the middle of freaken' nowhere.in alaska's wildlife perserve on a tree with a satelite internet connection with only one company willing to hire you.



  •  @locallunatic said:

    @pitchingchris said:

    @locallunatic said:

    @snoofle said:

    And the conversation went downhill from there.
     

    Down from there?  Isn't that already pretty close to the bottom?

    Try debugging an embedded device where you have to burn the software onto an EEPROM and you don't have the hardware debugging equipment. Ancient stuff, but some are still around. So no, that isn't the bottom.

     

    Well yes debugging can obviously go down from "run it and check logs", I meant more of the conversation going down from there as after that there really isn't a reason to keep talking to someone who takes procedure so seriously.

    I worked in an environment where debugging was just impossible. There was no debugger for what we were running that could be set up without weeks of fiddling. O well it is what it is. Its probably the same reason why instead of running a web server, we run an embedded web server with... lets say all features of a modern web server disabled. So if I want to deploy CSS or JS code tweaks I need to run my build (1-3 minutes) and restart server (3-5 minutes). So any code change will trigger this. Makes any form of web development a nightmare excursion into the abysal anals of the underworld's toilet.

     


Log in to reply