110 comments

[ 5.1 ms ] story [ 339 ms ] thread
I agree with the premise, but article doesn't at all seem to substantiate it.

coding on a train? coding in your head while shopping for groceries? how is that related to notebook at all? same can be done with any laptop. no?

True, but the constraints of a netbook actually serve as an incentive to think things through rather than start right away with exploratory code.

I recently coded a personal site (around 5,000 lines) almost entirely on an Acer Aspire One with a small display and a cramped keyboard, and I made sure I knew exactly what I wanted to write before sitting down (usually during lunchtime).

Yup, this point concerning the constraints is exactly what I meant to put across in the post - well put.
So, 'make it painful to code, buy requiring your code to be written on substandard equipment' makes you think more about what you're going to do, because the experience of using it is painful and substandard. I'm not sure I'd like to put myself through that. Also: I'm pretty sure those tiny keyboards are NOT ergonomically up to snuff for anything more than basic web/email usage. My wrists hurt after about 30 minutes of typing on them - I can go for hours on my full size keyboard though...
Everyone is different. I can type without pain on a netbook keyboard for arbitrary periods of time. I can type faster on my HHKB, however.

(Of course, the HHKB is as easy to carry around as the netbook, so I usually don't have to use the netbook keyboard. Once you get past the keyboard, a netbook is a full machine like any other. Except it weighs nearly nothing and it can live for 14 hours without a power outlet.)

Until I upgraded my work room with a wall-length desk, I did most of my development on my eee pc 1000he. I got used to the small keyboard very quickly and the small screen was only somtimes a hinderance (in fact, the only time was when editing GUIs in Qt Creator - it got a bit cramped then).

The speed was also rarely an issue. Clojure starts a bit slow, but everything runs perfectly fine. Admittedly, I mainly use lightweight tools like vim (I did once fire up eclipse, but it was so painfully slow, I promptly (as promptly as it let me) uninstalled it again).

I actually bought the eee pc for development. I find it extremely useful to have a small and light laptop which i can throw into the bottom of a bag and bring with me wherever. I got it for the freedom of being able to work on the bus or in a cafe without the hassle of a heavy or bulky laptop.

I do use a decoration-free window manager though, so I don't have screen space wasted on window borders, title bars or taskbars.

I've mainly been using my dual monitor desktop machine since I "upgraded" my work room, because I now have a very spacious desk and it makes sense to me to have plenty of screen space too (and I've been doing more GUI development recently too), but I still ocasionally pick up the eee pc to hack something together, especially when I'm not near my desk.

It's a lot easier to throw the netbook than the laptop in a small bag. I was skeptical too until I did it. Now I do my main work on a laptop but keep my current projects in a mercurial repo on a usb stick. Whenever I'm on the go, I just fire up the netbook pull from the repo. It also servers as another backup which I do regularly whether on the go or not.
I couldn't agree more with this article- I've found myself doing the same with an even older Eeepc 701. It's far less distracting to work on a netbook. You simply don't have the horsepower or screen real estate to waste on non-essentials, and the tiny keyboard makes you think before you type.
End of the world is nigh -- Netbeans is being referred to as 'lightweight IDE.'
Indeed, if Netbeans is 'lightweight' then E texteditor or notepad++ must be hardware accelerated by a dedicated chip :D. Netbeans has to be one of the slowest and most resource consuming IDE's I ever used.
Even Eclipse is fast and responsive compared to Netbeans
My experience found the opposite to be true.
Eclipse was an impediment (in Scrum parlance) to our project
But probably a very minor one compared to the languages people use Eclispe to write.
A bit of scouring around and I found some configuration settings to speed up Netbeans's garbage collection & buffers. Made it pretty snappy on my mac. Now that's once it's loaded and I'm editing; other times can still be slow.

But it was a happy switch from Eclipse. Netbeans took longer to do things, but it didn't require that I try doing them 3-4 times before anything would happen (e.g. start/restart tomcat).

