Re[5]: Python в больших проектах
От: Skorodum Россия  
Дата: 16.01.20 11:24
Оценка:
Здравствуйте, so5team, Вы писали:

S>Зачем пользоваться VSCode, если есть vim?

S>Зачем пользоваться vim, если есть emacs?
S>Зачем пользоваться emacs, если есть...
Не, аналогия не верная: твой редактор не накладывает никаких ограничений на коллег и рабочий процесс, в отлчиии от VCS.
Re[5]: Python в больших проектах
От: Sharov Россия  
Дата: 16.01.20 11:50
Оценка:
Здравствуйте, Cyberax, Вы писали:

AB>>Гвидо покинул питон в 2018, гугл сделал ставку на го, который уже обошел питон по всем фронтам, кроме разве что ML да и то за счет инертности и числа либ.

C>Для ML нынче требуется REPL в виде Jupyter. Для Go его сделать невозможно из-за того, что он чисто компилируемый.

Почему нельзя Го сделать интерпритируемым, из-за горутин? Для шарпа же сделали -- https://devblogs.microsoft.com/dotnet/net-core-with-juypter-notebooks-is-here-preview-1/
Кодом людям нужно помогать!
Re[6]: Python в больших проектах
От: so5team https://stiffstream.com
Дата: 16.01.20 12:26
Оценка:
Здравствуйте, Skorodum, Вы писали:

S>>Зачем пользоваться VSCode, если есть vim?

S>>Зачем пользоваться vim, если есть emacs?
S>>Зачем пользоваться emacs, если есть...
S>Не, аналогия не верная: твой редактор не накладывает никаких ограничений на коллег и рабочий процесс,

Вообще-то накладывает. Начиная от tabs vs spaces, и заканчивая наличием готовых шаблонов для проектов, работающих в фоне анализаторов/линтеров и пр.

S>в отлчиии от VCS.


Есть принципиальные отличия Centralized VCS (CVS, Svn) от Decentralized VCS (git, hg). Между git и hg для большинства разработчиков различий не так уж и много. Тут скорее все упирается в то, что уже развернуто в компании для целей CI/CD и code review. Если уже все настроено на Hg, то надобность в уникальных возможностях git будут испытывать только отдельные особо продвинутые товарищи. Ровно как и в обратном случае с git.
Re[10]: Python в больших проектах
От: so5team https://stiffstream.com
Дата: 16.01.20 12:29
Оценка: 1 (1) +2
Здравствуйте, Mamut, Вы писали:

M>>Странный ты. Гугл придумал GoLang как замену Python.


M>Он придумал GoLang как проект, чтобы занять умных чуваков, которым было скучно.


Как бы наоборот: умные чуваки в Google придумали GoLang, чтобы не писать тормознутый код на Python-е, и чтобы не писать сложный и многословный код на C++ и Java. ЕМНИП, стартовал GoLang вообще как подпольный проект, который делали несколько человек втихаря. Просто это были не самые рядовые человеки.
Re[4]: Давайте сравним
От: Буравчик Россия  
Дата: 16.01.20 12:29
Оценка:
Здравствуйте, Ватакуси, Вы писали:

Б>>Не понравилось, что используются циклы, а также сторонние библиотеки. Можно обойтись без них. Поэтому еще вариант на питон:

В>Можно вообще на голом питоне написать, но становится менее понятно что это. И как это.

Просто небольшой рефакторинг. По сути — претензий нет, дело вкуса.
Best regards, Буравчик
Re[10]: Python в больших проектах
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 16.01.20 12:34
Оценка: 3 (1) +1
Здравствуйте, Mamut, Вы писали:

M>Он придумал GoLang как проект, чтобы занять умных чуваков, которым было скучно.


Совсем нет. Я уже приводил эту картинку, но повторюсь:
  Картинка
Re[6]: Python в больших проектах
От: Pzz Россия https://github.com/alexpevzner
Дата: 16.01.20 12:48
Оценка:
Здравствуйте, Masterspline, Вы писали:

M>Ну, вот мысля, что взрослый квалифицированный разработчик не может осилить git, в мой мозг совсем не влезает. В то, что не хочет и придумывает отмазки — это я поверю. Впрочем, люди разные бывают.


