As a computer programmer, the only tool I find that I could not work without is a laptop. I used to use a desktop, but regular travel put an end to those golden days and modern laptop specifications are comparable to their desktop equivalents. Anything more than simply compiling or testing code would normally need to be run on some dedicated hardware anyway so that other projects can be worked on in the meantime.
Use of devices such as phones or tablets for programming has so far been a terrible experience, touch screens are not effective programming tools. The feedback from a keyboard allows for much higher rates of typing in my experience, although some younger generations could begin to challenge that notion. I distinctly remember that even with T9 keypads, some people were able to reach incredible speeds.
That said, a programming device I would be happy to use on a regular basis for programming would need (along with an indicator for how regularly they are used):
High
Keyboard - For the purpose of typing anything as the main source of input.High
Battery - For ensuring that the device runs separate from a need to be plugged in.High
USB port - These are used regularly for attaching various devices, in general three or more USB 2.0 ports are needed.High
WiFi - This is the single greatest use of any kind of outbound connection the machine makes.High
Display - Seeing what the hell is going on.High
Computer - The main features of being a computer, i.e. CPU, RAM, GPU, etc. This is normally a single board within the machine with all parts embedded.High
Headphone port - Listening to music and blocking outside distractions.Mid
DC - Recharging the battery and keeping the machine alive whilst the battery is removed.Mid
Mouse - Organizing software on the machine.Low
Microphone - For online calls.Low
Webcamera - For online calls.Low
Ethernet - Connecting to hardware directly.Low
HDMI port - Giving presentations.Because of how regularly they are used, I would be happy for the Low
use devices to come in the form of attachments. Mid
use I wouldn’t mind them being embedded or attached.
Our problem is not that laptops aren’t readily available and that they don’t come with most of the features we want, nor can they be considered too expensive for what they offer. The problem(s) I have with current laptops are:
Additionally, personally I would like to see:
We’ll run through some positives and negatives of existing platforms:
Positives:
Negatives:
Positives:
Negatives:
Positives:
Negatives:
Design one from scratch.
Of course this will be a lot of work, but the results should prove worth it. Essentially we want the result to be something similar to the PiTop, but that is less expensive, has longer battery life and has a more convenient form factor.
Addressing our requirements made above:
High
Keyboard - Bluetooth keyboard (with dongle occupying one USB port).High
Battery - A USB battery bank.High
USB port - Supplied via the board with USB extensions.High
WiFi - WiFi supported on the mainboard.High
Display - Via HDMI connection from the mainboard (will require HDMI and one USB connection).High
Computer - A low-end Linux board.High
Headphone port - Supplied via the main board.Mid
DC - Charge the battery bank through normal methods.Mid
Mouse - Bluetooth mouse (shared with keyboard).Low
Microphone - Bundled with camera.Low
Webcamera - USB add on camera (detached for most purposes).Low
Ethernet - USB add on Ethernet (detached for most purposes).Low
HDMI port - Unplug main output display for HDMI.From this we have several requirements of the main board:
NOTE: To be continued…
[1] Link: https://www.google.com/chromebook/find-yours/
[2] Link: https://pi-top.com/products/pi-top