Forgot your password?
typodupeerror
Programming Software IT Technology Hardware

Ultimate Software Developer Setup? 757

Posted by Cliff
from the coding-heaven dept.
wicked coding asks: "I'm a professional software engineer and I'm planning on building my ultimate setup for longer hours coding and hacking, but I'm kinda stuck when it comes with what to choose. What hardware would you choose to use, if money was no object? Obviously there may be some constraints on space. Leave no stone unturned, I'm looking for suggestions on desks, seating, lighting, keyboard and pointing device, monitors and even the computer system itself. Ideally it needs to be as comfortable and ergonomic as possible. What software would you choose to use, if the intended targets were Java and OO PHP5? Currently I'm using Eclipse on Gentoo. Is there a more suitable IDE that works with most popular OSS (and not so OSS) languages including XML, SQL, CSS, PHP, Perl, Java, and C/C++?"
This discussion has been archived. No new comments can be posted.

Ultimate Software Developer Setup?

Comments Filter:
  • 3 monitors (Score:5, Informative)

    by winkydink (650484) * <sv.dude@gmail.com> on Thursday September 15, 2005 @05:34PM (#13571026) Homepage Journal
    One facing straight ahead and two angling into your peripheral vision. Not only do you get a ton of real-estate, but you never have to worry about getting that even-tanned look on your face. :)
    • Re:3 monitors (Score:3, Insightful)

      by ChrisMaple (607946)
      I want a multimonitor setup, but I have a caution here. I currently have a TV running most of the day to the right of the computer monitor. I find that if I shift the direction of my eyes instead of turning my head to watch the TV, my right eye feels sore by the end of the day. Pay close attention to how you feel.
    • by doshell (757915) on Thursday September 15, 2005 @06:22PM (#13571491)

      One facing straight ahead and two angling into your peripheral vision. Not only do you get a ton of real-estate, but you never have to worry about getting that even-tanned look on your face. :)

      Only on Slashdot would this post be modded as informative!

    • by RKBA (622932) * on Thursday September 15, 2005 @08:15PM (#13572208)
      I also have three monitors, but mine are positioned differently.

      The one on my far left is a laptop that I use mainly as a music box (one of its USB ports is connected via an external converter to a Hi-Fi preamp and thus to my main stereo system so I don't have to listen to the crappy audio from the laptop's builtin audio system, and the laptop is also connected to an external USB 250GB hard drive containing about 50GB of MP3 recordings of my favorite music.), and to run background computing tasks on - factoring algorithms mostly).

      The middle monitor sits on my adjustable computer monitor table next to my desk and an $700 all leather and wood very comfortable office chair..., which I never use anymore now that I've installed a third "monitor."

      My third "monitor" is a 4x5 feet front projection screen mounted on the far wall about 8 feet in front of my all leather Barkolounger recliner (Note: Here's something only Slashdotters could appreciate: When I went to purchase my recliner, I told the sales clerk that I wanted a color of leather that would match the color of my computer case! She said that was a first for her, but managed to match it perfectly :-).

      Anyhow, a high resolution (1280x1024) video projector is securely mounted near the ceiling above and to the right of my easy chair so that with my wireless keyboard and mouse, I can do my programming and web-surfing from the comfort of my Barcolounger! I don't even need to wear my computer glasses anymore. I'm sure everyone on Slashdot who wears reading glasses knows what I mean by "computer glasses" but for the rest of you, they are glasses with a prescription such that they focus at about arms length (which is how far away my regular computer monitor normally is from my eyes) instead of up closer like normal reading glasses do. I don't need any glasses at all to use my four by five foot computer "monitor" however, and movies look great on it! :-)

      As for software development tools, I highly recommend either the free Actel Libero® Integrated Design Environment (IDE) [actel.com] development tools, or one of the Lattice ispLEVER [latticesemi.com] packages. Seriously folks, Verilog HDL or SystemC are just as much programming languages as C/C++ or Java, etc. As FPGA's get larger and cheaper, I expect to see more and more functions that are traditionally performed on old-fashioned sequential computers like your desktop computer, and will be embedded into special purposes devices rather than general purpose computers. As a bona-fide retired 35+ years of experience computer programmer, I think I am qualified to discourage anyone from entering the field of traditional computer programming. I would instead encourage young people these days to study VLSI design and learn at least one VLSI design language if you want to be a programmer, or preferably to instead study something like biological (ie genetic) engineering which is the "next big thing."

  • Paper and pencil (Score:5, Insightful)

    by El Cabri (13930) on Thursday September 15, 2005 @05:34PM (#13571028) Journal
    If you think you're going to produce better code by splurging $$$ on a shiny desk, maybe you should give up programming.

    The accessories you need are a pile of paper and some good pencils, with which you can design your code nicely before you even fire up your IDE.
    • by CupBeEmpty (720791) on Thursday September 15, 2005 @05:43PM (#13571128) Homepage
      Well that is a little unfair. There are a lot of considerations that while they may not make your code any better, will sure make you feel a lot more comfortable while you do it. Being cursed with being the son of a hand surgeon I know a lot of useless fact about repetative stress injuries and carpal tunnel syndrome. Almost all kind of injuries like that are fixed by ergonmic improvements ranging from getting a track ball, to having the right chair.

      And what good are paper and pencils if you are crammed in some corner on a small desk. I always study/work better when I have lots of space. Its not a high $$$ solution but I have my computer/workspace on two 6' long folding tables in an L shape. That leaves plenty of room for the very useful dual monitor setup (which I find is a real boone for my productivity) and plenty of table real estate for books, notebooks, manuals, etc. etc.

      Basically I understand that as you get older and it starts to be a pain to sit in a folding chair at a cramped desk it helps a lot to have a nice setup (which is going to cost a littel extra).

      My biggest advice is plenty of space, a good chair, and a second work area like an armchair or couch if you need to take a break from the screen for a while.
      • Comfort (Score:4, Insightful)

        by russellh (547685) on Thursday September 15, 2005 @10:49PM (#13573047) Homepage
        I don't know... I hear you on the ergonomic things, but then I don't think comfort, in general, is conducive to good programming. Having the right desk, the right light, the right chair, the right mouse, etc. - IMHO these are all distractions. and of course if you have no injuries or other physical limitations, etc.

        When you need to do good work, you need to eat healthy, lay off the caffeine and alcohol, and get the sleep you need. and ideally, get some exercise. Get out and walk or do pullups or something while you think. That doesn't cost money. Then you can do great work anywhere.
        • by willCode4Beer.com (783783) on Friday September 16, 2005 @08:05AM (#13575171) Homepage Journal
          Are you trying to stop all software development worldwide?

          No caffeine?
          No alcohol?

          Devs need their caffeine to keep going all day, and their alcohol to get sleep. This is how software is made.
        • Re:Comfort (Score:3, Insightful)

          by sean23007 (143364)
          Comfort is not nearly as much of a distraction as a lack of comfort. For example, which is more distracting?:

          1) Sitting in a crappy folding chair, staring at a 15" monitor with a 60Hz refresh rate, and using a mouse without a scroll wheel.
          2) Sitting in a nice office chair which is adjusted to your height, staring at a 19"+ LCD screen, and using a nice mouse with a scroll wheel and several buttons.

          You'll find that you're much more distracted by that crick in your neck and the constant blinking in scenario
    • vi is all you need
      • by Bastian (66383) on Thursday September 15, 2005 @06:01PM (#13571300)
        Bah. All you can do with vi is code, so you're still stuck with using a stunning array of separate applications. My life is too short for a complicated mess like that.

        Now with emacs, you can have an editor, an interpeter, a compiler, a linker, a refactorer, a debugger, a CVS/SVN client, a machine virtualizer, an object browser, a documentation browser, and a game of Tetris. All in one convenient, bite-size package.
      • vi is all you need

        Nothing you can code but what you know

        Nothing you can type that doesn't load

        Nothing you can write that doesn't look like a clean compile

        It's Easy (dum dah dum dah dum dah dee)

        All you need is VI (LAH DAH Dah dah dah dee)...

        Thank you John, and I hope we passed the audition.

    • Sounds like the usual exaggerated UML designing. To be honest, while "drawing" the structures is of course useful, people either tend to skip that completely or they tend to design an extremely complicated mess by putting every single variable into the UML graph. The latter is often done by self-proclaimed professionals and is then shown as "THE solution".
    • Big-ass whiteboard (Score:5, Insightful)

      by GGardner (97375) on Thursday September 15, 2005 @06:00PM (#13571296)
      Paper and pencil are nice, but for some things, the big-ass whiteboard is really handy.
    • Re:Paper and pencil (Score:3, Interesting)

      by JabberWokky (19442)
      Brilliant. Now, let's put your off-topic point aside and focus on the question... *after* he's done designing on paper, and he "fires up his IDE", what environment should he have? For that matter, what environment should he have when he's working with paper and pencils.

      FWIW, I care mostly about lighting and airflow. I have two blinds on my window so I can open it in the morning, close it in the early afternoon and lower shades over the blinds when the low hanging sun shines directly into the window. I

    • by Tony Hoyle (11698) <tmh@nodomain.org> on Thursday September 15, 2005 @06:25PM (#13571514) Homepage
      Paper? When there's a perfectly good computer on the desk?

      Fire up notepad, or even word (assuming a Windows box) and do it there.. or forget that and just prototype it - I find it a lot more efficient to write a version, junk it then write the real version (sometimes I'll write 4 or 5 versions before deciding on a solution) - since it's difficult to do the more complex cases on paper.
    • by nwbvt (768631)
      Great. Now using nothing but that pencil and paper, please debug this poorly documented code, turn a picture made by your boss using Microsoft Paintbrush into a fully functional UI, and draw up some UML diagrams for this new feature we are thinking about adding. Oh, and I need it all by end of business today.

      Idealism is great until you get into the real world and work on real projects.

    • by Eric Savage (28245) on Thursday September 15, 2005 @06:38PM (#13571611) Homepage
      And if you think the environment doesn't affect the quality and amount of the work, please make sure you never have a say in designing where people work. I have a nice triple monitor setup at home with an aeron and good speakers and all that, and I focus much better than when I'm onsite at a client sharing a cube with someone and coding on an underpowered laptop. What usually happens is I try all day to get something done, and then go home and redo it or at least fix it. It's also much easier to code and focus for longer periods in a comfortable environment.

      As far as pen and paper, that was all well and good 10 years ago, but there is no comparison any more to modern tools and a sketchpad. A whiteboard I would agree with because its collaborative, but if you're going solo, the only reason why pen and paper would be more productive is that the power is out or you don't know how to use the tools out there very well.
  • IDE (Score:3, Interesting)

    by Dancing Primate (798703) on Thursday September 15, 2005 @05:34PM (#13571036)
    I find that vi has great support for every language I use.
    • Re:IDE (Score:3, Interesting)

      I still use "vi" everywhere. I install gvim> [vim.org] on all my non-Unix machines and use Windows Gvim to do all my editing on windows.

      Since most of my programming is in C++ and Intel Assembly language, I can't help the "professional sofware engineer" who posed the question. I imagine if I were an XML "programmer" as he indicated (whatever that is!), I'd want something that shows XML tag mismatches. GVIM tries, but I suspect emacs would do a better job.

  • Coupla Peripherals (Score:3, Informative)

    by Southpaw018 (793465) * on Thursday September 15, 2005 @05:35PM (#13571045) Journal
    Monitor: Dell 2005 FPW 20.1" Widescreen LCD [dell.com]
    Totally awesome. Run it at its native resolution, of course, and no blurriness. I don't even get ghosting in FPSs. The monitor is beautiful and rock solid.

    Mouse: Logitech MX610 [logitech.com]
    Awesome mouse.
  • Chair (Score:3, Informative)

    by boscodegama (652475) on Thursday September 15, 2005 @05:36PM (#13571054)
  • by TechyImmigrant (175943) * on Thursday September 15, 2005 @05:36PM (#13571056) Journal
    You need to prioritize. First worry about your fingers, eyes and arse

    1) Get a slick 1600x1200 or better LCD screen
    2) Get more screens to broaden your field of view
    3) Spend $100+ on a really good keyboard. I choose Happy Hacking.
    4) Spend $500+ on a really good office chair (or $5 from a failed startup)

    With this as a starting point, you can feel physically comfortable, freeing you to address your mental confort.
    • You leave off a mouse. Good. Now, once you have the good keyboard, like a model M, and the good office chair, you will need a PC. I reccomend an MMX Pentium. This is modern enough to allow you to impliment and test optimised SIMD versions of your algorithms, but not so fast as to encourage really sloppy code. For an IDE, you will need vi on your favorite *nix. (BSD, Linux, whatever, so long as it is really vi, not some vim).

      You will also need an SGI, an Alpha, an HPPA box, some of which should be SMP,
    • Silence is Golden (Score:5, Insightful)

      by MarkWPiper (604760) on Friday September 16, 2005 @12:45AM (#13573549) Homepage
      Having been in constant pursuit of the perfect setup, I have found that silence is golden. The importance of a very quiet computer is critical for my own concentration. I'd put it above having a good keyboard. However, I've found it frustrating to find adequate components at reasonable prices. Although sites like SilentPC do a good job of sorting out what is worthwhile, I simply wish component manufacturers would consider noise levels as a very high priority!

      The thing about this: I think our minds are distracted somewhat unconsciously. Every time the hard drive whirs back up, I'm more likely to become distracted, and more likely to let something slip, but it took me a long time before I recognized this pattern.

  • by teromajusa (445906) on Thursday September 15, 2005 @05:37PM (#13571068)
    Stop fucking around reading Slashdot instead of coding and you won't have to spend all those long hours at your computer ;)
  • by nihilogos (87025) on Thursday September 15, 2005 @05:38PM (#13571073)
    Is my personal favourite.
    • While I appreciate the sentiment, and I do enjoy spending time sitting outside in the sun, I can't think of worse setup for good, productive work.

      Laptop keyboards are too small. Laptop screens are too small. The glare from the sun makes reading the screen difficult. Finding a good, comfortable, ergonomic place to sit for hours at a time outisde in the sun is going to be pretty difficult. All the stuff going on around you is going to be a distraction. Just for starters.

      A laptop and sunshine might be good
  • SciTE (Score:3, Informative)

    by Roguelazer (606927) <RoguelazerNO@SPAMgmail.com> on Thursday September 15, 2005 @05:39PM (#13571080) Homepage Journal
    Really. I do everything using SciTE, except the stuff I do with vim.
  • I've never regretted learning Emacs, though eventually I switched to XEmacs (mainly because Emacs seemed to have trouble highlighting Python syntax correctly).

    My pointing device of choice is an Evoluent VerticalMouse. It doesn't force your wrist to twist, which is a Good Thing.

    I'm too poor to afford a good chair (since they typically will run you > $1000 + 1 arm + 1 leg), but get one with good lower-back support.

    -Michael
  • What hardware? (Score:3, Insightful)

    by chris_eineke (634570) on Thursday September 15, 2005 @05:39PM (#13571086) Homepage Journal
    What hardware would you choose to use, if money was no object?

    More people on your team...
  • Virtual machines (Score:3, Insightful)

    by McSpew (316871) on Thursday September 15, 2005 @05:39PM (#13571092)

    The one thing I'd count on for development is using virtual machines to host test different target platforms. If you'll be developing primarily for one platform/environment, you can still use VMs to simulate the different machines of the production environment for testing purposes--clients and servers.

    Personally, I like VMWare, but I'm in the Windows world. If you're going to be developing and distributing exclusively on and for Linux, you could use something like Xen.

    Regardless, I'm hooked on virtual machines, and highly recommend using them for your work.

  • And here you go. (Score:5, Interesting)

    by MrAnnoyanceToYou (654053) <`dylan' `at' `dylanbrams.com'> on Thursday September 15, 2005 @05:40PM (#13571098) Homepage Journal
    Location: A beach in Northern California, slightly south of San Fran.
    Power Generation: This Honda Generator [hondapowerequipment.com] for reliability and gas efficiency, 20hrs of code at a time. (note: after viewing the power consumption of this solution, you may require a second generation unit or higher model number)
    Computers: 2 Mac Mini's - one for compile runing Gentoo, the other dual boot Red Hat / Os X... Cluttering up your beach space is simply unacceptable.
    Second Computer set: some low power-drain and Form Factored PIV for testing that 'old and busted' windows crud people occasionally run
    Display: 2x The DLA-QX1g [jvc.com] - Why do monitors (old and busted) when you can have the new hotness of a projection screen with 1365x1024 resolution. It's a no brainer. Remember to get a widescreen lens for the projector, and an active screen to go with as well - these things are going to need to produce a LOT of lumens to compete with the sun.
    A 4 port KVM switch
    Input: Microsoft Natural keyboard w/ mouse, wireless versions. Gonna have to be both, although you might want a trackball that works in midair.... MS is still pretty much the best at putting together an awesome and non-stress creating keyboard / mouse combo. Alternatively, you could combine keyboard and chair I guess. [kinesis-ergo.com] That would mean, with the screen and the KVS switching hotkeys, etc, you wouldn't NEED a desk, although you might want a second screen and projector for a computer to be used as a notepad hooked up to one of the keyboard inputs on the KVM but not the video. Note: Sand might get into your chair, I'd be down with a yoga mat or chaise lounge, and the wireless keyboard.

    • Power Generation: This Honda Generator for reliability and gas efficiency, 20hrs of code at a time. (note: after viewing the power consumption of this solution, you may require a second generation unit or higher model number)

      Why not get a Prius? Then you can drive your generator home with you.

  • by kurosawdust (654754) on Thursday September 15, 2005 @05:40PM (#13571102)
    I'm looking for suggestions on desks, seating, lighting, keyboard and pointing device, monitors and even the computer system itself.

    Donald Knuth works standing up, and so should you.

    You might also want to consider investing in a full-sized pipe organ.

  • Stick with Eclipse. (Score:5, Informative)

    by Vellmont (569020) on Thursday September 15, 2005 @05:40PM (#13571104) Homepage
    Eclipse has a huge future. Many IDE makers are abandoning their own IDEs and making Eclipse plugins. There's already good free plugins for C/C++, excellent inexpensive JSP plugins, and tons of others that I've seen but not used. I have to believe there's some good XML plugins as well. Since Eclipse is cross platform, you don't have to worry about being stuck to one OS. Stick with Eclipse unless you have some special need that Eclipse doesn't do.
  • RAM (Score:5, Insightful)

    by dubl-u (51156) * <2523987012@@@pota...to> on Thursday September 15, 2005 @05:40PM (#13571105)
    A lot of things you mention I don't care much about. But I recommend ridiculous amounts of RAM. Even if you get more than you think you'll need, you'll find a use for it.

    My latest giant RAM sink is VMWare. I run a virtual copy of Windows for browser testing, and a couple more for virtual servers. Virtual servers are much better for testing than real ones: when you're done trying something out, you can revert the virtual disk back to a known clean configuration.
    • Re:RAM (Score:4, Informative)

      by buraianto (841292) on Thursday September 15, 2005 @06:11PM (#13571384)
      Amen to the use of VMWare. (Or VirtualPC in my case.) This will save you tons of time on testing. No uninstalling and wondering if everything is gone, or if it left that one file or one registry key somewhere. (Yes, I do dev on Windows.) No time wasted reimaging a test box. And, as you're on a budget, you only need one computer. Just splurge and make it fast, with tons of ram and a RAID set up and you're good to go. Putting your VirtualPC or VMWare image on a RAID drive makes a big difference, as does adding that ram.
  • by Crimsane (815761) <clarke@nullfs.com> on Thursday September 15, 2005 @05:40PM (#13571108) Homepage
    Vimi, vidi, vici

    I'll leave the translation up to you.
  • Simple... (Score:3, Informative)

    by CoolVibe (11466) on Thursday September 15, 2005 @05:40PM (#13571111) Journal
    You need:

    - A fridge within reach
    - A lot of beer in that fridge
    - Caffeine I.V. or just a lot of 'dew
    - AMD64 box with gobs of mem and lotsa Ghz, dual core, more cpu's is better
    - Gobs of diskspace so you can multiboot many operating systems
    - A comfy chair
    - Multiple monitors
    - Dual head video card
    - A simple PCI video card for that third head
    - An IBM type M keyboard, or a Sun type 5 hacked to work on a normal x86-like system
    - A lock on the door to keep the SO and/or cats out
    - A 60 GB ipod hooked up to a dock for auditory pleasure
    - A large desk to put all that crap on
    - A shell
    - vi(m)

    I guess that's about it :)
  • by reality-bytes (119275) on Thursday September 15, 2005 @05:42PM (#13571121) Homepage
    I'd recommend just taking a trip to your local computer store and trying out the best they have to offer in terms of keyboards and mice.

    If you have extra pennies to spend, consider more than two monitors (and their associated video cards). There is a real sense of 'space' when you can spread your GUI based apps over a number of displays. (Personally I think it helps reduce percieved 'stress'.)

    Also consider getting the most powerful system you can afford. Having a window open slowly is just depressing. Fire as much raw CPU power/speedy disk/ram as you can at the problem and app/window opening should be faster than turning the pages in a book.

    Last, but most importantly, make sure the system is quiet. Theres nothing worse than sitting next to the desktop equivalent of a Boeing 747 all day.
  • I personally think that the two most important things you could possibly have are a good back supporting chair and good lighting. After doing many coding projects at Uni I found I had quite a sore back from the crappy chair I was using. Also a low watt bulb increased my eye strain. Personally I think a supportive chair will be a much better purchase than anything else. These [justnaturalstuff.co.uk] are apparantly very good, although I have never tried one for extended periods of time.
  • watching TV, drinking coffee and pop. It's a great setup.
  • First, ergonomically, you want something that works for you. Go to Office depot, office max and sit in a lot of chairs, and try a bunch of desks. Find out if a keyboard tray or keyboard on desk setup is more comfortable for you. Try out all the ergonomic keyboards and find what feels nice to you. I recommend the microsoft keyboards, but it's a very personal choice.

    Second, for software, definitely buy yourself a copy of IntelliJ IDEA from jetbrains. It's another step ahead of eclipse, and there is prett
  • It's nice to have an old-school PC monochrome card and mono monitor plugged in so you can run SoftIce on a separate screen.
  • by frenchs (42465) on Thursday September 15, 2005 @05:45PM (#13571151) Homepage
    Ikea Jerker set to standing height. I guess I just like to work standing up, I think better, and it forces me to take occasional breaks.

    15" G4 Powerbook. Portability is a factor for me, so I need something I can take with me

    24" Dell Widescreen LCD.
    Kensington Expertmouse (trackball)
    Micro$oft Natural Elite Keyboard (the curved one)

    This setup works for me, but I understand it's not ideal for everybody.

    -s
  • by abes (82351) on Thursday September 15, 2005 @05:47PM (#13571173) Homepage
    It seems weird that you are looking for new things -- what's wrong with what you are currently using? While I can understand wanting to tweak some of your tools, if you've been coding for some time now, you probably know your habits best by now.

    Some obvious things that come to mind:
    (1) For programming, it's especially nice to be able to have at least two editing windows open side by side. The Dell 2005FP is great for this -- I've owned mine for about half a year, and still marvel at it. I have trouble using smaller monitors now.
    (2) Editors are really a religious preference. Emacs isn't perfect, and there are a lot of things you can find wrong with it, but personally it's still the best editor out there. I've tried using the newer graphical editors, but in the end I always go back. The languages you suggested are probably going to be supported by most editors. However, just because the editor supports a language, doesn't mean it won't support it well. There are some very small things that many editors get wrong (especially with C++, I've found), which is one of the reasons I've stuck with emacs for so long.
    (3) Mice is yet another religious preference. Personally, my favourite mice continue to be Microsoft's Explorers. I recently bought the cheaper Logitech version, and still wishing I didn't just pay more money. If only M$ could stick with the HW business...
    (4) I've tried a plethora of keyboards. The flat no-nonsense keyboard ended up being my favourite. I tried one of the ergonomic weird shape keyboards for about a week, and maybe I was doing something wrong, but it started to hurt my wrists (never had that problem before). Even if I was somehow typing wrong, in the end, you really should just use what works for you. While you might find someone raving about some new product etc., it just might not work for how you operate.

    Your best approach is to try to slowly fade new things in. I suspect if you take someone's advice and get a bunch of random 'highly rate' applicances, you will be unhappy in the end.
  • Hey a bunch of developers on every platform known to humanity, what is the "ultimate" way to develop.

    Here's a script:

    CPPFanBoyMFC "I think Visual C++ is the best. I love MFC with a mighty passion!"

    CPPFanBoySDK "No way dude, I use Visual C++ with the straight up SDK and roll my own classes as needed."

    CPPKDEFanBoy "Visual Studio blows compared to KDevelop."

    CPPMakeFanBoy "When I was a kid, I used to write make files and use Emacs and gdb from the console, and I liked it, so I still do."

    CPPViFanBoy "Yeah, but, vi is better than emacs, everyone knows that"

    AssemblyFanBoy "90% of you C/C++ guys talking about getting close probably don't even know the calling convention of your functions. Hop along IDE cripples."

    VB6FanBoy "Assembly? I can do in two minutes that which takes you two weeks to write. VB 6.0 is the bomb, but MS ruined it with VB.NET"

    WinFanBoyD "C# makes the rest of you obsolete..."

    SunFanBoy "Too bad you stole it from Java."

    PythonFanBoy "Java, Blah! Your weak languages do not enforce indenting..."

    DelphiFanBoy "All your strongly typing innovations are belong to us."

    Perl "While you guys were arguing, I just finished it all in one line of code... oh wait... where does that greedy matching operator go. I'll see you tomorrow."

    Any more?
    • PythonFanboy "Ni! Ni! Ni!"

      MaleBolgeFanBoy "Hey, would someone help me write a parser to get this hello world thing going?"

      JavaScriptFanBoy "Lookit the preeetty coooloors"

      FlashFanBoy "My colors are prittier!"

      XMLFanBoy "Hey, management approved my project. Start working on better buzzwords, plebians."
    • PHPFanBoy: "Typing? What's a 'typing'? What good is a language that forces you to distinguish between objects and booleans?"

      RubyFanboy: "Even worse, most languages distinguish between objects and... and... things that... aren't objects. Crazy idea."

      HQ9+Fanboy: "H!"
  • by c0d3h4x0r (604141) on Thursday September 15, 2005 @05:50PM (#13571208) Homepage Journal
    A multiple-monitor setup using LCD flat panel displays should top the list. I can't begin to describe how much easier it is to do development work on a multi-monitor system, and I can tell you that if you work for a full day with an LCD (running via DVI connector, of course, not RGB/SVGA) side-by-side with even a good ViewSonic CRT, you'll be forever sold on the LCD panels because the brightness, contrast, color accuracy, and crispness are all so much better.

    RAM and disk are the two biggest bottlenecks to development, in my experience. So the next most important thing is memory and storage. Get at least 2GB of RAM, and then get yourself set up with a RAID array with plenty of storage (200GB or more), running in a RAID mode that provides for full automatic recovery if a drive fails. Many motherboards now natively support RAID-mirror configurations (two drives) using SATA drives.

    The RAID array will drastically improve disk performance. Plus, you'll never have to worry about backup/recovery again. The RAID array by definition always keeps itself "backed up" by its built-in redundancy, and recovery is as simple as popping in a new hard drive and letting the array rebuild to the new drive.

    • by malraid (592373) on Thursday September 15, 2005 @06:17PM (#13571437)
      Repeat after me: RAID != BACKUP.

      I have a CVS machine, I backup every day the whole CVS repository, onto another server and my laptop. If you change something, and weeks later you find that it screw something else, CVS (or other versioning system) is a life-saver, I need more than the latest source code I'm working on. You cannot get this with a RAID. As for storage, I use Eclipse, which is 200 MB in my install, my source code after about one year still fits in a floppy disk (including all of the database schemas). So I wouldn't say that storage is a big need. RAM on the other hand, yes. I used to work on a two monitor set-up, then I got a Mac, and have been very comfortable with one monitor and Expose. But yes, a dual head setup can be nice.
  • by Fahrvergnuugen (700293) on Thursday September 15, 2005 @05:54PM (#13571234) Homepage
    If money were no object, that's what my setup would consist of. A dual G5 and a 30" cinema display (2560 x 1600 resolution!). The apple pro keyboard is sufficient but I would upgrade to a laser mouse of some sort (Maybe one of the new 5 button bluetooth intelli laser mice...) Between OSX and Virtual PC you can test your code in both Windows and OSX. OSX also has x11 if you need it. You mention PHP so I'm guessing you're doing a lot of web development... with this setup you can test every browser Apache AND IIS, Windows AND *nix. I'd buy a license of Zend Studio for PHP development as well as a copy of BBedit (I use both, BBedit has some indispensable features). As for the physical environment, you can't go wrong with one of these: http://www.sittingmachine.com/ [sittingmachine.com] Pretty much the most comfortable desk chair ever.
  • by Illserve (56215) on Thursday September 15, 2005 @05:55PM (#13571247)
    Seriously though, it sounds like you're trying too hard.

    Don't build a desk that's comfortable enough to spend huge amounts of time at, it's not healthy physically or emotionally. If you plan to waste your hours at your desk, you'll do it, whether or not it's good for your career.

  • by switcha (551514) on Thursday September 15, 2005 @05:55PM (#13571250)
    when you could have just said:

    "Flame me and then brag about your setup."

  • Visual Studio 2005 (Score:4, Interesting)

    by Physicles (829132) on Thursday September 15, 2005 @05:58PM (#13571269)
    I just ordered Beta 2 a month ago (http://www.getthebetas.com/ [getthebetas.com] ), and I've fallen in love with it. It's like Microsoft was joking when they released previous versions of VS. For C/C++, you can't beat it. Granted, I've never been an Emacs or vi person, but IntelliSense is vastly improved with this edition and will save you quite a few keystrokes.

    It also contains the best XML editor I've ever used (Earlier this year I was working on an XML-heavy project, so I tried about 10 different ones).
  • by TheOtherAgentM (700696) on Thursday September 15, 2005 @05:58PM (#13571270)
    I want to know who this guy is working for and if there are any openings.
  • Kit (Score:3, Informative)

    by benow (671946) on Thursday September 15, 2005 @05:59PM (#13571281) Homepage Journal
    I'm slowly building up some good kit:
    • herman miller aeron [hermanmiller.com] - nice chair, comfortable for many hours
    • datahand proII split keyboard/mouse [datahand.com] - nice ergo keyboard, no arm strain moving to mouse and back. mouse fine for programming use, but for extended image work/CAD, would not be sensitive enough. They take a while to learn. Personal has most of the required features, and costs less. Pricing is very good right now. A bit sensitive to dust, nobody can operate your computer.
    • chair arm mounts for datahands [datahand.com] - split keyboard mounted on arms is very nice. Always in fine ergo position, even with feet up on desk.
    • dual opteron 246HE, 3G RAM, tyan k8we, with newer nvidia vidcard. nice board after the week of configuration.
    • gentoo gnu/linux - excellent footing, great pkg mgmt, fine community.. requires a bit of initial configuration
    • eclipse - best IDE there is, with plugins, even better. Need a beast of a box to run it well.
    • video
      1. current - nv twinview (2560x1024) over 17"crt and 19" lcd. LCD is Samsung 191T+. Nice, but low resolution (1280x1024)
      2. future - 19" LCD with WUXGA (1920x1200) LCD [cox.net] based homebrew projector on good screen in dimmed room. Should be fine for coding and good for movies/sdtv/hdtv.

    All the above are no substitute for hard work, research and forethought, of course. But you'll go better for longer.

  • Books (Score:5, Interesting)

    by Nuttles1 (578165) on Thursday September 15, 2005 @05:59PM (#13571287)
    I found that reading and knowing the right people has much more to do with my productivity as a programmer. Fancy keyboards and the such only help if for some reason a piece of equipment is causing you pain. Multiple monitors and stuff like that are nice, don't get me wrong but I would rather save my C notes to buy technical books. From working with many programmers, I think they should do the same thing. Another thing that I saw mentioned was buying a 500 dollar chair. Can we say overkill? Personnally I can't code very often for more than an hour straight without wanting to get up and take a walk or something. A 50 dollar chair is confortable enough for me. I think a lot of this fancy equipment is more of an image thing, if you have a 500 dollar chair, 3 19 inch LCDs and a blazing fast PC then one seems to think they are cooler. I am a professional programmer, I get paid to think and produce. Give me the extra cash as a bonus, I wills stick with my 400 dell, 50 dollar chair and 17 inch lcd.
    • Maybe it's because my behind lacks the padding the average programmer has, but I really really like my Humanscale Freedom [humanscale.com] chair. I can sit in this thing for a LOT longer than I can with a cheap chair before getting uncomfortable. If you don't have such problems then you probably won't want to spend the $1K but if you do it's a godsend. (Yes, I know, get up, walk around, but...) I like it much better than the Aeron (I think I'm too skinny for those).

      The rest of my furniture is cheap stuff though. A coup
  • Intellij Idea (Score:3, Interesting)

    by Mithrandur (69023) on Thursday September 15, 2005 @06:10PM (#13571378)
    From Jetbrains. It's the best Java IDE on Earth, bar none. It's non-free, but well worth the purchase price. You *must* at least take them up on their eval period. It's that good.
  • by dindi (78034) on Thursday September 15, 2005 @06:19PM (#13571455) Homepage
    I am moving my little office home as DSL reaches my house (after 4 years waiting)

    I am planning on using a this strange setup:

    2 monitor (later 3) setup mounted on a turnable pipe construction so they can "hang in front of me.

    NO DESK. Instead of that one (or two) PC(s) will serve as a tiny desk next to me for gadgets (camera/pda/ipod/cellphone/etc).

    The pc(s) will rest on the base that holds a retractable keyboard holder and my trackball. That's right, if you have a trackball you can save a lot of space (besides my pain in my wrist is gone since i use a trackball - I have to leave my wrist for plating paintball and riding offroad to develop my carpel tunnel while having fun.

    I will be using a big TV seat with a footrest (not a lazyboy but one with a high seatback, adjustable so I can hold myself (healthier) or lay back (comfortable, when just "spacing out" or surfing/gaming.

    Now the PC setup:
    One linux PC that does all the network things with one, later 2 monitors, and one windows PC for testing this and that and using some win-only gadgets (like my heart rate monitor, and whatever else)

    If you need a multi OS setup I recommend using x2vnc and a vnc server to connect your UN*X setup to windoz... So 1 keyboard 1 mouse/trackball for up to +4 other machines (north south west east)

    As for software: you know what you need, i use gnome, a text editor and a browser to work.. but I mostly deal with web/database so i do not need fancy IDE tools.

    Notes: have the monitors hanging gives you the opportunity to see below/over (as a projection screen and a TV will be in front of me as well....

    also the deskless setup gives you the chance to showe the keyboard and grab a ps2/xbox controller and in case my projector/TV is used by my wife (occupied by channel-e, fashion tv or else (sorry babe)) i can still connect the consoles/DVd player to my monitors using a chep $40 tv tuner card (anyone knows something with COMPONENT input cheap?)

    Also you can use a laptop or diskless quiet PC to have net all the time and sit there in case you really need a pc when watching TV (i often have the urge to make a search on stuff i see - imdb what is that song, or url in the news/commercial/ etc)

    Ok that got long so just one more thing:

    that setup is to save space and not occupy a full room with pcs and desks..
    we have a tiny house and i like to sit in the surround spot and in front of the screen whenever possible if i have to sit... aslo for me it is important to have a TV on when working ... as sometimes it is a brainstorming device that inspires me in different ways ....

    If a TV and music + space saving is your goal, you might have some useful thoughts... otherwise just put me in your "freaks tab"

    cheers

  • Stick with Eclipse (Score:3, Informative)

    by MemoryDragon (544441) on Thursday September 15, 2005 @06:33PM (#13571563)
    Eclipse basically is the only IDE which can fulfill your needs out of the box, the project really is taking off, refactoring is possible now even in C++ and lots of plugins for almost any language are available, just go plugin shopping and stick with it, that is basically the best advice I can give to you.
    Eclipse sort of has become for the 2000s what Emacs used to be for the 80s...
  • by Audacious (611811) on Thursday September 15, 2005 @06:36PM (#13571594) Homepage
    After coding since 1972 I've found that simpler is better. The more whiz-bang things you have around - the more they are going to distract you.

    I use vim to edit, gcc to compile, ddd/gdb to debug. Whether it is Linux, BSD, Sun Solaris, Windows, Macintosh (OS X and earlier), Cray, SGI, or whatever - I use the same things. It makes life simple. I have my vim macros - they do all of my documentation for me, help to reformat bad code I have to look at, and even can go through a complete file and replace various items I do not like to look at into things I do like to look at.

    I have found that fancy IDEs, overly helpful editors, and things of that sort tend to piss me off since I type so fast. I especially hate it when an IDE overlaps what I'm typing so I can't see what I'm typing. It usually gets the wrong word and by the time the program finally figures out what the actual word is I want - I've typed it in already. However, I do like the color coding. :-) RED means DEAD in coding. Blues and greens mean good things are happening and yellow means you are about to be pissed off by something either you did or someone else did to your code. :-P

    In any event, do whatever feels best for you, but fancy things tend to get in the way rather than help out (unless you just happen to like that sort of thing). :-)

    This is not to say that IDEs can not help. Especially when programming for Windows. Also, there are interface designers. The two I like are DialogBlock or wxDesigner. Neither of them get in the way of coding. Once through with them though - I stick to vim.

    If you are looking for advice on creature comforts - here are mine:

    1. Have someplace you can put things to drink. It always breaks concentration when you have to get up, go to another room, and get a drink. If possible, buy a small refrigerator you can put under the desk or in another part of the room. Put your cold drinks in there so you have them ready to drink when you need one.

    2. Have lots of shelves nearby. You need them so you can put your reference books on them so you don't have to go looking for them.

    3. Get a pet. Preferrably a cat. Cats are interesting creatures and if you ignore them for an hour or two they will eventually demand your attention. This is a good thing because you can forget that time is passing while coding and the cat will remind you to get up and move about. Why is this important? Because there is this little thing called Phlebitus that you can get. (It is also called Secretary's Disease.) You get it from spending long hours sitting doing something. The blood in your legs tends to slow down and pool (ie: not return to the heart to be renewed as much). When the blood slows down enough it begins to form blood clots which can result in your having a stroke or you getting Phlebitus. If you are very unlucky (like me) it will completely block your artery or vien and you will then be on medication for the rest of your life (or you could say I am lucky not to be dead because of the Phlebitus). So get a pet and live a long healthy life. (This is not to mention the fun you can have with a pen light making the cat chase it all over the place. Of course it isn't too fun when the cat hits your pile of printouts and scatters them all over the place - but hey! That's why you get the shelves!)

    4. Windows. You need them. You need them so you can open them and let some fresh air in. You need them so when it gets dark you remember to eat, go to the bathroom, etc.... You need them to realize that your life is passing you by while you sit there and code away. I coded for almost thirty years in buildings without windows. Now I work part time and spend a majority of my time at home coding in a room with a window. I also help out those who can't make their computers work, teach people about computers, and do other freebie things instead of just sitting in a window-less room and coding ten to sixteen hours per day.
    • The simpler the better, I second that.

      1. Have someplace you can put things to drink. It always breaks concentration when you have to get up, go to another room, and get a drink.

      3. Get a pet. Preferrably a cat. [...snip...]Because there is this little thing called Phlebitus that you can get. (It is also called Secretary's Disease.) You get it from spending long hours sitting doing something.


      Is it me or can you simplify by getting rid of both the fridge and the pet? If your hourly drinks are a bit away, you'l
  • Whiteboard (Score:5, Interesting)

    by karearea (234997) on Thursday September 15, 2005 @08:20PM (#13572240)
    I don't think anything beats a nice big whiteboard and plenty of colour markers (and eraser) for brainstorming and mapping out flows, structures, links, in and outs.

    I've looked so many times for a nice computer package for doing that but I pretty much always go to the whiteboard - I can stand, I can pace, I can step back, I can use my fingers to rub out.
    A digital camera is handy when working with a whiteboard - that you can take a photo, save it and print it out for later. I have seen some whiteboard type things that have markers (and eraser) that can be tracked and imported straight to the computer, but I know that when I've got thoughts happening I don't want to have to interrupt and remind myself that using my finger to rub something out isn't replicated to the 'puter.

    Big sheets of paper can work, a premanent record to go back to (very handy if you suddenly realise that your new brainwave is a f$#% up), but it is hard to rub out stuff and when starting from scratch on a new sheet with some old info some thoughts can be lost.
    A chalkboard/blackboard can do the same thing, but you want to keep the dust away from the insides of the monitors, system units etc.
    Besides there is the added bonus that if you get the right markers you end up nice and relaxed while you are working :-)

    Also plenty of fresh air and a bit of pacing room for when you need to think things through a bit more.
  • by awol (98751) on Thursday September 15, 2005 @08:28PM (#13572274) Journal
    Many people here have talken about multiple monitors but nor about their orientation. I find that vertical real estate on my screen is more productive than horizontal space. I would go so far as to say that 4x4 is an ideal monitor displacement. It would be so nice to get them "border free" as well
  • by Sebastopol (189276) on Thursday September 15, 2005 @08:39PM (#13572329) Homepage
    USE IT!!!!

    * Don't buy a $700 aeron chair and slouch in it.

    * Don't let your wrists fall while you type.

    * Don't lean in 3" from your LCDs, stay ~27" away.

    * Take small 30-sec breaks every 20-30 min

    * Eat healthy throughout the day, not a pile of pizza and candy once a day at midnight; regardless of how cool it makes you feel to drink energy drinks like Bawlz!.

    * Avoid caffiene and meth, unless you have a major deadline to hit.

    Seriously, if you can force yourself to do these things, you can go several hours longer programming during the day.

    It works for me, but YMMV.

  • by MarkWatson (189759) on Thursday September 15, 2005 @08:44PM (#13572356) Homepage
    .. get a Hardware Lisp Machine.

    I got a Xerox 1108 in 1983 - a superb development system.

    At the present time, I would suggest flexibility. For me, this means having a server were all of my design artifacts, code, etc. are under source code control. Then, no matter if I need to use a Mac, Linux, or Windows box, I can get the environment that I need almost instantly.

    If you do a lot of Java work, think about investing in IntelliJ - it is better IMO than Eclipse and NetBeans.

    For Lisp, currently I like the Linux-SLIME-Emacs-SBCL combination (and free!), although if you want to deliver small fast executables, Lispworks is great.

    VisualWorks Smalltalk has a good deal for small developers: for $500/year you get all their development tools (great web services support, etc.) and the $500/year is a prepayment on royalties. It is an awesome environment but I find Smalltalk a hard sell (everyone wants their stuff delivered in Java).

    For Ruby, I think that Eclipse + the Ruby plugin is a pretty good combination.

    I live about 100 feet from a trail head, leading to wilderness area: that is the best "add on" for my coding environment because I like to take lots of work breaks. For a physical trainer, I went top dollar: bought an Italian Greyhound puppy who lets me know when I have been working too much and not walking him enough. We also have a baby parrot who hangs out a lot with me (shoulder, back of chair, or top of flatsceen monitor) - he is very little trouble and adds something nice to my work environment.

    I work out of a home office. My wife insisted that I get good office furniture (great orthopedic chair, nice teak desk, etc.)

    Good food: I like to take a lot of food breaks while I work. My wife and I have a fine recipes web portal (CJsKitchen.com) and one of us is almost always making something tasty because that is our main hobby. Good nutrition and exercise are important for coding or any other intellectual activities!

    My last bit of advice: enjoy coding :-)
  • My Design. (Score:3, Insightful)

    by jellomizer (103300) * on Thursday September 15, 2005 @08:47PM (#13572377)
    Well let start with the basics, the computer(s). I would sugest that you get a separate system for each platform you want to develop for, don't get the latest and greatest system unless you are going to make a program that will take years to develop and by the time it is done the best model will become the standard. But go with the Normal Systems, For PCs 3-3.5 ghz P4 and a comparable AMD is more then enough. a new iMac G5 and a Sun Blade 150. This way you have systems that support most of the currently living platforms. Go with the medium video cards but try to diversify especially on your PCs.
    Next Operating systems, Well there is Windows 2000, XP, 2003, and long^H^H^H^HVista when it comes out. 2 Different Linux Distributions like Red Hat/Fidora, and Debein or Gentoo. Free/Open/Net BSD, OS X 10.2-10.4, Solaris 8,9,10 for Sparc and Intel. On the Intel systems I would strongly suggest VMWare so you can have many test environments and different OS.
    Next Displays The bigger the Better, the more screens the better. The more text you can fit on your screen the easier it will be for you to view code even ones that are well nested. Also get ones with clean display LCD are good, with anti glare.
    Next Keyboard, Get a keyboard that you really like that feels good to you and offer the appropriate feedback. While you do a lot of typing I have rarely seen a programmer write programs like writing a paper with constant typing. So get what you feel best with.
    Mouse, a 3 button, 2 button and scroll wheel, Mighty Mouse. Don't try to use anything with to much features as a programmer you will design your program to work with your interface if you have a too complex mouse your application my not work well with normal people.
    KVM Switch. You don't want to be cluttered so a good kvm switch that allows you to swich platforms and use you favorite keyboard and mouse.
    A stable File Server. You will probably like having a good file server with a large drive, mirrored! and Gigabit Networking so you are not copying files all day.
    A Good Color Laser printer. Samsung has a good one for $500 bucks but if you are an HP Guy or a Xerox guy, Laser Printers while cost more then an ink jet, offer lower cost of ownership, You want color so when you print your code with syntax coloring your printed code is in color and helps you track threw it easer.
    Large and adjustable desk. You want to adjust the angle of your keyboard many times and large enough to have many papers on it so you can track information.
    White Board, whiteboards are great for short term flow charts, and working threw problems, or having a to do list. A big one adjusted so you can access it threw your chair.
    Chair. The perfect chair is near impossible I would like to have 3. First the kneeling chairs for good posture (Perfect for deadline coding), second a good executive chair (For the reading and analyzing paperwork, and documenting code ) , then an easy chair (For working out problems, and waiting for long compiles)
    Lighting: Standard Florence ceiling lights (Well maintained with no flicker), A large window for natural sunlight, A project spot light, and a spot light facing upwards. The Florence light combined with large window helps brighten up your day and the Florence light reduces the shadows from the window, but if it is dark or cloudy outside then use the spotlight faced upwards for mood lighting, and use the spotlight facing down to help you focus on what you need to do.
    All the phones in the office should not ring loudly or play anything extremely distraction. a low pitch phones work best.
    Privacy, if you in your office that is the best if not go with tall cubical wall and let them have 4 corners (3 with a window side) and a door, at least for me I like to take 10 minute breaks every couple of hours and I prefer to lie back in my chair and rest my eyes, and when I am in a good private environment I can avoid people distracting me saying that I am sleeping on the job.
    Proper Temperature. Not to hot where you are sticky and uncomfo
  • Flexibility (Score:3, Interesting)

    by mcrbids (148650) on Friday September 16, 2005 @12:11AM (#13573404) Journal
    This is an old thread. Chances are, the parent poster won't even read this. Ah, well. Such is life.

    I started coding hard and heavy in early 2000, giving up a life as the owner of a small computer shop to pursue the much-more-rewarding role of software engineer.

    Within a few months, I ran into the dreaded carpal tunnel issue - wrists that were sore and painful by mid-day, everyday. If I carefully positioned my wrists with rests, and adjusted my chair just so, I was good, but it was very hard to sit just so everyday, all day.

    I bought a Microsoft Ergonomic keyboard, and was shocked at the difference it made. Immediate pain elimination. I could sit more/less however I wanted to.

    About 2 years ago, I bought a Dell Inspiron laptop, and quickly had it set up at "the desk" with the large monitor (configured to do dual screen) ergo keyboard, etc.

    But, then a few strange things happened.

    1) I discovered that laptops let you sit anywhere you like.

    2) I discovered that laptops let you move and flex.

    I program at home, as in independent. I sit in the yard, I sit on the couch, I lay on my bed, whatever suits my fancy.

    Today, I put in >12 hour day, but I spent part of it on the couch, part curled up in my papason chair, and part on the back porch deck watching my children swim in the pool.

    And, with all these different angles and seating positions, my wrists just don't get sore. It'd still be nice to have dual-monitors, but KDE's virtual desktop + VERY tiny fonts does well enough, that the ergo keyboard and 20" monitor almost always sit, unused.

    And, my quality of life has shot out through the roof, even as my young business grows rapidly!
  • by Neelix21 (143043) on Friday September 16, 2005 @01:26AM (#13573797)

    If you don't mind switching to OS X (might be a good idea for an ultimate setup anyway), you should try out TextMate [macromates.com]. It's a very nice editor, that's extremely extensible and has snippets, macros and commands for almost all mainstream languages.

    Have a look at this screencast [macromates.com] to see what it can do.

    It is payware, but it's a measly EUR 39 and it's worth every eurocent. Plus, it may not be open-source, but it does utilise a lot of open standards.

Nothing will dispel enthusiasm like a small admission fee. -- Kim Hubbard

Working...