Forwarded from СТАТЬ ПРОГРАММИСТОМ
Python и отсутствие претендентов
Буквально вчера общался со знакомым .NET-разработчиком, мне во всех красках было описано какой F# замечательный ЯП, почему он превосходит С#(основной инструмент .NET-разработчиков), и почему за ним, очевидно, будущее отрасли.
Разумеется все эти разговоры, что в будущем все предпочтут его C# - крайне спорная штука. Мы все прекрасно понимаем, что все упрется в задачи бизнеса, и если бизнесу будет выгоден такой переход, то он случится, аналогично и обратное(вот такая она суровая реальность).
Однако F#, действительно мощный претендент на место, в каком то смысле это переосмысление, возможно неоднозначное(все таки смена парадигмы), но при этом вполне конкурентоспособное. Он можно сказать дышит в спину C#.
Так вот, довольно интересно, то что буквально все “главные” ЯПы сейчас имеют таких “конкурентов”.
Еще раз скажу, это действительно конкуренты, не из разряда-так чуть красивше/чуть удобней, здесь речь именно о технической стороне вопроса, закрытии каких-то больших проблем(которые, например, рано легли в основу языка и находятся настолько глубоко, что исправить их просто не представляется возможным).
Java -> Kotlin
C++ -> Rust ежегодно на stackoverflow проходит опрос программистов, и именно этот ЯП лидирует как самый любимый у разработчиков(отрыв от второго места - солидные 20%)
С# -> F#
Js -> TypeScript и Dart
И только питон выделяется из всех, у него вроде как подобных ‘конкурентных’ аналогов нет. Есть много экспериментов на тему ‘так чуть красивше/чуть удобней’, но чего-то серьезного - нет. Справедливо сказать, что таким претендентом в свое время стал сам Python 3, потеснив Python 2, но во-первых, это случилось не вчера, во-вторых, этот пример все равно отличается от выше перечисленных.
Это не значит, что питон лучше/хуже других ЯПов(подобные оценки с инженерной точки зрения просто нелепы), но это значит, что путь развития питона крайне необычен. И судя по реакции сообщества, это движение в верную сторону. И как по мне, это весомый плюс языка, о котором редко говорят.
#python #мысли
Буквально вчера общался со знакомым .NET-разработчиком, мне во всех красках было описано какой F# замечательный ЯП, почему он превосходит С#(основной инструмент .NET-разработчиков), и почему за ним, очевидно, будущее отрасли.
Разумеется все эти разговоры, что в будущем все предпочтут его C# - крайне спорная штука. Мы все прекрасно понимаем, что все упрется в задачи бизнеса, и если бизнесу будет выгоден такой переход, то он случится, аналогично и обратное(вот такая она суровая реальность).
Однако F#, действительно мощный претендент на место, в каком то смысле это переосмысление, возможно неоднозначное(все таки смена парадигмы), но при этом вполне конкурентоспособное. Он можно сказать дышит в спину C#.
Так вот, довольно интересно, то что буквально все “главные” ЯПы сейчас имеют таких “конкурентов”.
Еще раз скажу, это действительно конкуренты, не из разряда-так чуть красивше/чуть удобней, здесь речь именно о технической стороне вопроса, закрытии каких-то больших проблем(которые, например, рано легли в основу языка и находятся настолько глубоко, что исправить их просто не представляется возможным).
Java -> Kotlin
C++ -> Rust ежегодно на stackoverflow проходит опрос программистов, и именно этот ЯП лидирует как самый любимый у разработчиков(отрыв от второго места - солидные 20%)
С# -> F#
Js -> TypeScript и Dart
И только питон выделяется из всех, у него вроде как подобных ‘конкурентных’ аналогов нет. Есть много экспериментов на тему ‘так чуть красивше/чуть удобней’, но чего-то серьезного - нет. Справедливо сказать, что таким претендентом в свое время стал сам Python 3, потеснив Python 2, но во-первых, это случилось не вчера, во-вторых, этот пример все равно отличается от выше перечисленных.
Это не значит, что питон лучше/хуже других ЯПов(подобные оценки с инженерной точки зрения просто нелепы), но это значит, что путь развития питона крайне необычен. И судя по реакции сообщества, это движение в верную сторону. И как по мне, это весомый плюс языка, о котором редко говорят.
#python #мысли
Stack Overflow
Stack Overflow Developer Survey 2020
Nearly 65,000 took this comprehensive, annual survey of people who code. Demographics. Most loved, dreaded and wanted technologies. Salary and careers.
Увидел недавно очередную внезапность с
Тема уже избита до невозможности, и все вроде бы уже смирились, что арифметика над числами с плавающей точкой категорически сломана (ладно, она не сломана, она просто с погрешностями). В интернете особенно часто за эту особенность почему-то достаётся JavaScript'у, но на самом деле этим болеют все языки программирования, которые реализуют числа по стандарту IEEE 754, то есть практически все. Даже страничка с забавным доменом есть на эту тему: 0.30000000000000004.com.
Оказывается, что сложение чисел с плавающей точкой не реализует одно из математических свойств сложения — ассоциативность. То есть
Минимальный пример:
🍁 Если погрешность для вас неприемлема, то конвертируйте ваши числа в
float
'ами. Берётся список чисел:>>> mylist = [И складывается, начиная сначала с одного конца, а затем с другого:
... 614.3,
... 453.44,
... 220.8,
... 514.32,
... 322.32,
... 330.3,
... 230.3,
... 518.32,
... 419.52]
>>> sum(mylist) == sum(mylist[::-1])И суммы не сходятся.
False
Тема уже избита до невозможности, и все вроде бы уже смирились, что арифметика над числами с плавающей точкой категорически сломана (ладно, она не сломана, она просто с погрешностями). В интернете особенно часто за эту особенность почему-то достаётся JavaScript'у, но на самом деле этим болеют все языки программирования, которые реализуют числа по стандарту IEEE 754, то есть практически все. Даже страничка с забавным доменом есть на эту тему: 0.30000000000000004.com.
Оказывается, что сложение чисел с плавающей точкой не реализует одно из математических свойств сложения — ассоциативность. То есть
a + (b + c)
не всегда равно (a + b) + c
. То есть в зависимости от порядка, в котором складывать числа, погрешность может накапливаться по-разному. Для меня стало открытием, что арифметика сломана настолько.Минимальный пример:
>>> ε = 1e-16 # small number
>>> print(left := (1 + ε) + ε)
1.0
>>> print(right := 1 + (ε + ε))
1.0000000000000002
>>> left == right
False
Есть специальные алгоритмы, которые позволяют избегать погрешностей при сложении чисел с плавающей точкой, и один из них реализован в стандартной библиотеке как math.fsum
:>>> import mathИ раз уж мы затронули тему чисел с плавающей точкой, то пара хороших советов, которые помогут избежать проблем:
>>> math.fsum(mylist) == math.fsum(mylist[::-1])
True
🍁 Если погрешность для вас неприемлема, то конвертируйте ваши числа в
decimal.Decimal
— да, будет значительно медленнее, но зато точно:>>> 0.1 + 0.2🍁 А если вы считаете деньги, то просто выражайте суммы в целых числах (центы и копейки вместо долларов и рублей) — так будет намного проще и надёжнее. Не используйте
0.30000000000000004
>>> from decimal import Decimal
>>> Decimal("0.1") + Decimal("0.2")
Decimal('0.3')
float
для денежных расчётов! Если вы думаете, что погрешности у float
начинаются только где-то в пятнадцатом знаке после запятой, то у меня для вас плохие новости — чем больше числа, тем больше и погрешности. Цена даже одной ошибки может быть очень высока 😬Twitter
Reuven M. Lerner, Python trainer
Fun with #Python floats: mylist = [ 614.3, 453.44, 220.8, 514.32, 322.32, 330.3, 230.3, 518.32, 419.52] What's the result from this: sum(mylist) == sum(mylist[::-1]) Answer? False! I can't decide if this is a bug or just expected, as per 0.30000000000000004.com.
Forwarded from Python Daily
А вы знали что у builtin функции
Первый, о котором знают все - вызывает у объекта метод
А вот второй принимает Callable без аргументов и значение, на котором нужно остановиться. Можно применять, например, для чтения файлов блоками:
iter()
есть два варианта использования?Первый, о котором знают все - вызывает у объекта метод
__iter__()
и возвращает результат.А вот второй принимает Callable без аргументов и значение, на котором нужно остановиться. Можно применять, например, для чтения файлов блоками:
from functools import partial
with open('mydata.db', 'rb') as f:
for block in iter(partial(f.read, 64), b''):
process_block(block)
Более простой пример:>>> a = (i for i in (1, 2, 3, 4, 5))
>>> list(iter(lambda: next(a), 4))
[1, 2, 3]
#python_cookbook #iter #nothabr #pydailyВышел стабильный релиз
🐍 + 🐘 = 🎉
https://twitter.com/psycopg/status/1447962001121157133?s=21
#psycopg
psycopg==3.0
. Можно пробовать внедрять в свои проекты.pip install --upgrade pip # to upgrade pip
pip install psycopg[binary,pool] # to install package and dependencies
🐍 + 🐘 = 🎉
https://twitter.com/psycopg/status/1447962001121157133?s=21
#psycopg
Twitter
psycopg
Well, I don't know what to say, I've lost all the source code, the cat has eaten the backup... Nope! Not true! #Psycopg3 released!!! 🥳🥳🥳 Too happy for a serious message right now. Not sorry. #Python #PostgreSQL #FreeSoftware
Доклад про инъекцию зависимостей в питоне от создателя
https://www.youtube.com/watch?v=mJI7MzRCVkQ
#dependency_injection
dependency_injector
.https://www.youtube.com/watch?v=mJI7MzRCVkQ
#dependency_injection
YouTube
Dependency injection в Python простыми словами / Dependency Injector
#python #dependencyinjection #interview
В этом видео простыми словами рассказываю о dependency injection в Python и на практике показываю как работает этот принцип.
Dependency Injector - https://github.com/ets-labs/python-dependency-injector
В этом видео простыми словами рассказываю о dependency injection в Python и на практике показываю как работает этот принцип.
Dependency Injector - https://github.com/ets-labs/python-dependency-injector
Автоформаттер
https://twitter.com/llanga/status/1455496802812239876?s=21
#black
black
принял «политику стабильности». В 2022 ожидайте стабильный релиз.https://twitter.com/llanga/status/1455496802812239876?s=21
#black
Twitter
Łukasz Langa
Version 21.10b0 of Black, your friendly #Python auto-formatter, is out now! 🖤 The biggest news is that thanks to @pradyunsg and @jelleszijlstra we adopted a stability policy that will go into effect starting with the first stable release in Jan 2022. 🤯 b…
Ну все, теперь точно можно обновляться до 3.10, потому что уже выпустили первый багфикс релиз. От версии с 1 или больше на конце уже можно ожидать какой-то надежности. Все самые очевидные грабли уже потоптаны. Да и большинство либ к этому моменту уже тоже должно было адаптироваться, так что обязательно попробуйте обновиться.
Анонс: https://pythoninsider.blogspot.com/2021/12/python-3101-is-available.html
Список изменений: https://docs.python.org/3/whatsnew/changelog.html#python-3-10-1-final
Анонс: https://pythoninsider.blogspot.com/2021/12/python-3101-is-available.html
Список изменений: https://docs.python.org/3/whatsnew/changelog.html#python-3-10-1-final
Blogspot
Python Insider: Python 3.10.1 is available
Forwarded from Life of Tau
Twitter
Tushar Sadhwani
🐍Python news: CPython's main branch now compiles to webassembly! Thanks to @ethanhs and @ChristianHeimes Meaning: You can natively download and run Python in the browser. It's about a 5MB package right now. There's plans to make it smaller. Try it here: repl.ethanhs.me
👍3😱1
В следующем релизе macOS Monterey 12.3 🍎, которая сейчас находится в бета-тестировании, обещают наконец-то удалить из системы предустановленный Python 2. Начиная с какой-то из предыдущих версий уже и так выскакивало окошко с предупреждением, если вдруг пайчарм случайно потрогает Python 2, а теперь устаревшая версия языка изгоняется из системы окончательно.
И это крайне логичное действие — незачем в системе держать легаси, которое лишь создаёт проблемы и путаницу. Большинство пользователей получат более компактную ОС и меньше проблем с выбором правильного интерпретатора, а те, кому всё ещё нужен Python 2, поставят его явно вручную. Они ведь всё равно уже привыкли страдать.
Пожалуй, макось из ныне живущих операционных систем продержалась со вторым питоном дольше всех.
Стоит отметить, что это не хейт отдельно взятого языка программирования. Эппл взяла курс на удаление многих скриптовых рантаймов, которые издревле поставлялись вместе с ОС, включая и Ruby, и Perl, и Python. Теперь всё это, если нужно, придётся ставить отдельно.
#macos #python2
И это крайне логичное действие — незачем в системе держать легаси, которое лишь создаёт проблемы и путаницу. Большинство пользователей получат более компактную ОС и меньше проблем с выбором правильного интерпретатора, а те, кому всё ещё нужен Python 2, поставят его явно вручную. Они ведь всё равно уже привыкли страдать.
Пожалуй, макось из ныне живущих операционных систем продержалась со вторым питоном дольше всех.
Стоит отметить, что это не хейт отдельно взятого языка программирования. Эппл взяла курс на удаление многих скриптовых рантаймов, которые издревле поставлялись вместе с ОС, включая и Ruby, и Perl, и Python. Теперь всё это, если нужно, придётся ставить отдельно.
#macos #python2
👍1
Forwarded from Chernov sharit
А вы говорите у вас на проекте legacy. Тут в python закинули PEP по удалению неиспользуемых батареек и большинство датируется 90х годами.
https://peps.python.org/pep-0594/
#python
https://peps.python.org/pep-0594/
#python
❤4
Forwarded from Chernov sharit
Прекрасно, когда TL;DR есть от автора статьи (:
———
TL;DR: I built a wifi-equipped water gun to shoot the pigeons on my balcony, controlled over the internet by a python script running openCV reading the camera image of my old iPhone.
https://maxnagy.com/posts/pigeons/
#python #fun
———
TL;DR: I built a wifi-equipped water gun to shoot the pigeons on my balcony, controlled over the internet by a python script running openCV reading the camera image of my old iPhone.
https://maxnagy.com/posts/pigeons/
#python #fun
Max Nagy
The overengineered Solution to my Pigeon Problem
TL;DR: I built a wifi-equipped water gun to shoot the pigeons on my balcony, controlled over the internet by a python script running openCV reading the camera image of my old iPhone.
Introduction The pigeons in my backyard find particular pleasures in voiding…
Introduction The pigeons in my backyard find particular pleasures in voiding…
🔥7😁1
О, кстати, прикол. Не задумывался, что лямбда-функции тоже можно аннотировать. Делать я так, конечно, всё равно не буду.
Твит здесь.
Твит здесь.
❤🔥13⚡1🥰1
Forwarded from Диджитализируй!
Большое интервью Гвидо ван Россума час назад вышло у Лекса Фридмана
https://www.youtube.com/watch?v=-DVyjdw4t9I
0:00 - Introduction
0:48 - CPython
6:01 - Code readability
10:22 - Indentation
26:58 - Bugs
38:26 - Programming fads
53:37 - Speed of Python 3.11
1:18:31 - Type hinting
1:23:49 - mypy
1:29:05 - TypeScript vs JavaScript
1:45:05 - Best IDE for Python
1:55:05 - Parallelism
2:12:58 - Global Interpreter Lock (GIL)
2:22:36 - Python 4.0
2:34:53 - Machine learning
2:44:35 - Benevolent Dictator for Life (BDFL)
2:56:11 - Advice for beginners
3:02:43 - GitHub Copilot
3:06:10 - Future of Python
#IT #Python
https://www.youtube.com/watch?v=-DVyjdw4t9I
0:00 - Introduction
0:48 - CPython
6:01 - Code readability
10:22 - Indentation
26:58 - Bugs
38:26 - Programming fads
53:37 - Speed of Python 3.11
1:18:31 - Type hinting
1:23:49 - mypy
1:29:05 - TypeScript vs JavaScript
1:45:05 - Best IDE for Python
1:55:05 - Parallelism
2:12:58 - Global Interpreter Lock (GIL)
2:22:36 - Python 4.0
2:34:53 - Machine learning
2:44:35 - Benevolent Dictator for Life (BDFL)
2:56:11 - Advice for beginners
3:02:43 - GitHub Copilot
3:06:10 - Future of Python
#IT #Python
YouTube
Guido van Rossum: Python and the Future of Programming | Lex Fridman Podcast #341
Guido van Rossum is the creator of Python programming language. Please support this podcast by checking out our sponsors:
- GiveDirectly: https://givedirectly.org/lex to get gift matched up to $1000
- Eight Sleep: https://www.eightsleep.com/lex to get special…
- GiveDirectly: https://givedirectly.org/lex to get gift matched up to $1000
- Eight Sleep: https://www.eightsleep.com/lex to get special…
🔥19👍3
Крутая идея про "приватные" переменные — называть их маленькими буквами. При прочтении кода вслух имя переменной произносится шепотом. Пора расширять PEP8!
твит
твит
😁38🙈13💩3👎2🔥1💅1