И да и нет. Type hinting — это чисто поддержка в IDE. То же самое и в докстринге написать можно. Хочется, чтобы оно этап создания AST цепляло, а этого и в планах нет.
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Не икнулось? )
миграции косячные не напрягали
Это вы еще в Entity Framework миграций косячных не видели.
А распределение прав доступа?
Я их в последний раз видел, когда django учил, если честно. Они странными получились. Вроде как очень функциональные, гибкие… но в то же время ни на одну нужную систему прав так и не ложились, приходилось костылить. Is_staff, is_admin, а остальное — по стариночке.
Оффтопик о том, куда бежать
Вообще немного проспойлерю (выше все равно спалился) — я в итоге остановился на asp.net core и в целом доволен. Раздражающие вещи, разумеется, есть (куда ж без них). Но это очень близко к тому, о чем я мечтал последние лет 10.
Переносил по свободе один специфический "микросервис" с django, удивило, что кол-во LOC выросло всего процентов на 20, если скобочки не считать. Response time снизился в 2.5 раза. Докер-контейнер на прод вместо 5 минут стал собираться за минуту, а прод билд — это пяток файлов на 3-5мб в сумме. И всё.
Не хочу сказать, что скорость разработки выросла, но и не упала.
Короче рекомендую взлянуть. Windows уже несколько лет как не нужен.
Если честно, то все равно, на самом-то деле. Не хочу сказать, что они совсем-совсем одинаковые, но разницы между ними немного.
Плюс (для меня — большой плюс) django в том, что там из коробки огромная куча "батареек" (с одной из лучших документаций, которые я видел), которые для flask'а нужно искать и подбирать под конкретных проект. ОРМ, шаблоны, формы, админка, авторизация/регистрания и т.д и т.п.
На правах ноунейма, которому Django обеспечивала кусок хлеба с сыром в период с v0.96 по v1.11, хочу констатировать два прискорбных наблюдения (не возьму на себя наглости назвать их фактами), к которым пришел года полтора назад.
Первый (более очевидный) django безнадежно устарел и не способен удовлетворить современные потребности в большей части задач, с которыми сталкиваюсь лично я. Список претензий длинный (и привычно ругаемая всеми ORM, что интересно, в него даже не входит). Основное — это то, что большую часть компонентов (шаблоны, формы, админка, DRF и т.п.) получается удобней не использовать изначально, чем через некоторое время упереться в стену "а дальше либо с костылями, либо никак".
Нет, это все еще отличных фреймворк для определенной категории сайтов. Только вот эта категория стала сильно реже встречаться. Сейчас все больше сервисы да толстые фронтенды. А вот с этим у django все ну совсем туго.
И второй (менее очевидный) — то же самое касается Python'а как такового в контексте web-разработки. Нет, это у меня все еще язык по умолчанию для автоматизации/одноразовых скриптов/конверторов и прочего. Но время, когда на вопрос "How fast is Python" был достаточен ответ "Fast enough" уже ушло в прошлое. Тут накопившийся список претензий у меня не менее длинный — и огромный virtualenv (для сборки которого еще зачастую нужно плясать с бубном в поисках нужных пакетов в multistage билдах), и GIL, и общая неторопливость языка (включая сборку мусора), да и динамическая типизация уже порядком утомила.
Это были хорошие 10 лет. Но сейчас есть и куда более продуктивные языки/платформы.
Каждый раз, когда учу (или щупаю) новый язык, при возвращении обратно преследуют мысли "блин, вот эту бы фичу сюда", или "а вот это было удобней", или "как бы реализовать вот ту вкусняшку, которую я увидел".
После go осталось только одно послевкусие: "статический бинарник на выходе это офигенно". И это явно не заслуга самого языка.
1) > он позволяет искать по проектам, по открытым файлам и по пути.
Я бы даже пользовался этой панелью управления трансатлантическим лайнером, если бы оно хотя бы позволяло ограничить поиск файлами, входящими в solution.
2) часто. По комментариям/строкам/шаблонам/ресурсам.
Я, видимо, избалован jetbrains.
Хочу:
а) Поиск в scope (вот от этой папки и вниз, за исключением node_modules и *.json)
б) preview результатов до того, как я нажал кнопку "Find all" — например, в случае regexp поиска я не всегда уверен, правильно ли я ли он.
в) Если поиск захватывает json на пару мб, VS зависает на добрую минуту.
г) Хочу контекстный поиск типа "найди мне user только в комментариях "
Он-то, конечно, да, настраиваются. Но по факту на экране нужно минимум:
Solution/team explorer (одна панель)
Тесты
Error list
Output
А в режиме отладки еще diagnostics tools, call stack, watch. Как-то у меня ну совсем не получается это все разместить на одном экране лаптопа с 125/150% масштабированием.
Вообще после Вашей реакции попробовал пожить вместо Rider'a на свежей VS2019 без R#. Как раз надо было попилить UWP приложение, с которым без VS никак. Докладываю о впечатлениях.
Рефакторинг практически сравнялся. "Причесать код" умеет сама VS, настройки сохраняет в .editorconfig, под автоформат xaml есть прекрасный XAML Styler.
ILSpy по сравнению с dotPeek — кустарная поделка. По идее, dotPeek можно использовать как отдельный symbol server, но еще не разбирался.
VS по сравнению с Rider'ом грузится мгновенно. В принципе, 2019 даже по сравнению с 2017 грузится мгновенно. А вот подлагивания на ровном месте никуда не делись.
Build heuristic не хватает, да. Это никуда не делось.
Глобальный поиск (не find usages, а ctrl-shift-f который) в Visual Studio ну просто совершенно отвратителен. Дело, в моем случае, усугубляется наличием в проекте кучки json-файлов мегабайт на 40.
Ну и моя давняя претензия к Visual Studio: в рабочем режиме она выглядит примерно вот так: . Только еще и по бокам половина места отожрана. На двух мониторах отлично, а вот на лаптопе это форменное издевательство.
В целом, ощущение после пары дней у меня следующее: без R# мне оказалось на удивление комфортно. Правда, в самой VS не особо :)
Прошу прощения за поздний ответ. 3-4 открытых микросервиса (солюшна) по несколько проектов в каждом. (web, tests, domain и еще чего-нибудь) и приехали.
Буквально пара первых пришедших в голову вещей, ради которых плачу, колюсь, но мирюсь с R#
Умный build. Когда цикл изменил-собрал-запустил в solution из десятка проектов занимает 10 секунд вместо 50, это прямо таки меняет жизнь.
dotPeek, позволяющий одним тыком посмореть внутреннюю кухню, вместо попыток найти необходимое на github'e
(спорно, но все же) в нашем небольшом коллективе возможность одной кнопкой причесать код с более-менее вменяемым результатом (раскрыть var'ы и т.п) сильно экономит жизнь как разработчиками, так и ревьюерам
А у rider'a, на мой взгляд, есть родовая травма. Не привычно как-то с 16gb уходить нв 3-4 открытых проектах в глубокий OOM. Кроме этого — нравится, в принципе, все.
Как люди пользуются Keepass, я не понимаю. Совершенно же нефункциональная и неюзабельная хрень.
Долгое время плакал, кололся, но с плясками и танцами запускал лет 15 как всеми забытый Password commander. Потом сидел на самописном велосипеде. А с год назад внезапно обнаружил enpass. Жалкое подобие левой руки, конечно (нет шаблонизатора, нельзя сделать кнопку запуска программы, нельзя прикрепить файл, да и интерфейс подпорчен новомодным material раком), но в принципе съедобно. Есть linux/windows/android etc, синхронизация через любые облака. Рекомендую.
Вы покупаете средство повышенной опасности, а значит изначально подписываетесь на то, что оно вас убьет.
Нет. Когда я покупаю средство повышенной опасности, я требую от производителя обеспечить мне максимум безопасности. Мне не нужно, к примеру, оружие, которое может принять решение "лучше я выстрелю во владельца".
такого выбора у вас не будет
Однозначно будет. Руль и педали.
Так или иначе, как только первый беспилотный автомобиль пример спорное решение пожертвовать пассажирами в пользу FOTM (белый мужчина? мигрант? и т.д.), рынок быстро начнет схлопываться.
Я вообще не понял постановки вопроса. Вот две мысли, что с этим всем не так.
Со стороны покупателя: предположим, я покупаю авто. Собираюсь возить в нем любимого себя, жену за покупками и детей в школу. Прихожу в салон. Мне говорят "Вот высокоморальный автопилот. В случае аварии, он скоре пожертвует пассажирами, чем пешеходами". А я такой "Ух ты, до чего техника дошла. До свидания" и ухожу искать более "сговорчивую" машину, которая будет к жизни моих детей (ну не только моих, не толькор детей, но в первую очередь именно них) относиться так же, как и я.
Со стороные кожаного ублюдка водителя: еще долгое время на дороге будут соседствовать люди и роботы. Предсказуемость — одна из важнейших добродетелей автомобилиста. А тут биопилотов зачастую не поймешь, а предугадывать поведение внезапно переобученной модели — еще то удовольствие. Я считаю, что модели поведения должны быть максимально упрощены, алгоритмизированы, и понятны простому смертному даже по сравнению с классическим ПДД: к примеру, автопилот не обгоняет ни при каких условиях (различаем обгон и объезд), не совершает резких маневров кроме торможения в пол, сознательно занижает максимальную скорость (40 в городе, 70 на трассе?). А остальные участники движения уже подстроятся (почему бы не прописать в пдд приоритет робомобилей при перестроении, например?).
А самая большая фигня в том, что эти требования друг другу противоречат.
И да и нет. Type hinting — это чисто поддержка в IDE. То же самое и в докстринге написать можно. Хочется, чтобы оно этап создания AST цепляло, а этого и в планах нет.
Не икнулось? )
Это вы еще в Entity Framework миграций косячных не видели.
Я их в последний раз видел, когда django учил, если честно. Они странными получились. Вроде как очень функциональные, гибкие… но в то же время ни на одну нужную систему прав так и не ложились, приходилось костылить. Is_staff, is_admin, а остальное — по стариночке.
Вообще немного проспойлерю (выше все равно спалился) — я в итоге остановился на asp.net core и в целом доволен. Раздражающие вещи, разумеется, есть (куда ж без них). Но это очень близко к тому, о чем я мечтал последние лет 10.
Переносил по свободе один специфический "микросервис" с django, удивило, что кол-во LOC выросло всего процентов на 20, если скобочки не считать. Response time снизился в 2.5 раза. Докер-контейнер на прод вместо 5 минут стал собираться за минуту, а прод билд — это пяток файлов на 3-5мб в сумме. И всё.
Не хочу сказать, что скорость разработки выросла, но и не упала.
Короче рекомендую взлянуть. Windows уже несколько лет как не нужен.
Если честно, то все равно, на самом-то деле. Не хочу сказать, что они совсем-совсем одинаковые, но разницы между ними немного.
Плюс (для меня — большой плюс) django в том, что там из коробки огромная куча "батареек" (с одной из лучших документаций, которые я видел), которые для flask'а нужно искать и подбирать под конкретных проект. ОРМ, шаблоны, формы, админка, авторизация/регистрания и т.д и т.п.
На правах ноунейма, которому Django обеспечивала кусок хлеба с сыром в период с v0.96 по v1.11, хочу констатировать два прискорбных наблюдения (не возьму на себя наглости назвать их фактами), к которым пришел года полтора назад.
Первый (более очевидный) django безнадежно устарел и не способен удовлетворить современные потребности в большей части задач, с которыми сталкиваюсь лично я. Список претензий длинный (и привычно ругаемая всеми ORM, что интересно, в него даже не входит). Основное — это то, что большую часть компонентов (шаблоны, формы, админка, DRF и т.п.) получается удобней не использовать изначально, чем через некоторое время упереться в стену "а дальше либо с костылями, либо никак".
Нет, это все еще отличных фреймворк для определенной категории сайтов. Только вот эта категория стала сильно реже встречаться. Сейчас все больше сервисы да толстые фронтенды. А вот с этим у django все ну совсем туго.
И второй (менее очевидный) — то же самое касается Python'а как такового в контексте web-разработки. Нет, это у меня все еще язык по умолчанию для автоматизации/одноразовых скриптов/конверторов и прочего. Но время, когда на вопрос "How fast is Python" был достаточен ответ "Fast enough" уже ушло в прошлое. Тут накопившийся список претензий у меня не менее длинный — и огромный virtualenv (для сборки которого еще зачастую нужно плясать с бубном в поисках нужных пакетов в multistage билдах), и GIL, и общая неторопливость языка (включая сборку мусора), да и динамическая типизация уже порядком утомила.
Это были хорошие 10 лет. Но сейчас есть и куда более продуктивные языки/платформы.
Каждый раз, когда учу (или щупаю) новый язык, при возвращении обратно преследуют мысли "блин, вот эту бы фичу сюда", или "а вот это было удобней", или "как бы реализовать вот ту вкусняшку, которую я увидел".
После go осталось только одно послевкусие: "статический бинарник на выходе это офигенно". И это явно не заслуга самого языка.
Я правильно понял, что он плох и для умных и для неумных?
1) > он позволяет искать по проектам, по открытым файлам и по пути.
Я бы даже пользовался этой панелью управления трансатлантическим лайнером, если бы оно хотя бы позволяло ограничить поиск файлами, входящими в solution.
2) часто. По комментариям/строкам/шаблонам/ресурсам.
Я, видимо, избалован jetbrains.
Хочу:
а) Поиск в scope (вот от этой папки и вниз, за исключением node_modules и *.json)
б) preview результатов до того, как я нажал кнопку "Find all" — например, в случае regexp поиска я не всегда уверен, правильно ли я ли он.
в) Если поиск захватывает json на пару мб, VS зависает на добрую минуту.
г) Хочу контекстный поиск типа "найди мне
userтолько в комментариях "Он-то, конечно, да, настраиваются. Но по факту на экране нужно минимум:
А в режиме отладки еще diagnostics tools, call stack, watch. Как-то у меня ну совсем не получается это все разместить на одном экране лаптопа с 125/150% масштабированием.
Вообще после Вашей реакции попробовал пожить вместо Rider'a на свежей VS2019 без R#. Как раз надо было попилить UWP приложение, с которым без VS никак. Докладываю о впечатлениях.
В целом, ощущение после пары дней у меня следующее: без R# мне оказалось на удивление комфортно. Правда, в самой VS не особо :)
Прошу прощения за поздний ответ. 3-4 открытых микросервиса (солюшна) по несколько проектов в каждом. (web, tests, domain и еще чего-нибудь) и приехали.
Буквально пара первых пришедших в голову вещей, ради которых плачу, колюсь, но мирюсь с R#
А у rider'a, на мой взгляд, есть родовая травма. Не привычно как-то с 16gb уходить нв 3-4 открытых проектах в глубокий OOM. Кроме этого — нравится, в принципе, все.
Смотря для чего. Если разработка идет на .net core, у студии преимуществ практически нет. А у студии без R# — совсем нет.
я об enpass
А, основное забыл. Оно proprietary & closed source, и написано индусами.
Так что паранойя до сих пор щекочется, это да.
Как люди пользуются Keepass, я не понимаю. Совершенно же нефункциональная и неюзабельная хрень.
Долгое время плакал, кололся, но с плясками и танцами запускал лет 15 как всеми забытый Password commander. Потом сидел на самописном велосипеде. А с год назад внезапно обнаружил enpass. Жалкое подобие левой руки, конечно (нет шаблонизатора, нельзя сделать кнопку запуска программы, нельзя прикрепить файл, да и интерфейс подпорчен новомодным material раком), но в принципе съедобно. Есть linux/windows/android etc, синхронизация через любые облака. Рекомендую.
Я его недавно смотрел. Так и не понял, чем он лучше старого доброго XNA/Monogame. Чем хуже — понял, а чем лучше — нет.
А с Unity/Godot и сравнивать несерьезно.
Периодически смотрю, но он, к сожалению, как умирал на средненькой портянке 400x8000, так и умирает.
Какой конкретно закон?
Нет. Когда я покупаю средство повышенной опасности, я требую от производителя обеспечить мне максимум безопасности. Мне не нужно, к примеру, оружие, которое может принять решение "лучше я выстрелю во владельца".
Однозначно будет. Руль и педали.
Так или иначе, как только первый беспилотный автомобиль пример спорное решение пожертвовать пассажирами в пользу FOTM (белый мужчина? мигрант? и т.д.), рынок быстро начнет схлопываться.
Я вообще не понял постановки вопроса. Вот две мысли, что с этим всем не так.
Со стороны покупателя: предположим, я покупаю авто. Собираюсь возить в нем любимого себя, жену за покупками и детей в школу. Прихожу в салон. Мне говорят "Вот высокоморальный автопилот. В случае аварии, он скоре пожертвует пассажирами, чем пешеходами". А я такой "Ух ты, до чего техника дошла. До свидания" и ухожу искать более "сговорчивую" машину, которая будет к жизни моих детей (ну не только моих, не толькор детей, но в первую очередь именно них) относиться так же, как и я.
Со стороные
кожаного ублюдкаводителя: еще долгое время на дороге будут соседствовать люди и роботы. Предсказуемость — одна из важнейших добродетелей автомобилиста. А тут биопилотов зачастую не поймешь, а предугадывать поведение внезапно переобученной модели — еще то удовольствие. Я считаю, что модели поведения должны быть максимально упрощены, алгоритмизированы, и понятны простому смертному даже по сравнению с классическим ПДД: к примеру, автопилот не обгоняет ни при каких условиях (различаем обгон и объезд), не совершает резких маневров кроме торможения в пол, сознательно занижает максимальную скорость (40 в городе, 70 на трассе?). А остальные участники движения уже подстроятся (почему бы не прописать в пдд приоритет робомобилей при перестроении, например?).А самая большая фигня в том, что эти требования друг другу противоречат.