Interface - what is such simple words

Interface - What is what it needs, types of interfaces

January 4, 2021.

Hello, dear blog readers KtonanovenKogo.ru. In the era of mass computer, it is important to keep up with the latest trends and constantly replenish the gap in knowledge.

It is important that the interface corresponds to the goals and context. If this is the interaction of a specialist with a computer, then the main thing is the ability to provide information and fulfill the tasks. For an ordinary user, it has not only technical, but also aesthetic value: work with it must be comfortable and understandable.

You do not want to come across the need to crash? Today we consider another term associated with PC.

I will try to explain such a thing as an interface: what is and why is necessary. So, let's begin.

The interface is ...

Like all new-fashioned phrases, the word "interface" came to us from the English language. Translated Interface indicates " Place of contact "

The interface is a set of tools that allow the user to interact with the computer's operating system, a mobile device or other types of equipment.

The interface is ...

As such tools Interactions can act:

  1. text fields;
  2. buttons and ticks;
  3. drop-down lists;
  4. pop-up tips;
  5. Switches;
  6. Elements of the menu of the program or site;
  7. and much more.

To be better clear what kind of fruit is this interface, consider a visual example. Suppose you decide to go on holidays in distant edges and book a hotel in advance via the Internet.

Come on the site, and there you expect several interfaces: search, display results, entering personal data, payment. During each stage of interaction with the hotel reservation site, the user operates with data and performs certain actions.

Why do I need an interface? Everything is simple, more than ever: the more convenient to use the program, site and other product, the happier users.

The friendly interface also allows you to raise sales on commercial sites, as visitors do not close the tab during the first seconds of using the site.

Sites with good design are greater popular among users, more visited, and, therefore, bring the best income to their owners.

Types of interfaces

The interface is customary to subdivide on the following types:

  1. Command line . This is the oldest and most time-consuming way to interact between the user and personal computer. At the same time, the command line remains the most reliable type of interface.
    For users, the interface is the basis of working with a PC or a telephone. From how simple or complex this system, the convenience of controlling the device will depend on. Developers can change system structures for complex tasks. Inexperienced users, it is better to buy devices with a clear interface to facilitate their work.

    Communication with the machine occurs in its language. The command line is used in operating systems intended for professional users: for example, in BIOS.

  2. Graphic interface . This is exactly what is meant today under the word "interface". It is applied in all operating systems, programs, web pages.
    Smartphone

    With a graphical interface, absolutely all PC users are faced. For more convenient interaction, it is recommended to use a computer mouse.

  3. Sign interface . The rapid development of technologies has become one of the reasons for the appearance of a gesture interface. This includes sensory screens, joysticks, stylus and other elements.
  4. Voice interface . Speaking the phrase "OK, Google" and subsequently pronounce the search query, you interact with the voice interface of the smartphone or tablet operating system.
    Command line interface

    This type also appeared recently thanks to the rapid development of technologies.

    But today it enjoys considerable popularity, as it allows you to solve a number of important tasks and manage devices (what is it?) - mobile devices, cars, household appliances, computers - with voice commands.

What should be the interface

The main task of any interface - Easily use Specific program, site or similar product.

For example, when developing a web portal is recommended to do focus on the following elements :

  1. The optimal number of displayed elements;
  2. adaptability to desktop and mobile devices;
  3. the presence of buttons of popular social networks;
  4. optimal size icons and buttons;
  5. convenient form of registration;
  6. Intuitive location of menu items;
  7. the presence of color or information accents;
  8. search system on the site;
  9. If necessary, the availability of contact data.

A bright example of a well-thought-out interface is KtonanovenKogo.ru. On the site, a good color solution, an intuitive menu, the presence of internal search, display articles by the date of publication, which makes the use of the resource fast and enjoyable.

That's all, dear friends. Now you know that the interface is, simply speaking, the external shell of programs or sites, which makes it easier to use them.

I hope that after reading the article, you will no longer have any questions. In any case, allow you to invite you to comments to subside on this topic with other blog readers KtonanovenKogo.ru.

And to consolidate knowledge, I suggest watch a video about the new interface for Android from Samsung:

Good luck to you! Seeing fast meetings on the pages of KtonanovenKogo.ru

Most modern interfaces are designed for experienced users. The cranes also did not immediately become for all familiar. Previously, the sides of the switch were certainly labeled red and blue - to be clear where it is cold, and where hot water. Now we are accustomed, and more and more cranes are released without labeling. Probably, they finally remembered which side which flows.

With web interfaces it was about the same. At the beginning of zero, there was a skiorphism - the graphics imitated the real world objects. If the site was the button, it looked like a real volumetric button. It was understandable to most people who bought their first computers.

But the moment came when new users have become less. Anyone who wanted to start using a computer and the Internet has already been mastered in technology. And the need for realistic interfaces gradually disappeared.

Now, instead of the detailed "Menu" icon, the so-called burger is usually used with the signature - three horizontal strips. And we know perfectly well what they mean. We also know that sites usually read from top to bottom. And do not need any arrows to explain. Modern interfaces are designed for experienced users and more concise.

Programs

The interface can be considered a kind of contract between the system and an external environment. As part of the computer program, the system is the function or module, and the "environment" is the rest of the project. The interface formally describes what data can be transmitted between the system and the environment. And "implementation" can be described as "minus interface system." In languages ​​like Haskell interfaces can be extremely specific. And in languages ​​like Python, they, on the contrary, are very ordinary. The selected interface type may affect the size of the created technical debt and the performance of the programmer. How to calculate it is written below. A method will also be proposed for evaluating and comparing different interfaces. Based on these comparisons, you can watch themselves for using the language or software tool.

The most important concept in the development of software - concept

Interface

. This article is not about Java interfaces, but about interfaces in software design. And to a lesser extent - on interfaces in the surrounding world. Of course, a lot of other important concepts are used in the development of software, but I believe that most of them are somehow depending on the importance of the interface.

What is the interface?

Most of us are familiar with two brief formulations:

The interface is a contract between the system and an external environment. The interface is a pairing system with an external environment.

Interface = System ∩ Surroundings

Definition with pairing is suitable, if the system is a physical object. Both definitions are very abstract, so let's consider them on the printing example on the keyboard:

Here the system is a laptop, the environment - hands (as well as the paws of the cat, climbing on the keyboard). Consequently, the interface must be any part of the interaction between hands and a laptop, which cannot be attributed only to some of the parties, but only to both. Usually we think about the hands and the keyboard is separate, so that the exact boundaries of the interface in this case are the subject of the philosophical dispute. You decide: whether it is the keyboard as a whole or individual atoms interacting with each other when the fingers and keys contact.

