Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming

Journal cryptochrome's Journal: Reinventing Computing

If someone were to reinvent computing, what would it look like? If you could abandon all backwards compatibility, and had the resources to remake the whole system, how would you do it? And I mean ALL the way - up to and including standard mathematical notation, and even our number system and written and spoken language. Obviously we've learned quite a bit over the past several thousand years, but we're also constrained by our need to accomodate past inventions that are too entrenched to get rid of.

For me, I think the primary considerations are the interface and the basic principles.

Interface should be fluid, to accomodate a variety of ways of interacting - through complex visual metaphors, simple text, or even through our aural and tactile senses. It should be possible to interact fully (if less efficiently) through a simple keypad and one-line display, as well as through a GUI, or a speaker/microphone combo. That means that the information returned by a program or command, and the commands given, need to be interpretable in a variety of ways. Once you have that, programming becomes and easier task. For instance, you could invoke a program at the command line, which could return data of any type, with arguments of any type, not just text. The shell would format the result correctly and consistently, just as it parsed your consistently-invoked command. And the shell could be text-based or gui or voice-based or touch-based. Formatting of types could be added or changed on the fly to suit your needs. In all cases, the data returned would possess a type and an address, which could be used in commands for further processing.

The programming langauge of choice would be capable of handling high-level to low-level interactions, would prevent bugs, be crash-resistant, compact, and applied throughout the system. It could be interpreted or compiled, and its notation would be used the same in math expressions or written programs. Instead of the arbitrary base 10, we should work from the ultra-simple and maximally efficient base 2, or a suitable power thereof like 2^4=16. Making that basic change means both computers and humans would be working on the same page, and would prevent errors in translation. Of necessity this will require adopting a number of paradigms at different points, from functional and object-oriented paradigms to low-level optimized routines.

Well all this must sound like a daunting task at best, and an unnecessary pipe dream at worst. I am reminded of when Apple had decided to replace the classic MacOS and had a choice between either Be, with their super-modern, super-fast, built-from-scratch approach, or NeXT with their unix base and well-developed API and tools (and Steve Jobs). They picked NeXT. At the time I was disappointed - I wanted the new sleek hot OS. But in retrospect I think they made the right decision. The unix-based OS X they created can run thousands of general and specialized unix programs developed over decades, helping the Mac (partially) overcome it's main shortcoming - the lack of applications, particularly specialized applications, as compared to windows. OS X is no longer just for mac afficionados and the occasional windows switchers - it's become a system of choice for unix geeks as well. The moral is clear. Whatever system you pick, make it something that can be built and rebuilt piece-by-piece.

This discussion has been archived. No new comments can be posted.

Reinventing Computing

Comments Filter:

"Experience has proved that some people indeed know everything." -- Russell Baker

Working...