📜 ⬆️ ⬇️

Two years with Dart: how we write in a language that is “buried” every year (part 2)



We continue our interview with Wrike development manager Igor Demyanov. Today we will talk about the prospects of the language, its development and improvement of the tools, and also try to answer the question of “Dart Schredengir”: is the language still alive or dead, can it be used without fear in our projects

Part 1

Who else from big companies uses Dart in development in Russia?
')
There are guys who are outsourcing to the western market, but personally I am not familiar with them. Periodically we are approached at conferences with questions about the language, so people write on it. We have the Ru-Dart channel in Slake , where we try to keep in touch with the Russian-speaking community, there are already more than 100 people, but not all, of course, from large companies. HYIP is not the strongest side of Dart.

Google, of course, supports the community, but this is clearly not their primary task, they are now actively investing in the technical development of their languages ​​and tools for the frontend, backend and mobile devices.

Dart can be used to create mobile applications?

Yes, this is Flutter, which they are actively promoting now. At the recent Google I / O conference there were five reports on Flutter and one on Angular. Here is a mobile first. Obviously, Google prioritizes artificial intelligence and mobile devices, the focus of the web has shifted slightly.

Of course, there is still their big Fuchsia project, and it also involves Dart.



And what own projects Google writes on Dart?

In this language, all the main profitable Google services are AdWords, AdSense, but, as Google itself declares, this is the tip of the iceberg. A lot of internal systems are written in Darta, some of their CMS, financial tools.

How do you feel, how intense is the language developing?

The language is standardized, and its standards will not change. The main development now and further will be associated with the emergence and improvement of various tools. For example, they abandon Dartium, because it is very difficult to keep two virtual machines, and the transition from one version of dartium to another is problematic. Instead, develop the Development Dart Compiler (DDC). It will work on the same principle as in Babel and TypeScript. DDC will be used for development, and for production code - the current compiler, which is quite good and optimizes.

How much do language developers listen to the community and the big companies that use this language?

The guys from Google know about us. Once a year we do a joint Dart meeting in St. Petersburg, and we monthly participate in online meetings with language developers. We are informed about the development of tools that are planned for the future, our “Wishlist” ask. We can complain about bugs: something is closed, something is not. We can say we have a direct dialogue.

And what insights?

As I understand it, the main bet now is on the development of Angular, which will be quite different in versions 3 and 4 from the typescript script, and also on DDC.

In Angular 4 there should be a very strong Boost both in speed and in code size. That is, in the third there was already a boost - from 10 to 20%, plus a 10% reduction in the code base itself. In the fourth, we wait even more.

And the second vector of their development is DDC. They are now actively “sawing” him, they want to free up resources that they spend on supporting Dartium .

At all conferences where Wrike speakers are participating, two questions are heard: “Is Dart alive?” And “Why not TypeScript?”. Not tired to answer?

It is like the eternal struggle of peaks and stupid. Who likes what. I say again that for small projects, for prototyping, I would choose JavaScript - I quickly inserted it in the browser and launched it. For large projects, when design patterns are required, when OOP is needed, Dart is great. Yes, you can choose the path of functional programming, but this is like a dispute between two schools of martial arts. Tasks can be solved in different ways. I'm not interested in arguing about this.



At the moment in the labor market, you can easily find a job in JavaScript. This is due to the fact that the threshold of entry into the language is low. But if you’ve written all your life in C # or Java and you want in the frontend, you are unlikely to be attracted to JS.

If it's about people, what developers come to write on Dart? It is clear that in Russia you can hardly meet a dart-developer’s resume.

If you want to work in Wrike , it is desirable to have behind your shoulders, besides JavaScript, some other language with a fairly strong OOP, such as C #, Java, even C ++. Still, the most important thing for us is the ability to think and the desire to develop, to search for non-trivial solutions.

At the technical interview, we usually have two blocks - JS and OOP. We ask about javascript because we have a legacy. Here we do not require deep immersion, it is enough to know the basics of the language, the rest is easy to learn. It's not a problem. The problem, like any language - is to be able to write well. In JavaScript and TypeScript you can also write good code, documented, use JS-docks for JavaScript. But on JS bad code is easier to write than in languages ​​with OOP.

If you have experience with languages ​​such as Java or .net, then we will have an interview rather easily.

And if you want to try writing on Dart without any experience? Speech concerns students in the first place.

There is a fairly good site webdev.dartlang.org There are many tutorials for those who want to immerse themselves in the language. There are not so many keywords in Darth - classes, mixins, extents, you need to know standard libraries, collections. There are things like streaming , asynchronous futures . On the same site you can take a small course on Angular Dart.

But on Angular there is a lot of literature on the Internet, both on TypeScript-ovom can be read, and on Dart-ovom. There, the difference at the moment is minimal, and the subtleties can be understood in the process when you use the code.

Dart and server part allows you to write?

Yes, we already have experience with this. We have already released it in one of the Wrike components (the entire main backend of the product is written in Java), and is now in the process of “cutting out” the old code that was previously on Node. We translate it into Dart. Everything works fast enough, we are pleased that the component can withstand a high load.

How does this darth code interact with java code? Are there any nuances here?

It interacts via WebSocket, we also use http-interaction. Nothing much here. Theoretically, there may be problems with drivers for some databases. Google uses its cloud solutions, and there are drivers for them, for the rest, you need to look. Actually, I do not think that now server Dart is the main vector of the language, although, if you look at the same Fuchsia, then it uses Dart VM. And Dart there is the environment in which the application runs.

Is Wrike and Dart forever? Or is there something that might force you to give up the language?

Anything can happen. For example, something will happen to Google ... or something like this. But now we see that Google wants to consolidate the language with some kind of platform, reliable tools, but Google’s exact plans, of course, we don’t know. Fuchsia will come out, see what happens to it. We are concerned that not so much attention is paid to the community, but this is probably due to the fact that the main users of the language are the creators of Google’s internal services.

They hold a Dart Summit once a year.

Yes, the same as Polymer Summit, Angular Summit. Not to say that Dart has some special attention. But the language is, of course, alive, the community, although small, but alive, we have a dialogue with the maintainers, there is communication in the English-speaking and Russian-language slak channel . Well, of course, we try to talk about our experience at large front-end conferences and at local technical meetings in St. Petersburg.

We will be grateful for the questions in the comments and, if necessary, we will write more detailed technical articles about working with Dart based on them.

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


All Articles