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.
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).
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).
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.
PyDev is truly impressive. For small tasks I prefer Spyder from http://code.google.com/p/spyderlib/ though. It's truly light weight and easy to use for small tasks.
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.
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.
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).
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 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 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.
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.
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 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 :-)
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.
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.
"At Caltech, he used a nude/topless bar as an office away from his usual office, making sketches or writing physics equations on paper placemats."http://en.wikipedia.org/wiki/Richard_Feynman
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.
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 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 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 :-/
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.
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.
the part number is U061H, it's just an "international keyboard" in their system. you may have to order it directly by contacting dell (either their web sales chat thing, or calling) and just asking for the specific part number.
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.
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.
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.
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 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.
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.
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.
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 :-)
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.
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.
My dev box these days is a 3 pound, 10" ThinkPad X60, bought off eBay for $300 and maxed out with 4gb ram and a 320gb drive. I'd prefer something bigger, but then I've been backpacking across South America these last 7 months, so space and weight are kinda precious.
Here's my experience:
Up:
- It's fast. Honest! Faster than the proper dev machine I was using just 3 years ago.
- It's crazy portable. I can write code on a bus.
- Long battery life. 8 hours writing in Word, or 3 hours at full dev mode: SQL Server up, VS.NET and ReSharper churning away nonstop while 4 copies of the client-heavy end-product are running in the background.
Down:
- You can't fit much code on the screen. Means you need to keep more stuff in your head, which slows you down a bit.
The big downside is that nobody is making fast small machines anymore. The X60, which ended production 2 years ago, is the last notebook you can buy with a non-letterbox screen and a proper fast processor. Now it's all netbooks, with their boggy processors and wide-aspect, codeproof screens.
It's a shame. If somebody made a machine on the X60 form factor with the latest hardware I'd definitely buy one.
I'm doing all my work (programming) on my trusty ThinkPad x200, which is basically a successor to X6x.
While it is somewhat larger (12" screen, 3.25lb), it's still rather mobile, and a bit bigger screen (1280x800) means I can fit most of what I need on the screen (I prefer my windows maximised, though, and my IDE of choice is vim+bash).
It's powerful enough machine, too - I usually have one (or, not so often, two or more) VM running for servers and/or different operating systems.
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 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.
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 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 :)
My netbook is great for playing nethack in class, but it's not great for coding. Mostly because I code in Acme, which depends thoroughly on a good 3-button mouse; the netbook's two button one-bar thing doesn't cut the muster. And of course there's the screen size--600 vertical pixels do NOT show enough.
My old Thinkpad T22 was fantastic for coding, and of course my desktop with HHK and 3-button Logitech (3 real buttons, no scrollwheel) is even better. The netbook, not so much.
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.
I'm excited to see someone else practicing the behavior at the core of his netbook experience. At work, I use a traditional desktop machine, but any time I have a vaguely defined challenge that requires some creativity or thinking, I will reflexively and immediately get up and walk around the office a bit while I plan. I come up with much better solutions that way.
If I had a screen in front of me, the temptation would be to do something, to try out the idea...
The nice thing about a longish honest post like this is that the writer is likely to tell you what you need to know whether he meant to or not. This is a good example of condemning something while meaning to praise it. Trying out ideas is half the point of programming!
Well, thanks for the compliment I guess :-) Trying out ideas is indeed the point, but reducing the solution space for a given problem is better done in your head than post-facto in the (written, tested, integrated) code, no? The earlier in the process you fix things, the cheaper it is to fix.
Well, before testing and integrating, sure. Writing it, maybe not. It depends on what you're working on I suppose. Certainly I've had the same experience - not being able to turn on a computer and so thinking about coding instead of doing it and having a better way occur to me. But I think coding immediately still wins usually.
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.
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 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.
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).
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.