Python and science (RUS)

Gram

Type safe talks

Python and science (RUS)

Type safe talks

Всем привет! Приветствую вас на нашем типа безопасном подкасте, и сегодня у нас будет потрясающий выпуск, потому что к нам присоединился еще один гость.

Hello everyone! Welcome to our so-called safe podcast, and today we have an amazing episode because we have another guest joining us.

Но сначала наш старый состав, я Грамм, питание из Гошник, а также у нас есть Медведь.

But first, our old lineup: I'm Gramm, nutrition from Goshnik, and we also have Bear.

Здрасте.

Hello.

Да, Медведь плюсовик из геймдевы, а Владик.

Yes, the Bear is a positive figure from game development, and Vladik.

Ага, привет всем.

Aha, hello everyone.

Владик джейсник, и мы его совсем не шеймим за это.

Vladik is a jaysnik, and we don't shame him for it at all.

Карим.

Karim.

Всем привет.

Hello everyone.

И к нам присоединился еще один наш замечательный друг, друг из сайенса, без дэйта, прям настоящего честного сайенса, и он будет рассказывать много-много потрясающих вещей про сайенс.

And another wonderful friend joined us, a friend from science, without a date, from real honest science, and he will tell many, many amazing things about science.

Всем привет. Ну, я не уверен, что они будут прям потрясающими.

Hello everyone. Well, I'm not sure they will be magnificent.

Все будет потрясающим, я не сомневаюсь.

Everything will be amazing, I have no doubt.

Вот, и тема сегодняшнего выпуска – это сайенс, языки программирования в науке в целом,

Here, and the topic of today's episode is science, programming languages in science in general,

и, возможно, затронем...

and perhaps we will touch on...

Затронем взаимоотношения программирования в науке и программирования в энтерпрайзе,

Let's touch on the relationship between programming in science and programming in the enterprise.

потому что у нас вот здесь три человека из энтерпрайза-энтерпрайза и два человека из науки.

Because we have three people from the enterprise-enterprise here and two people from science.

Это вот Карим и Саня, вот.

This is Karim and Sanya, here.

Ну что, начнем? Саня, расскажи о себе.

Well, shall we begin? Sanya, tell us about yourself.

Ну, я, в принципе, прогую на Тони побольше своей части.

Well, I basically owe Tony more than my share.

Начинал я с матлаба, работаю я в науке, в частности, в обработке данных инфракрасных наблюдений,

I started with MATLAB, I work in science, specifically in the processing of infrared observation data.

со спутников.

from satellites.

Побольше своей части я работаю с Марсом, но, в принципе, планета тут не так важна,

I mostly work with Mars, but, in general, the planet isn't that important here.

я работаю с какими-то планетными науками.

I work with some planetary sciences.

Побольше своей части я пишу код на питоне, раньше писал на матлабе.

I write a lot of my code in Python; I used to write in MATLAB.

В последнее время, ну и вообще в целом в работе, приходится взаимодействовать с всякими старыми языками,

Recently, and generally in my work, I have to interact with various old languages,

типа Фортрана, иногда приходится что-то подкручивать на чистом, на голом C,

like Fortran, sometimes you have to tweak something in pure, bare C.

иногда приходится работать со всем древним кодом на, там,

sometimes you have to work with all the ancient code on, like,

чуть ли не на 77-м Фортране, иногда приходится смотреть на код в совсем экзотичных языках,

almost on 77th Fortran, sometimes you have to look at code in very exotic languages,

типа IDL.

like IDL.

А почему так много Фортрана? Почему бы все не переписать с Фортраны?

And why is there so much Fortran? Why not rewrite everything in Fortran?

На самом деле вопрос горячий, который многих интересует,

The question is actually a hot topic that many are interested in.

почему у людей до сих пор есть код на Фортране.

Why do people still have code in Fortran?

Ну, то ситуация, с которой я сталкиваюсь, например,

Well, that's the situation I encounter, for example,

мне нужно для того, чтобы заниматься нормальным дата-сайенсом,

I need it to engage in proper data science.

мне приходится заниматься моделированием для того, чтобы восстановить какие-то параметры,

I have to engage in modeling in order to restore certain parameters,

нужно иметь прямую модель.

You need to have a direct model.

И, к сожалению, прямая модель, она часто бывает для того,

And, unfortunately, the direct model is often for that,

чтобы сгенерировать какие-то данные для прямой модели,

to generate some data for the direct model,

для того, чтобы ее использовать, приходится, для того, чтобы не писать ее самому,

in order to use it, one has to, in order not to write it oneself,

то приходится использовать старый код.

then we have to use the old code.

Использовать старый такой Legacy код, я, например, использую код порядка 90-х годов,

Using old legacy code, for example, I use code from the 90s.

может быть, там, конца 80-х годов,

maybe there, at the end of the 80s,

просто потому что никто не будет в состоянии переписывать его с нуля,

just because no one will be able to rewrite it from scratch,

и все используют старый код.

and everyone uses the old code.

Основная причина — это много такого Legacy кода,

The main reason is the large amount of such legacy code.

который был написан, в принципе, очень давно,

which was written, in general, a long time ago,

и со временем он не теряет актуальности,

and over time it does not lose relevance,

ну, в смысле, теряет в плане, конечно, языка, на котором он написан,

Well, I mean, it loses something in terms of the language it was written in, of course.

но, в принципе, он работает хорошо,

but, in general, it works well,

и многие люди просто не считают нужным его переписывать,

and many people simply do not consider it necessary to rewrite it,

потому что не трогать то, что работает и так хорошо.

because it's best not to touch what works so well.

Ну, и даже банально переписать все эти огромные урмоты

Well, and even simply rewrite all these huge urmoty.

мне не представляется возможным,

it doesn't seem possible to me,

потому что для этого банально нужно очень-очень много ресурсов и времени.

Because it simply requires a lot of resources and time.

Гораздо проще использовать.

It's much easier to use.

Ну, что-то такое.

Well, something like that.

Окей, спасибо.

Okay, thank you.

Медведь, расскажи про свой опыт с ML, с Science.

Bear, tell us about your experience with ML, with Science.

Не знаю, что у тебя там было, расскажи.

I don't know what happened with you, tell me.

Ну, на самом деле у нас самого Science особо много не было,

Well, we didn’t actually have much science ourselves.

например, где я занимался.

for example, where I was engaged.

Мы обучали, как обычно, модельки,

We trained the models, as usual,

то есть там ничего особенного на питоне в керасе.

So there is nothing special about Python in Keras.

Наша главная особенность была в том,

Our main feature was that,

что нам нужно было гонять модельки real-time и на девайсе юзера,

we needed to run real-time models and on the user's device,

то есть девайс — это обычно как бы или Android-телефон,

that is, a device is usually like an Android phone,

или...

or...

iPhone.

iPhone.

Если нужно общее решение,

If a general solution is needed,

ну, то есть что-то у вас есть, моделька,

So, I mean you have something, a model,

вы хотите собрать,

you want to collect,

здесь мы остановились на TetherFall Lite,

here we stopped at TetherFall Lite,

то есть можно уже обычную модель конвертнуть в формат,

that is, it is already possible to convert a regular model into the format,

который сжат TetherFall,

which is compressed TetherFall,

в своем коде применяли,

used in your code,

это все на плюсах.

It's all positive.

Есть еще разные фреймворки, которые,

There are also various frameworks that,

например, если у вас именно телефон на Qualcomm,

for example, if you have a phone with Qualcomm,

там есть их фреймворк для сеток на Qualcomm,

there is their framework for grids on Qualcomm,

и там будет побыстрее.

and it will be faster there.

То есть чем TetherFall Lite.

That is, what TetherFall Lite is.

Вот, на IOS есть их Core ML,

Here, on iOS there is their Core ML,

но там мы особо не копались,

but we didn't dig into it much there,

потому что решили, что нам важнее общее решение.

because we decided that a common solution is more important to us.

Если нормально все сделать на TetherFall Lite,

If everything is done properly on TetherFall Lite,

то скорость будет достаточно быстрая.

Then the speed will be fast enough.

Вот, это то, чем я занимался.

Here, this is what I was doing.

Чем обучение отличается от того,

How training differs from that,

что у вас есть еще и такой параметр,

that you also have such a parameter,

как скорость работы модели.

how fast the model works.

Вам нужно за этим следить,

You need to keep an eye on this.

у вас есть ограничения по слоям,

do you have restrictions on layers,

у вас есть слои, которые, конечно, девайс не потянет,