To be fair, E and notepad++ are not IDEs. IDEs are much more than syntax highlighting. And Netbeans has been working hard to improve performance. 6.9 Beta was released, and the Dev releases before that were doing better then 6.8 and earlier releases in the memory arena.

=)

It also depends on which "flavour" of Netbeans you use. Netbeans for Ruby (i.e., without the Java stuff) is really very responsive (although I don't need/use code completion).
Compared to Eclipse, it is :-)
A fully loaded Eclipse (or one of IBM's mammoth IDEs, no idea they call them now) can take 1GB, but the bare-bones Java profile is almost snappy.
Indeed - I used my eeepc for some Eclipse Android development and it worked quite well.
Thanks for the info you guys, I didn't know this. At work I generally have 1-3 large workspaces open in the "Java Enterprise" version of Eclipse, hence my warped perspective, maybe...
Have you tried Yoxos Eclipse[1] flavor? You can build your own distribution from scratch and only include the packages you need. You can even save your choices and continue modifying them next time you login. I have a very pleasant experience using it and my builds are usually around 100-200 MB.

[1] http://ondemand.yoxos.com/geteclipse/start

Hey, that's pretty neat. Thanks for sharing!
PyDev is amazing as well. Admittedly, the machine upon which I'm running it has 16 GB of RAM, though.
That's like comparing a destroyer to the USS Nimitz and calling it a small boat.
If I told my then colleagues at Engineering school I would have a multitasking, UNIX-based, RISC machine with 64 megs of RAM and 32 gigabytes of storage and a fast, full-time, connection to the internet in my back pocket I would be locked up in a loony bin. If I told them I would use it to listen to music, I would end up burned for witchcraft.

Even my humble netbook is a good couple hundred times more powerful than the my Apple II. I am quite sure it can accommodate NetBeans and Eclipse quite comfortably, apart from the screen real-estate limitations.

"I would end up burned for witchcraft." Nah, Kurzweil would have come to your rescue. ;)
My netbook (900MHz, 512 meg RAM) is blindingly fast for unix; but Eclipse was unusably slow.
I keep trying Netbeans and Eclipse but always come back to vim + terminator + mvn/ant
I find Geany pretty light and complete for my current project in php, giving me 32 lines to look at a time. Running awesome wm with yakuake has been great relief on my eee pc 1005p which has just 1GB ram. When I run an xterm, yakuake and vim, along with apache and mysql in background, it just eats 140-180MB of the precious ram.
Previously I was running gnome on Ubuntu 10.04 beta, running a browser hogged up ram like anything 780MB when there's just a browser running. I think minimal window managers like fvwm, awesome, etc really make a good case for netbooks and netbook remix, etc don't really make it easy for you to work on it. Specially when the desire is to carry a long lasting battery life device with full fledged linux on it :D
Qt creator has been awesome on the netbook - http://twitpic.com/1hxgrp I could easily complete a project working at various places - friend's house, college, college bus, nearby restaurants, etc Though I need to run Qt Designer separately in case I need to design something.
I wonder if this is another indication that some of the old practices from "back in the day" will come back, in some unexpected form.

For example: I remember, back in the day, that in order to compile, I had to submit the compilation job to a batch queue running on a separate server. Usually, you got your "success" or "failure" message back within a half-hour.

(Similarly, print jobs printed to a device in a locked room, and an "operator" (remember those?) would deliver the printout to your desk, usually within a half-hour.)

Needless to say, one tended to be pretty damn certain that the code was clean and correct before attempting to compile.

As Samuel Johnson said, "Depend upon it, sir, when a man knows he is to be hanged in a fortnight, it concentrates his mind wonderfully."

That's an interesting point. I guess the compilation job queue, which itself sounds similar to punch cards through a mainframe, has its modern equivalent in running large MapReduce jobs or load tests on EC2... not something I would want to repeat too often during the dev cycle :-)
I too am using a netbook as my primary machine. Even though I do all the stuff I need to without much trouble, I have this feeling that I'm having a low end machine and this very feeling makes me write better code, use lightweight programs etc.

