Prolog

"Experience - is when instead of questions "What, Where, When and Why?" you have only one - "For what purpose?".

Everything below is the personal opinion of the Author based on years of experience of development and programming, and is not intended to teach someone or to cause harm. All opposing views also have the right to exist, and only under this condition, the Truth can prevail, despite the fact that "Truth is out there".


After the "Penguin smash by Apple a Window", the software industry has undergone global changes. What many years ago seemed impossible, today is a full part of our life.

The appearance of the PC was revolutionary and provided the opportunity for more rapid development, as well as smartphones in our days. But at that time among developers was the law "Customer is always right", although there were some deviations from that (suffice it to recall the causes of appearance of modes "ideal" and "masm" in Borland Turbo Assembler).

Today developers use another law: "All people around ..., but I'm the best". Sure, many of you turning to them, received similar responses: "You don't need it.", "This task is not the task of first queue." and so on.

WHY?

And in this period of orgy (from the point of view of the Author ), Author asked himself the question: "Why? What is the reason?". And the reason was found pretty fast.

When the Author read the Manifest of Richard Stallman for the first time, and he read it in translation, he has firstly decided that the translator has something wrong understood, because "this can not be, because this can never be". But when reading the original, it became clear that the translator is very very clever and knows his stuff on "everything 100". And if You will find the time and strength to read this rather interesting document, you will understand that its main idea is "Give us money, give us computers and we will do, that You will earn less, but continuously."

What follows from this? Only one conclusion. The developer is not interested in the result of his work. The more people will turn to him, the more he will get. That is the main reason of continuously earnings. Why he need fixing errors at the stage of development, testing, and so on?

The Opponents will say that "code is not error-free", and it is impossible to debate with that. It is not mistaken only one, who does nothing. It's the truth. But then, why between the detection of the bug and its correction, if it occurs at all, the years pass? For example, the question of the hotkeys in Linux when you switch to the other keyboard layouts. After all, it is possible to do (Google Chrome, LibreOffice), but for some reason do not.

The Opponents will say that "code is in free access". And it is also very true. But the question immediately arises: who needs it? It is the big question that when You decided to use someone else's software, You will study that code with thousands and millions lines. Probably, better doing your own work? The only option of using that code is to use it only as a programming example. But for this purpose there are sections "Examples" in any self-respecting SDK, or products such as once existed Microsoft Local MSDN.

The Opponents will say that "if you'll find any errors, you can find the cause in the source code". And this is also true. But, is your task is to look for someone else's mistakes? Of course, if you are not a software tester, who take money for that. You must take money for your job. And even if you have found a bug, have heard that "it is not the task of first queue", have fixed it, how you will support the following versions of that product? Form a new department in your company?

But, fortunately, there are no minuses without pluses. From the point of view of the Author in such programming does have one positive aspect: you can quickly start a new project. That is, you can try something and if it earned you can decide what to do later, but then, if you want your customers did not recall bad words to you, you must take everything into your own hands. It is very dangerous to smoke a pipe, sitting on a powder keg.

WHO BENEFITS?

There is ancient postulate in law: "look who benefits". Unfortunately, the author is unable to answer this question, despite the fact that faced with a similar programming in far May 1993.

Many years ago the Author was present at a meeting of the supporters of open source software with the participation of Richard Stallman. To say that the author and his colleagues were shocked - to say nothing. While waiting for the arrival of Richard Stallman (he was late), the hall, which was about 200-250 persons, in response to the continuously asked question of leading "Who is our enemy?" within a few minutes of standing, in ecstasy chanted "Bill Gates !!!". After that, the answer to the question from where appeared the slogan "Windows - MustDie" is not necessary to look for a long time.

Throughout the meeting Richard Stallman was telling how great are freedoms and open software. And by the end of the meeting there was distribution of this software in the foyer. Yes, it was free! But in order to take it, you had to buy for $ 3.0 the tape of streamer, while the Author is always bought them in stores at a retail price of $ 0.6. Is it not strange?

Taking into account the current realities, everything that was happened in the distant 1993, today is seen from another point of view, and this point of view is not pleasurable.

WHAT SHOULD DO?

Looking at today's software, the Author has the feeling that he was moved to the late '80s, when every developer thought it his duty to bring something own, when in one application F1 key opens editor, in others - help, and in thirds - additional panel. And why IBM has standardized window interface in 1987?

Despite this, we have what we have. Therefore it is necessary adjust to current days. It is necessary to understand the weaknesses, in order to know "what awaiting ahead." Discussions in the smoking room lead nowhere, because Freedom - is also a Freedom of Verbiage and Boltologiya. Therefore, we need the facts! That is why appeared the idea of this project.

Having a smartphone with set of software from around the world, you have a unique opportunity to analyze it, to get acquainted with methods of development that are used by programmers, because any development environment always leaves its traces, you only need to know how to recognise them, as well as the styles of programming, the methods of support, etc., and make conclusions, conclusions, conclusions ...

By the way, at the begining it was considered as good manners to inform users about the added functionality and fixes. But today, only in some applications you can meet the version history. The maximum that is proposed - is a limited section "What's New" in a Store. But if you, for some reasons, missed the update, you can never learn about adding / removing functionality. Text, such as "We have fixed some problems and added new features", which can be found in a Store, are hardly informative.

Also, the frequency of application's updates can tell you a lot. For example, if the application is updated in a couple of hours after the previous update, it may cause some questions, and if it happens regularly, then questions should be even greater. Or your favorite application is periodically updated every week, and suddenly stopped and is not updated for several months, this can mean that someone somewhere has quit his job, and you can hardly wait for something new.

Against this background, conclusively looks Microsoft's behavior, which was sometime one of the greatest companies of proprietary software, jealously watching the stylization of its products. For example, in the early days of Windows Phone on the market, Microsoft made recommendations that update of products should be no more than once every six to eight weeks, and now look at how often their products are updated on Android: Skype - every week. Although, in fairness, it should still be noted that the Office products (Word, Excel, etc.) is still updated once a month, though in July 2016 - each week (the summer is always strange in Microsoft, enough to remember the summer of 2014 when massively were canceled updates of desktop version of Windows).

When Windows appeared, appeared the question "whether the developer should use Hungarian notation?". For example, Symbian platform developers have responded to it very simply: "No, because functions are very short." Yes, Symbian is really trying to do a short functions, but, with continuously using of two-phase construction of classes, the code is growing, and is hard to understand what and where. Fortunately development environment has code highlighting, otherwise it would be very difficult. However, you can find the usage and no usage of Hungarian notation even in Android SDK. The same thing you can see, after analyzing installed on your smartphone applications. Of course, everyone decides for himself - to use it or not. You will be able to respond better to this question, if you'll see how this question solve the others.

For debugging applications, programmers often use a separate code, which is need them only during stage of debugging. And if this code is in the "release" application version, it lies there as dead code, increasing the size of the application, and therefore the amount of traffic for the user to update application. But usually is difficult to be sure without special tools, that such code does not exists in release version of a large project. It's better simply look at the generated DEX file, and make sure that it's not there.

In the applications, based on the Java language, basic is the package name. In fact, it is the transformed domain name. But it can tell you a lot. For example, if you meet on your smartphone package named "com.google.android.apps", then most likely you do not have to worry about, but if you find a package named "zxc.eagxdss", you probably should have some questions.

Many of us will say that "I know where I installed application!". Yes, but there are already plenty of other places that you may not know. And ought to know.

So for all these and other similar questions is designed this Project. Whether it will be helpful or not, of course, time will tell, but let us hope for the best.