Never got the emphasis on laptops, unless you travel (a lot) and/or tend to spend a lot of time in coffee shops/college lectures/meetings. You'd want a good, large display (or two/three) anyway, and you usually have less troubles and more options with desktops. And for those times when you need to move around, a small auxiliary device will do, too (ipad, tablet, netbook, old/cheap laptop maybe even a smartphone).
Less true for the current crop of Macs, of course, where decent expandable desktop systems are way too expensive and laptops have a high entry cost. It would probably still be worth looking into getting a ipad/imac combo over a MBP.
For me, the main pro of a desktop computer is that you can expand absolutely everything. Upgrade the motherboard, the processor, the optical drive (or leave it out entirely.) There's also the ability to drive as many displays as you want, but for me that rarely comes into play.
On a laptop, you can expand storage and RAM and use one external display, which is enough for my use case, and you get the added benefit that you can use it anywhere. Not just for travelling, but also for just setting up shop in the living room or patio vs. the office, or taking it into a meeting room.
The ability to work anywhere in my house is the selling point for me.
That depends a lot on your working setup. If you do most of your work at the same desk, then iMac is probably better.
I do most of my hacking on the road, visiting other companies etc. This is why I go with MacBook Air as my only computer. I want to keep my working environment consistent so I don't even use external displays in my own office
One thing I don't like about the iMac is that you can't use them as an external display. Displays last much longer than computers IME. My friend reluctantly junked a 20" iMac w/ a PowerPC processor. The computer was useless but the screen was still great.
My 27" iMac has a DisplayPort input to use it as a "passive" screen.
Maybe something on the software side like AirDisplay (http://avatron.com/apps/air-display/) could be of some use to extend an old iMac lifetime as a screen.
That's why my "unless..." part was quite extensive. I'm not saying that there aren't reasons for laptops as primary development machines, it's just that making them the default or even the only option seems a bit overrated in my opinion, especially for work machines. There's a bit of wish fulfillment in there, as we'd all like to see ourselves as traveling a lot, writing our startup code in swanky coffee shops etc. But in the end, there's quite a lot of sitting around in your (home) offices...
Laptops have a complete disregard for ergonomics. If you spend any significant amount of time infront of a computer, a laptop is disastrous for your health. At the very least, invest in an extra monitor and proper keyboard.
By proper keyboard, I mean one that is full-sized, has mechanical switches, and is appropriately laid out so that you don't strain your wrist and tendons.
Ergonomics is about a lot more than the keyboard, though. A laptop forces your arms/wrists and/or head/neck into ergonomically unsound positions, so unless there are laptops out there that transform into ergo hardware, I agree with the gp that laptops completely disregard ergonomics.
As a developer i don't see any particular reason for using exclusively macs for personal computing, a linux box/laptop should be good enough (never owned a mac).
But if someone really care about mobility, buying a mac (air?) could be a good idea (personally, i'm waiting for the next generation air, hoping for faster processors).
sigh couldn't come at a more appropriate time for me. Alas, isn't these three contradictory:
* Use as little software as possible.
* Use software that does one thing well.
* Do not use software that does many things poorly.
I have a "good enough" workstation with 4GB of memory. No matter how much tweaking I do to eclipse.ini, Eclipse still crawls to an halt when I work on our large Java project... Alas, I can't just change it to VIM + command line svn. It would be a mess.
They're not contradictory though I see how you could read them that way.
My reading of what he's saying with the three points is:
* Don't just go installing and using a bunch of stuff for the sake of it. Make everything justify it's existence on your machine and in your processes.
* Multiple individual tools which do things well are better than general tools which do many things badly.
Probably also worth distinguishing between amount of software and number of applications.
For instance, Eclipse may be just one application but it's a lot of software. It is admittedly a slightly abstract measurement but I think there would generally be broad agreement on the scale of most things.
In terms of your specific issue, it may be that 4Gb is not good enough as much as you'd like it to be. It will depend what else you're running, how big the project is, what it's doing and so on... Plus, Eclipse is a pretty chunky tool itself.
There is a way to use ramdisk as your workspace which makes eclipse quite fast. Check a post at the Scala forum ( I am sorry, do not have the link handy right now )
well, we run many tests using junit and testNG.
my team and our partners also use eclipse so some use maven.
And, while it's not Vim's "fault", I'm afraid relearning how to do all my processes (compiling and testing java, running tests and see their results, committing rapidly, etc.) would prove lengthy in a period where I don't have much "free" time.
I used to have the same fear about Linux, command line, vim, etc. You sound competent, I suspect the learning curve will be a lot less than you fear it will be.
Its more like "for minimum stress". Arguably not for maximum productivity - I violate a good dozen of the rules because of the job I do. And yes it causes stress, but that's life.
But most importantly, always remember that the three most important components of your computer really are:
* your chair
* your input devices (mouse/keyboard/…)
* your monitor
Also, if you feel that your computer is getting a bit slow, consider updating your hard drive (possibly to an SSD) before shelling out a far greater amount of money for a new computer.
Thoroughly delete all traces of software that you no longer use.
This is just a waste of time. Do you really care about 70KB that some lib that some other lib that was used by a program that you only used for a week used used?
It's not the size on disk that is the problem, I guess. Some software leaves other kinds of stuff behind such as links to it in the registry, license services and startup/taskbar apps which can drag the speed of everything down.
That may be true for Windows, bur he's also advocating using only MacOS and Linux/BSD. I think those issues are significantly less common, if not non-existent on those platforms...
That's true. As long as you use packages in your distrib format you don't have the problem on Linux. If you manually 'make install' from source it's harder to cleanly get rid of everything. But that's not recommended anyway.
Edit: there is some commercial software for Linux has custom installers which can result in windows-ish problems.
Have you ever/often bumped into problems with 'make install' leaving behind system crashing buts of code as time bombs when you've deleted the original app?
My personal experience is that if that sort of cruft accumulates in Linux, it happens at a slow enough rate that system upgrades fix the problem before it manifests.
Well a lot of mechanisms in Linux work by dropping files in a certain path (SysV init scripts, udev files, plugins). So leaving files around could have a little impact, such as runaway error messages, or a slight slowdown at bootup.
Then again, it's still much less than in Windows. And it's more transparent, resolving the problem is generally a matter of removing the file, instead of going into the registry jungle "trying random stuff from the internet until it works".
Combining "Buy a portable computer instead" and "The only peripheral you absolutely need is a hard disk or network drive to put backups on" doesn't make sense. I don't know about you, but my productivity tanks the second I don't have a mouse.
You just think you're more productive because you get to slam "jjjjjjjjjjjjlllllllllll" to position your cursor.
Use the mouse for what it's good at: pointing at things and selecting text. Use the keyboard for what it's good at: entering text, such as regular expressions to transform the code you just highlighted.
It probably largely depends on your platform. In Alex's case, he uses a Mac laptop, which has a trackpad. Apple has done a bang-up job of making the trackpad useful and dare I say "expressive" in Mac OS X.
On the Mac, the latest gens of their trackpads have obsoleted mice for me.
I think it all comes down to the saying that "a tool is as good as it's user",you can have the latest hardware,software but it makes no sense if they don't add to your productivity or they slow you down instead of helping achieve your goal.
Personally, I use Linux for everything, when given the choice - except the occasional game or two for which I use Windows. Couldn't ever get used to Mac. It feels a bit like linux (being BSD based and all that), but gets touchy when you actually try to do something with it. Though this may simply come from my lack of experience with the platform. And im not convinced that the productivity increase from switching from linux to mac is worth the investment(in short i can do the same thing on a system that is twice as cheap ,and without any extra learning).
However I do agree that Windows is very often disastrous in terms of productivity.
I tried a mac briefly, and they don't work well for me anymore. In particular, I couldn't find a combination of keyboard layout and application hotkeys that didn't annoy me somehow, frequently, all day long. I managed to get it down to "tolerable" but that was it.
I think I eventually could have adjusted to the different keyboard layout and application defaults, but it didn't seem worth it to me.
Less true for the current crop of Macs, of course, where decent expandable desktop systems are way too expensive and laptops have a high entry cost. It would probably still be worth looking into getting a ipad/imac combo over a MBP.