somewhat off topic but I feel like saying this story too. When the game hitman 2 was out I had a machine with only the minimum requirements. So I always had very high stealth points because I never went out in bang bang shoot outs because the machine got stuck when I alarm so many enemies.

I was always curious about this. How are compile times for large projects?
Scary. Once I complied Qt and I let it happen while I sleep.
Nice Article. Just wanted to add as I have seen some people here and their saying that programming in a netbook is a joke. Yes, I agree that netbooks are slow and have a small screen, but they were good for me for JavaScript and HTML programming.

Since I bought my netbook (3 months ago, LG x130), I have been using it heavily to browse the web, open and edit office documents, play games (and it runs well Age Of Methology), watch videos and chat with friends (it has a cam). The netbook has served me well, it’s fast and the battery life is fine (4 hours).

Later, I have decided to learn some jQuery and JavaScript in my spare time (so in my netbook). I installed Expression Studio (Web 3.0), Stylizer, FireFox, FireBug and Google Chrome. When working (debugging JavaScript or editing HTML) I always keep all of the windows open (Web 3, Firefox, Chrome, Stylizer and sometimes IE8 for testing); the speed is amazing, it never slowed me down. I also run Skype and Gtalk.

The only issue I have been facing is Flash and mainly with FaceBook videos which completely slow down, kill and then crash Google Chrome or any other browser which was positive since it increased my productivity. Another issue was with Adobe Reader, very slow at loading, opening and browsing PDF books or files.

I never imagined Age of Mythology as a game with such a long lifespan. I remember playing it about 6 years ago.
Yes, the game is old, but the new Age Of Empires versions sucks .Age Of Mythology is the best strategy game Microsoft has ever released.
I program and write exclusively on my Aspire these days.

Keyboard: I have small fingers, and I actually type faster on the netbook keyboard. The key distances are smaller, so I'm moving my fingers les.

Screen: I use a small font (Code Envy R at 10pt) and WMII, so I can fit a lot of code on the screen at once. I can also switch between windows extremely quickly, so it is relatively painless not to have all the code I'm working on, on screen at once.

Battery: I got the six cell battery, because I don't mind the extra weight (unless you have muscular dystrophy what difference does weight really make? It isn't like I have to hold this thing in the air while typing on it. ;) but I do love the seven and a half hour battery life. It also uses close to no power when on suspend (loses maybe 3% over two hours) so I just shut the lid whenever I'm not using it, and a charge lasts me the whole day.

Durability: I've dropped this thing off tables maybe seven times now. It doesn't care. It also spends most of its time in the small compartment of my backpack where it gets jostled all day.

With respect to it being dropped seven times now, do you have an SSD in there or a regular drive?
Regular drive. Which made me queasy the first time I dropped it, after being used to the touchy hard drives in previous computers.
Impressive. Beware of any errors from that drive, check the smart data to make sure that you're not suffering soft errors that are being corrected now and that will leave you with a dead drive at some point in the future.

If the drive was spinning when it fell it all depends on the angle and the strength of the shock, if it was not spinning chances of not having any damage are much better.

I agree here. My netbook hard drive had errors about 3 days after I started using it, and I didn't ever drop it.

SSDs were made for netbooks. I am not sure why vendors even attempt to put hard drives in them. (Actually, I know why. Comparison charts, and money.)

I'm using an Acer Aspire One too, and I love it! I've written a large majority of my side project, AppRabbit.com, on my netbook, mostly because I needed a separate machine from my work issued laptop for my side project so that I would never be accused of using work resources for my side project. My kids usually commandeer the home desktop for Netflix, but my netbook is all mine.
I'm also using an Aspire One for coding on my hobby project. I was pretty shocked at how well the device handles Visual Studio and other tasks. I haven't bothered tweaking the font size or anything, it just end up looking at a much smaller window of code at a time.
I spend half my coding time on my netbook when I'm away from my desk, and another half in front of my Workstation with 7k x 2k resolution monitor space.