Потому, что этот ваш гит чертовски нелогичен. Вот объясни мне, мил человек, за каким чертом в нем бывают локальные метки, которые ни в какой репозиторий не попадут, и нелокальные? И почему push по умолчанию не уносит метки с собой, а требует отдельной опции для этого?

M>В последнее время считаю, что если кто-то пользуется маргинальщиной — это от чрезмерной упертости и с такими лучше не связываться (разве что это будет хорошо компенсироваться). Новость про hg это только подтверждает. Но, из любого правила бывают исключения, поэтому, в каждом конкретном случае нужно разбираться.


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

M>P.S. CVS я тоже застал (Opera3.5b сменила netscape 3 gold, mingw только появился на Win95 i486 с 8М памяти).


А период, когда все, высунув язык, стали с CVS на SVN переползать, застал? А сам на SVN переполз?
Re[5]: Давайте сравним
От: Ватакуси Россия  
Дата: 16.01.20 13:20
Оценка:
Б>>>Не понравилось, что используются циклы, а также сторонние библиотеки. Можно обойтись без них. Поэтому еще вариант на питон:
В>>Можно вообще на голом питоне написать, но становится менее понятно что это. И как это.

Б>Просто небольшой рефакторинг. По сути — претензий нет, дело вкуса.

Кстати, зачем reset_index тут?
Все будет Украина!
Re[6]: Давайте сравним
От: Буравчик Россия  
Дата: 16.01.20 13:30
Оценка:
Здравствуйте, Ватакуси, Вы писали:

В>Кстати, зачем reset_index тут?


Да, в данном случае reset_index не обязателен (если по missings_indexes вытаскиваем данные из np.ndarray). Забыл исправить.

Изначально моя функция возвращала весь датафрейм: df[missings_indexes].
Но т.к. индексы были изменены в set_index(date) пришлось добавить reset_index().
Потом увидел, что ты возращаешь ndarray, переделал, а reset_index не убрал.
Best regards, Буравчик
Re[7]: Давайте сравним
От: Ватакуси Россия  
Дата: 16.01.20 13:55
Оценка:
В>>Кстати, зачем reset_index тут?

Б>Да, в данном случае reset_index не обязателен (если по missings_indexes вытаскиваем данные из np.ndarray). Забыл исправить.


Б>Изначально моя функция возвращала весь датафрейм: df[missings_indexes].

Б>Но т.к. индексы были изменены в set_index(date) пришлось добавить reset_index().
Б>Потом увидел, что ты возращаешь ndarray, переделал, а reset_index не убрал.

Понятно.
Кстати, to_datetime справится с произвольной датой (и форматом) как parser.parse? Мне казалось, что он более капризный
Все будет Украина!
Re[8]: Давайте сравним
От: Буравчик Россия  
Дата: 16.01.20 15:06
Оценка:
Здравствуйте, Ватакуси, Вы писали:

В>Кстати, to_datetime справится с произвольной датой (и форматом) как parser.parse? Мне казалось, что он более капризный


Думаю, что более капризный, но не уверен. Тоже хочу знать.
У to_datetime под капотом, наверное, тот же код, что и в TimeStamp. А вот какие он умеет парсить даты/время я не знаю.
Best regards, Буравчик
Re[11]: Python в больших проектах
От: Sharov Россия  
Дата: 16.01.20 15:27
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>
  Картинка
N>Image: slack-imgs.com.jpeg

brilliant это что, хацкель или Си? И почему не способны? Кмк, гуглеры крутые, что не могут осилить какую-нибудь функциональщину или Си?
Кодом людям нужно помогать!
Re[9]: Давайте сравним
От: Ватакуси Россия  
Дата: 16.01.20 15:44
Оценка: 3 (1)
В>>Кстати, to_datetime справится с произвольной датой (и форматом) как parser.parse? Мне казалось, что он более капризный

Б>Думаю, что более капризный, но не уверен. Тоже хочу знать.

Б>У to_datetime под капотом, наверное, тот же код, что и в TimeStamp. А вот какие он умеет парсить даты/время я не знаю.
не совсем, там используется вот это:
https://github.com/pandas-dev/pandas/blob/c040f14574fcb7fd366858e22c5bdb393571236c/pandas/_libs/tslibs/parsing.pyx
_guess_datetime_format