you have layers that, of course, the device won't be able to handle,

вот это нужно все учитывать.

This all needs to be taken into account.

Наша особенность была в том,

Our uniqueness was in the fact that,

что мы гоняли это real-time на устройство,

that we ran it in real-time on the device,

и это должно было быть быстро.

and it was supposed to be quick.

А как ты думаешь, почему обучение модели

What do you think, why is model training important?

и Data Science, в них не особо используется C++,

and Data Science, C++ is not particularly used in them,

если вообще используется?

if it is even used?

Потому что вот библиотеки, как минимум,

Because here are libraries, at the very least,

они же на плюсах TetherFall, правильно?

They are on the plus side of TetherFall, right?

Python проще, ноутбуки, вот это все,

Python is easier, notebooks, all that stuff,

то, что есть для Python для обучения,

what is available for Python for learning,

то есть это такая killer фича,

so this is a killer feature,

которой у нас в плюсах нет.

which we don't have in our advantages.

Окей, спасибо.

Okay, thank you.

Вот говоря о простых языках,

Well, speaking of simple languages,

простых и популярных, вот у нас есть JS,

simple and popular, here we have JS,

он безумно популярен, на него куча, большая экосистема,

he is insanely popular, there is a huge ecosystem around him

много библиотек, и его просто запускать.

Many libraries, and you can just run it.

Открыл браузер и работаешь.

Opened the browser and you are working.

Владик, расскажи нам, почему, как ты думаешь,

Vladik, tell us, why do you think,

JS не используется в Data Science?

Is JavaScript not used in Data Science?

Ну, мне кажется, по той же самой причине,

Well, I think for the same reason,

то, что ты, Медведь, сказал.

What you said, Bear.

То есть на Python, в принципе, уже все готово

That is, everything is basically ready in Python.

для Data Science-истов.

for Data Scientists.

Ну, а, например, про email, если говорить,

Well, for example, if we talk about email,

то есть же TetherFall,

that is TetherFall,

JS, правильно.

JS, that's right.

Да, есть такое.

Yes, there is such a thing.

Слушай, Грамм, вот то, что я хотел сказать вообще

Listen, Gramm, this is what I wanted to say overall.

по поводу предыдущего вопроса,

regarding the previous question,

Python в Data Science не является медленным языком в сути своей,

Python in Data Science is not inherently a slow language.

потому что большая часть библиотек,

because the majority of libraries,

большая часть матричных перемножений и прочего,

most of the matrix multiplications and others,

она, вот это все, все, что связано с численными данными в Python,

she, all of this, everything related to numerical data in Python,

то есть numpy, scipy,

that is numpy, scipy,

это большая часть там написана не на Python,

a large part of it is written not in Python,

как справедливо сказал Медведь.

As Bear rightly said.

А Python является просто удобной оболочкой,

And Python is just a convenient shell,

для управления всем этим.

to control all of this.

И поэтому Python в задачах,

And that is why Python in tasks,

которые работают с числами,

that work with numbers,

работает на том же уровне,

works at the same level,

как и низкоуровневые языки,

like low-level languages,

и он является таким просто пультом управления всего этого,

and he is simply like a remote control for all of this,

и визуализацией.

and visualization.

А еще есть какие-то же языки, кроме Python?

Are there any other languages besides Python?

Я, например, что-то слышал про R, Julia, вот это вот все.

For example, I've heard something about R, Julia, all that sort of thing.

Ну, R создавался под статистику,

Well, R was created for statistics,

под работу со статистикой,

for working with statistics,

и, в принципе, в работе со статистикой он используется,

and, in principle, it is used in working with statistics,

и это его, по сути, единица.

and this is essentially his unit.

Мне кажется, что все, что можно было бы сделать на R,

I think that everything that could be done in R,

можно было бы сделать точно так же на Python, в принципе.

It could be done exactly the same way in Python, basically.

Julia — Julia просто очень молодой язык,

Julia is just a very young language,

и я знаю некоторые научные лаборатории,

and I know some scientific laboratories,

некоторые научные группы, которые его используют.

some scientific groups that use it.

Но, наверное, ему нужно дорасти до такой же популярности.

But he probably needs to grow up to the same level of popularity.

Хотя, как мне кажется, в той же научной среде

Although, it seems to me, in the same scientific environment

и в том же Data Science у него есть потенциал,

and in the same Data Science he has potential,

у этого языковца есть потенциал стать чем-то таким же широко используемым,

this linguist has the potential to become something just as widely used,

как Python.

like Python.

Тем более,

Moreover,

Julia, на самом деле, там, насколько я знаю,

Julia, actually, there as far as I know,

хорошо работает оборачивание и интегрирование.

The wrapping and integration work well.

Насколько я знаю, было даже прям встроено,

As far as I know, it was even built in directly.

когда последний раз я интересовался.

When was the last time I was interested?

Мне кажется, нужно время, чтобы это было.

I think it takes time for this to happen.

Как мне кажется, тут есть такой эффект снежного кома,

It seems to me that there is a snowball effect here.

что чем больше люди используют какой-то язык,

the more people use a certain language,

какие-то там тузы,

some aces or something like that,

тем больше появляется инфраструктуры под все это в определенной среде.

the more infrastructure appears for all this in a certain environment.

И чем более популярен язык,

And the more popular the language,

тем он будет еще более популярным становиться.

then he will become even more popular.

Вот ты сказал насчет инфраструктуры.

So you mentioned infrastructure.

Ну, скажем так, у вас в научнике за дата-сетами следят,

Well, let's say that you monitor the datasets in your science department.

версионированием или вообще чем-то за кодом,

versioning or anything related to the code at all,

как вы обменяетесь кодом.

How will you exchange the code?

Карим и Саня, расскажите про это, пожалуйста.

Karim and Sanya, please tell us about this.

У меня просто есть очень горячий ответ,

I just have a very heated response.

очень много горячих ответов на эту тему,

there are many heated responses on this topic,

потому что это, на самом деле, полный кошмар.

because it is, in fact, a complete nightmare.

Просто, это просто огромный кусок чего-то нечитаемого и непонятного,

It's just a huge chunk of something unreadable and incomprehensible.

как правило.

as a rule.

В целом, если кто-то в науке использует версионирование,

Overall, if someone in science uses versioning,

это вот какое-то просто что-то, что там,

this is just something, what is there,

будет там хотя бы простой там GitHub, там Git, все это,

there will be at least a simple GitHub there, there Git, all of this,

это является чем-то outstanding,

this is something outstanding,

то есть это не что-то вот обычное,

so it's not something ordinary,

это что-то вот типа, ого, типа нифига себе люди так делают.

It's kind of like, wow, like no way people actually do that.

Про документирование дата-сетов – это отдельная история,

About documenting datasets – that's a whole separate story,

потому что, как правило, дата-сеты, которые у нас есть в науке,

because, as a rule, the datasets we have in science,

это отдельная история, часто не бывает размерности, например.

It's a separate story; there often isn't any dimensionality, for example.

То есть в чем, например, эти физические величины лежат,

That is, for example, what these physical quantities are based on,

это абсолютно нормальная история.

This is an absolutely normal story.

Их приходится находить по каким-то просто отдаленным уголкам интернета,

They have to be found in some distant corners of the internet.

потому что, если какой-то дяденька там что-то намерил 30 лет назад,

because if some uncle measured something there 30 years ago,

он выложил это на FTP через 10 лет, и через…

he uploaded it to FTP after 10 years, and after…

А сейчас этого FTP уже нет.

And now this FTP is no longer available.

У меня был шикарный пример по поводу того,

I had a great example regarding that,

как один очень крутой астроном скидывал данные другим очень крутым астрономам.

how one very cool astronomer shared data with other very cool astronomers.

Это серьезные люди, там, типа, с большим хорошим бэкграундом,

These are serious people, like, with a good strong background.

то есть вот они долго в науке,

that is, they have been in science for a long time,

хорошо этим занимаются.

They do this well.

Это была полная жесть, потому что данные были недокументированы,

It was a complete nightmare because the data was undocumented.

и они друг друга совсем не поняли,

and they didn't understand each other at all,

и одному пришлось калиброваться по этим данным вместо того, чтобы…

and one had to calibrate based on this data instead of…

То есть там была привязка данных к длине волны.

That is, there was a correlation of data to the wavelength.

Вместо того, чтобы объяснить, как это делать,

Instead of explaining how to do this,

потому что люди, как правило, в первый раз работают с неизвестным для них форматом данных,

because people are usually working with an unfamiliar data format for the first time,

