Main - Overview - Documentation - FAQ - Media

Vision FAQ

Basics About Vision

Is Vision an operating system?
No, Vision is one portion of an operating system that deals with drawing graphics on behalf of applications and interacting with the user.  Because that portion is what users spend their time looking at and interacting with it is easy for some people to associate the graphical front end with the operating system as a whole.  In truth it is really just one of the thousands of programs and systems that make up a complete operating system (and in some situations is optional).  Vision itself is a window server and companion application framework. 

What is a window server?
A window server is a program that runs as a part of an operating system that does the actual drawing to the screen for other programs that are running.  Instead of having every graphical program directly access the graphics hardware, they instead connect to the window server and ask it to handle drawing and user interaction.  This allows the window server to do a lot of the heavy lifting and allows the applications to easily take advantage of commonly used functionality.  In many cases the window server is given special treatment by the operating system scheduler as well as other special access. 

What operating systems is Vision implemented on?
Vision is currently only implemented on OS X.  However Vision may be ported to other operating systems in the future.  There has been a great effort to design Vision so that it can work with as wide a variety of operating systems as possible. 

What graphics APIs are supported?
Vision is currently only implemented using OpenGL but things may change in the future.  OpenGL however was a better choice initially because it is implemented on a very wide variety of hardware and operating systems.

Can Vision be leveraged to develop traditional standalone applications?
Yes, Vision currently can build as a window server and also as an application library.  It has been designed as a window server but it can also be used to create self-contained applications that run under operating systems that supports OpenGL and Objective-C. 

What programming languages can Vision applications be written in?
Although the infrastructure and server modules must all be written in Objective-C, after some work (on Vision in the future) any language that can be made to support C function bindings should be capable of creating client programs for Vision.

Can you run older programs not written for Vision in it?
Not at the moment.  It is very possible to write compatibility layers for existing window servers though.  It is very likely that work will go into this area sometime in the future. 


The old 2D way is good enough for me.  Why should I be interested in Vision?
The command line was good enough for most people in the 1980s until they got a look at some new fangled graphical application that won them over.  Keep your eye on things and a 3D app will catch your fancy.  I believe that we are heading towards 3D interfaces in a similar manner to how we headed towards 2D and that it is only an amount of time before it starts to permeate computing. 

Doesn't a 3D window server take up a lot more resources and run slower than the traditional 2D one?
No, but sometimes it depends.  It is really more of a different performance paradigm more suited to the direction computer hardware is going.  Situations can be conceived of in which the old paradigm might perform better, but in most situations Vision will run faster.  Because Vision uses OpenGL for visualization it gains any hardware acceleration that OpenGL can take advantage of.  Also using OpenGL commands to draw instead of copying pixel buffers has great benefits on todays systems.

How will 3D help make my email, web browser, word processor or program X more efficient or better?
I don't know.  But the authors of email programs, web browsers, word processors and program X will know once they get the technology in their hands and start playing around with it.  I can think of some examples in which the advantage is clear, the most simple of which is the Rubik's cube.  However, I cannot come up on the fly with a clear way to make any old program a 3D killer app.  Much like the transition from command lines to 2D graphical interfaces in the 1980s, nobody will know until the programs actually get created and people start trying them out.  Their innovative advances will most likely be so obvious and simple that we will all wonder why we didn't see it before and how we all got along without it. 

Won't open and constantly developing middleware will cause incompatibilities, conflicts and degenerate things into chaos?
This is a genuine concern and is the reason why standardization and familiarization in interfaces has ruled the roost for so long.  I believe that with the correct model, Vision can have both immense flexibility and a stable application development environment.  I would point to the Linux kernel project as a great example of an open source repository that works.  There is a central repository that produces a standard version of the product that everyone can hold with reliability to be stable and fairly standard.  But there is nothing stopping those who need or desire to alter the kernel for their own purposes (which many people do).  For Vision, a central middleware repository maintained and distributed by some authority (operating system vendor, etc...) will be necessary so that people will have a standard to hold to; but the ability to fix, customize and recontribute will give rise to much more innovative ways of application interaction and ultimately better apps.  As for the power of familiarization, I also believe that if programmers are not confined within a closed set of interface constructs that good programmers/designers will make interfaces that people will be able to understand within 30 seconds of encountering them for the first time.  Good interfaces will thrive and bad interfaces will die instead of every application interface being marginalized. 

I don't like eye candy, I like things simple, lightweight and fast.  Why should I be interested in Vision?
Because of the open, modifiable and dynamic middleware, people are able to override and replace any module with one of their own which might be more to their liking.  This means that even though a program might have been created with one version of a certain construct there is nothing stopping you from replacing it with another version on your whim (even if the program is closed source).

Why did you pick Objective-C for the infrastructure?
Interestingly enough Vision was originally a C++ project.  It was developed to a surprising extent (thanks to a lot of crazy hacks) in C++ before the needs of the middleware system demanded a language with a more substantial runtime.  Objective-C was a perfect fit because of it's well developed object oriented design and feature rich runtime which allowed Vision to progress into what it is now. 


Are you planning on a public release of the application library source or any form of the Vision window server?
It depends on what interest companies or investors might have in partnering with Aoren on development of Vision. 

What is your business model?
Currently Aoren offers commercial use licenses for sale on a case by case basis.  However, Aoren is also looking to partner with a technology company that can provide Vision a full development and design team, is open minded and will consider many options.

Why isn't feature X developed, the documentation on the website complete or my email answered?
Because for the moment Aoren is just one person and I must triage what is most important.

Copyright © 2004-2011 Aoren LLC All rights reserved.
[email protected]