Он тянет из dateutil parse сначала.
https://github.com/dateutil/dateutil/blob/110a09b4ad46fb87ae858a14bfb5a6b92557b01d/dateutil/parser/_parser.py

А потом уже пытается выяснить формат даты.
Все будет Украина!
Re[3]: Python в больших проектах
От: novitk США  
Дата: 16.01.20 23:01
Оценка: :)
Здравствуйте, Nuzhny, Вы писали:

N>>Заголовок не соответствует содержанию. Чувак из меркуриала жалуется на переход py2->py3, а не на динамику. Представь себе C++ теряет обратную совместимость и остается без поддержки и всем предлагается перейти на С+++? Сильно тебе статика поможет?

N>Да, конечно. Компилятор + статический анализатор кода (он по-умолчанию мощнее питоновского) найдут срау же множество проблем. Ты не знал?!!
Статический анализатор кода даст тебе некоторые, весьма слабые в случае Java, гарантии, но код на другом языке писать не будет.

N>>Ключевой система по расчету риска для двух инвест.банка написана на Питоне (>1мм LoC) на который перешли со .... Smalltalk-a.

N>Сам факт, что это написано на Питоне не говорит о его плюсе. Возможно, что написав это на Java плюсов у системы было бы больше.
Системы написанные на Яве проиграли в конкурентной борьбе.

N>К тому же, была бы возможность использовать разные языки (ту же Scala) для разных задач в рамках одной платформы.

Ты так говоришь, как будто зоопарк это нечто хорошее.

N>В какой продуктивности? Пишется медленнее? Работает медленнее? А как дела с процентом багов в коде?

Пишется медленее. Ты преувеличиваешь способность статического анализа по снижению процента багов. Большинство ошибок, которые выявляет широко используемые статические языки, до продакшена у питона тоже не доходят.
Re[4]: Python в больших проектах
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 17.01.20 06:56
Оценка:
Здравствуйте, novitk, Вы писали:

N>>>Заголовок не соответствует содержанию. Чувак из меркуриала жалуется на переход py2->py3, а не на динамику. Представь себе C++ теряет обратную совместимость и остается без поддержки и всем предлагается перейти на С+++? Сильно тебе статика поможет?

N>>Да, конечно. Компилятор + статический анализатор кода (он по-умолчанию мощнее питоновского) найдут срау же множество проблем. Ты не знал?!!
N>Статический анализатор кода даст тебе некоторые, весьма слабые в случае Java, гарантии, но код на другом языке писать не будет.

Не, не, не, ты сам начал говорить про С++. Так в этом мире уже случился плавный переход к С+++ от 2003 до С++17 (в этом году будет ещё больше — модули). Тут разница намного больше, чем с Питонами, но переход, по сути, безболезненный. Да, что-то по-мелочи появлялось, что-то становилось deprecated, но проекты просто плавно переползали с версии на версию, зачастую собираясь разными версиями компиляторов. Как раз и начался расцвет статических анализаторов для С++ в это время, не только PVS, которую рекламирую на RSDN.

N>Системы написанные на Яве проиграли в конкурентной борьбе.


Прямо таки везде? Или только у вас?

N>>К тому же, была бы возможность использовать разные языки (ту же Scala) для разных задач в рамках одной платформы.

N>Ты так говоришь, как будто зоопарк это нечто хорошее.

Как будто зоопарк Scala + Питон (это тоже по твоим словам) лучше, чем Java + Scala.

N>>В какой продуктивности? Пишется медленнее? Работает медленнее? А как дела с процентом багов в коде?

N>Пишется медленее. Ты преувеличиваешь способность статического анализа по снижению процента багов. Большинство ошибок, которые выявляет широко используемые статические языки, до продакшена у питона тоже не доходят.

Ну так себе утверждение, чтобы в него поверить без аргументов.
Re[5]: Python в больших проектах
От: novitk США  
Дата: 17.01.20 14:18
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Не, не, не, ты сам начал говорить про С++.

Я начал говорить про C+++(три плюса!) — вымышленный, похожий, но не совместимый с C++ язык для аналогии с py2->py3.