вместо того, чтобы объяснить и прислать какую-то документацию по поводу того,

instead of explaining and sending some documentation regarding that,

как использовать дата-сет, что в этом дата-сете лежит,

how to use the dataset, what is in this dataset,

какие там есть калибровки, что вообще можно с ним сделать.

What calibrations are available there, and what can you generally do with it?

Просто…

Just…

Был, типа, пустой лист, просто ничего не было прислано,

It was like, an empty sheet, there was just nothing sent.

и другой известный астроном калибровал это вручную,

and another famous astronomer calibrated it manually,

то есть он просто знал, где находятся определенные, там, линии поглощения,

I mean, he just knew where certain absorption lines were located,

и он делал калибровку полностью вручную,

and he did the calibration completely by hand,

вместо того, чтобы использовать ту калибровку, которая была уже вшита в сами данные,

instead of using the calibration that was already embedded in the data itself,

что, в принципе, очень забавно, казалось бы, просто напиши документацию.

What is, in principle, very funny, it seems, just write the documentation.

Никто не пишет документации, особенно в таком русскоязычном сегменте.

No one writes documentation, especially in such a Russian-speaking segment.

На Западе это еще более-менее как-то принято,

In the West, this is still somewhat accepted.

а в русскоязычном сегменте совсем…

but in the Russian-speaking segment, it's completely...

Нет, вот я бы еще хотел добавить насчет датасетов,

No, I would also like to add regarding the datasets,

как это все менеджится, ну, по моему опыту, небольшому, недолгому, в науке.

How all of this is managed, well, in my experience, small and brief, in science.

Сейчас, на самом деле, стараются как-то вот выходить, чтобы выкладывать датасеты там,

Now, in fact, they are trying to somehow release datasets there.

что намерили инструменты в открытый доступ, чтобы другие могли это использовать и так далее.

what tools were made available to the public so that others could use them, and so on.

Но правда заключается в том, что иногда, вот как сказал Саня, вот документацию не выкладывают.

But the truth is that sometimes, as Sanya said, the documentation is not published.

А еще более важнее не выкладывают калибровки.

And even more importantly, they do not post the calibrations.

Человек, который вот впервые столкнулся с этим датасетом,

A person who is encountering this dataset for the first time,

который до этого не работал с подобными инструментами,

who had not worked with similar tools before,

он не сможет вообще ничего из этих данных получить.

He won't be able to get anything from this data at all.

То есть, данные – это одно, а как получить из этих данных – это еще отдельный разговор.

That is, data is one thing, but how to obtain insights from that data is a separate conversation.

Да, действительно, вот версионирование данных – это, как правило,

Yes, indeed, versioning of data is usually...

такими версионерами можно назвать уровни данных.

Such versioners can be called data levels.

То, что вот есть первый уровень, ну, любой уровень данных –

The fact that there is the first level, well, any level of data –

это когда просто намерили какие-то, условно говоря, сырые фотоны электрон-вольт на детекторе.

This is when they just measured some, so to speak, raw photons electron-volts on the detector.

Аналог Digital Units намерили, и вот тут у нас информация полетела обратно на Землю.

The analog of the Digital Units has been measured, and here we have the information flying back to Earth.

То есть с аппаратом, например, или с детектором на Земле.

That is, with a device, for example, or with a detector on Earth.

Далее второй, то есть первый уровень – это, как правило, привести к каким-то более-менее внятным

Next, the second, that is, the first level – is usually to lead to some more or less clear

величинам там как-то очистить данные, может, как правило, если какие-нибудь битые пиксели,

There, the values somehow clean the data, maybe, as a rule, if there are any dead pixels,

артефакты детектора, инструменты и так далее.

detector artifacts, tools, and so on.

То есть это первый уровень травмопробовательности после сырых совсем данных.

That is, this is the first level of trauma sensitivity after completely raw data.

И второй уровень – это уже, как правило, какие-то более-менее внятные физические величины.

And the second level is usually some more or less clear physical quantities.

Потому что суть эксперимента – самое главное зато намереть

Because the essence of the experiment is the most important thing to measure.

и их интерпретировать. И вот с этой частью уже занимается второй уровень данных.

and interpret them. And this part is already handled by the second level of data.

И вот, как правило, если выкладывают, например, второй уровень данных, это очень хорошо.

And usually, if they publish, for example, the second level of data, it is very good.

А если выкладывают первый или нулевой уровень данных, там, скажем так, чек потребуется еще год

And if they post the first or zero level of data, let's say, the check will take another year.

или еще большая страта сил на то, чтобы получить второй уровень, чтобы получить что-то внятное из этих данных.

or an even greater expenditure of effort to achieve the second level, in order to extract something coherent from this data.

И это на самом деле большая проблема.

And this is actually a big problem.

И документация, например, вот среди даже каких-то внутренних рабочих групп, ну, иногда,

And the documentation, for example, even among some internal working groups, well, sometimes,

то есть там в разных лабораториях по-разному, она просто распространяется там в каком-нибудь Word-файле, условно говоря.

That is, it varies in different laboratories; it is simply distributed there in some Word file, so to speak.

И поэтому, да, с данными это сложно.

And that's why, yes, it's complicated with the data.

Data science в этом плане стандартизировано, потому что используются там изображения, звук,

Data science is standardized in this regard because it uses images, sound,

это все стандартизировано, там, форматы стандартизированы.

It is all standardized, there, the formats are standardized.

С датасетами, особенно в науке, тоже проблема с форматами большая,

There is also a big problem with formats regarding datasets, especially in science.

потому что используют какой-нибудь там ужасный...

because they use some kind of terrible...

Сейчас Саня, наверное, поправит, он очень долго возился с одним форматом данных.

Sanya will probably fix it now; he has been fiddling with one data format for a very long time.

К форматам данных тебе нужно понять, как этот формат работает, как его использовать,

For data formats, you need to understand how this format works and how to use it.

и как вот из этих файлов получить какие-то данные вменяемые.

And how can I get any reasonable data from these files?

И порой шаги, чтобы поставить библиотеку, которая читает эти данные,

And sometimes the steps to set up the library that reads this data,

это вообще просто ужас, кошмар, и на несколько дней там это все занимает.

It's just awful, a nightmare, and it all takes several days.

Ну и да, и вот на самом деле значительная часть работы людей занимается экспериментами.

Well, yes, and actually a significant part of people's work involves experiments.

Это, ну, помимо, естественно, там, люди, которые строят, делают инструмент, проектируют там миссию и так далее,

This is, well, aside from, of course, the people who build, create tools, design the mission, and so on,

это обработка этих данных.

this is the processing of this data.

И вот чисто вот такой вот, не знаю, инженерный, наверное, это называется, процесс,

And here is just such a purely, I don't know, maybe it's called an engineering process,

когда ты из одного формата данных пригоняешь в другой формат,

when you convert data from one format to another,

тебе нужно учесть, что ты используешь, какие калибровки, калибровки могут измениться.

You need to take into account what you are using, what calibrations, the calibrations may change.

А потом там какое-нибудь внезапное хитрое свойство обнаруживается у этого инструмента,

And then some sudden clever property is discovered in this tool,

и тебе нужно как-то по-другому вообще все это делать.

And you need to do all of this in a different way altogether.

Все эти изменения, они делаются в большой спешке, на самом деле,

All these changes are being made in a great hurry, in fact,

потому что нужно как можно быстрее получить результат.

because it is necessary to get results as quickly as possible.

Это часть, поэтому, возможно, не всегда.

This is part of it, so it may not always be the case.

Да, на самом деле, вот я тоже вспомнил,

Yes, actually, I remembered too.

пора работаю с данными, которые просто хранятся в бинарниках.

It's time to work with data that is merely stored in binaries.

Чтобы вы понимали, бинарники, это в смысле, это просто, типа, вот так вот биты подряд сложены.

To give you an understanding, binaries are, in the sense, it's simply, like, bits stacked like this.

То есть, вот можете себе представить, когда данные, они, типа, там нету никаких полей,

That is, can you imagine when the data, there are no fields,

там нет никакого описания этих данных, просто биты вот так сложены подряд в файт.

There is no description of this data, just bits arranged consecutively in a file.

И это, на самом деле, жесть.

And this is really tough.

То есть, другие люди не смогут этим никогда в жизни пользоваться.

That is, other people will never be able to use this in their lives.

Ну и да, на самом деле, Карим тоже по правде сказал все это.

Well, yes, actually, Karim also said all of this truthfully.