Probably, you will be surprised how this example correlates with the definition of the interface as a contract. In this case, the agreement is meant an agreement that at the time we spent enough effort when they remembered the location of the keys and the muscle memory was reworked. A number of nuances are associated with the treaty. For example, pressing and holding the key has a different value compared to a simple one-time press.

All these are curious philosophical reasoning, but how do they relate to writing software? Well, let's start with the fact that the interfaces in programming surround you from all sides, even if you do not pay attention to it. For example, if you are programming on Java, then explicitly name the interfaces depending on their purpose. And in other languages, they are also present. Let's consider an example of an interface function

:

add_numbers. 

unsigned int, unsigned int); void other_function (void) {add_numbers (3.4);} unsigned int add_numbers (unsigned int a, unsigned int b) {return a + b;} int Main (Void) { Add_numbers (9.99); Return 0;}

Apply the same color differentiation technique

Pants

All these are curious philosophical reasoning, but how do they relate to writing software? Well, let's start with the fact that the interfaces in programming surround you from all sides, even if you do not pay attention to it. For example, if you are programming on Java, then explicitly name the interfaces depending on their purpose. And in other languages, they are also present. Let's consider an example of an interface function

To describe the environment, systems

and interface:

All these are curious philosophical reasoning, but how do they relate to writing software? Well, let's start with the fact that the interfaces in programming surround you from all sides, even if you do not pay attention to it. For example, if you are programming on Java, then explicitly name the interfaces depending on their purpose. And in other languages, they are also present. Let's consider an example of an interface function

The system under consideration here consists of a function

. If you say that you can consider as a separate system main method -

Other_Function.

All these are curious philosophical reasoning, but how do they relate to writing software? Well, let's start with the fact that the interfaces in programming surround you from all sides, even if you do not pay attention to it. For example, if you are programming on Java, then explicitly name the interfaces depending on their purpose. And in other languages, they are also present. Let's consider an example of an interface function

- then you will be right. But for simplicity, we consider a function

All these are curious philosophical reasoning, but how do they relate to writing software? Well, let's start with the fact that the interfaces in programming surround you from all sides, even if you do not pay attention to it. For example, if you are programming on Java, then explicitly name the interfaces depending on their purpose. And in other languages, they are also present. Let's consider an example of an interface function

.

Isolated system. It is also advisable to consider part of the conversion interface to

As you can see, the fourth concept is added here: "Implementation". It's pretty difficult to discuss the subject of interfaces without taking into account specific implementations. Let's define this term: Implementation is a minus interface system. IMPLEMENTATION = System ∖ Interface

Implementation = System ∖ (System ∩ Environment)

I must admit that I never had such a definition of implementation before. But this is an inevitable extension of a set of interface definitions that have a number of advantages. If you are a poor student and prepare for the exam, then probably your teacher has never heard of this definition. I will not be surprised if it will contradict any taxonomy of object-oriented programming. But even in this case, I'm not going to change it. Let the fans of the OOP rewrite their abstracts in accordance with my definition.

It, in turn, leads us to the next logical conclusion: when we talk about the interfaces of the physical system, we usually imagine the "implementation" of this system in the form of a single physical object. After all, it would be strange to consider the "real" implementation without taking into account buttons, displays or other components. And it pushes us to consider the interface more as a "agreement", and not a combination of physical objects. That is, in the form of a set of promises, guarantees or something like ...

.

contract between the system and the environment

Interface as contract

All these are curious philosophical reasoning, but how do they relate to writing software? Well, let's start with the fact that the interfaces in programming surround you from all sides, even if you do not pay attention to it. For example, if you are programming on Java, then explicitly name the interfaces depending on their purpose. And in other languages, they are also present. Let's consider an example of an interface function

If you consider the function interface

  • In the form of a contract, then the guarantees will be such: All these are curious philosophical reasoning, but how do they relate to writing software? Well, let's start with the fact that the interfaces in programming surround you from all sides, even if you do not pay attention to it. For example, if you are programming on Java, then explicitly name the interfaces depending on their purpose. And in other languages, they are also present. Let's consider an example of an interface function Function
  • All these are curious philosophical reasoning, but how do they relate to writing software? Well, let's start with the fact that the interfaces in programming surround you from all sides, even if you do not pay attention to it. For example, if you are programming on Java, then explicitly name the interfaces depending on their purpose. And in other languages, they are also present. Let's consider an example of an interface function exists. It has only two parameters, each of which is unsigned .
  • All these are curious philosophical reasoning, but how do they relate to writing software? Well, let's start with the fact that the interfaces in programming surround you from all sides, even if you do not pay attention to it. For example, if you are programming on Java, then explicitly name the interfaces depending on their purpose. And in other languages, they are also present. Let's consider an example of an interface function int. It has only two parameters, each of which is unsigned .

Returns only one unsigned

  • The interface of this function does not tell us anything: All these are curious philosophical reasoning, but how do they relate to writing software? Well, let's start with the fact that the interfaces in programming surround you from all sides, even if you do not pay attention to it. For example, if you are programming on Java, then explicitly name the interfaces depending on their purpose. And in other languages, they are also present. Let's consider an example of an interface function ;
  • On interruption of execution All these are curious philosophical reasoning, but how do they relate to writing software? Well, let's start with the fact that the interfaces in programming surround you from all sides, even if you do not pay attention to it. For example, if you are programming on Java, then explicitly name the interfaces depending on their purpose. And in other languages, they are also present. Let's consider an example of an interface function ;
  • about the asymptotic complexity of the ranktime All these are curious philosophical reasoning, but how do they relate to writing software? Well, let's start with the fact that the interfaces in programming surround you from all sides, even if you do not pay attention to it. For example, if you are programming on Java, then explicitly name the interfaces depending on their purpose. And in other languages, they are also present. Let's consider an example of an interface function ;
  • On the number of free memory required to start It has only two parameters, each of which is unsigned ;
  • About the specific implementation of unsigned

On side effects (memory allocation, modifying global variables).

All these are curious philosophical reasoning, but how do they relate to writing software? Well, let's start with the fact that the interfaces in programming surround you from all sides, even if you do not pay attention to it. For example, if you are programming on Java, then explicitly name the interfaces depending on their purpose. And in other languages, they are also present. Let's consider an example of an interface function

The interface described above

known under the type of function

Prototype.

. In previous versions of K & R C, a weaker form of description of the interfaces was used:

unsigned int add_numbers ();