N>Так в этом мире уже случился плавный переход к С+++ от 2003 до С++17 (в этом году будет ещё больше — модули). Тут разница намного больше, чем с Питонами, но переход, по сути, безболезненный.

Ключевое слово "плавный". У питона он был резким, но это не про статику с динамикой. Тот же JS обрастал фучами и менялся без потери совместимости.

N>>Системы написанные на Яве проиграли в конкурентной борьбе.

N>Прямо таки везде? Или только у вас?
Про везде не знаю, но на Wall Street так. Насколько я знаю в долине тоже.

N>Как будто зоопарк Scala + Питон (это тоже по твоим словам) лучше, чем Java + Scala.

Правильно. Поэтому лучше только Питон. Ну и плюсы для скорости, куда же без них. Зоопарк возник от того, что "два часа" в питоне превращаются в "две недели" в скале. Возможно это из за недоработок у нас в реализации компилятора/workflow/CI. Я вообще за статику и изначально казалось, что Scala достаточна близка по удобству, но императивно выяснилось, что увы нет.
Re[7]: Python в больших проектах
От: Skorodum Россия  
Дата: 17.01.20 14:39
Оценка:
Здравствуйте, so5team, Вы писали:

S>Вообще-то накладывает.

Вообще-то нет.

S>Начиная от tabs vs spaces

Абсолютно ортогонально редакторам (обычно редакторы одинаково хорошо поддерживают оба варианта).

S>и заканчивая наличием готовых шаблонов для проектов

Какие еще шаблоны для редакторов?

S>работающих в фоне анализаторов/линтеров и пр.

Все это абсолютно не принципиально. Ну вот крутится у меня clang-backend в QtCreator и дает подсказки по С++, моим коллегам со студией, VIM или VisualCode это фиолетово.
У нас в компании для одного и того же когда используются почти все популярные IDE: CLion, QtCreator, Vim, MSVC, VisualCode. И это не считаю специализированных embedded IDE: IAR/SEGGER/Atmel.
А вот VCS — одна.

S>Есть принципиальные отличия Centralized VCS (CVS, Svn) от Decentralized VCS (git, hg). Между git и hg для большинства разработчиков различий не так уж и много.

Во-во, а выше вы же пишите:

Люди разные, привычки разные, потребности разные.

hg и git закрывают абсолютно одни и теже потребности, только git на пару порядков популярнее (ну так сложилось). Поэтому hg — сейчас "странная (редкая) привычка".
Re[8]: Python в больших проектах
От: so5team https://stiffstream.com
Дата: 17.01.20 15:36
Оценка:
Здравствуйте, Skorodum, Вы писали:

S>hg и git закрывают абсолютно одни и теже потребности, только git на пару порядков популярнее (ну так сложилось). Поэтому hg — сейчас "странная (редкая) привычка".


IDEA и VisualStudio сильно популярнее vim-а и emacs-а. Что не мешает отдельным людям быть продуктивнее именно с vim/emacs.

Собственно, почему бы отдельным разработчикам не быть продуктивнее именно с hg, а не с git-ом.
Re: Python в больших проектах
От: dsorokin Россия  
Дата: 17.01.20 18:09
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Спрашивается: нахер оно тогда надо, писать нетленку на динамических языках?


(все нижеследующее на правах авторского троллинга)

Из всех динамических языков более-менее для этого годится лишь ветхий и обросший мхом Common Lisp (CL) на мой взгляд. Он является Lisp-N, а поэтому в нем проверок во время компиляции заметно больше, чем в других динамических языках. К примеру, опечататься в названии функции в CL намного сложнее, тогда как в тех же схемке или питончике — как нефиг делать.

Ну, а применение отличных от CL динамических языков для больших проектов лично у меня ассоциируется с "троллейбусом из буханки": возможно, но не всегда разумно
Re[5]: Python в больших проектах
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 18.01.20 07:56
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Потому, что проще сдохнуть, чем привыкнуть к этому вашему git'у. А у hg все команды идут напрямую из CVS,


И в третий раз повторю только на этом форуме: мне после CVS было легче перейти на Git, чем SVN, Hg или ещё какой-то временно модный ужас.
"Напрямую из CVS" для Hg это миф. Зачем, например, у Hg раздельные pull и update? В CVS такого не было.
The God is real, unless declared integer.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.