Если нет возможности работать с, если нету какого-то инсайда, там, у какого-то эксперимента,

If there is no possibility to work with, if there is no insider information about some experiment,

то есть нету человека, который бы с ним работал, то работать с его данными становится фактически невозможно.

That is, there is no person who works with him, so working with his data becomes practically impossible.

Мы даже проводили специально со студентами, пытались работать именно непосредственно с открытыми данными.

We even held special sessions with the students, trying to work specifically with open data.

И почти поняли, что почти ничего оттуда невозможно вытащить, не имея калибровок.

And they almost understood that it's almost impossible to extract anything from there without having calibrations.

Поэтому такие вот этот вот...

Therefore, this kind of...

Вот когда я слышу open science, это становится просто довольно-таки забавно,

When I hear open science, it becomes quite amusing.

потому что никакого такого open science, в принципе, ну не то, что быть не может,

because there can't be any such open science in principle, well, not that it couldn't exist,

но пока люди очень плохо стараются для того, чтобы это было.

But for now, people are making very little effort for it to happen.

Нету какого-то нормального процесса для того, чтобы этим люди занимались.

There is no proper process for people to engage in this.

Как бы, что ты рассказывал про рядом ложные битчики, это как раз-таки называется бинарная сериализация.

What you were saying about false bits nearby is exactly called binary serialization.

Ее довольно часто используют, чтобы экономить.

It is used quite often to save money.

Место, ну и быстро считывать и записывать файлы.

A place to quickly read and write files.

Обычно как бы есть описание этого формата, и как с ним работать.

Usually, there is a description of this format and how to work with it.

Редко делают сериализацию, знаешь, в большие джессоны, чтобы можно было там обычным людям читать и писать.

Serialization is rarely done, you know, into large JSONs, so that ordinary people can read and write there.

Это на самом деле хорошо, когда у тебя есть описание.

It's actually good when you have a description.

Обычное описание нет.

There is no usual description.

Ну, оно есть, но у каких-то очень отдельных людей.

Well, it exists, but with some very particular people.

Медведь, расскажи про документацию.

Bear, tell me about the documentation.

Документация вся лежит в сервисе от Atlassian, который вместе с Jira идет, не помню, как называется, просто куча вики-материалов.

All the documentation is in the service from Atlassian that comes with Jira; I don't remember what it's called, just a bunch of wiki materials.

У нас, наверное, проблема в том, что она очень часто бывает outdated, то есть ты ее смотришь,

We probably have a problem that it is very often outdated, that is, you look at it,

она там в последний раз отправилась в 2017 году, у нас как-то вот так, то есть ничего особенного вики-страниц ищи по поиску, что тебе надо, или смотри в кодину.

She last went there in 2017, we have it like this, so there's nothing special, look for what you need on the wiki pages or check the code.

У нас обычно так.

It's usually like that for us.

Сколько примерно разбирается какой-нибудь нормальный джун с вообще существующим кодом, с тем, как там с этим работать, с документацией, сколько у него примерно на это время не уходит?

How long does it usually take for a regular junior developer to understand any existing code, how to work with it, and the documentation? How much time does it roughly take them for this?

Вот у тебя за месяц ты разобрался и можешь что-то делать, это считается хорошим сроком.

If you've figured things out and can do something within a month, that is considered a good timeframe.

Понятно, спасибо.

I understand, thank you.

У нас, конечно, с этим, как правило, похуже, то есть сложный вопрос, сколько может разбираться такой джун, который будет приходить, аналог джуна.

Of course, we generally have a bit of a worse situation with this, meaning it's a difficult question how often such a junior will be able to understand things, analogous to a junior.

Довольно долго, может, в принципе, если человек за полгода разобрался со структурой там данных, то как с ними работать и еще что-то, наверное, это неплохо.

It's been quite a while, but in general, if a person has figured out the data structure and how to work with it within six months, then that's probably not bad.

Ну, зависит, конечно, от проекта, от эксперимента.

Well, it depends, of course, on the project, on the experiment.

Карин, как у вас там в нормальном дата-сайенсе?

Karina, how are things going in normal data science over there?

Ну, у нас на самом деле вот в плане формата данных, в плане каких-то таких вещей, ну, процесс происходит довольно быстро, потому что, ну, как правило, это дело касается каких-то стандартных вещей.

Well, in terms of data format and such things, the process happens quite quickly because, generally speaking, it involves standard matters.

Вот на питоне уже реализованы куча там всяких библиотек для скидок.

There are already a bunch of various libraries for discounts implemented in Python.

Читание для работ с этими данными, вот, даже какими-то экзотическими.

Reading for working with this data, even with some exotic ones.

Мои, получается, друзья, мои одногруппники, они где-то, наверное, как раз-таки за чуть меньше, чем месяц они уже начали там что-то экспериментировать, что-то тыкать.

So, it turns out my friends, my classmates, they’ve probably started to experiment with something there, poking around, for just a little less than a month.

Ну, тут зависит от задачи, потому что иногда, действительно, то есть приходится делать большую работу по генерации данных.

Well, it depends on the task, because sometimes, indeed, you have to do a lot of work on data generation.

То есть, например, вот мне первое время очень много заниматься нарезкой данных, то есть когда данных вот таких вот для обучения какого-то кодового цвета нет.

That is, for example, in the beginning, I had to spend a lot of time slicing the data, meaning when there is no data of this kind for training some kind of color code.

Возникает проблема, тут нужно придумать, как измерить, как какие данные взять, как их там нарезать, как их подготовить, чтобы там моделька училась на хороших данных.

A problem arises, and we need to figure out how to measure, what data to take, how to process it, and how to prepare it so that the model can learn from good data.

Ну и да, я думаю, что на самом деле довольно быстро, потому что документация, там есть обычно в каких-то таких классических вещах на кабеле, там какие-нибудь примеры, там какие-нибудь жопитиновые буки, которые разбирают, как это все делается.

Well, yes, I think it actually happens quite quickly because the documentation usually includes some classic things about the cable, there are some examples, some childish manuals that explain how it all works.

И, в принципе, область очень активно развивается, если с этим документацией навалом, действительно, довольно быстро находится ответ на свои вопросы.

And, in principle, the field is developing very actively; if the documentation is abundant, answers to questions can indeed be found quite quickly.

Я просто помню, как я...

I just remember how I...

Как-то пытался тоже в какой-то такой библиотеке, связанной с спектрами, найти документацию, и там далеко не на все научные библиотеки, которые всем используются, есть адекватная документация.

I once tried to find documentation in a library related to spectra, and there is far from adequate documentation for all the scientific libraries that everyone uses.

Ну, если мы говорим про какие-то библиотеки, как правило, библиотеки на питоне, то там, ну, в целом, все, которые я использовал, там была нормальная документация.

Well, if we are talking about some libraries, as a rule, libraries in Python, then there, in general, all the ones I have used had decent documentation.

У меня есть отдельные, конечно, вопросы к документации NumPy.

I certainly have specific questions about the NumPy documentation.

Иногда некоторые вещи по NumPy я смотрю в документации MATLAB, примеры использования.

Sometimes I look at MATLAB documentation, usage examples, for some things in NumPy.

И прочее, потому что там просто гораздо лучше написано.

And other things, because it's just written much better there.

Но, конечно, если это какой-то код, который писал какой-то ученый, и он написан каким-то стандартом, там, десятых годов, да, то есть последнего времени,

But, of course, if this is some code written by a scientist, and it was written according to some standard, say, from the tenth years, yes, that is, from the recent times,

то там может быть очень убогая документация, и это, конечно, отдельная история, да.

So there may be very poor documentation there, and this, of course, is a separate story, yes.

Чтобы разобраться с каким-то кодом или с какими-то там старыми данными, потратить очень-очень много времени.

To sort out some code or some old data takes a very, very long time.

Сань, расскажи, что тебе нравится и что не нравится в питоне.

Sanya, tell me what you like and what you don't like about Python.

Ну, мне нравится очень, в принципе, скорость разработки, скорость прикручивания чего-то нового.

Well, I really like, in general, the speed of development, the speed of attaching something new.

Это, конечно, вообще очень здорово, то, что все можно моментально подтянуть.

This is certainly very cool that everything can be instantly improved.

Мне очень нравится читаемость питона, потому что для меня это очень важно.

I really like the readability of Python because it is very important to me.

Мне очень нравится, скажем так, процесс дебага, потому что нет каких-то очень страшных непонятных ошибок,

I really like, let's say, the debugging process because there are no very frightening, unclear errors.