Definition of the interface as a contract is very convenient for programming. After all, most programmer tasks consist in determining and requesting sets of axioms. Primary and final conditions provide some properties or behavior. Before two parties tie a business relationship with each other, they prepare the contract. It formulated the final result, the amount and timeline of payment. It also stipulates the conditions for early termination, reimbursment and costs. If the contract is violated, the situation converts the court or arbitration. But if you forgot something to specify in the contract, then surprises may arise.

With computer programs all the same. Modules and functions say that they need and (sometimes) what they will be given in return. The violation of this contract will lead to a compilation error, to an error of execution, to the failure of the application, system, the quality control tools and the leadership of the manual. I would even say that the definition of the interface as a contract is not metaphorical. Here are the same principles as in the commercial contract, although it is not so detailed.

Patents, Copyright and Interfaces

I will not give you advice in the field of law. Perhaps something from me said even will contradict the laws. All the following is the author's private opinion.

So, I'm inclined

literally

Consider the interface as a "commercial contract" between two entities. I emphasize - I do not consider it a metaphor. I especially address this interpretation by specialists in the theory of computing machines and copyright protesters.

Should the interface patent? Given his definition as a contract between the system and the environment, I believe that the use of patents would be a mistake. And, apparently, existing case law supports my position. But keep in mind that the word "interface" is used very widely, and often at all in the sense, as I described above.

Should I protect the interface by copyright? Again, given the "contractual" nature, I believe that the "source code" of the interface must be the object of copyright. At the same time, copyright should not be applied to the aspects of interfaces that make them special. It is enough to protect the source code or a handwritten image, but not warranty or limitations. If the warranty or interface restrictions become inseparable from any of the parts of its code, these parts should be deprived of the right of protection.

I propose a simple test that allows you to appreciate whether it is necessary to protect with copyright.

If you would like to protect some kind of attribute set, including any components from a third party, in any way used by the interface, you can always create a suitable replacement. Replacement implements the same interface and successfully used in software from a third party, without any modifications of this software itself, as well as without violation of any copyright. If any replacement will lead to copyright infringement, or imply modifying software from a third party, or worsen functionality, then the attribute set is too aggressive and must be reduced.

I believe that with the help of this test, it is advisable to check even on patentability. Please note: the purpose of the test is to determine extremely

Inappolition

protection copyright or patent. He will not help in addressing that

follow

Turn protection. In addition, this test is only my opinion, and not a regulatory act or law.

I also want to note that any criterion considered as part of the interface in the same language may not be that in another language. For example, in Java, the procedure for declaring functions does not affect the execution of the program. And if you accidentally say that the order of functions in the file does not matter, it will be an error in relation to the program on Python: 

Def Foo (): Print ("ASDF") DEF FOO (ABC): Print (ABC) Foo ("LOL")

All these conversations about the laws reminded me of

Oracle against Google

. According to the given link, you can find interesting details for developers, so I will rely on them in my analysis. Given all aspects, I do not see the reasons to disagree with the decision of the case in favor of Oracle. I can not say that they unconditionally support them, since we are not available not so many parts of the proceedings.

I think many worried that a precedent will be created, allowing the elements of the interface to protect the patent or copyright. Just the case in which my test would not be passed. The District Court made a decision: "The structure, sequence and architecture of the API can be protected by copyright." I do not think that this is a problem, because the "structure, sequence and architecture" in its definition will fully go through my test. I will give a couple of excerpts from the article on the link above:

"The district court concluded that" there is only one way of writing "ads for interacting with Java. If so, the use of the same ads is not subject to copyright. Google does not dispute the fact that they could write their own APIs to access Java, with the exception of three. " Finally, "in Google recognized that they literally copied ads."

I think the court accepted the right decision, concluding that the unique properties of the interface should not be protected. In addition, Google recognized "literal" copying. If this means copypasting, including all gaps and spelling errors in the comments, then I consider it a violation of rights. Even if the interface cannot be protected, it should not interfere with the protection of individual creative expression.

I know about this litigation only from open network sources, but, apparently, the original Java code has completely copied to Google, including interfaces. It seems that they themselves believed that it was necessary to license their use of Java, as it was the subject of negotiations on licensing agreements with Sun before 2010. But these agreements failed after Sun was purchased by Oracle. Nevertheless, Google continued to use the "literal" copies of the code, which clearly did not go to her benefit at the trial. I suspect that their lawyers knew about the weakness of their position, so they chose a protection strategy based on the legitimate demand for non-proliferation of copyright to interfaces. They hoped to win the case at the expense of the representation of the interface in the form of the source code and its association with a more philosophical concept.

What is "module", or "abstraction"?

With the word "module" in my head there is a capital picture of the post. This illustration well demonstrates the importance of the boundaries of the module and its interaction with the environment. The cube interface toughly limits the interaction of the external environment with the contents of the cube. You will not be able to bypass the interface, so you have to keep the "Rules of the game" imposed on it. Finally, there is nothing inside the cube, but it does not matter: it is important not its contents, but an interface.

Another example: the structure of the cell membrane. Various components provide only the necessary substances through the membrane and only when it is necessary.

In the context of this article, I will use the terms "modules" and "abstraction" as synonyms. Of course, the explanatory dictionary will not agree with me, and even in different programming languages, these terms have a different meaning. But in this case, I am only interested in the fact that both of these entities can be viewed as a system as it is understood in this article. That is, abstractions and modules can consist of an interface and implementation.

You can read a separate function of the module in the C, "module" - in Python, class or package - in Java. Something, if only it had an external interface and "hidden" implementation. Moreover, there may be a consequence of the rules of the language or even a programmer's decision.

Drying abstraction

As far as I know, the idea

Dumpy abstractions put forward Joel Spolski

. In his essay there are some good examples, but I would like to bring my own. In programming, the concept of "Maps" is very often encountered: representing the data structure consisting of pairs of keys and values. Important limit: The card ensures that all keys must be unique. An attempt to record a new value for an existing key will result in an error or overwrite the previous value. The bottom line is that the keys should not be duplicated. Most often, the programmers require a desire to sort out all these keys. And since the maps cannot guarantee a certain order of sorting keys, it is sometimes necessary to wonder in what order they will be after the busting? This is the consequence of the fact that the card interface does not allow sorting guarantees. And although it is believed that it does not matter, but in practice, I still want to sort. So it is necessary for a more efficient data organization, for example, to facilitate the verification of existing keys.

Sorted data brute force can give a completely different result compared to random data overwhelming. Suppose you need to find the minimum value in the list: 

