
Hello!
Hope you enjoy this new world. It is very different from the world of 2007. Tip: if you have just taken a mortgage, go back and cancel it. Believe me.
')
I am glad that you are still interested in computers. Today we have more of them than 10 years ago, and this is connected with new tasks. We carry computers on our wrists and faces, we keep them in our pockets, in fridges and teapots. Cars go pretty well, and we have trained programs to beat people in any games, except, probably, literball.
The translation was made with the support of the company EDISON Software , which professionally develops ASP.NET site catalogs for large customers and creates a useful anti-procrastination application .
(Web) applications
You may have seen the iPhone presentation before you entered the time machine. Apple is the largest and richest technology company, mainly thanks to the iPhone and the iOS operating system. Google also has a competing thing called Android, and Microsoft tried to get a slice of the ever-growing cake with Windows Phone. But it didn't work for them.
Left: iPhone 3GS from 2008. Right: iPhone X from 2017. We also had to practice shooting over the shoulder.We began to call the program - applications, and some websites - web applications. In 2008, Google released a new browser called "Chrome". After 9 years, he became the most popular way to get on the Internet.
The Chrome team has invested a lot in JavaScript, the code is getting better every month. Now web applications are written using a large number of JavaScript, now they resemble desktop applications of your time.
Other large companies have also invested in improving JavaScript - there is support for modules and classes. We use programming languages compiled in JavaScript, for example,
TypeScript (from Microsoft, now they are cool) or
Flow .
Nowadays, we mainly use JavaScript, nobody else supports Flash. We run javascript even on a server instead of perl, using a thing called NodeJS. It sounds easier than it actually is.
Responsive design: the same website shows multiple devices in different ways.Remember Swing, SWT and similar wxWidgets? We had to create something like this for the browser. There are several new UI programming paradigms that focus mainly on the components.
We need design, development and testing methods aimed at creating responsive web applications (the term used to describe a web site that does not look like a mobile phone on a mobile phone). We also need to make web applications lightweight — not all users have high connection speeds, but everyone has a browser in their pockets.
To support this all, component frameworks have appeared. The term is vague and includes
Angular from Google,
React from Facebook and
Vue from the community. But this is the best term we have.
By the way, I'm not sure that you will recognize Facebook from 2007. It was growing in the USA at that time, and now it’s just huge. It has over one billion registered users. Facebook also has one of the largest codebases in the world.
The Facebook team writes a lot of great code and publishes it on the Internet. They have their own conference - F8. Now most large companies hold development conferences.
CSS also had to evolve, as new applications require more complex layouts. We no longer use tables with images. Frames are also outdated. Instead, we created new standards such as CSS Floats, Flexbox and CSS Grid.
People had to go through these standards, and therefore they created libraries to make them look structured, for example,
Bootstrap ,
Foundation, and many others. Like JavaScript, we created languages that compiled into CSS. They compensate for some things that CSS misses, such as variables or modules. It is still difficult to understand.
Being lost is normal
Do not upset if you are confused. The truth is that we are all a little confused - and everything is in order. There are many more developers on the planet now, and technology companies are becoming increasingly successful. For a while, we used the term “startup” to describe companies that grew quickly and did not know what to do. But even this term is outdated.
Data
There are more programmers, more programs and more devices. As a result, we have more data. Computers had to be powerful enough to handle all of this, and we developed several methods to turn this data into insight.
First, we created a scientific area called Data Science, whose goal is to study and extract information from data.
For example, a startup called Waze allowed people to install the application on their phones so that they could track their movements when they were in cars.
Since many people have installed the app, Waze has received a wealth of data on how cars are moving. They used it to develop programs that could understand where there are traffic jams.
Now, when you open Waze on your phone, you see traffic jams on the map in real time and can choose a different route.
Since then, Waze has been bought by Google. This often happens with startups.
Someone is using Waze to get somewhere. Other Waze users are shown as funny icons.Data Science faced three major problems: data storage, data understanding, and data usage. We have succeeded in all these areas. Let's look at each area separately.
Data storage
Now we need to store a lot more information, and then find out how much of this information is important. We have become to invent new databases. MySQL and PostgreSQL are not suitable for storing terabytes of data (this is also called “Big Data”).
Large, first Internet companies, as a rule, faced these problems, and therefore they were one step ahead in the development of technology. In most cases, technologies were first used internally and then became widely available.
There was a movement that we called NoSQL. This new class of databases has adopted some of the conventions of traditional relational databases and deployed them.
There is
Hadoop , which is responsible for how data is stored on numerous computers. It defines the way MapReduce is processing data (inspired by an article from Google - large companies write good scientific articles these days).
There is also
Cassandra , which treats data not as tables, but as sets of keys and columns that can be stored on different computers. It also ensures that any of these computers can go offline without data loss.
And we have
MongoDB , a database that is easy to install and use for prototyping applications. In 2017, we view technology the same way we treated pop stars a decade ago — we jealously protect some of them and hate others. MongoDB - as a Nickelback group - belongs to the latter group.
Training
A dog photographed through Prisma, an application that uses machine learning to make ordinary photos look like famous works of art. No more Photoshop Plastic Wrap.In the field of “data understanding,” most of the attention was focused on Machine Learning. There were many new methods, from naive classification to deep learning, that are now in the Data Scientist toolkit. They mainly write in Python and work together with developers to use machine learning wherever possible.
For example, using Data Scientists many web applications use A / B testing. This method serves two slightly different versions of the application for different but similar user groups. It is used to see which version best suits the audience, whether it is registration or purchase.
Many large companies, such as Airbnb (pronounced as air-b-and-bi), Uber and Netflix, simultaneously conduct hundreds and thousands of A / B tests to make sure that their users get the best experience using their application. Netflix is an application where people can watch TV shows on all their devices. ¯ \ _ (ツ) _ / ¯
Microservices and clouds
Companies like Netflix are huge. Since they serve a large number of people, they need to make sure that their servers always work. This means that they need to manage their computers well enough. They can add hundreds of new servers when they are needed.
This is hard to achieve in a traditional data center, so great Netflix engineers use virtual machines. Remember Amazon Web Services, which launched in 2006? Then they began offering Elastic Cloud Compute, known as EC2, to help people get virtual computers in Amazon's data centers.
Today they have almost 80 such services, all of them are created for the rapid growth of companies. Previously, we had a fashionable name - “The Cloud” - but this term is as vague as NoSQL.
This is a list of services that you can find in the Amazon cloud. It is still growing.Google and Microsoft offer their own clouds, creating a market for cloud services. And when smart people compete with each other, all sorts of crazy innovations happen.
First of all, we began to think more about our infrastructure as a code. Previously, you had to buy a new server, connect a keyboard and install dependencies.
We now use configuration management tools such as
Puppet ,
Chef and
Ansible to automate our servers. You write code in languages like Ruby, and the servers provide you with the configuration you need. If a change is required, you edit the configuration, and then update the servers. No more ssh.
We also began to look at the containers more. Since it was possible to provide machines for EC2, we needed to develop similar environments in which our products worked.
We started with virtual machines using tools like
Vagrant to automate them. Then we got the Linux containers and, ultimately, the Docker. We found a way to run Linux on our MacBooks without running a virtual machine that shares some of the operations associated with the OS.
Using Docker, we could create descriptions of systems that exactly matched what we used in production. The developers called these descriptions "image" (image) and ran their applications in several virtual instances called containers.
By the way, many people like the MacBook. And this is a Windows 10 conference.Then the cloud providers caught up with it and started running our containers directly on their clouds. They gave us tools such as
Marathon and
Kubernetes , called orchestration frameworks. These frameworks allow developers to run applications inside containers without worrying about scaling, fault tolerance, monitoring and detection. Servers have become disposable, and we no longer give them smart names.
It also allowed developers to create small applications called services or microservices, and then launch them independently. Since these microservices have few external dependencies, we began to learn new programming languages such as
Go (which was created to be compatible with concurrency) and Java. Yes, Java is still everywhere, and everything is better.
There are also languages such as
Scala and
Clojure that allow you to use a Java virtual machine and all associated libraries. A website such as AirBnB launches hundreds of microservices using several programming languages and databases.
Because of these microservices, we had to revise some of our programming paradigms. Now we have a lot more small applications that we need to coordinate.
As a result, there are tools like
Apache Kafka ,
Google PubSub and
RabbitMQ , which are aimed at helping computers that communicate a lot with each other. Kafka was created by LinkedIn, a social network where people advertise their professional lives. Later, it became an open source project.
Ways to create software
The complexity created by the orchestration frameworks is mainly intended for larger teams. Remember - now we have more people create software than ever before, and every programmer wants to send his code immediately. If you have a company with hundreds of developers working together on a website, you need to make sure that they do not need to coordinate their releases.
Therefore, we create software in small teams. Teams usually have some DevOps skills, and participants know enough about operations to be able to host their software. They use some form of Agile process, where they release software continuously in short intervals. Organizations are also experimenting with other forms of hierarchy, such as
Squads, Chapters, Tribes, and Guilds , such as Spotify (this is a new music streaming service).
All these projects (and many others mentioned earlier) are developed publicly by the community of people. Sometimes they are sponsored by the company. In most cases, development takes place on the
GitHub website. There, people can talk about software, publish it and approve other publications, responding

emoji Emoji (Emoji) is a special symbol that we now use to express emotions, such as "absolute consent." :-)
There are many other communities now, and they are all experimenting with ways to create software in the public domain. For example, a framework called EmberJS uses a
community-driven release cycle designed for 6 weeks. Other open source languages and popular programs (like
GitLab or
Visual Studio Code , Microsoft’s code editor) are updated monthly, so the changes do not affect everything. Packages change little by little with each release.
Disputes about the choice of code editors still exist. We write our code in desktop applications that launch a browser that displays a text field. And this is great. It works very well (improves with every release) and is highly customizable. They even have support for VIM mode!
RailsGirls is an initiative that opens the world to web development for many women. Here, workshop participants in Sofia, Bulgaria, showing Friday Hug, a popular gesture in the Ruby community.Conferences are held on each topic. They are cool, and they are everywhere. Go to one and you will see completely different people! Take a look around, make friends, get inspired, talk. You can go to
the algorave show - what they do with music, images and code is breathtaking.
That's not all
We have more developers, software, and innovations. I hope you are still in awe of computers - you have every reason to.
Let's go get some more
Club Mate and I'll tell you about bitcoin. Also, if you want to know, there is a new president in the USA.