которые происходят где-нибудь в середине кода, и вообще непонятно, почему так происходит.

which happen somewhere in the middle of the code, and it's generally unclear why this happens.

И зачем.

And why.

Что не нравится?

What don't you like?

На самом деле мне, в принципе, наверное, вот я бы сказал только про документацию

Actually, for me, basically, I would probably just say about the documentation.

и некоторую сложность с визуализацией графиков, потому что в нашей области у нас визуализация —

and some difficulty with visualizing graphs, because in our field we have visualization —

это не какая-то там отрисовка графики, там, игр, там, и так далее.

This is not some kind of rendering of graphics, or games, or so on.

У нас это всегда какое-то построение каких-то графиков, построение, может быть, каких-то мультиков из графиков и прочее.

For us, it’s always some kind of construction of graphs, perhaps the creation of animations from graphs and so on.

То есть это работа в основном с Matplotlib.

That is, this work mainly involves Matplotlib.

Но конкретно Matplotlib мне не совсем нравится.

But I don't quite like Matplotlib.

Потому что там у него есть свои проблемы, но это не проблема Python, а проблема Matplotlib в сути своей.

Because there he has his own problems, but this is not a problem of Python, but rather a problem of Matplotlib in its essence.

Есть много оберток над Matplotlib.

There are many wrappers over Matplotlib.

Самый известный — это Seaborn.

The most famous one is Seaborn.

Как мне, это не особо сильно помогает.

As for me, it doesn't really help much.

Мне еще не очень нравится стиль Seaborn.

I'm not really fond of the Seaborn style yet.

Я бы предпочел работать и разбираться с некоторыми проблемами в Matplotlib и на голом Matplotlib, чем использовать тот же Seaborn.

I would prefer to work and deal with some issues in Matplotlib and on pure Matplotlib rather than using the same Seaborn.

Я, на самом деле, использую малопопулярную такую штуку — Plot9 называется.

I actually use a rather unpopular tool — it's called Plot9.

В общем, в R есть так называемая грамматика графики.

In general, R has what is called a grammar of graphics.

То есть ты берешь полотно, на него туда оси, короче, операции суммирования, прибавляешь оси, потом суммированием прибавляешь разные графики.

That is, you take a canvas, put axes on it, in short, perform summation operations, add axes, and then by summation you add different graphs.

И ты так можешь совместить кучу графиков, каких-то свойств, туда же данные ты как слой накладываешь, с которыми это все работает.

And you can combine a bunch of charts, some properties, and on top of that, you overlay the data that everything works with.

Это все очень замечательно ложится.

It's all fitting together very wonderfully.

Это вот называется ggplot, ggplot2, кажется.

This is called ggplot, ggplot2, it seems.

Вторая версия у них там, все такое.

They have the second version there, and all that.

И на Python было...

And there was Python too...

Пару портов, условно говоря, которые вот эту грамматику графики привносили.

A couple of ports, so to speak, that brought this graphic grammar.

Сейчас новый порт, который так и называется — ggplot2, он не поддерживается.

Currently, there is a new port, which is called ggplot2, and it is not supported.

Он уже с новым пандусом не работает.

He doesn't work with the new ramp anymore.

А Plot9 — он более-менее поддерживается, развивается.

Plot9 is more or less supported and developed.

И вот это очень круто.

And this is really cool.

То есть ты можешь, зная, как с этим работать, нарисовать, по сути, любой график.

That is, you can, knowing how to work with it, essentially draw any graph.

И это очень круто.

And that's very cool.

Из недостатков этой библиотеки — она очень плохо документирована.

One of the drawbacks of this library is that it is very poorly documented.

И для того, чтобы что-то сделать, ты открываешь две документации.

And in order to do something, you open two documents.

Документация к этой библиотеке и документация к оригинальной библиотеке .

Documentation for this library and documentation for the original library.

И примеры там же смотришь.

And you can see examples there as well.

И пытаешься вот это как-то все совместить.

And you're trying to somehow bring all of this together.

Вот, в общем, рекомендую посмотреть.

So, in general, I recommend watching it.

Ну вот насчет, кстати, вот Сиборна.

Well, by the way, about Sibon.

Он, в принципе, неплох для построения каких-то стандартных вещей.

He is, in general, not bad for building some standard things.

Вот там просто...

Over there, it's just...

Когда ты в первый раз глядишь на данные, тебе нужно что-нибудь, какую-нибудь простую гистограмму построить.

When you look at the data for the first time, you need to create something, some simple histogram.

Что быстро.

What is quick.

По мне, это хороший инструмент.

For me, it's a good tool.

Но, как правило, нужно какие-то более кастомизированные графики.

But, as a rule, more customized graphics are needed.

То есть там у каждого инструмента, у каждого эксперимента свои, скажем так, требования.

That is, each tool and each experiment has its own, so to speak, requirements.

Нужно показать там одно, другое, третье.

It is necessary to show one thing, another, and a third.

И всегда, всегда вот прокачивать на моей практике.

And always, always to enhance in my practice.

Это делается через Matplotlib.

It is done through Matplotlib.

У него гигантский функционал, гигантский инструментарий в этом Matplotlib.

He has a gigantic functionality, a gigantic toolkit in this Matplotlib.

Но, действительно, иногда не совсем понятна документация.

But, really, sometimes the documentation is not entirely clear.

Вот, допустим.

Here, for example.

Записывать все мультики какие-то.

Recording all sorts of cartoons.

Это тоже отдельная история.

This is also a separate story.

То есть там, кто какие костыли вязает.

That is, there are people who knit various crutches.

Это тоже.

This too.

Тут еще цирк местами.

There's still a circus in some places.

Да, то есть.

Yes, that is.

Ну, вот я, например, завидую немного Matlab.

Well, for example, I envy Matlab a little.

Потому что вот там, я считаю, эталонный просто инструмент для построения графиков.

Because over there, I believe, it's just a benchmark tool for creating charts.

То есть там можно визуально.

That means you can see it visually there.

Вот, когда тебе нужно сделать один красивый график.

Here, when you need to create a nice graph.

Ты просто берешь в Matlab.

You just take it in Matlab.

И там мышкой выбираешь там разные чекбоксы.

And there, with the mouse, you select different checkboxes.

Там двигаешь этот график.

You move this graph there.

Там приближаешь, отдаляешь и так далее.

You bring it closer, move it away, and so on.

И этого, на самом деле, такого инструмента нет в Python.

And, in fact, there is no such tool in Python.

Это немного удовлетворяет.

This is somewhat satisfying.

Есть, конечно, в Jupyter ноутбуки.

There are, of course, Jupyter notebooks.

Там есть интерактивный режим у Matplotlib.

There is an interactive mode in Matplotlib.

Но это все равно не то.

But it's still not the same.

То есть ты можешь там двигать, вращать, там сжимать, растягивать.

That is, you can move, rotate, compress, and stretch there.

Но ты не можешь менять свойства.

But you cannot change the properties.

Там график, изменить цвет, изменить пунктир.

There is a graph, change the color, change the dash style.

То есть каждый раз, когда ты хочешь посмотреть на новый график.

That is, every time you want to look at a new chart.

Как ты там его изменил.

How did you change it there?

Как смотрится с такой-то линии, с такой-то линии.

How it looks from this line, from this line.

Может быть, сейчас тут поменьше, там побольше данных.

Maybe there is less data here now and more there.

Тебе приходится заново отрисовывать весь график.

You have to redraw the entire graph.

Иногда этот процесс занимает время.

Sometimes this process takes time.

Иногда там просто, вот у меня, помню, были проблемы,

Sometimes it's just that, I remember I had problems there,

когда я автоматизировал там строение графика в pipeline.

when I automated the construction of the graph in the pipeline there.

Вот, то есть там вот он по результатам этих экспериментов отрисовывал кучу-кучу графиков.

So, he was drawing a ton of graphs based on the results of these experiments.

То в какой-то момент у меня по ходу утекала куда-то память.

At some point, my memory was leaking away somewhere.

Забилась просто вся оперативка.

The whole memory is just full.

И вот там были такие не очень очевидные места, как это все, скажем так, как точно удалить то,

And there were some not very obvious places, like how to exactly remove this, let's say.

что нарисовал ему тут либо из памяти, чтобы, скажем так,

what I drew for him here either from memory, so to speak,

32 гига оперативы не влетали там слишком быстро.

32 gigs of RAM didn't fit there too quickly.

Есть еще HighChart.

There is also HighChart.

Это JS-ная библиотека.