min = null; list = map.getmapkeys (); for (item in list) {if (min == null) {min = item} else if (Item <MIN) {min = min; / * This line has a bug * /}}

Branch

ELSE if.

It will never be executed if the data is sorted ascending. Even if you start checking from a random location of the list, the program will never collide with this string. And this is a huge problem, since if you change the implementation of the card and it will not return sorted keys, then your code will suddenly be performed on a bug bug. And by the time you will completely forget about this code and the bomb hidden inside it.

I want to offer my own definition of abstraction leakage.

The abstraction leak (abstract leak) is called the situation when the implementation can affect the environment as it was not provided for by the interface.

According to this definition,

Almost every

Abstraction - breathing. After all, the description in the interface of all types of environmental impact makes sense only in the most stringent mathematical systems. And as for physical systems, then you may be remembered

.

Theorem Gödel about incompleteness

The idea of ​​the holes of most abstractions is not unreasonable. This meant Joel Spolski in his "The Law Of Leaky Abstracts":

"All non-trivial abstractions are a holey to a certain extent."

Once all abstractions are leaning, what to talk about? Problems arise only when a part of the environment begins to rely on one of the unforeseen ways of exposure to the system. It is about such leaks that everyone says.

This leads to far-reaching consequences, not only from the point of view of ordinary bugs, but also in the field of security. With physical systems in which there are leaks into the outside environment, compromising security, the term "

Side Channel Attack

" In combination with a statement that all abstractions of the holes, it leads us to the conclusion:

Each physical implementation of the cryptosystem is vulnerable to third-party attacks.

Given all the above, this idea can be extended not only to physical, but also on emulated implementations.

Evaluation and Comparison of Interfaces

As we have already seen above, in interfaces on C are sets such as the type of return value and the number of parameters that can be transmitted. What about Python? I use the term "interface" in accordance with the context of the article, that is, in a broader sense compared to what they write in the books about "interfaces" in Python. 

DEF Add_Numbers (A, B): Return A + Bprint (Add_numbers (3,1)) Print (Add_numbers ("ABC", "DEF"))

In this language, we need to formalize the types of function interface. It simplifies the definition and call function, since it is necessary to process less information. On the other hand, restrictions on which you can carry out the check for the search for errors less.

All these are curious philosophical reasoning, but how do they relate to writing software? Well, let's start with the fact that the interfaces in programming surround you from all sides, even if you do not pay attention to it. For example, if you are programming on Java, then explicitly name the interfaces depending on their purpose. And in other languages, they are also present. Let's consider an example of an interface function

I think you need something to say about the assessment and comparison of different characteristics of the interface from the point of view of information transmission methods. You can evaluate both a specific interface and a set of all interfaces that can be implemented in this language. Let's remember our example with

And we estimate how much information we can pass through the interface and bypassing it, with the help of abstraction leaks. Via the interface
By going around the interface Description of characteristics By going around the interface Description of characteristics
Number of possible states Type of parameter 1. 1 (unsigned int) State of global variable
(Number of global variables) * (Number of states of global variables) Type of parameter 1. Type of parameter 2. File system
Number of state system status Type of parameter 1. Type of returned value Processor use time
Not limited Parameter value 1. 2 ^ (count in unsigned int) State of Kuchi.
Number of states Parameter value 1. Parameter value 2. A lot others...
... Parameter value 1.

Return value

All these are curious philosophical reasoning, but how do they relate to writing software? Well, let's start with the fact that the interfaces in programming surround you from all sides, even if you do not pay attention to it. For example, if you are programming on Java, then explicitly name the interfaces depending on their purpose. And in other languages, they are also present. Let's consider an example of an interface function

And there are a number of things that can communicate with

via Python interface. Information transmission via Python interface
By going around the interface Description of characteristics By going around the interface Description of characteristics
Number of possible states Transfer of information bypassing the Python interface 1 (unsigned int) File system
(Number of global variables) * (Number of states of global variables) Transfer of information bypassing the Python interface Type of parameter 2. Processor use time
Number of state system status Transfer of information bypassing the Python interface Type of returned value State of Kuchi.
Not limited Transfer of information bypassing the Python interface 2 ^ (count in unsigned int) A lot others...
Number of states Transfer of information bypassing the Python interface Parameter value 2. State of global variable
... Transfer of information bypassing the Python interface

Practically infinite

And now take a look at the number of interface types that we can describe in Haskell: 

Add_numbers :: int> int -> intadd_numbers 3 4 = 7main = Print (add_numbers 3 4)

All these are curious philosophical reasoning, but how do they relate to writing software? Well, let's start with the fact that the interfaces in programming surround you from all sides, even if you do not pay attention to it. For example, if you are programming on Java, then explicitly name the interfaces depending on their purpose. And in other languages, they are also present. Let's consider an example of an interface function

Given this code, the interface

Can get the following information: Transferring information via the Haskell interface
By going around the interface Description of characteristics By going around the interface Description of characteristics
Number of possible states Transmission of information by way of the Haskell interface Type of returned value Processor use time
(Number of global variables) * (Number of states of global variables) Transmission of information by way of the Haskell interface 1 (int) Processor use time
Number of state system status Transmission of information by way of the Haskell interface Effect on processor / memory cache A lot others...
Not limited Other ...
Number of states 1 (value 3)
... 1 (value 4)

At least 2 ^ 30 [1]

  • For a specific interface in your chosen language, you can also evaluate the number of unique ways to transfer information:
  • through the interface;

By going around the interface through abstraction leaks.

  • You can also pay attention to the following:
  • how many restrictions you can use within this language from the point of view of the minimum and maximum number of information transmitted through the interface;

What instruments provide this language to prevent interaction to the interface bypass.

Programs
Let us analyze in this way the graphical user interface in which it is possible to change the folders: Transmission of information via GUI
By going around the interface Description of characteristics By going around the interface Description of characteristics
Transfer of information bypassing GUI Click on folder 1 Number of pixels on the screen held by the folder 1 * Number of clicks Processor use time
Hidden Possibilities UI Click on folder 2 Number of pixels on the screen held by the folder 2 * Number of clicks Non-standard quick call combinations
Number of pixels on the screen occupied by button 2 Guidance cursor to folder 1 Number of pixels on the screen held by the folder 1 A lot others...
Other unexpected UI capabilities Guidance cursor to folder 2
Number of pixels on the screen held by the folder 2 Time between guidance and click
Infinitely Standard keyboard events
Number of standard key combinations Screen area occupied by GUI

Number of pixels used to display GUI

And now consider the same task of changing the folder using the command line and

:

