When I think of the Internet of tomorrow I see many big changes. Users have many different needs when they sit down at a computer to use it. Some users want to use applications to write documents, prepare presentations, and work with spread sheets while other users are there for Internet browsing. Still others play games, listen to music and watch movies for entertainment. Designing a platform that meets all of their needs has been time consuming. The computer industry has, over the past thirty years, created much advancement in the size of the platform by overcoming specific electronic engineering hurdles. However, the computer industry has not created the reusable Internet aware platform that makes excellent use of network technology. The platform of tomorrow will have game mechanic hardware on board and provide extensive use of the Internet as its backbone network connection. I think that resource designers should start now to facilitate the Internet growth as an intrinsic operational necessity not merely as a platform extender. The internet should be an interface provider.
The term interface provider does need refining within the confines of this discussion. In fact, it is the key element that needs attention. HTML via HTTP is the current method in which interfaces are handled for many cross platform users. Programming tools like Java do make use of the Internet for package discovery, yet without proper design they rely on the local hardware to perform all of the work. As well, web enabled Active X controls also allow this. But these technologies at most times are executed within the browser sandbox. Users need applications on demand and they need to be fast. This can be achieved with proper forethought and with the current transport mediums available to consumer electronics.
Providing an interface can be thought of as a visual presentation and validation of user input (Human Interface Devices HUD). In most applications the user will be presented with an input screen or viewing area with fields. In HTML these fields are described as input boxes, text areas, and control grids. But to validate the responses, JavaScript is used to aid in the process. Pages designed with JavaScript when compared to the robust and structured ordering of a windows type application design are at most times a minimal implementation of type checking and lookup features. Until the recent .NET development, tools for creating interactive web applications were difficult to use. The maintainability of HTML applications is much more difficult than structured approaches because of the pure textual base and tight integration of screen / program data. Modular approaches are not utilized often in HTML application design. That is not to say this for every case, but any experienced developer of many languages will let you know the strength of JavaScript can also be its worst enemy. I believe that strict syntax checking, compilation and type checking always benefit the security and integrity of an application. At most times providing a JavaScript routine that does document work must be tested in many browsers for validation subtracting again from cross platform awareness.
It would be great if tomorrow were planned better. Developers are always on the go. It is all about learning the new languages or methods used to create applications. C# and Java are the most recent platform independent language available. But there have been attempts to create platform independent languages before these. C++ is such a language, but its ANSI implementation has been crippled by the need to create GUI applications. Unfortunately the American National Standards Institute did not grow to create a GUI definition standard. In an industry where there are many platforms and teams that are working together, standards are the backbone of knowledge for the developers. I want to change the industry for the better and for good.
Tomorrow can be a beautiful day for all platforms and all users, provided you listen to me. While I could describe my version and platform of a cross platform interface rendering language, I know that I would forget a case. So I want to leave the definition up to a team of computer scientists. I foresee several rendering languages on a single platform, HPGL, PDF and HTML are some. Vector drawing languages are plentiful, yet none can really be used effectively for interface streaming. I do think that the language should be reusable and object oriented like the X file format. HTML is included as part of the web application. As well, a structured type safe language needs to be in place that will give developers a concise way to design controls, input screens and poll local hardware. Java may be a good choice for this provided that a cached, security checked, and native compiled version exist, but what is really of interest if the JVM. If such a machine were built, along with the appropriate development tools, a new era in distributing computing would take place.
Using a streaming oriented interface rendering combined with automatic overlay processing, users will be more portable with little difference in noticeable speed. Terminal servers do provide this service now, yet make ineffective use of the bandwidth and local hardware. VNC is such a project. Both of these programs typically make a computer operate as a dumb terminal, echoing input back to the server. Yet. there is a way to combine all development tools and platforms together by using a common visual output, after all that is what computer users are really interested in. Imagine using applications from several different platforms all in one desktop. I hope a big giant like International Business Machines creates this platform first. After all, they were the first love of the market. But their vision is more oriented in the mainframe industry. With a product similar to this, the software market could be open free of monopoly. The future is going to overtake you. The future is INET.
Computers have taken many forms in the past. Most of the home computers of yester year had on board specialized sound processing and sprite hardware management. Modern PC computers have sound cards and 3d video processors. Here are all the computers I programmed with.