I found Intel’s latest Makers competition very interesting and some of the technologies and their applications are quite unique. This made me wonder, “what is a maker” and what kind of technology can produce the greatest benefits?
Are You A Maker?
This is not a question about technology. It is a question about motivation and creativity. So what makes a Maker ? The old saying “necessity is often the mother of invention” is quite true. Being a Maker is not simply the desire to create things, nor ones technological skills. Those Makers who bring the greatest benefit are those who see a real problem and find a way to solve it. But not simply as outsiders, but as those directly involved. As an outsider, one may observe a problem, but one does not experience it. Programmers, who desire to be Makers may have good ideas to solve a problem using technology, but may not be directly involved or affected by the problem, so they are actually an outsider. They may have the technology, but because they are not directly involved, they may not see the real picture and the real need (or whether there is a real need in the first place).
So what is a maker? I can only describe it by experience. For example, when I was young, I used to work with a man who was a home remodeler. We did all sorts of things, including painting houses. I remember times I was a Maker when working with him. Each time, it was necessity that generated the effort. One time, we were painting a house and we used ladders with ladder jacks, with a short beam between them. To span a greater distance, we would have had to purchase an expensive aluminum scaffolding board. We could save so much more time if we just had a longer beam between the ladders and could paint a larger area of the house without having to the move the ladders and scaffold so much. I suggested using a long 2 x 10 wood board, but that failed because it flexed too much and the longer the span the more it would bend. Wood is cheap, but just a board would not work. So then the Maker mode kicked in. Find a simple and easy solution. Then I came up with this:
By using inexpensive wood boards, we could purchase at the lumberyard, I designed two scaffold boards which interlocked using small 3/4 inch pine boards which acted as teeth between them and then by adding a 2 x 3 board underneath, sideways, to prevent the boards from flexing under the weight of two men, I created a cheap solution to the problem. It worked so well, we could span very long distances and saved significant time when painting houses. The boards (because I used 2 interlocked) were light enough for us to carry up the ladder, came apart easily and were easy to load on the roof rack of a station wagon. Because I used inexpensive boards, commonly available, it was easy to build and cheap.
The concept was not designed by an engineer trying to solve someone elses problem. It was designed by a young man simply trying to make his life at work a bit easier. I was involved. I needed what I made, what I created. It served a real purpose.
Now if an outsider saw the same problem and was asked, build us something, what would we have gotten? An expensive aluminum scaffold which was unaffordable. Why? Because an engineer would be enamored by technology (use the latest and the lightest metals). He would not think about whether it was affordable or easily accessible to the average man. Surely he would not think about using wood, would he?
There is an important lesson in all of this. The effort to use new technology to motivate the next generation of makers is not something to be left simply to the professional programmers and engineers, but instead is something which needs to be able be put into the hands of the average person. Such technology needs to be inexpensive, yet easy to use for someone who is not a professional programmer or engineer. The technology needs to be put into the hands of those who are not outsiders, but who are actually involved with the problems at hand. It needs to be put into the hands of farmers, teachers, carpenters and the common man. The real Makers often can be found with them.
What Kind of Technology is Needed?
Let’s start with some of the current efforts. There is the Arduino board, Raspberry PI, Intel Galileo, Edison and many more. Now I am not looking at this from the point of view of a novice, but simply from the point of view of a programmer who has always tried to keep things simple. My first observation is that most solutions don’t come standalone. Yes, the initial computer board may be cheap, but often one has to purchase all sorts of other items before it can be used (i.e., a power supply, something to display visually, a keyboard, cables, even a case, etc.). The end result is often more expensive than buying a complete Windows tablet. When I bought a Raspberry PI, my first reaction was “there is no case, so what will I put it in”? Then the Maker in me kicked in and I started to build a custom case using Lego blocks and superglue (I glued the blocks together). I had a bunch of Lego blocks just sitting around in a box doing nothing, so I put them to good use. The Galileo was even worse, since it didn’t even come with an HDMI connector like the Raspberry PI, so I had to purchase mini-PCI connectors and a VGA board to connect to it. These devices are great, don’t get me wrong, but they surely were not designed for the common man (or child).
My second observation is how the software to make the device do something is not designed for the common man. Arduino, it's amazing! But really, use a C like language for coding? Have you ever heard of BASIC? Oh, yes, BASIC, that easy to learn language for the common man (and child). The same went for the Raspberry PI. For a good while no BASIC for it. I would have thought BASIC would be a first choice for it. Fortunately, BASIC is now starting to appear for the PI. The most interesting recent addition to BASIC for the PI, I have found is App Game Kit for the PI. It is about time. BASIC should have been one of the first choices for the PI, not an afterthought.
BASIC is still alive and thriving today, but with all the emphasis on IOT (Internet of Things), 3D printing and being a Maker today, it would seem BASIC would be the first choice for allowing the common man be able to make such devices do important things which affect their real lives. Especially in education, should BASIC be brought back in use for the many mini-computing devices coming to market. Ease of use is a must for the common man.
The Technical Side of the Kind of Technology Needed
As far as the technical side of things is concerned, while a complete inexpensive stand alone package is a must and coding using BASIC (or something similar which is easy) is important, there are a number of technical issues which I will address now.
Since much of IOT depends upon a small size, affordable hardware, portability as well as performance, let’s consider how to leverage technology to get the most out of it. If a Windows tablet can be manufactured and sold for less than $100 (I have seen as low as $60), which is a complete standalone package, surely new Raspberry PI and Arduino like devices could be brought to market which are a complete package for a low price. Actually using current tablet technology is a good place to start. It already has a touch display, decent computing power, WIFI, BlueTooth, USB, etc. Something smaller, more akin to a smart phone possibly. The key is a complete package.
Second, is connectability. Rather than messing with wires connected to a breadboard like device, why not define some standard for connectability, like we have with USB, Serial Ports and the like with standard cables which anyone can just plug into a small computing device. A standard Input/Output connector cable. Package sensors so they connect using this standard and now you have something the common man can use.
Third, get back to native code compilers for programming. The smaller a device, the less computing power it has. Obviously to get the most performance from such a device we need to be able to write software which is compiled to native machine code for the device. Forget about universal portability. Performance beats portability any day. The Intel x86 platform is a long time standard (ARM is also) so using native code can push mini-computing devices to their maximum potential. (see Herb Sutters talk about native coding),
Fourth, and many may find this one strange. Get back to basics with good old fashioned procedural style code. Forget all the OOP stuff, which adds bloat to software, but get back to basics using simple flat API’s with minimal overhead. In the Windows world, good old fashioned WIN32 programming will outperform today's OOP and managed languages any day. WIN32 programmers can still write apps which will fit on a floppy disk, which is a definite benefit for tiny computing devices with minimal hardware. I would venture to say that if one could get rid of a lot of the bloated software out of Windows and stick with coding for the core WIN32 flat API’s, one possibly could get Windows 10 running even on a Smart Watch with very decent performance. The Intel Atom SOC’s running at even a quarter of their current speed are plenty enough power for well written WIN32 apps.
Fifth, provide quality programming languages designed for the common man such as BASIC. BASIC has a long time history of being the language for kids, for hobby programmers and amazingly even for professionals. By building fast compiling, native code BASIC compilers for the next generation of IOT, mini-computing (PI like) and Arduino like devices, using much simply syntax (get rid of all the OOP and make it simple), such devices could be used and coded by the common man.
Real Practical Solutions from Makers who are Involved
With such technology, future students, carpenters, farmers, healthcare workers, yes the common man, would have the potential to be Makers. The solutions they come up with could benefit many. It may even generate new businesses. Classic Visual Basic, because it was geared towards the common man, turned many a hobby programmers idea into quality commercial software and created new businesses. A similar thing could be done when it comes to the next generation of Raspberry PI’s, Arduino, Galileo and Edison devices.