I'm certainly less distracted when I'm in front of my netbook. And, I'm certainly less likely to start noodling around on the internet looking for videos, etc...

I also can run Win 7 Ultimate on the Netbook without any problems whatsover. And, by purchasing an extra 6 cell battery the my Aspire One, I have enough battery life to last me from Barcelona to San Francisco on a single charge. It's a beautiful thing.

I know the iPad is a beautiful piece of hardware, but when people mention having a computer that they can just have lying around and turn on to surf the web... I already have that. And, it cost me $250.

I very much don't practice what I used to preach, which is to use a slow machine and a small screen in order to write software, it makes you write better code.

Fast machines make you lazy.

These days the stuff I write does not run on the machine it is written on at all so that's no longer a factor.

I have always kept my own personal development machine a year or two behind what is considered bleeding edge as this is what my users will have.

Makes it easier to spot performance issues if you are not using a desktop water cooled super computer that boots so fast it causes nosebleeds and nausea.

I find it very simple to explain to my friends... If it runs nicely on my netbook, it will run pretty much anywhere. Also, there's another thing... While the keyboard is annoying at first, in the long run it makes typing faster, as the keys are closer to one another.
exactly! and it puts some useful constraints on UI design that result in better usability too, I think.
I experienced exactly the same, when I started bringing pen and paper to bus driving to/from work and code on paper.

It is very different experience from coding with computer, and it results in better quality code, because I can't just run to "ensure" it works, I have to think it throught.

Also I tend to write less code, when each time I forget to add check before some line I have to rewrite whole function by hand.

In home I just check documentation for apis I didn't remembered, and type code into computer. Almost always it works after a few minutes of simple variable misspelings etc corrected.

Of course, this won't work so good with bloat oriented languages :)

Does anyone use something like Warnier/Orr diagrams for on-paper procedural code, or do you just code/pseudo-code in the target language?

http://varatek.com/warnierorr.html

http://varatek.com/warnierorr_diagrams.html

I don't know Warnier/Orr diagrams.

I do, however, draw pictures and diagrams to help me reason through stuff. It is one of the big advantages to writing code on paper. I find tools like visio tend to get in my way (I spend too much time fussing with getting lines connected and not enough time sketching my idea (it also never quite looks right)).

I actually like it so much I was considering buying a bamboo tablet so I can include diagrams in my documentation (and not kill so many trees!).

Of course, then I'd have to write an emacs plugin to call up inkscape (unless anyone has a better 'sketching' type of program) and insert a hyper-link to the saved file in the docs folder.