This is a JS library.

У нее есть вот оберка на Python.

She has this wrapper in Python.

Это для построения как раз интерактивных графиков.

This is for building interactive graphs.

Вот можешь посмотреть.

Here, you can take a look.

И Plot9, он классный для построения кастомных графиков,

And Plot9, it's great for creating custom charts,

но он именно тебе на выходе статическую картинку воспроизводит, как правило.

But it usually plays a static image for you at the output.

Там самый прикол, что часто нужно строить какие-нибудь действительно странные штуки с осями,

The real fun is that you often need to build some really strange things with axes.

с двух сторон.

from both sides.

Например, когда у тебя ось здесь и ось с другой части картинки.

For example, when you have an axis here and an axis on the other part of the picture.

Нужно какие-нибудь хитмапы строить странные.

We need to build some strange heatmaps.

Вот недавно как раз была проблема, что у одной из моих коллег хитмап в MATLAB

Recently, there was a problem where one of my colleagues had a heatmap in MATLAB.

строить не совсем то, что нужно там,

to build not exactly what is needed there,

потому что у них есть разная логика работы со всем этим.

Because they have different logic in working with all of this.

Перекрутить надписи, опять же, какие-то надписи по осям

Twist the inscriptions, again, some inscriptions along the axes.

тоже не всегда так просто, как хотелось бы.

It's not always as simple as one would like.

Там нужно подкрутить вот эти тики какие-нибудь по осям.

We need to adjust these ticks on the axes a bit.

Короче, нужно работать с какими-то мелочами,

In short, we need to work on some details.

которые обычно людям вообще не приходят в голову,

which usually don't come to people's minds at all,

до которых докапываются такие всякие разные старшие научные сотрудники,

to which various senior researchers delve into,

которые привыкли видеть все в стандартизированном для них виде.

who are used to seeing everything in a standardized form for them.

И это, допустим, это было стандартом в каком-нибудь там Gnuplot'е

And this, let's say, was the standard in some Gnuplot.

или там в еще какой-нибудь их любимой библиотеке,

or there in some other favorite library of theirs,

с помощью которой они все это рисуют.

with the help of which they draw all of this.

А здесь нет такого.

There's nothing like that here.

Я знаю, например, другого моего коллегу,

I know, for example, another one of my colleagues,

который в Matlab'е рисует графики,

which draws graphs in Matlab,

потом экспортирует их в векторном формате

then exports them in vector format

и потом в CorelDRAW меняет некоторые штуки.

and then changes some things in CorelDRAW.

И ладно, когда это там для одного графика,

And it's okay when it's for one schedule.

а если это уже там 10-15 графиков,

And if there are already 10-15 charts there,

то их нужно вручную там аккуратно сделать,

then they need to be done carefully by hand there,

и сделать это автоматически с помощью там некоторых языков фактически невозможно.

and to do this automatically with some languages is practically impossible.

И это, конечно, довольно-таки печально.

And this, of course, is rather sad.

А вот что касается мультиков,

As for cartoons,

мне мультики — это еще просто какие-то там вирующиеся графики,

for me, cartoons are just some kind of swirling graphics.

там и так далее, там еще что-то.

there and so on, there is something else.

Такой сленг небольшой.

Such slang is a little.

Я так и не разобрался, как их делать на Python'е,

I still haven't figured out how to do them in Python.

поэтому я просто рисую очень много картиночек,

so I just draw a lot of little pictures,

потом склеиваю их FFmpeg'ом.

then I glue them together with FFmpeg.

И, в общем-то, для меня это более простой и более удобный путь,

And, in general, for me it's a simpler and more convenient way.

чем разбираться с вот такими особенностями библиотеки.

rather than dealing with such peculiarities of the library.

Так что вот это такой один из примеров,

So this is one of those examples,

которые я могу привести.

which I can provide.

А вы используете линтеры в своей разработке?

Do you use linters in your development?

Flake 8, например?

Flake 8, for example?

Я не использую, к примеру,

I don't use, for example,

но некоторые мои коллеги используют,

but some of my colleagues use,

довольно-таки более-менее продвинутые.

fairly more or less advanced.

Но проблема заключается в том,

But the problem is that,

что вот как с линтерами,

it's like with lint rollers,

так и с многими различными талузами

so it is with many different talents

для того, чтобы работать более эффективно,

in order to work more efficiently,

многим кодерам, прям те, кто прям непосредственно кодит,

many coders, specifically those who directly code,

это кажется естественным инструментарием,

this seems to be a natural toolkit,

и то, что они используют каждый день.

and what they use every day.

А из-за того, что наука — это всегда какой-то такой мультидисциплинатор,

And because science is always some kind of multi-disciplinarian,

мультиплинарная штука,

multidisciplinary thing,

иногда тебе просто не хватает времени на то,

sometimes you just don't have enough time for what,

чтобы выучить какую-то определенную штуку,

to learn a specific thing,

которая бы увеличивала твою производительность

that would increase your productivity

или скорость работы, или еще что-то,

either the speed of work, or something else,

потому что тебе просто нужно делать другие задачи.

because you just need to do other tasks.

И у тебя точно так же в других твоих отраслях,

And it's exactly the same for you in your other fields.

в физике, в математике,

in physics, in mathematics,

ты бы тоже изучил еще пару вещей,

you should also learn a couple more things,

и это бы улучшило твое качество жизни.

and it would improve your quality of life.

Но тогда ты будешь бесконечно учиться что-то делать,

But then you will endlessly learn to do something,

и иногда тебе просто нужно...

and sometimes you just need to...

Вообще очень часто тебе нужно что-то делать прям вот срочно,

In general, you often need to do something urgently.

и оно очень сильно горит,

and it burns very strongly,

потому что есть другие люди, которые делают эту же задачу.

because there are other people who are doing the same task.

Вообще вот это такая общая штука для разных фич,

In general, this is a common thing for different features,

что многие люди в науке не используют какие-то крутые фичи,

that many people in science do not use some cool features,

потому что просто нет времени.

because there is simply no time.

У меня вот вопрос.

I have a question.

Представим, вот есть какая-то задача,

Let's imagine there is some task,

и сколько людей над ней работает там в среднем,

and how many people work on it there on average,

от максимума до минимума?

from maximum to minimum?

Как правило, очень мало,

As a rule, very little.

если это непосредственно наука,

if it is directly science,

если это задача такая не очень глобальная.

if it's not a very global task.

Тоже зависит от задачи.

It also depends on the task.

Если это какая-то глобальная задача,

If this is some kind of global task,

она там статью в Nature,

she has an article in Nature there,

то над ней могут работать,

so they can work on it,

может работать команда из пяти человек,

a team of five people can work,

но каждый из них будет делать какую-то свою часть.

But each of them will do their own part.

Но, как правило, это очень маленькая команда

But, as a rule, it is a very small team.

из одного-двух человек.

from one or two people.

А если это и большая команда,

And if it is a big team,

там пять человек,

There are five people there,

то их работа между собой не очень связана,

their work is not very interconnected,

и они почти никогда не будут смотреть в код друг друга

and they will almost never look at each other's code

и будут работать только с конечными продуктами.

and will work only with finished products.

Просто я вот задумался,

I just started to think,

что если у вас нет больших команд,

what if you don't have big teams,

то как раз какие-то линтеры, форматеры, коды,

so just some linters, formatters, codes,

и вообще версионирование вам не особо нужны,

and in general, you don't really need versioning,

потому что действительно, с вашей точки зрения,

because really, from your point of view,

они вас будут тормозить.

They will slow you down.

Все вот эти вот лузы очень раскрываются,

All these gaps really open up.

когда у вас хотя бы там человек,

when you at least have someone there,

не знаю, там вот пяти от семи хотя бы,

I don't know, but at least five from seven there.

когда уже у вас там сто человек на задаче,

when there are already a hundred people on the task over there,

тогда уже как бы без каких-то таких тулзов

then already without any such tools

уже жить просто невозможно,

it is already impossible to live.

потому что начнется лютая миссия.

because a fierce mission will begin.

Вот, и мне кажется, что это одна из причин,

Here, and I think that this is one of the reasons,

почему у вас в Научке как бы код для нас,

Why do you have a code for us in Science City?

разработчиков, выглядит ужасно, если честно.

The developers, it looks terrible, to be honest.

Там еще такая проблема, что,

There is also such a problem that,

то есть это действительно так все хорошо,

so it's really that good,

пока не приходит какой-то другой человек,

until some other person comes.

который должен продолжать эти задачи,