Let us analyze in this way the graphical user interface in which it is possible to change the folders: Transmission of information via GUI
By going around the interface Description of characteristics By going around the interface Description of characteristics
CD Processor use time Number of folder names that you can dial Processor use time

Variable environment

In the previous two tables, I did not include data such as the number of noise in the signal. If you compare the complexity of repetition of the same sequence when you press the keys (one after another) and the mouse movement (pixel behind the pixel), it is obvious that in the second case, the errors are much more. In graphical interfaces, this is compensated for by making less strict semantics. Imagine if on the "OK" and "Cancel" buttons available to the zone clicks were only 1 pixel width.

It is possible to further complicate the analysis if you evaluate the change in the share of errors in users with physical disabilities.

  • So, we considered one of the possible ways to assess and compare interfaces. Based on the above examples and their own experience, let me make several extrapolating:
  • People prefer interfaces that are not too strict when receiving information, especially if the interface is unfamiliar.
  • Not too strict interfaces are more often used incorrectly.
  • Comprehensive interfaces hosting large amounts of information look powerful, but often used incorrectly.
  • If the interaction becomes tedious, people try to transfer information to the interface bypass.

When interacting, bypassing the interface, through abstraction leaks, the emergence of unpleasant surprises is extremely likely.

Drying and limited interfaces

I will describe several observations based on the analysis from the previous section. But first I will give a couple of definitions:

The leaky interface (LEAKY INTERFACE) is an interface that is ignored during any interactions between the system and the environment.

A limited interface (SPECIFIC interface) is an interface with a relatively small number of possible inputs and outputs.

A good example of a limited interface -

piecewise specified functions

defined only for a small number of input data.

If you can reasonably evaluate the "holes" or "limitity" interfaces, it makes sense to outline the range, at one end of which will be very limited and inactive interfaces, and on the other - unlimited and leaky.

You probably offer someone to move left or right on the scale, but most importantly, you grabbed the idea. You can even smash into two separate scales: according to the degree of holes and rigor. Although in general these two concepts correlate well.

The next correlation that I want to offer is derived from my experience. On the left edge of the "error" scale are less common, and usually they arise due to failures

Validation

.

. At the right edge of the error scale occurs more often, and often their reason lies in the failures when

verification

Asymptotic complexity of technical debt

I'll start with the statement:

The main part of the technical debt arises in the project or due to the unacceptable assistance on the leakage of abstractions, or due to the extremely incredible interfaces, which greatly complicates the forecasting of the consequences.

At the very beginning, the project contains one or two modules, and to study a good interface agreement, you will need to perform the amount of work on (1). If your interface is bad, the volume of technical debt will also be equal to (1), so you will not have to spend too much time on bringing the interface contract. But with a linear increase in the amount of modules, the volume of intermodulic bonds can achieve O (n ^ 2). Therefore, with a bad interface, if each module interacts with all other modules, the number of appeals to the interface in the worst case will be proportional to N ^ 2.

As can be seen from the graphs, it is initially saved on creating a well-thought-out interface. But this win is rapidly lost due to the increasing problems associated with inter-module interaction. The amount of work due to this increases to the degree of quantity of modules, while with a good interface it grows linearly. The worst scenario - when each module communicates with each module, there are more problems in the process of Hendeshka, from here and stems.

Typically, the level of intermodulic interaction is growing slower than O (n ^ 2), but it is definitely faster than about (n). There is also one factor that shifting the beginning of rapid growth in the future: this is human memory. Even when there are 20 modules in your project, you probably remember that it makes each of them. So, of all contracts you need only the foggy names of functions and esoteric agreements. But as soon as the project becomes quite large, then many details are forgotten, or when new people come to the project - and the powerful growth of labor costs begins.

  • Why are still using the command line?
  • You will receive different answers from people to this question, none of which seems to me the most important thing:
  • The command line is flexible and gives many opportunities.

It consumes less resources.

This allows you to better understand how everything works.

The most important thing is why we still use the command line, it is

AUTOMATION!

It is hardly possible to overestimate the benefits of using automated processes. If I need to run a cluster to 100 servers, I will not connect to each of them individually and manually install software, clicking on a pile of buttons in countless GUI. Even if you need to automate the Clichan process in the GUI, you will need another file in which information will be saved on where and how to click. Something like a flexible file ... teams.

Although we could implement automation through click and on-screen grabbers, we must not forget that this type of interaction with the machine is invented for people. It implies the use of a non-strict interface that does not require high accuracy. Therefore, your automated clicker will surely get used if the window suddenly moves from its position or the system font will change. With the GUI, too many variables are connected. And the command line allows you to act much more accurately, you interact through a very strict interface. Therefore, many people do not like him, unlike computer programs.

Of course, there are situations where the low accuracy of the interaction of GUI is good. For example, when creating digital paintings, you do not need to worry about the placement and color of each pixel. The main thing is to be

something

Special for each pixel. Therefore, the noise transmitted by hand moving the cursor becomes important information in the final product.

Choosing the right language

After the section about the asymptotic complexity of technical debt, you might think that any project need to be written in a language with very stringent conditions of interface contracts, like Haskell or Java. But this is not exactly what I wanted to convey. The answer to the next question can help you make the right choice.

How likely to change the requirements for your project?

At the beginning of the new case, the answer will certainly be "very likely", especially if a small product is created, and even with the ambiguity of its prospects in the market. If the requirements are clearly formulated as, for example, in the case of creating a compiler or development of a project based on international standards, the answer will certainly be "not too likely."

If you answered "very likely", then use a language that will allow you to lose less time when specifying the interface contracts: they will certainly work against you in case of changes in requirements. But the main task here is not to obtain the ideal implementation of the requirements, but the ideal requirements that allow you

to begin

Create final implementation. An exception may be a situation where your MVP is a huge system with hundreds of modules. If a lot of people are involved in the project, then a good interface is simply necessary in order for them to come to each other.

If you answered "not too likely", then use a language with very strict interface contracts. First you will have to work more, but then the introduction of new opportunities will require less effort. The only exception may be a situation if you write some small product (several hundred strings).

