⬆️ ⬇️

Coding without code

Suppose there is such functionality in a certain Internet service: the user can 1) create an object, 2) determine the type of object, 3) create a connection between two objects, 4) define the type of connection, 5) determine the powers of other users to perform these operations.



What will this functionality allow users to do?



- Communicate. Communication is a chain of objects, roughly speaking, of the text type, connected by a relation (link) of the source-response type.

- Structure content - establish links between different objects and sets. Including build ontologies of various subject areas.

- Create your services and projects. About this below with examples.

')

Example 1. Suppose a certain realtor wants to make a real estate project in the city of N. He creates an object like “Set” with an additional type “Service”. Or "Author's project." Or to name it somehow, it is not important now. It is important that within this set this user will determine the powers of other users to perform operations. So, within this set, the author of the project creates several more sets with the type “Commercial real estate”, “Apartments”, “Land plots”, etc. Inside the “Commercial real estate” sets will be created with the type “Offices”, “Shops”, “Warehouses ", Etc." Apartments "will be divided into sets by the number of rooms, by area, by the basis of an old house or a new building, etc. Note at the same time - the same objects can be combined into different sets at the same time. Those. the author will not suffer, on what grounds to build a common hierarchy, and build all the hierarchies on all the signs known to him. I don’t know if this can be called a domain ontology, but definitely this structure will reflect real relationships in the area where the author of the project is competent. (True, the problem still remains in what users see on the screen, but this is a separate question). The author creates this structure himself, but other users, for example, he will allow to create objects of the type “Comment” and link them with any of the above objects and with each other. All comments related to a particular object can be combined into a set with the “Discussion” type. Next, the author creates a set with the type "Apartments for sale." Other users can create objects with the “Apartment” type inside it, but for money (the fee for placing an ad). In turn, the “root” service takes a certain percentage of the income of the author of our hypothetical real estate service. (There are considerations against this monetization model, so it must also be properly applied. This was in another post of mine ).



Example 2. Yaroslav Greshilov made a project bybl . But he lacks the funds to develop this service, to increase the functionality. And he appealed to the users with a proposal to throw off the project, if they want to see in it some things worked out. I do not know exactly what things; in my opinion there is a lack of opportunity to comment and discuss books. Let's see what is actually done: inside the set with the name “Bible”, users can create sets with the type (conditionally) “User pages”, consisting in turn of four types of sets, combining objects with the type “Book”, “Read”, “ I want to read "," Now I am reading "," I have ", as well as a set like" Neighbors ", consisting of objects of type" User ". Books in some sets are associated with objects such as "Short Review", or "Explanation." If Yaroslav did his project in our hypothetical service, to add the ability to comment on books or reviews, you would not need to change the program code and pay the programmer. It would simply allow users to create objects of the type “Comment” and associate them with “Book” or “Review” objects. Suppose Bibl is making money from advertising bookstores. A certain percentage of these revenues, again, would be filmed in favor of the “root” service.



Bibla is associated with the creative union 13:37 (apparently, at this very time they got the idea to unite), which brings together several people and projects. In particular, projects for travel and movies. I would not like to go into details, just note that the structure can be similar to the Bible - the films can be divided into "Looked," "I want to see," "Now I look," "I have" and also make up a lot of "Neighbors." The same with travel, i.e. with geographical places - “Visited”, “I want to visit”, “I am now” and traditional “Neighbors”. Of course, this is partly a joke, since different areas have different specifics.



There are a couple of examples that I wanted to paint in more detail, because they contain specific advantages of the “objects + communication” model described. I will do this in the following posts.



Comments and explanations.



It is not intentionally said about everything and is simplified to focus on the essence. In addition, it is clear that any standardization and unification in the production of projects has both advantages and disadvantages. A project made in the traditional way can be better in terms of design and other things, as well as being better sharpened under high loads. In addition, if you provide a service for business projects, it imposes high requirements on the stability and reliability of this service.



As you can see, the type of "set" is found constantly and everywhere, so that its creation can even be distinguished in a separate, sixth operation. But I did not turn it on, because I wanted an expressive minimalism. As a matter of fact, a type (class) is in itself a set uniting “typical” elements from any area.



Minimalism leads to the fact that the creation of projects becomes available to ordinary users. They are not required to be programmers and do not even need to master Drupal or WordPress. They are only required to use competences in their own professional fields. Hence the name of the post - Coding without a code. You could also call Programming without programming. This programming, although not in the traditional sense, is because the interactions between various network resources — information, intellectual, and others — are programmed, and the social interactions of people are programmed. There is no code, because it comes down to a certain user interface. I understand that the devil is in the details and, perhaps, not so simple. I plan to think about this interface when I finish a certain coherent series of posts.



As we can see from the example of Bibla, not only the creation of projects is simplified, but also their change and development is simplified. And this is important not only for ordinary users.



Note that the types defined as “User” and “Comment” are common for two completely different projects - for real estate and for books. Those. common environment is the basis for standardization and unification of types. That will simplify the search and structuring. For example, it is obvious that another real estate project in another city will contain the same types of “Apartment” and so on. And it will be possible to easily connect into one set all the objects of the type "Apartment" in all cities of the country, if we need it for anything. In addition, a comic example with the union of 13:37 shows that to some extent it is possible to unify not only types, but also typical structures, sets and relations between them. It seems that when only a few typical plots are distinguished from the diversity of world literature.



As stated at the beginning, the “objects + communications” model allows not only to create their own projects, but also to do what users are accustomed to doing on the Internet, and even more - to structure materials. The prospects connected with this are interesting, and here you can say different interesting things, especially considering that all this happens together in a common environment. But as the experience of my past posts shows, talking about everything at once confuses the audience. Therefore, in this text I decided to focus only on the aspect related to the production of projects.



Although in reality it would be appropriate here to continue analogies with some concepts of programming, such as encapsulation and data hiding when user sets interact with a common environment. Concealment, because there is a thought among the powers set by the user to include the operation “determining the visibility of objects for other users”. In this approach, the external interacts with the internal only through a certain interface. The user determines who can create and / or see objects and relations in his space, specify which objects / connections are their specific sets or types. And also to divide your space into subspaces and define rules separately for them; delegate authority to set rules to other users, etc. But for the full development of this topic I lack the competence.



What else can I add? For example, in such an environment it is easy to clone projects. This also opens up a topic for conversation.

Source: https://habr.com/ru/post/94902/



All Articles