In IDE's we can drag a small continuous collection of pixels in a particular configuration to a place on the screen .This collection of pixels are called as controls .

Corresponding to every control, there are various kinds of event handlers,like for a button , some subroutines for events like "double click" , "single click" are available ,for a grid there might be "right click ", "gaining mouse focus" event handlers might be available .

The collection of available event responding subroutines,from what I could conclude , further depend on the framework or library we are using.

Now let us imagine that we have certain hardware with us and only one programming language available and we are accommodating some aliens in this world for whom , nose, is a very important sense organ for communication .Avoiding the concerns of scientific feasibility of such creatures let us say that to provide input to anything they exhale and inhale air into some device . And to meet their requirements we might need programs that can manipulate the fragrance that they are smelling , like ,let's say we need a computer program for a messaging app that is to be designed for them to be able to emit the smell of rose at the receiver's end when the sender scratches the screen and many more .

Now given such a situation , if I want to design a GUI for them or may be (OUI,olfactory user Interface ) how can I make my systems compatible with their method of input and output .I mean how can I design event handlers for them like , "One nostril snort event ", "double nostril snort event ","deep inhale event " and many more that we can imagine .

What are the changes that I would require :

  1. Do I need to add some new things in my programming language ?

  2. Do I need to change my hardware (counting out their input device ,namely ,snake :P) ?

  3. Do I need to change my OS ?

P.S : I asked this question ,because,to put in the most general manner and basically I wanted to deconstruct and see from the bottom , how can computer programs(including the OS ,which in essence is also a computer program ) control hardware and as such I might get a better idea on how to direct myself in learning about all this.

  • $\begingroup$ We already support various modes of interaction, e.g. screen readers for blind people and things like Dasher for those with limited mobility. Supporting this does not require any new programming languages, operating systems, or hardware beyond the peripherals themselves. OS support can be beneficial, though, as it can allow unaltered software to be used. At the end of the day, a peripheral is going to produce/consume a "bunch of bits" and the computer is able to make any arbitrary computable mapping from input bits to output bits. $\endgroup$ Commented Mar 18, 2017 at 23:19
  • $\begingroup$ @DerekElkins : What about the event handlers in their IDE ? $\endgroup$
    – itp dusra
    Commented Mar 19, 2017 at 6:53

1 Answer 1


Those kinds of aliens presumably wouldn't use a GUI. A GUI is a graphical user interface, i.e., directed at the visual senses. Your aliens have no sight, and wouldn't use such a user interface. They'd use something else.

The user interface is programmed as part of the software application. So, you wouldn't necessarily need to change the programming language or the hardware or the OS -- just the application (and its libraries). (Of course, you would need additional peripherals to emit smells etc., but you say you're counting that out -- apart from that, there would be no changes to hardware needed.)

  • $\begingroup$ @DW :I meant , hardware changes other than that ? Yes they would use something else ,olfactory user interface , like snakes do . So the question is centered around programming the OUI . So , in this case what would be the answer to this question ? $\endgroup$
    – itp dusra
    Commented Mar 18, 2017 at 16:56
  • $\begingroup$ No , I didn't actually mean that you provided an incomplete answer . I was just asking what changes do I need in the libraries ? Actually , this is what kind of intrigues me , we have libraries for everything . So , how would we go about developing a library for a new purpose ? $\endgroup$
    – itp dusra
    Commented Mar 18, 2017 at 18:00
  • $\begingroup$ @DW : I don't know but I suppose libraries are written in the same language as the library function is being used in.. Is it so ? $\endgroup$
    – itp dusra
    Commented Mar 18, 2017 at 18:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.