Sometime was broken quite a few copies regarding what Twitter began to create on Ruby on Rails, and then it was the reason for the scaling of the project. Later twitter was translated into Scala. Someone can assume that the developers made a mistake and they should immediately choose Scala. I do not think so. At the heart of Twitter lies a very simple idea, and in the conditions of a large number of competitors they needed to win the dominant position in the market. They needed to grow as quickly as possible, despite expenses. The development cycles of new features should have passed the most quickly as possible, as it allows it in the shortest possible time to understand what exactly needs users, what product they want as a result to get. The difficulties of scaling are a sign of not failure, but success. Twitter's vision was formulated as a finished product, and it remained only to realize it. From the point of view of developers, it's just a nirvana, everyone dreams about such a thing, but few people manage to work in such conditions: "Relegate this shit from scratch on your favorite language, as it is convenient for you, if only in the future it was easier to work with him." It is much easier to rewrite something from scratch, having a weaker implementation before our eyes than to try to add a product look, which will allow the company to take off. Unfortunately, the majority of market participants go only by avoiding "unnecessary" costs to create from scratch and spend a lot of strength and time on scaling that it was originally impossible to scaling.

Why is so popular Python?

In the section on the holes and strict interfaces, I talked about the method of classifying interfaces, depending on their tendency to leaks of abstractions, as well as how strict can be interface definitions. And I pointed out the fact that more "friendly" and "productive" interfaces are much more prone to leaks than the other part of the interface spectrum.

I believe that Python's popularity arises from the fact that it is an excellent introductory language providing extremely simple interface contracts. For the same reason, with an increase in the project on Python, it becomes more and more difficult.

Python is very popular in the scientific community and among lovers experiment with numerical analysis. The very essence of the experiment requires constant improvement in the created product, and strict interfaces slow down.

Why do corporate software usually write on java / c ++?

In the section about the holes and strict interfaces, I talked about compromises associated with different types of interfaces. Java and C ++ are more to the strict part of the spectrum, unlike Python or Ruby. Yes, leaks may have leaks, and there are more stringent languages ​​(the same Haskell), but Java and C ++ are more balanced from the point of view of scalability, friendliness and lyrics. In addition, these two languages ​​allow you to be flexible to control the ledbles of interfaces depending on the project agreements. For example, making variables or functions with private, public or protected.

How to cut the corners

If you want to bring something from this article, please: when you need to cut corners in the project, do it inside

Sales

and turn around B.

  • very good
  • interface. Even if the implementation is not too good and its problems flow into other parts of the system, then this is a bad interface problem! So that there is no misunderstanding, let the list of what I mean under the interfaces:
  • Prototypes of functions.
  • "Interfaces" Java.
  • Public classes methods.
  • Variables of public components.
  • Header files (.h) in C / C ++.
  • RESTful API end points.
  • URL routing.
  • Public aspects of "models" or "packages".

Logic database structure (DDL).

And much more.

Conclusion

As you can see, the interface concept is extremely important and has a very large impact on the development of the project in the field of legal protection, productivity and the number of philosophical relations with other aspects of the system structure. Ask other programmers that they think about interfaces, and listen to all sorts of things.

The user interface is the means of interaction between humans and a computer. Speaking with simple words, the interface is the external part of the program or the device with which the user works. The word interface - cartridge with English Interface, that is, the "border link".

Most often, under the word interface implies the user interface. For example, they say: "This online store has an uncomfortable, confusing interface." This means that the store is inconvenient to interact. For example, it is difficult to find the necessary goods, it is not clear how to place an order, the site does not save the previously entered data, etc.

Examples of use:

Many users would like to return the old interface "VKontakte", they do not like the new.

The program has an intuitive interface - immediately clear where to press and what it will lead to.

The Windows interface is very complicated: inexperienced users are confused in a pile of settings.

Web Interface is a page on the Internet that allows the user to interact with some service or device directly through the browser. For example, using the web interface, you can use the online bank: go to the bank page, enter the login and password, and then translate money between accounts, pay for services, etc.

Hardware and software interface. What is the USB and API interface In addition to the user interface, there is a software interface (interaction of programs with each other) and hardware interface (methods for the interaction of physical devices, "iron"). When they say about the hardware interface, they usually mean connectors through which the devices can be connected to each other. For example, "Connection via USB Interface" means connecting devices through

Universal sequential tire

intended for connecting peripheral equipment. Through a USB, for example, you can connect a keyboard, mouse, camera or smartphone to a computer.

Hardware Interface - USB Cable

The program interface is a way to interact programs among themselves. For example, API (Application Programming Interface, the application programming interface) is a set of commands that allows programs to automatically exchange data without people's participation. One API program sends a request, another responds to her.

For example, on the news site shows currency rates that change in real time. This does not mean that the site editor every time manually changes the numbers on the page. The news site itself sends an API request to a server with a currency exchange and receives the necessary numbers from there.

Types of user interfaces. Graphic, text and others

The text interface is a way to communicate a person with a computer using command printing. For example, in the MS-DOS operating system, the interface was textual - the user dial the necessary commands on the keyboard, and the machine performed them.

MS-DOS Text Interface - Command Line

The problem of the text interface is that the user must know the necessary commands and each time manually type them without errors. Partly from this difficulty eliminated the shell for MS-DOS - for example, Norton Commander.

Norton Commander - File Manager for MS-DOS. You can not only type commands on the keyboard, but work with files using keyboard shortcuts.

Soon there appeared graphical interfaces where the user interacts with visual objects: buttons, icons, pictures on the screen. Windows operating system uses a graphical interface: the user clicks on the icons on icons - pictograms depicting files and programs.

Windows 3.11 graphical interface

The material interface is a way to interact with a computer using tangible structures. For example, a computer mouse or joystick is a material interface. Moving the mouse on the table, we simultaneously move the cursor arrow on the screen.

Material interface - computer mouse. Photo: Depositphotos.

Voice interface is control using speech commands. Human voice today knows even mobile phones. For example, Siri from Apple, Google's voice assistant, "Alice" from Yandex

Voice interface - Apple Siri. Siri is a reduction from Speech Interpretation and Recognition Interface (speech recognition and interpretation interface). Photo: Depositphotos.

An instrument interface allows you to give commands, making gestures with your finger, hand, computer mouse, special controller, etc.

Installation interface - Nintendo Wii game console, whose controllers respond to the motion of the user.

The tactile interface allows the user to experience tactile sensations (push, vibration, etc.) and interact with the computer with their help.

Virtual reality gloves - an example of a tactile interface. Photo: NASA.

The neural interface allows you to transmit commands with the electrodes linted into the brain. Bidirectional neural interfaces can not only take information from the brain, but also to send it to the brain - for example, through the retina of the eye.

Jens Naumann - blind, capable of "see" with a neural visual prosthesis. The camera captures the image and sends the processed version in the visual bark of the brain through the electrodes.

KIAN RIVZ in the film "Matrix" (1999). Heroes enjoy neurointerface to get into the virtual reality - the matrix.