who should continue these tasks,

и он начинает видеть вот этот страшный код,

and he starts to see this terrifying code,

ему становится плохо, вот,

he feels unwell, here,

и вот тогда это тоже начинает

and then this also starts

очень сильно проявляться,

to manifest very strongly,

потому что все-таки люди привыкли писать,

because after all, people are used to writing,

конечно, одноразовый код,

of course, a one-time code,

но так или иначе его потом будут кто-то использовать.

But one way or another, someone will use him later.

Ну, смотри, так или иначе будут использовать.

Well, look, one way or another, they will be used.

Сколько у вас в среднем задача идет?

How long does a task take on average?

То есть вот вы, например, взяли проект,

That is, for example, you took a project,

и сколько по времени у вас, например,

And what time is it for you, for example?

от идеи до, не знаю, назовем это релизом финальным,

from the idea to, I don't know, let's call it the final release,

проходит по времени?

Does it take time?

Ну, в качестве релиза здесь какая-то статья,

Well, as a release, there is some article here,

но, как правило, это может быть серия статей,

but, as a rule, it can be a series of articles,

то есть часто так бывает,

that is often the case,

что задачу начали там 20 лет назад,

that the task began there 20 years ago,

и она реально жива до сих пор,

and she is really alive until now,

и используются все те же тузы,

and all the same aces are used,

которые использовались ей 20 лет назад,

that she used 20 years ago,

и это, например, можно очень живо увидеть

and this, for example, can be seen very vividly

на примере Voyager,

for example, Voyager,

что Voyager, там, которые там оба Voyager,

what Voyager, there, both Voyagers there,

их данные до сих пор обрабатываются,

their data is still being processed,

и до сих пор по ним выпускаются статьи.

And articles are still being published about them.

Недавно там Voyager 2,

Recently there Voyager 2,

может быть, там, с полгода назад или с год назад,

maybe there, about six months ago or a year ago,

он пересек,

he crossed,

гелиосферу,

heliosphere,

и до сих пор люди с этим работают,

and people still work with it.

и, естественно, код там по обработке данных

And, of course, the code for data processing is there.

и по вообще работе с данными,

and generally about working with data,

все, что там это было написано,

everything that was written there,

это было написано на старейшем фортране,

it was written in the oldest Fortran,

так что вот эта вот скорость,

so this speed here,

она может очень сильно различаться.

It can vary greatly.

С другой стороны, да,

On the other hand, yes,

если мы работаем с каким-то экспериментом,

if we are working with some experiment,

который прилетел на планету,

who arrived on the planet,

там можно, там нужно анализировать данные

There it is possible, it is necessary to analyze the data.

за, там, недели, наверное, вот.

for, there, weeks, probably, here.

Но это считается очень-очень коротким сроком.

But this is considered a very, very short period.

Неделя — это очень...

A week is very...

Недели, там, порядка недель и месяцев —

Weeks, there, about weeks and months —

это очень-очень маленький срок.

this is a very-very short period.

Линтеры разные бывают,

There are different types of linters,

и проверки в них разные,

and the checks in them are different,

то есть не все про проверку твоего стиля написания,

that is, not everything is about checking your writing style,

некоторые же и баги ищут.

some are even looking for bugs.

Ну, научников, во-первых, объема кода обычно меньше,

Well, scientists usually have less code volume, in the first place.

и если это даже код большого объема,

and even if it is a large amount of code,

у них обычно этот код именно

They usually have this code exactly.

больше алгебраичный,

more algebraic,

и там линтер тебе не найдет ошибки.

And there the linter won't find errors for you.

То, что у тебя память течет, скорее всего, им все равно.

They probably don't care that your memory is leaking.

То есть я вот с научкой много не работал,

That is, I haven't worked much with science.

только в универе,

only at university,

и мне дали перевести код с Fortran на C.

And I was asked to translate the code from Fortran to C.

Вот, и я пока переводил,

Here, I was translating in the meantime,

там было столько утечек памяти,

there were so many memory leaks,

но в целом всем было все равно,

but overall, everyone didn't care.

потому что, как бы,

because, like,

Кодина, там, отсчитывает за часа три,

Kodina is counting down for about three hours there.

как бы в 16 гигабайт ОЗУ влезает,

it's like 16 gigabytes of RAM can fit in,

и, типа, нормально, нормально, жить можно.

And, like, it's okay, it's okay, you can live.

Вот, поэтому, как бы, скорее всего,

So, that's why, probably,

то, что у них вон там питон течет,

the python is flowing over there

это, может, Карим и заметит,

maybe Karim will notice this,

как если по 100 раз на днем

as if a hundred times during the day

будет пересобирать что-то,

will be reassembling something,

тебе перебиложивать.

You need to redo it.

Но когда задачи висят считаться,

But when the tasks are hanging to be counted,

там, долгое время,

there, for a long time,

им важно, чтобы это прочиталось

It's important for them that this is read.

более правильно.

more correct.

Думаю, здесь им интереснее, например,

I think it's more interesting for them here, for example,

не то, чтобы у них, там, утечек

It's not that they have leaks there.

не было каких-то багов,

there were no bugs.

а то, что, например, у них хватало точности

but the fact that, for example, they had enough accuracy

чисел с плавающей точки,

floating-point numbers,

чем тоже быстро ты работаешь.

how quickly you work too.

Баги тоже разные бывают.

Bugs can be different too.

Например, в питоне есть у тебя список строк,

For example, in Python you have a list of strings,

и ты его в столбик вот так записываешь,

and you write it in a column like this,

забыл поставить запятую в концертной строке,

I forgot to put a comma in the concert line,

то две строки, текущий элемент со следующим,

two lines, the current element with the next one,

они склеятся просто.

They will just stick together.

Вместе.

Together.

И это может быть баг, который ты не заметишь,

And it could be a bug that you might not notice,

который отразится на результате данных

which will affect the outcome of the data

в итоге,

as a result,

но это баг, который линтер поможет легко поймать.

But this is a bug that the linter will help catch easily.

Есть еще такой момент,

There is also this point,

что такое представление о коде,

what is the representation of code,

которое вот можно встретить в науке,

which can be found in science,

это, если это, например, Matlab,

this is, for example, if it's Matlab,

то это какие-то однобуквенные переменные,

so these are some single-letter variables,

это какие-то непонятные ссылки,

these are some unclear links,

непонятные комментарии.

unintelligible comments.

В случае старого кода,

In the case of old code,

действительно, там, какой-нибудь Fortran,

indeed, there, some Fortran,

то это огромное количество go-to.

so it’s a huge number of go-to.

Я, честно говоря, не знаю,

Honestly, I don't know.

есть ли там,

Is there there,

есть ли какие-то там линтеры,

Are there any linters there?

помогут ли линтеры,

Will linters help?

если в этом научном коде математическом куча go-to,

if there are a lot of go-to statements in this scientific code,

потому что, ну, несколько раз пытались разобраться,

because, well, we've tried to figure it out several times,

что происходит в этом коде старом библиотеке,

what is happening in this code old library,

чтобы понять, как он работает,

to understand how it works,

потому что документации нет.

because there is no documentation.

Вот, на Stack Overflow информации вообще нет.

There is no information at all on Stack Overflow.

Нигде ничего нет.

There is nothing anywhere.

И вот ты остался один на один с этим кодом,

And here you are, face to face with this code,

тебе нужно понять, как он работает.

You need to understand how it works.

Ты заходишь сюда,

You come in here,

а там опять однобуквенные переменные,

and there are again one-letter variables,

куча go-to,

a pile of go-to's,

старые Fortran 77.

old Fortran 77.

Но наша задача не разобраться, как он работает,

But our task is not to figure out how it works,

а как этим пользоваться.

How do you use this?

Как только мы поняли, как этим пользоваться,

As soon as we figured out how to use it,

как только мы сделали какую-то обертку,

as soon as we made some kind of wrapper,

все, мы этим пользуемся,

That's it, we use this.

мы все, мы забываем.

We all forget.

Нам неинтересна какая-то работа,

We are not interested in any work,

главное, что вот мы смогли это подцепить как-то.

The main thing is that we were somehow able to catch this.

А греческие буквы используются в качестве переменных?

Are Greek letters used as variables?

Не видел, не видел.

I didn't see, I didn't see.

Но однобуквенные переменные,

But single-letter variables,

их, они, да, они встречаются.

them, they, yes, they are dating.

A, B сидело на трубе,

A and B were sitting on a pipe,

и что из них что означает,

and what each of them means,