Reminds me of the old demoscene days. Tran (http://en.wikipedia.org/wiki/Thomas_Pytel) was a legend for a while, programming fast, lightweight, mind blowing effects that ran really well on slow hardware. When it was revealed that he did all of his coding on slow, last gen hardware (at the time a 386sx when everybody else was on 486dx2s) he ascended into virtual demoscene godhood.

The point is that the constraints of his system forced him to code better rather than being lazy and relying on the hardware to carry him through the day.

(too bad the wikipedia page doesn't list Kaeon, his one man shooter than was revolutionary on PCs of the day).

edit here it is! https://www.mobygames.com/game/kaeon

Now this is an interesting point. One application might be to develop your web app on a slow computer and a tiny screen; net books and mobile phones will have no trouble if you don't.

Or you could just have a mobile phone sitting nearby, and keep hitting 'refresh' on it...

"I can code in a crowded bar"

Bars aren't for coding, put down the computer.

If I can drink in the office, I don't see any reason why this guy shouldn't be able to code in a bar.
Well, maybe different people who live in different countries on different continents have different ideas of what a bar is. Where I live you don't go to a bar to drink although you usually drink something when you're in a bar.

But then ... maybe you work at a bar? You didn't describe your office.

    Where I live you don't go to a bar to drink although you usually drink something when you're in a bar.
What do you go to a bar to do?
I lived in Italy where 'bar' means any place, often a cafe, that also serves alcohol. Often they have free wifi and encourage people to come :)
You go to a bar to socialize. Alcohol is a social lubricant. If you only want to drink, go to the deli, buy some beers, and drink at home.
Because you're being a douchebag who is taking up way more space by having your laptop out and requiring a clearance to help prevent people from stepping into the danger zone where they might accidentally spill their drinks onto said laptop.
And we wonder why there is a stigma about geeks.
Well, I can code in my class using my netbook. Helps me skip lousy classes and still get attendance for those classes. I keep my netbook on my lap and I'm a first bencher and never got noticed coz of the bench design :)

My specs: Acer Aspire One D150 (1gb/160gb) with Ubuntu 9.10 Emacs 23 for editing Switched to Chrome (5.0.379.dev) from FF, coz the new dom inspector seems to hook right at the bottom of the window like firebug.

Using Balsamiq on the netbook is a pain for new mockups. Not to just view mocks tho.

It seems to be slow to run the Android emulator, but it runs fine raising some exceptions. Tip: click wait and not force quit in the emulator :) also skip eclipse and learn the commands. The only thing you'll probably miss is the auto pkg importer in eclipse (fixing statements by importing pkgs). But that's fine :)

I guarantee you've been noticed. Your professors just don't care. They are probably more jaded than you if the classes really are that bad.
I actually like coding in a relaxed atmosphere, with music on and a drink in my hand. Not crowded, that would suck; but the conundrums that get me all tense and frustrated at work seem surmountable in different settings.

Now, I'm not actually a coder, I just do a job-related script or two now and then; so YMMV.

I code in bars all the time... Granted, this is usually on Sunday at 2:00 in the afternoon, on the patio, and with my dog laying at my feet. It's wonderful, very relaxing, very easy to concentrate.

If it's at night (I've done this too), the loud people act like a white noise generator and leave me alone in my thoughts.

I sometimes use my Acer Aspire One to work. It works fairly well. It's running moblin so it boots incredibly fast and there's a nice terminal that can go full screen (Maybe the Xfce Terminal). I jump between that and the browser with alt tab. I mostly use emacs, ssh, screen.
Asking for the best tool is not arrogance, it is just being smart. However, using a simple piece of paper may be the best tool at your disposal for a specific task.
For me there is another advantage: small screens force me to focus on code without distractions.

Don't get me wrong, I love my 27" iMac, but there sometimes is too much going on on the screen. On a small screen you just see code and nothing else. No IM, no finder icons, no bouncing dock things. Makes a big difference if your brain is already going 150 MPH.

Maybe this is why Stallman is also still using a fullscreen emacs in tty mode.

I did 4 months coding on the eeepc while traveling. Most working time was on transportation which usually meant no internet. I got used to the small keyboard, and ubuntu/bash/emacs was a solid environment. The only notable downsides were that the local web server fell behind from time to time, and full screen context switching (for the browser, docs,etc.) is not as productive as one might think.
The bottom line is you are screwing your EYES. Use netbook keyboard if you like it so much but don't punish your eyes by using that photo frame like screen for java programming.
I normally don't use it for more than 20 minutes at a time, so I'm not too worried about this. I'm still waiting for AR - my dream screen is contact lenses with embedded displays floating over my retinas :-)
What makes this true?
Bump up your font sizes?
The problem with that is that you get a line length so short that it becomes a real pain to actually use productively.

I have only one semi-functioning eye and code in 14pt font on a 24in monitor, though, so I'm maybe not the best to talk about eye strain on a netbook... after all, one must be able to at least see them first.

But it seems like line length would be a real issue.

What are you talking about? I have an Asus Eee and its screen is awesome.
Retort