Cybebeis - interface in the form of virtual reality. Frame from the fantastic film "Johnny Mnemonic" (1995)

Welcome to you, friends! The word "interface" on the rumor of owners of PCs and phones, but not everyone understands it. We will tell for teapots, what is the interface in the computer and the smartphone, why it is needed, what happens to how to use it correctly. Seeing this word on the site, in the description or in the instructions, the newcomer will understand what we are talking about and what to do next.

Wave

What is the interface for which it needs

Translated from English Interface - interaction. How to write in Russian: interface (sometimes the infabes are written - it is incorrect). Normal definition is a common boundary between two functional objects. For example, a man gets behind the wheel of his car, switches the gearbox lever - this is interaction with the machine interface system. Gearbox as conductor between driver and car.

  • In the computer science, the meaning of the word deeper is the user interaction tools with the game, the program, or the operating system, the methods of controlling the operation of the computing machine. Thanks to the interface, a person will find out any program or text editor. If we possess work with the Paint graphics editor, it is easy to master other similar programs, as they have a similar structure.
  • Basic interface tasks:
  • input and output information;
  • management software;

data exchange through external carriers;

Commands.

The rear panel of the PC system unit is also an interface that allows you to connect other devices.

The user includes a computer and sees the icons in front of him: "My computer", "labels", "photo", etc. - All this interface elements.

Types of interfaces

The interface can be briefly described as clearance: what a person sees in front of him, using a PC or a telephone. Although in fact, this is a system structure, because by pressing the buttons by clicking on the menu item, the user goes to where it needs: camera, gallery, contacts, messages. Its purpose is an effective, pleasant use of an electronic device or site.

Video.

  • There are different types of interfaces, each of which we will tell further.
  • The most common:
  • command line;
  • Graphic and text interface;
  • by type of management (gesturing, voice, tactile and neural);
  • program;
  • hardware;
  • hardware-software;
  • user;
  • Web;
  • game;

material;

Command line

in phones.

What is the interface simple words

If you need to name and list the types of modern interfaces, this information will help to set out everything correctly and make a good presentation.

This is a separate software that is part of the Ourser and ensuring the relationship between the user and the OS. Thanks to the command prompt, you can perform computer commands. This is a communication with the machine in its language.

Of the shortcomings - you need to know the commands, every time you dial them without a single error. The advantage is the ability to enter commands without the participation of the graphic structure, which gives additional opportunities.

The command line (console interface) starts in its shell, for example, in BIOS. The main route of its location: C: \ Windows \ System32 \ cmd.exe. The usual yowser does not need to be deliberate where the command line is located and how it works, and for professionals it is the main tool, since it helps with the computer with viruses, Windows restoration and in other cases.

A simple method to find the command line: at the same time press the Win + R keys, in the CMD window that appears.

Command Interface

Graphic and text

  • Graphic (eng. Graphical User Interface, GUI) is used in all operations, in most applications. Often it is called WIMP - this is an abbreviation from the first letters of the WordWow, Icon, Menu, Pointing Device (manipulating device).
  • Main elements:
  • menu;

lists;

Pictograms (drawings, schemes).

On Windows Windows, the user clicks on icons, pictograms that depict the programs and files are a Graphical Interface, which provides ample opportunities to each user. No need to enter any commands. For convenient interaction, a computer mouse is used.

You need to distinguish graphic from the visual interface, which represents the system as a set of visual images - it can be an icon or inscription located in a specific screen location. The visual structure does not necessarily use graphic mappings. The visual structure can be graphic and text.

Text uses when entering and providing information, a set of letters / numbers, characters of pseudographic. It uses all basic graphic design elements: checkboxes, buttons dropping lists, etc. Different with small-demanding technical resources, high speed data. The text interface is a type of user, while the command line is part of the text.

In the simplest case, Text Interface uses a command line, but many programs with interactive elements make a more friendly, understandable design, which is approaching convenience to graphic.

Some programs support the developed window system, such as Turbo Vision, D-Flat, Cscape, many have changeable design topics (DOS Navigator), as well as the ability to use different interactive interaction items (joystick, mouse).

Gesturing, voice, tactile and neural

  • The user manages the computer and gives commands with different methods: gestures, voice, etc.
  • Therefore, the type of control is distinguished:
  • Annual interface. Contact elements are graphic tablets, touch screens and other technologies that react to the movements of the fingers;
  • Voice interface denotes speech management. Examples are: Siri from Apple, Alice from Yandex;

tactile when the interaction is based on tactile sensations, obtaining sensitive feedback (vibration, push);

Neuronal - transmission of commands through electrodes linted into the brain. Information can be taken from the brain and transmitted to it, for example, through the eye retina. In practice, neurointerface is able to ease the life of paralyzed patients whose brain works well. Neurointerface allows them to perform concrete actions, reading their intentions with the help of electrodes that are connected to the brain.

Graphical system interface

Software, hardware, hardware and software

  • The interface system provides contact even between progs and devices.
  • There are 3 groups:
  • Programming Interface (English. Programming Interface) is the interaction of programs among themselves. In particular, the API or application programming interface - methods of exchanging data between computer programs (one sends a request to the API, another responds). The news portal shows currencies. Not the editor is responsible for this (he would have to manually change the numbers), and the API on which the site sends a request to the currency exchange, receives an answer;

The hardware is designed to interact physical devices with each other by slots, connectors, gateways. USB (universal sequential tire) is the most familiar example. Through it connect to PC phone, camera, mouse;

Hardware-software is the interaction of nodes, elements under program control.

User interface

What the user contacts what he sees in front of himself, where it clicks - this is the user interface. This is the external part of the device or the program with which the user works.

Often, under the word interface implies user (User Interface). It happens that the site visitor says: "There is a confusing, unpleasant registration or menu." So, the site is uncomfortable to contact: it is difficult to find the right item, checkout the order, download the document. The understandable structure is when a person immediately sees where to click, knows what it will cause it. But with Windows, many newbies have problems, because the design of this OS survey, inexperienced users are confused in the settings. In the 1C platform, two different User Interface mechanisms used in different 1C clients.

Command line, graphic, text, voice, gesturing, tactile, neural, procedural - all this is included in the user interface. Under its control, the user enters the data in the PC, information on the monitor is displayed, the printer. There is even an interface of the spreadsheet - this is an element that a person sees, running, for example, the OpenOffice.org Calc application.

But there are some more types of User Interface.

Hardware interface

Web, game