это вообще большая загадка.

it's really a big mystery.

Сложно, когда, например,

It's difficult when, for example,

это в каком-то вот там, не знаю, вот MATLAB,

is that somewhere there, I don’t know, like MATLAB,

когда обрабатываются данные,

when data is being processed,

понять, что стоит за этими буквами.

to understand what lies behind these letters.

То есть тебе нужно понять то,

That is, you need to understand that,

что они имеют,

what they have,

что тут написано в плане вот программирования,

What is written here regarding programming,

в плане кода.

in terms of code.

Нужно понять физический смысл,

We need to understand the physical meaning.

вот что вот они тут,

here they are,

зачем они делают эту операцию или другую.

Why do they perform this operation or another?

И вот в этих моментах, естественно,

And so in these moments, of course,

вот не хватает каких-то иногда

Sometimes something is just missing.

комментариев внятных в коде,

clear comments in the code,

подробных объясняющих.

detailed explanations.

Некоторые это делают,

Some do it,

но по большей части,

but for the most part,

то, что я видел,

what I saw,

люди на это забивают.

People ignore it.

Вообще, Грам, ты спрашивал про греческие буквы.

Actually, Gram, you were asking about Greek letters.

Смотря что ты имел в виду,

Depending on what you meant,

если ты имел в виду юникодовские символы,

if you meant Unicode characters,

то, не знаю,

well, I don't know,

нет, таких нет.

No, there are none like that.

Но какие-нибудь там названия типа Пхи,

But some names like Phi,

то, пожалуйста,

then, please,

таких будет очень много,

there will be many like that,

и они есть в каждом коде.

and they are in every code.

И Чо Фи, ты вообще не можешь понять.

And so what, Fi, you can't understand at all.

Чо Фи? Чо Фи?

What's Fi? What's Fi?

Чо Фи-то?

What's up, Fi?

Фи много есть.

There is a lot of phi.

Когда мы затрагиваем тему

When we touch on the topic

буквенных переменных,

letter variables,

я сразу вспоминаю гневные посты на Reddit

I immediately remember the angry posts on Reddit.

по поводу библиотеки Грама,

regarding the Grammar Library,

где там внутри на буквенной переменной

where inside there is a letter variable

дел и все ругаются,

they are all arguing.

все ругались.

Everyone was arguing.

Да хватит, это было давно уже.

Yes, enough, that was long ago.

И там не однобуквенные,

And there are not single-letter ones,

там три буквы было.

There were three letters there.

Те самые три буквы или как?

Those same three letters, or what?

Разные.

Different.

На самом деле вот тоже хотел поддержать Карима

Actually, I also wanted to support Karim.

по поводу того,

regarding that,

что сейчас не нужно разбираться с тем,

that right now there is no need to figure out what,

что работает,

what works,

и вот тоже то, что Медведь говорил.

And here is also what the Bear said.

Мне, в принципе, по барабану,

I don't care, basically.

как там память втекает

how memory flows in

или что там происходит.

or what's happening there.

Мне, в принципе, по барабану,

I basically don't care.

что происходит в этом коде.

What is happening in this code?

Если он выдает правильный результат,

If he gives the correct result,

будет все просто прекрасно.

Everything will be just wonderful.

Я буду счастлив на эту тему.

I will be happy about this topic.

И вообще сейчас проблема

And in general, there is a problem now.

утыкается не в скорость самого кода,

it does not depend on the speed of the code itself,

а в скорость там алгоритмов.

and in the speed of the algorithms there.

Если у тебя алгоритм начинает расти

If your algorithm starts to grow.

экспоненциально,

exponentially,

у него экспоненциальная сложность,

it has exponential complexity,

то что у тебя там,

what you have there,

какие у тебя там переменные

what variables do you have there

используются для этого,

are used for this,

тебе будет вообще по барабану,

you won't care at all,

потому что он там хоть убейся,

because he’s there, no matter what.

будет считаться порядка там недели

It will take about a week.

или там месяца,

or there for months,

и ты ничего с этим не сделаешь.

and you won't do anything about it.

Ну, могу сказать то,

Well, I can say that,

что JavaScript и линтер

what is JavaScript and a linter

это просто must-have,

this is simply a must-have,

то есть это как бы

that is to say, it's like

обязательный минимум вообще

mandatory minimum at all

для кода или разработки.

for code or development.

Почему?

Why?

Скажем так, возможно,

Let's put it this way, maybe.

из-за порога вхождения в этот язык

due to the entry threshold into this language

каждый там пишет в своем стиле,

everyone there writes in their own style,

и чтобы хотя бы поддерживать

and to at least support

разработку в нормальном порядке,

the development in a normal manner,

все начинается с настройки линтера.

Everything starts with configuring the linter.

Просто новый проект задается,

Just a new project is being set.

задаешь сначала линтер под этот проект,

you first set the linter for this project,

там, конфиг его,

there, configure it,

и только потом ты уже приступаешь к коду.

And only then do you start working on the code.

Можно я прокомментирую просто про это?

Can I just comment on this?

Потому что у нас такие проблемы

Because we have such problems.

с стилем кода, в принципе,

with code style, in general,

решаются незачетом за научно-исследовательскую работу.

are resolved by non-acceptance for research work.

То есть просто типа плохо написал,

So, it means I just wrote it badly,

типа все, успехов.

Like that's it, good luck.

Вот.

Here.

Но так обычно, наверное, не делают,

But that's probably not usually how it's done.

но я бы так решал,

but I would decide like this,

потому что дольше проще поставить удос

because it's easier to put udos for a longer time

или там неуд,

or there it is inappropriate,

чем объяснять, что такое линтер.

How to explain what a linter is.

Некоторым.

Some.

Но должны быть критерии какие-то,

But there must be some criteria.

как писать.

how to write.

Ну, типа сказать,

Well, kind of to say,

вон, ПЭП-8 есть,

There is PEP-8 over there.

пишите по ПЭПу, например.

write via CEP, for example.

Да, конечно, ПЭП-8, в принципе,

Yes, of course, PEP-8, in principle,

почти всем показывается,

almost everyone is shown,

ну, если там кто-то работает.

Well, if someone is working there.

То есть нормальная лаборатория,

That is, a normal laboratory,

все, в принципе, стараются там писать

Everyone, in principle, tries to write there.

про ПЭП-8.

about PEP 8.

А вот есть флейка, которая тебе скажет,

And here’s a flake that will tell you,

насколько у тебя ПЭП-8 соблюдается.

How well do you adhere to PEP 8?

Я...

I...

Грам, я не спорю, что это хорошо,

Gram, I’m not arguing that it’s good,

просто говорю, как это решается в жизни.

I'm just saying how it is solved in life.

Окей, ребят, кажется, мы уходим уже в новую тему.

Okay, guys, it seems we are getting into a new topic.

Линтеры — это вполне такая тема

Linter is quite an interesting topic.

для отдельного разговора.

for a separate conversation.

И да, у нас запись уже довольно долго идет.

Yes, we have been recording for quite a while now.

Так что давайте прощаться.

So let's say goodbye.

Всем спасибо за запись.

Thank you all for signing up.

Спасибо тем, кто дослушал до этого момента.

Thank you to those who listened up to this point.

Мы вами гордимся, как всегда.

We are proud of you, as always.

И до скорого.

And see you soon.

Я надеюсь, скоро мы поговорим про типы.

I hope we will talk about types soon.

А если не поговорим,

And if we don't talk,

то небольшой спойлер.

that's a small spoiler.

Кажется, намечается интересный разговор

It seems that an interesting conversation is shaping up.

про лицензии.

about licenses.

Ну, увидим.

Well, we'll see.

До связи.

Stay in touch.

Всем пока.

Goodbye everyone.

Пока.

Goodbye.

Нафига Медведь отключил?

Why did Medvedev turn it off?

Запись-то идет.

The recording is in progress.

А запись-то идет?

Is the recording on?

Он решил пошпионить за нами,

He decided to spy on us.

что говорят за его спиной.

what they say behind his back.

Он искал, где запись отключить, видимо.

He was looking for where to turn off the recording, apparently.

Нашли его?

Did you find him?

Уберу.

I will remove it.

Он вряд ли.

He is unlikely to.

Ага, imagинает.

Aha, imagines.

А посмотри, какойößий-то майн.

And look, what a cute little mine.

Вот он.

Here it is.

А это, наверное,

And this is probably,

подпув.

Underscore.

Санки.

Sleds.

Continue listening and achieve fluency faster with podcasts and the latest language learning research.