I had horrific problems with the keyboard on my 1st gen EEE PC, so make sure you get a chance to demo the netbook of your choice before blowing $400 bucks. The right shift key is terribly placed (http://en.wikipedia.org/wiki/File:ASUS_Eee_PC_900_0010.JPG) - you reach for shift and you end up hitting the up arrow. Sure you can remap the keys, but this design decision is indicative of the overall quality of the keyboard. The _biggest_ problem was that various keys randomly ignored input. Hit the spacebar 10 times, you'd be lucky to get have it register 10 times. Try coding in vim with a keyboard that may or may not let you into insert mode. Maybe I just got a dud, but the EEE PC message boards suggests other users experienced similar issues.

I used that netbook exclusively for 6 months before giving up. Now it's my $400 Playstation 1 emulator :-/

Agreed, I bought a netbook and tried out four or five to feel their keyboards. I chose the Samsung N120 and I'm quite happy with it, but I don't enjoy coding on it nearly as much as on my desktop.
i had a keyboard problem with a dell mini 9, but it wasn't really about it being cramped: to use important keys like "\", "|", "-", "[" and "]", one had to press the fn key plus another.

http://www.flickr.com/photos/symmetricalism/3429329317/sizes...

luckily there was an international version of the same keyboard being used on other mini 9s, so i was able to order it from dell and install it on mine.

http://www.flickr.com/photos/symmetricalism/3465687431/in/se...

I recently gave up on my mini 9 because of that precise problem, not knowing about the international keyboard option.

Do you happen to have the part # for the international keyboard? (I just poked around Dell's site for it unsuccessfully.)

It's in the comments on one of the other pictures in that Flickr set.
I had problems with the spacebar of my eee; I ended up following the advice on http://forum.eeeuser.com/ and detached the space key, and thickened the raised part that activates the switch (I think they suggested glue; I just used some layers of sticky tape. Still working perfectly after a year of heavy use). I think I ended up doing something for some other keys; I also disabled caps lock (I'd press it instead of tab). BTW I use vim all the time.

It was annoying, but the hacking was fun.

One command which is especially useful with netbooks is 'ssh'. Now you have all the computing power you need.

edit: I might add also screen/tmux. Coding at home, and need to go? detach and grab a laptop, continue coding. Your battery dies? Session is at remote end and nothing is lost.

I just moved to a netbook for most of my hacking and am pleasantly surprise how well it works. I run Ubuntu with Xmonad. Xmonad works really in the small screen. I compensate for the slower Hard Disk and CPU by maxing out the RAM. A big win is being able to go almost one full day between charges.
I like the ubuntu netbook remix. I added the workspaces back and it works very well.
All in all, none. The blogger just likes the keyboard.
> If I had a screen in front of me, the temptation would be to do something, to try out the idea

And this temptation is bad?

It is if it means you're working on a second-class idea rather than thinking for another 10 minutes to come up with a first-class one.
this has been my experience. if it runs like crap on one of these things, it will probably run like crap elsewhere. plus how much computer do you need to ssh into a 40 box farm of ec2 servers?
I bought an Asus Eeepc 1201t 12 inch netbook from newegg a few days ago and the experience so far has been very pleasant : http://www.newegg.com/product/product.aspx?Item=N82E16834220...

* AMD Athlon Neo MV-40(1.60GHz)

* 12.1" WXGA

* 2GB Memory

* 250GB HDD

* ATI Radeon HD 3200

Not bad for $380 I think! Also Ubuntu 9.10 runs fine on it except the wifi driver which has to be manually installed but only involves an extra minute or two.

except the wifi driver which has to be manually installed but only involves an extra minute or two.

and, of course, you've written a script for that by now anyways (right?)

BTW, as I noted elsewhere, ubuntu netbook remix is outstanding for the netbooks. It provides maximum screen space utility and is worth a look.

I run an emacs --daemon on a powerful server and connect to it from my netbook. Best of both worlds. Just need constant WiFi which I can almost always find.