The web interface is a web page (one or a set) representing a structure for contact with a server or device via an HTTP protocol and a web browser. For example, the client can go to the bank page, pay utility services. The main advantage - no need to install additional software, because the operating system goes with the browser. No need to be confused with the network interface. Under this term is understood as a virtual or physical device, which is intended to transmit data between programs through a computer network (for example, VLAN).

The popular way to create a Web-Interface is the use of HTML with CSS and JavaScript'a. Also used Adobe Flash, Java Applets or Silverlight.

Another type is the game interface - is associated directly with the gamedizayn, although it goes beyond its competence. The player and the game are inhabited in different universes, and the gaming structure is the point of their mutual contact. With it, the gamer gets the necessary information from the game, and it takes the actions of the player.

Material

Material or tactile interface is another type of user. This is a contact of a person with electronics with tangible structures. For example, a mouse moving which, a person simultaneously moves the arrow of the cursor on the screen.

Varieties of interfaces

Interface in phones

The overall style of the mobile device interface is characterized as SIMP (Screen-icon-menu-pointer). On mobile windows platforms are the elements of the structure that occupy the entire screen. The transition between the windows is performed by graphic elements or pulling with a finger.

  • The features of the design of SIMP are explained by the specifics of the OS.
  • The most common OS for gadgets:
  • Android;
  • Apple iOS;
  • WindowsMobile;
  • Palm OS;

Symbian OS;

BlackBerry OS.

Russia is popular - Android, Apple iOS, WindowsMobile. But manufacturers use their types of interface systems and blocks, the main reason is branding. The ability of android to customization means that manufacturers of corporate equipment can make changes to software, for example, in the field of functionality and design.

Different systemic structures in mobile devices do not greatly affect the experience of owners, because they are created to solve universal tasks. Difference in the set of applications.

The interface of the mobile device also includes headphone jacks, charging, voice helpers - much of what is based on the work of the PC, only this is adjusted for gadgets. But in smartphones there are many new structures, for example, NFC (NFS) - the structure of the wireless communication.

What does interface language mean

It is not worth confusing it with the languages ​​that are installed when typing text materials.

  • The interface language is the one that is used when loading the Operations, in the menu, in the dialog boxes, error windows and references. It can be changed if at least 1 additional one is installed to the main language.
  • A simple way to find out which language Windows is standing on a PC:
  • Open the "Control Panel";

Tab "Language";

Allocated the main language that is used now. It can be changed or add a new one.

findings

For a person, Interface is a basis for working with a PC or a telephone. And this is a way to interact between programs and equipment. The simplicity of the system structure depends, whether it is easy to manage the device. Developers come up with different design and structures, making them more or less pleasant, intuitive for people. IT experts can make changes to some structures or use them to solve serious tasks, and inexperienced users can buy for themselves the device with an intuitive interface system to facilitate the work and save time.

The interface is often said when they mean the interaction of a person and computer or applications. In the article we will analyze the definition of the interface, which is for interactions, their types and features.

  • What is the interface

  • The interface is a "conductor" between man and a program, an operating system, a technical device, or a method of interaction between applications among themselves. A person gives commands using the interface, the device analyzes them and responds. The main tasks for which it is intended for:

  • Enter and displaying information (sound, image);

  • Management of individual applications;

data exchange with other devices;

Types of interfaces

Interaction with the operating system.

Command line

The interface involves the interaction of not only humans and technology, but also a computer program, program program, computer device. For example, when devices are connected to the computer system unit, as the interaction method uses the connector.

Some types of interaction allow you to get more control over a computer or smartphone, but require additional skills. Others are more comfortable, but provide less opportunities. Each type has its own characteristics.

The command line (console interface) starts in its shell, for example, in BIOS. The main route of its location: C: \ Windows \ System32 \ cmd.exe. The usual yowser does not need to be deliberate where the command line is located and how it works, and for professionals it is the main tool, since it helps with the computer with viruses, Windows restoration and in other cases.

Through the command line, you can perform the maximum number of operations is a direct way to communicate with the operating system. To type the command, you need to enter the text in the computer and press ENTER, the computer will start performing.

The minus method is that it is only suitable for trained users. In the command line, there are no auxiliary graphic elements, it will have to master the language for interaction, and the commands work cannot be mistaken.

The graphics simplifies interaction with the computer, it is much easier to work with it and more comfortable than with the text. In the role of the graphic interface, such elements are:

In the simplest case, Text Interface uses a command line, but many programs with interactive elements make a more friendly, understandable design, which is approaching convenience to graphic.

For example, when interacting with Windows uses icons and windows, the mouse is connected to enter. On the smartphone, the input device is a touchscreen display.

The text interface does not use the images: commands are given using text and information is provided in text form.

The gesture interaction allows you to give commands to the movements of the fingers. It is applied when working with a touch screen of a smartphone. For example, the "Up" gesture makes the pop-up window appear.

Voice interface is a voice management. The gadget recognizes and performs sound commands.

tactile when the interaction is based on tactile sensations, obtaining sensitive feedback (vibration, push);

Tactile implies interaction with the help of touching: vibration or sensitivity to pressing.

The neural interface transmits the command directly from the brain to the computer, for this, the electrodes are implanted into the brain. It is used in medicine: so a paralyzed person can communicate with the outside world.

The hardware is designed to interact physical devices with each other by slots, connectors, gateways. USB (universal sequential tire) is the most familiar example. Through it connect to PC phone, camera, mouse;

Program interaction with each other provides a software interface. Programs send requests to each other and receive answers. For example, to constantly show relevant weather in a widget or on a computer, one program constantly sends a request to another, and it provides fresh data.

The hardware is intended for the organization of communication between physical devices through connectors and slots. And when the computer reads information from a hard disk - this is a joint work of the program and the physical device, that is, the hardware and software interface.

All, with which the usual user interacts when includes a computer, enters the website or in the application, everything that a person sees on the screen is a user interface.

Web, game site

The popular way to create a Web-Interface is the use of HTML with CSS and JavaScript'a. Also used Adobe Flash, Java Applets or Silverlight.

The web interface allows you to work through the browser. This is the interaction of programs on the Internet. For example, you can go to the store website and to pay the purchases. The browser in this case will be a web interface, thanks to which pages interact.

Material

The game is how the user can interact with the game which commands can give, in what form the game information is presented and how the game will respond to actions.

What should be the interface

This is a tactile contact with gadgets. It includes touching touchscreen, actions with a mouse or joystick.

Logic database structure (DDL).

The smartphones use a touch screen that implies gesturing and tactile interfaces. The user touches the elements, the operating system or the application receive commands from it and perform them.

Добавить комментарий