Vyacheslav Petrukhin

Vyacheslav Petrukhin

May 25, 2020 → May 31, 2020

Архив недели @RetainCycle


Hello everyone. My name is Vyacheslav Petrukhin. This week I will post this twitter in English.

Let's talk about Flutter/Dart implementation flaws #dart #flutter

Switch in dart is really bad – can't handle null. The method implicitly returns null.
notion image

Mixin type cast #dart #flutter
notion image

The magic abstract class String of the standard library #dart #flutter
notion image

Switch in dart is really bad – can't handle null. The method implicitly returns null. https://t.co/XTKS3CIt8G
Just attach another twit #flutter #dart twitter.com/mobileunderhoo…

Just another "safe" type check #flutter #dart
notion image

DateTime can't handle any custom timezone. Only local/UTC api.dart.dev/stable/2.8.2/d…

As I can see, most of you absolutely don't care about #dart. As expected:) So, I close such #flutter thread. Let's try to talk about more interesting.

Should we talk in English in the next 7 days?

The crowd choose is messing with Google Translate! So, we won't use the Cyrillic alphabet! :)

The next thread will be about comments. The first question is do you use comments? Imho, the comments should be used as much as possible, because of they unarchive variable/method meaning. Any programmer forgets his/her own code in 1-2 years. Detailed comments are really helpful.


Do you use comments in your code?

I want to start a new challenge. It might be funny #screentime
notion image

So, the next question is about English. It seem, this is an actual problem for developers:) Do you usually use English at work?

@mobileunderhood Ну, я не знаю, как отвечать на заведомо ошибочные утверждения типа "автотесты бесполезны"
We talked about autotest here twitter.com/vvsevolodovich…

Do you use autotest?

Народ, а поделитесь своими сетапами домашних офисов? Планирую апгрейднуть своё) Делитесь :) cc: @mobileunderhood
Tim asks for advice twitter.com/timofeipl/stat…

Do you have Stackoverflow account ?

To continue SO thread. I think that the SO scores show the quality of the programmer. E.g. person who has more than 100k really knows his/her realm. Do you agree?


Git talk. I think that each PR has to be rebased before merging. I makes history adequate. Otherwise, your code looks chaotic. Do you use rebase before merging PR?

One more holy war question . Do you like reactive programming? I think in mobile dev in most cases it’s useless.

Can anybody advocate RX technology?

Declarative programming is our future. Do you prefer it? E.g. SwiftUI and Flutter?


A new thread will be opened by this example. What will happen?
notion image


Nobody can write C++ code

It's really complicated. Most part of the programmers just thinks that they can write. But actually, they can't. They just write either simple Qt or really incredible abstraction layers with memory leaks and crashes.

A false sense of knowledge of the language arises from the fact that C ++ is supposedly taught in universities. But in fact, only the basic syntax is explained there. Abstraction levels are too complex in real production.

It's very interesting. What do you think? Do you know C++?

That's really impossible to understand all abstraction layers and object memory lifetime for human beings. It's possible only for machines. So, only AI will write proper C++ code in future

In fact, most part of the programmers will be replaced by AI in the future. Machine learning will use StackOverflow and GitHub code. In 50 years, companies will use such instruments to create the code like they use web site templates to create a landing.

Can anybody explain his/her vote?

C++ language has a very diverse syntax historically. C++ template is an independent language. It's difficult to read a project supported for several years be lots of programmers.

C++ should be used only for performance-sensitive places of code.

But it's possible to write such a sensitive code using Rust.

That's hardly difficult to use C++ in mobile dev. Android doesn't provide a proper debug flow. iOS implementation is better but Swift can work only with ObjC bridging.

std::runtime_error fails any iOS application because of LLVM implementation. You can't catch and resolve it!

One more disadvantage is that you often write code in header files. But each change in the header file leads to the whole project rebuild. Actually, you change header files very often. E.g., using templates.


I want to give bad advice at the end of the week. You have to use force unwrap, force try, and other unsafe code as much as possible. This is the only way to show that you are an experienced senior, you are always confident in your code and you have a great self-esteem.

Did you like twitter this week?

Я устал. Я ухожу. Спасибо всем, кто принимал участие в диалогах. А также всем подписчикам. Для меня это был очень интересный и полезный опыт, так как это был мой первый опыт ведения соцсети. И каждый из вас мне очень помог. Последний вопрос: «Стоит ли мне заводить свой твиттер?»

Раз с целом относитесь позитивно, вот мой Твиттер @RetainCycle. Всем ещё раз спасибо, вы прекрасны. Всех с наступающим летом!