This past year I’ve been speaking a lot about doing IBM i open source development with languages like Ruby and using tools like Git.
A common question I get is asked below:
>Please advise what processor/memory/windows version should we have as we are going to be buying new laptops for our developers to get into the 21st century for applications such as Ruby on Rails, etc.
And that’s a very good question! Let me share my thoughts…
First, the image below is the current config of my machine.
It was the highest-end model Macbook Pro w/ Retina money could buy in Feb 2013 (checkout price was $4k – YIKES!). Two years later the machine still screams because of the 768GB solid state drive and 16GB of memory – I’ve never lacked for computing power. Why spend so much? In short, time is money when you’re developing. With that said, you can get a good Mac for 1/2 that price – just make sure it has solid state drives and plenty of memory (minimum of 8GB, but I would go with 16GB). I say all of this with a catch…
Scenario Is Everything
My scenario when I purchased my Macbook was doing local Ruby development and deploying to Amazon EC2 Linux instances. If you are developing Ruby for IBM i then you should be doing the development on the IBM i in your /home/<myprofile/ directory so you’re as close as possible to the runtime that will be used in production. The same is true for Node.js development.
If you are doing development on the server then you need significantly less processing power in your laptop.
I believe significant hardware on the client (laptops and desktops) are nearing their end. This is good for a number reasons:
1 – They are very expensive to purchase and maintain from a hardware/operating-system standpoint, and
2 – They are expensive to maintain from a software development perspective. Getting everything setup on your laptop to do Ruby or Node.js development can take a solid day – if you know what you are doing. Then there is the subsequent maintenance of all those things you’ve installed and that needs to be done for each developer on your team. Imagine if it was set up once on the IBM i. That’s what we do at Krengeltech.
The Browser is King (or at least is in line to be King!)
A few years ago our family hopped on the Chromebook bandwagon to have computers for our kids. At $250/each it was a small risk to see how things would pan out. In short, they work well; though I’d opt for a more expensive model to get a higher quality screen and bigger keyboard. Chromebooks are more or less booting into a browser-like experience. Everything happens “in the cloud” – more or less. I was able to hop onto the kids’ Chromebook for ½ a day because most all of my work these days is done in the browser. I do email, calendar, documents, project management, time tracking, music player, chat, and coding all from the browser.
You read that last bit right, I code in the browser.
Below is an open source browser-based IDE running on our IBM i that I use to code my Ruby and Node.js applications. This replaces the client-side SublimeText editor I had been using to date. Also, if you store your RPG source in the IFS then this editor will work for that also. We are working on the ability to edit QSYS.LIB source members. Contact the Litmis Team if you are interested in having this on your IBM i.
The other tool I need is a terminal so I can ssh into PASE on IBM i to get to my bash shell. Oddly enough, the shell command line is something Ruby and Node.js developers use on a frequent basis for doing things like installing new modules, running unit tests, deploying applications, interactive programming environments (i.e. irb, node’s REPL), etc. There are a number of options available for client-side terminals, though I haven’t found one I like on Windows (i.e. putty and cygwin are sub-par in my book).
Not to worry, there’s a browser plugin for that!
Below is a screenshot of me ssh’d into PASE on IBM i using the Secure Shell Chrome plugin (FireFox has FireSSH). The browser-based ssh plugin is a recent discovery for me and so far I am liking it. It’s fast, it’s clean, it uses the native copy/paste keyboard sequences (unlike putty and cygwin).
You’ll notice I’ve focused on laptops and not desktops. I honestly don’t know why a software developer would buy a desktop these days. Laptops now come with stunning displays (i.e. Mac’s Retina) and plenty of processing power. But the big kicker is a desktop stays in one spot. I have the luxury of working from home and the company I work for understands the reality that results are more important than rules. Below is an example of what my office looked like for a number of days this past summer and fall (I use Mobo attached to a comfortable wooden chair). The point is a laptop can go with you wherever you find inspiration, and for me that is having a view of creation. You’ll also find me with my laptop at swim meets where there is inevitably many hours of downtime as you wait for the 30 seconds of swim time (swim parents – you know what I’m talking about)!
For a few years I tried having a desktop and laptop, but keeping them sync’d was a complete waste of time. Ditch the desktop. Also, you can always use external monitors and keyboards connected to your laptop if you need a more desktop feel.
OK, so what do I buy?
It’s been awhile since I’ve priced laptops (February of 2013 to be specific), so take my recommendations with a grain of salt. Here are the options I’d consider:
1 – A Macbook. Despite some recent issues personally with the latest version of OSX (Yosemite) I would still highly recommend a Macbook with OSX Mavericks or Mountain Lion installed. The hardware is solid and to purchase the same machine I have now is $2,200 on Amazon (used). Btw, you might frown on used laptops but you have to realize that Macbooks are made to last and aren’t like their plastic counterparts.
UPDATE 2015-02-21: A local retailer (Mankato, MN) recently started refurb’ing Macs. I encourage you to check them out here as they know their Macs inside and out. A good way to take a first leap into Macs without breaking the bank. TechConnect Plus
2 – Try a Chromebook. I am very near to a Chromebook being an option for my primary computing device. The main issue is VPN software (Juniper) not being supported on Chromebooks. You can get a decent one for $439 on Amazon (new). Or the higher end Pixel for $1,299 from Google Play. Even if you go with the below Windows machine I’d still recommend purchasing an under-$500 Chromebook so you can see where they are going. Make it the “loaner” laptop that people can borrow. It’s easy to share amongst many people because you log in with your Google profile.
3 – Need to stay on Windows? I am not much help here. I don’t even know if Windows 8 is better than Windows 7. I run a virtual instance of Windows XP when I need it, otherwise I don’t use it. I can give you some things I’d look for though. Solid State Drive – this makes things go very fast. At least 8GB of RAM. A 15″ screen – go too small and you’re squinting, go too big and it takes more than your lap to hold it. An Intel i7 processor. I don’t know how big of difference this makes but it is what my Mac has and I’ve had excellent performance. Given the above requirements I found the Lenovo Yoga on Amazon for $1,129 which seems very reasonable. Note I have not used this machine so YMMV (Your Mileage May Vary).
That concludes this piece!
How far along are you with doing everything from the browser? Remember the simplicity of having dumb terminals and everything was done and stored on the server? That’s what is reemerging and I like it.