Richard Bucker

Modern Application Development

Posted at — Dec 25, 2011

There was a time when I was very proud that I could go a year without rebooting my Linux or BSD machines; specially when it was my main development machine. Over the last 6 years of my OSX tenure I have had very similar success. The main difference is that I have been using VMware or remote virtual servers a lot more for development.Last night I was forced to reboot my OSX machine. It was an unpleasant experience because it felt like I was being coerced into the reboot. I know the feeling all too well from my Windows days when I might have to reboot my Win machine several times a day.Last night’s experience was triggered by a large swap file. This was caused because several applications had allocated between 500M and 1.5G of memory. Chrome of OSX Safari (latest) PyCharm (3 directories open but it’s java) Little Snitch (what? There shouldn’t be that much data) CrashPlan (also Java; since uninstalled) Kernel Task (expected) VMWare (expected)I brought up htop┬áin the VMware slice where I had a PyCharm instance running. There must have been 30 java processes. Who knows what that’s all about? I remember reading that most programmers that do threaded programming are not any good at it and it should be left to the experts. I wonder if jetbrains are experts.There is a software version of a saying that [software is going to expand to fill all available memory and CPU capacity] or something like that. So here is my take on this:a) software is way too complicated and that complication is represented in more and more code with more and more friction for the user with more and more bugs.b) being the one application that takes 90% of RAM is not a good thing. A little care and you can reduce your footprint and with luck improve performance. And if you use something like SQLlite or some other embedded DB you might accomplish both.My new years resolution will be to take my own advice and reduce my friction where ever I can.