The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Microsoft опубликовал Pyright, систему проверки типов для языка Python

24.03.2019 09:17

Компания Microsoft открыла исходные тексты проекта Pyright, в рамках которого развивается система для применения статической типизации в приложениях на языке Python. Для разработчиков предлагается утилита командной строки для проверки типов и плагин для интегрированных сред разработки, поддерживающих протокол LSP (Language Server Protocol), таких как Visual Studio Code, Nuclide и Atom. Код написан на языке Typescript (диалект JavaScript со статической типизацией), использует Node.js и открыт под лицензией MIT.

Информация о типах может определяться в коде через добавление дополнительных аннотаций к переменным (PEP 526, например "# type: List[int]"), TypeVar-подсказок в стиле mypy (PEP 484, например "def greeting(name: str) -> str:") или применения структурных подтипов (PEP 544). Pyright поддерживает вывод типов для возвращаемых функциями значений, локальных переменных, переменных классов и глобальных переменных. Системой также применяются умные ограничители типов, учитывающие ветвления в коде с использованием операторов if/else.

Pyright работает примерно в пять раз быстрее mypy и других систем проверки типов, написанных на языке Python. Высокая производительность позволяет использовать Pyright для очень крупных кодовых баз, для работы в режиме непрерывного отслеживания при редактировании и для быстрого инкрементального обновления при изменении файлов. Для работы Pyright не требуется установка Python-окружения, но необходимо наличие Node.js.

Кроме инструментов для анализа и проверки кода в состав также входит подготовленный проектом Typeshed набор stub-файлов (".pyi"), содержащих информацию о типах для стандартных библиотек stdlib. Плагин для IDE поддерживает вывод всплывающих подсказок с информацией о типе, переход к позиции с определением переменной и обеспечение обратной связи во время редактирования.

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Доступен язык TypeScript 2.0, продвигаемый Microsoft в качестве дополнения к JavaScript
  3. OpenNews: Увидел свет TypeScript 1.0, продвигаемый Microsoft в качестве альтернативы JavaScript
  4. OpenNews: Компания Microsoft представила TypeScript, новую открытую альтернативу JavaScript
  5. OpenNews: Компания Microsoft представила Python Language Server
  6. OpenNews: Instagram открыл код MonkeyType, системы аннотации типов для Python
Лицензия: CC-BY
Тип: Программы
Ключевые слова: typescript, python, pyright
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (130) Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.3, nc (ok), 10:26, 24/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +40 +/
    Сначала одни делают языки с динамической типизацией, а затем другим приходится придумывать к ним разные костыли, чтобы как-то прикрутить нормальную статическую типизацию.
     
     
  • 2.5, A.Stahl (ok), 10:30, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Зато в Питоне нет скобочек, олицетворящих гегемонию Си. Вот!
     
     
  • 3.11, microcoder (ok), 10:45, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Зато в Питоне нет скобочек

    Это пока нет. Гвидо отошёл от борорьбы принятия решений и сейчас кто знает куда развитие уйдёт когда рак, лебедь и щука (желания и хотелки одних и других пользователей) потянут в разные стороны проект и сколько лет будут эти трое разрывать его на части.

     
  • 3.62, Аноним (62), 17:08, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • –5 +/
    пробельчики считать глаза уже натренировались?
     
     
  • 4.64, Аноним (-), 17:53, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +11 +/
    Бедный, целыми днями считает пробельчики, пока люди пишут код. :(
     
  • 4.68, EnemyOfDemocracy (?), 19:07, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    как будто вы всю память освободили, за указателями последили и за границы массива даже на пол-фитульки не вылезали
     
  • 4.87, commiethebeastie (ok), 21:57, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Попробуй вместо notepad.exe поставить что-нибудь получше.
     
  • 3.111, Vkni (ok), 07:51, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Их много где нет. Например, в Хаскеле, у которого, кста, похожий же двумерный синтаксис.
     
     
  • 4.131, Аноним (131), 20:32, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Хоспади опять откопали это ...
     
  • 2.31, annual slayer (?), 12:24, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    это как коробка-автомат

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

     
     
  • 3.58, Аноним (58), 16:18, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • –4 +/
    В случае с питоном аналогия неверная. Скорее, коробка автомат, к которой кочергу приделали для ручного переключения и масло слили, чтобы не плавало...
     
  • 2.47, Аноним (47), 14:38, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Некоторым платят за количество строчек в тестах.
     
     
  • 3.132, Аноним (131), 20:33, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да недавно видел на биржа фриланса обьявление куплю говнокода на 1000000 строк.
     
  • 2.110, Vkni (ok), 07:50, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Просто людям, которые используют языки с динамической типизацией там, где это не стоит делать, надо вправить мозги.
     
     
  • 3.115, Попугай Кеша (?), 09:26, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну как так? В одной крупной организации используется TypeScript, ибо JS - боль (так утверждают архитекторы). Просьбы дать аргументацию не увенчались успехом.

    На своем проекте удалось отстоять JS и выжать максимальную скорость из команды.

    В новом проекте - TypeScript (от нашей любимой Microsoft). Теперь вместо работы разработчики ругаются матом на интерфейсы, типы, наследование. Чтобы победить TS с его глупейшими ошибками нужно over 9000 действий сделать. Ну и чего добились? Скорость команды просела. Те же действия требуют раза в 2-3 больше кода. Визуального шума больше. Тьфу блин...

    Доигрались. А архитекторы? А что архитекторы - сказали надо - делаем. Модно, хипстерски, молодежно зато.

    Так что идите лесом, господа. Где-то нужна статическая типизация, где-то не нужна. От задач и области применения зависит. И не надо тут синдром молотка включать.

     
     
  • 4.119, Vkni (ok), 10:32, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Просьбы дать аргументацию не увенчались успехом.

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

    > Так что идите лесом, господа. Где-то нужна статическая типизация, где-то не нужна. От задач и области применения зависит. И не надо тут синдром молотка включать.

    При чём тут синдром молотка?

     
     
  • 5.121, Попугай Кеша (?), 11:06, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Синдром молотка в том, что человек ранее разрабатывал на C# / Java, не смог осилить JS. Пришел в чужой аул со своим барахлом и принципами. Появился TS. Занавес.
     
     
  • 6.133, Аноним (131), 20:35, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Я не в курсе конечно, а не то что в Java тоже все отнаследовано от какого-то абстрактного Object?
     
     
  • 7.142, Попугай Кеша (?), 09:21, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    JS вообще не ООП-язык, ни разу. Где-то прикидывается, но нет. У него больше с LISP/Scheme общего, чем с Java. Отсюда проблемы
     
  • 6.149, Vkni (ok), 05:41, 28/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Синдром молотка в том, что человек ранее разрабатывал на C# / Java,
    > не смог осилить JS. Пришел в чужой аул со своим барахлом
    > и принципами. Появился TS. Занавес.

    Так сложно судить со стороны, но всякая бизнес-логика очень хорошо работает со статически типизированными языками. И, в общем, формочки шлёпать на всяких Elm вполне приятно и легко.
    Ну и работа с большими системами на динамически типизированных языках обычно сравнительно трудоёмка и требует серьёзной дисциплины. (по моему опыту - достаточно надёжную программу средних размеров написать на Хаскеле значительно легче для мозгов, чем на Питоне)

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

     
  • 4.125, Антон (??), 13:53, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    как-то вы неправильно его готовите. TS позволяет настроить необходимость типизации  и использовать ее там где она действительно нужна.
    А писать на JS крупный проект это боль, когда вместо использования подсказок редактора ты каждый раз лазишь в документацию или в код, а потом еще и ловишь ошибки в рантайме.
     
  • 4.144, Аноним (144), 12:43, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >теперь вместо работы разработчики ругаются матом на интерфейсы, типы, наследование.

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

     
  • 1.4, Аноним (4), 10:28, 24/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Для работы Pyright не требуется установка Python-окружения, но необходимо **наличие Node.js**

    Что, простите???

     
     
  • 2.7, A.Stahl (ok), 10:31, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +7 +/
    >Код написан на языке Typescript (диалект JavaScript

    Что именно тебе не ясно?

     
     
  • 3.13, anonymous (??), 10:49, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Он вообще то про что почему не на самом Питоне раз нужен еще один интерпретатор ?
    Написали бы тогда уж на си или го, а тут какой то маразм, следующий раз им понадобится и руби :(

    P.S. Хотя если ограничивать юзание этой штуки редакторами vscode или атом то тогда понятно, там ноде уже внутри :(

     
     
  • 4.17, microcoder (ok), 10:59, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Видимо потому, что IDE для которой писалось рпсширение работает на JS/TS:

    > This is especially useful when used with the VS Code editor, which uses node as its extension runtime.

     
     
  • 5.41, anonymous (??), 13:08, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Ну это понятно.
    Просто не нужно было в новости писать :
    > Для разработчиков предлагается утилита командной строки для проверки типов и плагин для
    > интегрированных сред разработки

    Написали бы просто, плагин для редакторов юзающих ноду и сразу все понятно.

    P.S. И кстати скорость тут не причем, на GO поди еще быстрее бы было. Про СИ я молчу даже ...

     
  • 4.20, Аноним (20), 11:04, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Он вообще то про что почему не на самом Питоне раз нужен еще один интерпретатор ?

    А целиком новость прочесть?

    > Pyright работает примерно в пять раз быстрее mypy и других систем проверки типов, написанных на языке Python.

     
  • 4.23, Антон (??), 11:39, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    наверно потому что js быстрее и удобней Питона.
     
     
  • 5.27, Аноним (27), 12:07, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Может и быстрее. Но вот насчёт удобней...
     
     
  • 6.30, Антон (??), 12:18, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну, скажем так, нынче Питон кажется замшелым валенком. Не знаю откуда у питона такая популярность, видимо просто в силу возраста и отсуствия вменяемых альтернатив на то время.
    Да, по сравнению с es5 питон сильно выигрывает, но по сравнению с современным ts Питон уныл.
     
     
  • 7.32, annual slayer (?), 12:27, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    так ts или js? ты сначала сам определись
     
     
  • 8.36, Антон (??), 12:51, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а что есть разница? можно писать на js, описывая типы и проверяя тайпскриптом
     
  • 8.37, Аноним (37), 12:52, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    TS - лишь сахар для JS
     
     
  • 9.50, Аноним (50), 15:14, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Лол, с некоторых пор тс почти совсем сабсет, а не суперсет жса. Т. к. там нет и долго не будет множества модных фич типа паттерн матчинга, пайплайнов, старых новых декораторов, новых новых декораторов, частичного применения и прочего сахара. Сам тс не предоставляет ничего, что не будет работать в бровсере/ноде после простого удаления типов.
     
     
  • 10.73, Илья (??), 19:51, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Не знаю почему, но у меня нет большого желания писать на ноде.
     
     
  • 11.134, Аноним (131), 20:37, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Дык каждому индейцу свое перо.
     
  • 10.86, mkusher (?), 21:41, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Это не так, все доступное в стандарте реализовано в тс и плюс некоторые фичи из stage до 4. Плюс в тс есть енамы, сахар для параметров конструктора, которые не просто вырезаются
     
     
  • 11.153, Илья (??), 22:39, 28/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Это не так, все доступное в стандарте реализовано в тс и плюс
    > некоторые фичи из stage до 4. Плюс в тс есть енамы,
    > сахар для параметров конструктора, которые не просто вырезаются

    Вы про те параметры, которые собой определяют поля?, такое себе решениеё

     
  • 1.6, Аноним (6), 10:30, 24/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Дай угадаю, Cython им не подошел из-за слишком высокой скорости?
     
     
  • 2.28, Аноним (27), 12:09, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Там нет node.js
     
  • 2.59, Аноним (58), 16:20, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Синтаксис Cython то видели? Даже в нотации типов он C-подобен. А современные скриптовые языки, включая питон 3.6 имеют указание типа в паскалевском стиле.
     
     
  • 3.82, vitalif (ok), 20:50, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Поскакалеподобен
     
     
  • 4.83, Аноним (83), 20:53, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    кстати, у скалы тоже такой же синтаксис типизации
     
  • 1.8, Аноним (8), 10:36, 24/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +26 +/
    >Pyright работает примерно в пять раз быстрее mypy и других систем проверки типов, написанных на языке Python.

    Жабаскриптеры унижают питонистов на собственной территории :)

     
     
  • 2.38, Аноним (38), 13:02, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Очередная история отношений земноводных и змей.
     
     
  • 3.92, _ (??), 22:37, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    зришь! (С)
     
  • 2.103, cutlass (?), 02:12, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Точняк бро!
     
  • 1.9, Аноним (9), 10:37, 24/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    нормальную перегрузку функций это фигня дает?
     
     
  • 2.12, microcoder (ok), 10:47, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Какие перегрузки? Это просто "online" анализатор типов -> "утилита командной строки для проверки типов"
     
     
  • 3.51, Аноним (50), 15:17, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Обычные, с ручным выбором нужной. Объявляется несколько сигнатур без имплементации + имплементация совместимая со всеми сигнатурами (иногда приходится через any), в ней уже ручками всё разруливаешь. Но при вызове функции/метода для тайпчекера это выглядит как перегрузка.
     
  • 1.10, microcoder (ok), 10:39, 24/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Что-то он у меня не взлетел на VS Code. Жрет CPU и ничего видимого не происходит, всплывающие подсказки перестают работать.
     
     
  • 2.14, Аноним (14), 10:50, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В текущем модуле typescript есть баг, может в следующем обновлении Code его заменят на более свежий.
     
     
  • 3.15, microcoder (ok), 10:53, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ок. Спасибо за информацию!
     
     
  • 4.19, Аноним (20), 11:00, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    https://github.com/Microsoft/TypeScript/issues/29598
     
  • 2.21, myhand (ok), 11:12, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это он питон так уделывает, вы просто чего-то не поняли.
     
  • 1.18, Аноним (18), 10:59, 24/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Что только не придумают, лишь бы не уговаривать людей изучать язык, на котором пишут.
     
     
  • 2.135, Аноним (131), 20:39, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это какой например?
     
  • 1.22, Антон (??), 11:36, 24/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    о, это же отлично.
    Как стал изучать Питон сразу возник вопрос, а где typescript для питона, с типами же тут еще хуже чем в js.
    А тут прямо идеально, еще бы работало.
     
     
  • 2.60, Аноним (58), 16:21, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Как стал изучать Питон

    А зачем?.... Работать то где на нём?

     
     
  • 3.63, Антон (??), 17:14, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    для собственного кругозора. Насчет работать не знаю, js не хуже в этом плане, только поднадоел.
    Хочется куда-то, где построже и побогаче.
     
     
  • 4.72, Аноним (72), 19:17, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Для расширения кругозора полезно смотреть то, что кому-нибудь нужно. Питон в продакшене никому не нужен. См. рейтинг языков по доступным вакансиям:

    https://spectrum.ieee.org/view-from-the-valley/at-work/tech-careers/what-progr

     
     
  • 5.79, Аноним (-), 20:28, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    скала и руби на втором и третьем месте? не смешите мои ботинки, это не рейтинг, а посмешище
     
     
  • 6.84, Аноним (83), 20:55, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    правая колонка - хотелки разработчиков. Левая - за что деньги готовы платить. Скала там потому, что много успели написать. То есть некому поддерживать. Руби - ну так он до сих пор популярен для веба вне отдельно взятой этой страны. Быстрее - ни на чём не напишите.
     
     
  • 7.85, microcoder (ok), 21:27, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    HTML выше на 2 пункта, чем Python. Забавный рейтинг.
     
     
  • 8.88, Аноним (88), 21:57, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > HTML выше на 2 пункта, чем Python. Забавный рейтинг.

    Забава в чём? Что питон никому не нужен? Или в том, что HTML-верстальщиков нужно мало?

     
     
  • 9.89, microcoder (ok), 22:12, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    первое
     
  • 7.96, _ (??), 23:45, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >Руби - ну так он до сих пор популярен для веба вне отдельно взятой этой страны.

    Я не "в этой стране" я в NA\GL-area. Позиция ребе-программер у нас тоже большая экзотика...
    >Быстрее - ни на чём не напишите.

    Уже придумали *оно повонючее: на ноде ещё быстрее одноразовка делается :-Р И почти бесплатно. Даже пыхеров подвинули 8-о
    Так что ты устарел, тебя пустят на переработку :)

     
  • 6.93, Антон (??), 22:55, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Не столь интересен сам питон, он учится очень быстро, сколько django. Вакансий довольно много.
    Да я и не говорю что собираюсь прям на питоне и остановиться. C# и Go на очереди, возьму что понравится. Только для Go мало вакансий и там хотят сразу готовых сеньоров, поэтому он кажется не сильно актуальным для изучения.
    Наверно выбор будет между C# и Java.
     
     
  • 7.94, Аноним (88), 23:07, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > django. Вакансий довольно много

    Go см. Или Rails, если интересует веб-бакенд. Без практики и изучения, явно не получится стать квалифицированным разработчиком.

    > C# и Java

    Java. Иначе тот же вопрос - кому нужна винда сейчас?

     
     
  • 8.95, Антон (??), 23:19, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    какие-то у вас странные представления о бэкенде.
    rails умирает, та же django встречается чаще. Плюс Питон более универсален, чем Руби.
    А причем тут винда? C# для бэка уже давно винду перерос. Дотнет фреймворк вышел удачным и тоже получил свою долю пирога.
     
     
  • 9.97, _ (??), 23:49, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >А причем тут винда? C# для бэка уже давно винду перерос. Дотнет фреймворк вышел удачным и тоже получил свою долю пирога.

    Козюльский! Кому вы таки парите мозги?! (С)

    Любая девочка знает что доднед хоть как то работает только в M$(C)  WЫndoуЗЪ(Tm) :-) Шаг влево - вправо и тебя пристрелили. Вне винды его только у ямумкихакир-ов увидеть можно ...

     
  • 9.109, Аноним (109), 06:49, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > rails умирает, та же django встречается чаще. Плюс Питон более универсален, чем Руби.

    Rails ещё долго будет умирать. А вот с питона и django, все кто прикоснулись, мигрируют на Go.

    Питон, может быть, "более универсален", чем Руби, но плох везде, где бы его ни использовали. К тому же, имеет постоянные проблемы с совместимостью и полную неопределённость в развитии после ухода Гвидо.

     
     
  • 10.117, Антон (??), 10:02, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    ну хорошо, уговорили.
    Меня и самого Питон выбешивает своими разными версиями, отстуствием объявления переменных, плясками с virtualenv и дубовостью.
    Выбор сузился до Java vs Go. Тем более под деньгам оно самое привлекательное.
     
     
  • 11.120, Аноним (120), 10:36, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Меня и самого Питон выбешивает своими разными версиями, отстуствием объявления переменных,

    А что в этом плохого? Со статичным типизированием понятно, объявляешь переменную и указываешь тип, а в динамике зачем?

     
  • 8.104, cutlass (?), 02:15, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Для веб-бекенда нужно знать ПХП
     
     
  • 9.106, Аноним (106), 04:05, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    сгинь, ирод
     
  • 9.136, Аноним (131), 20:42, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    На кой для бэкенда знать PHP? Опять таки как и для django это знание нужно только для уровня дизайн студий подвально чердачного типа.
     
  • 6.114, fontpath (?), 08:59, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Для веб-разработки и прототипирования за пределами нашего чебурнета Ruby популярен. Вот недавняя статистика по вакансиям, а не по всяким непонятным рейтингам, в Кремниевой долине: https://medium.com/@yoelblum_45935/demand-for-ruby-on-rails-is-still-huge

    Просто переводной литературы по Ruby было очень мало и к тому же сильно протухшей, поэтому в России популярность его гораздо ниже, плюс с английским в нашем регионе всегда было худо, в веб-разработка имеет относительно низкий порог вхождения, в итоге все, кто в нулевых начинал с условного "Освой PHP и MySQL за 7 дней" даже набравшись опыта и выучив для работы английский так и остались на этом стеке, у адептов Python, к примеру, появилась Джанга и т.д. Не зная хорошо английский влиться в разработку на Ruby (в актуальном её состоянии практически невозможно), в то время как по PHP, Python, Java, C# литературы на русском навалом.

     
  • 2.112, Vkni (ok), 07:54, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Статически типизированный Питон - это Ocaml.
     
  • 1.25, th3m3 (ok), 11:52, 24/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А зонды от мелокмягких, как всегда в комплекте?
     
     
  • 2.29, Аноним (27), 12:13, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    export PYRIGHT_TELEMETRY=OFF :)
     
     
  • 3.39, th3m3 (ok), 13:05, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > export PYRIGHT_TELEMETRY=OFF :)

    Давно известно, что зонды от мелкомягких, на самом деле - настройками не отключаются ;)

     
  • 3.55, Аноним (55), 15:33, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >We couldn’t find any code matching 'PYRIGHT_TELEMETRY' in Microsoft/pyright
     
  • 1.26, YetAnotherOnanym (ok), 11:54, 24/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Это что же получается, теперь на Питоне нельзя будет фигачить код, не задумываясь о значениях переменных и рассчитывая на то, что интерпретатор сам как-нибудь там разберётся?
    Проклятые мелкомягкие!
     
     
  • 2.34, Аноним (34), 12:32, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Надеюсь вменяемым разработчикам хватит мозгов не вестись на этот EEE.
     
  • 2.40, Анонимус154 (?), 13:07, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тайпхинтинг не вчера придумали
     
  • 1.43, Аноним (43), 14:04, 24/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Хм, а зачем писать на языке с динамической типизацией, если потом  нужно подключать статику? Может кто просветить, какие реальные юзкейсы?
     
     
  • 2.44, Анонимус154 (?), 14:17, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что набор типов, с которым работает какая-то функция или метод, в реальной жизни обычно ограничен. И тайпхинтинг здесь позволяет находить ошибки, когда в функцию, ожидающую на входе int, вдруг подают list.

    Вообще, на Ютубе есть запись доклада Григория Петрова про тайпхинтинг, там все очень подробно и доступно изложено.

     
     
  • 3.45, anonymous (??), 14:27, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Что за бред ?
    А почитать к примеру PEP484 не судьба что ли :(
     
     
  • 4.48, Анонимус154 (?), 14:39, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Так речь про PEP484 и идёт.
     
     
  • 5.54, anonymous (??), 15:28, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ладно спрошу по другому. Если мы первый раз вызываем скрипт python, когда еще нет pyo почему сам интерпретатор не проверит это дело если мы в тексте указали все как нужно ?
     
     
  • 6.90, анонимумуму (?), 22:23, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Потому что это не статическая типизация. Интерпретатор эту информацию просто отбрасывает. Эта информация используется статическими анализаторами вроде mypy, pyre, pyright и пр.
     
     
  • 7.137, Аноним (131), 20:50, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Интерпретатор эту информацию просто отбрасывает

    Так давайте разбираться в этом термине. Интерпритатор Python на самом деле транслятор и виртуальная мащина. У него есть две стадии компиляция (трансляция с языка Python в Python Bytecode) и вторая стадия интерпритация в вирутальной машине байткода.

    Почему не ввести разновидность трансляции с проверкой типов, так называемую strict трансляцию. Напомню, что подобного рода трансляция (strict) есть в Visual Basic и JavaScript.

     
  • 2.46, GreyFox (ok), 14:28, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Статика в Python не подключается, это не возможно. Типы аннотируются, т.е. указываются для статического анализа (можно сказать, что в виде мета информаций). В редакторе можно подсвечивать ошибки (к примеру при присваивании, при вызове функции, ...), статистический анализ как одна из стадии проверок в CI (непрерывной интеграции), можно использовать для валидации в реальном времени (удобнее описывать, идемпотентный код, ...), ...
    В итоге писать код в реальных средних и больших проектах значительно удобнее. По той же причине аннотирование есть в Typescript
     
     
  • 3.67, Аноним (67), 18:51, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    А ещё удобнее было бы сразу писать на языке со статической типизацией.
     
     
  • 4.70, Аноним (43), 19:13, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот да, этот вопрос меня и интересует больше всего. Если пишешь на динамике ради каких-тотее плюсов (скорость разработки и прототипирования?), то смысл в привлечении элементов отвергнутой статики. Совместить лучшее из двух миров?
     
  • 4.91, анонимумуму (?), 22:27, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я давно хочу статически типизированный Python)
     
     
  • 5.98, _ (??), 00:08, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это только до тех пор, пока его и вправду не сделают. Правдо _это_ уже Питоном не будет :)
    Но к тому времени у тебя появятся новые пи**тые идеи, не волнуйся. Работать снова будет некогда :)
     
  • 5.113, Vkni (ok), 07:58, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ближе всего к этому Ocaml.
     
  • 2.80, Аноним (38), 20:38, 24/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не зачем, а почему. Потому что до некоторых долго доходит, что на языке без статической типизации писать не стоит.
     
     
  • 3.99, _ (??), 00:09, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Смотря что, смотря для чего. Но чего это я? Раз Ыгспёрд сказал, то фсио ...
     
  • 3.105, cutlass (?), 02:17, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Баш норм и без нее
     
     
  • 4.143, Аноним (67), 11:00, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Так там и типов никаких нет кроме строк. Разве что массивы в 4 версии добавились.
     
  • 1.57, Аноним (57), 16:10, 24/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Для меня лично больше подхолит утилита PYLEFT.
     
  • 1.71, InuYasha (?), 19:16, 24/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    М-да... если выкинуть из питона все пробелы и безтипность, то что останется?
     
     
  • 2.100, Аноним3 (?), 01:15, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    не питон. ясно ведь)) и да странно что один скриптовый язык проверяет другой на наличие типов. тем более в языке динамической типизации. я конечно понимаю некоторым не отойти от тех же плюсов, но питон как раз и делали таким. время было такое , такие и идеи. если что то не нравится возьмите другой язык. в любом случае сейчас наплодили их столько, что диву даешься, а си как был стандартом , так и остался)))
     
  • 1.74, Онаним (?), 19:59, 24/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Visual Studio - TypeScript - Node.JS - и всё это для Python

    Шиза косит стройные ряды.

     
  • 1.81, Аркадий (??), 20:46, 24/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Почему я чувствую, что в чём-то здесь подвох?
     
     
  • 2.101, Аноним3 (?), 01:17, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    с МС всегда подвох. )) так что просто остерегайтесь данайцев дары приносящих.))
     
  • 1.116, economist (?), 09:48, 25/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Обосную почему динамическая типизация рулит мне и вероятно не только мне. 90% py-проектов - консольные скрипты на 50 килобайт, из которых 50% - комментарии и строковые "константы", которые взять больше неоткуда (типа ФИО директора в дательному падеже, типа Айрам Жовкету Асан-Оглы Хуажашеву). И этот "говнокод" пишется быстро, скажем за 2 дня, но окупается за неделю, поскольку убирает рутину и для обычных офичных людей является чистой магией.

    Когда заказчик в ТЗ пишет "все переменные типизировать в коде", - то код пишется уже 3 дня. Но стоит в... - Правильно, в 2 раза дороже. Т.к. "правильность" и "неправильность" в наше время определяет его величество рынок, тот кто платит, а не то кто умничает - то таких ТЗ и заказов всё меньше. Достаточно лишь поговорить с тов. Хуажашевым. Ему-то всё равно - лишь бы работало правильно. А для этого есть тесты.

    Радует что Питон типы и все эти Pyright дает как опцию, печалит что скорости работы программы они все равно не добавляют. Но знаете ли вы что слишком быстро работающая программа на С выглядит не так дорого, как медленная на Python? Теперь знаете.          

     
     
  • 2.118, Аноним (120), 10:32, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > печалит что скорости работы программы они все равно не добавляют.

    Вы это где то прочитали, либо сами столкнулись с "медлительностью"? На каких задачах вам не хватает python?

     
     
  • 3.122, economist (?), 11:43, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    "не добавит" != "медлительность". Стат-типизация сабжем - скорости Питону не добавит.

    Скорости обычного питона мне хватает на всех задачах. Она и так в 3-5 раз быстрее прочего IT-окружения на предприятиях-клиентах (это я про 1С, Excel, COM-автоматизации, сетевые базы данных итп).

    Cython, nuitka, asyncio и прочие "ускорялки" пока не нужны. То что нужно быстро - итак уже кем-то хорошо ускорено (модули sqlite3, numpy, pandas итд).  

     
  • 3.123, Аноним (123), 11:47, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Примерно всё это делаю на фрипаскале, включая регулярки. :) И статическая типизация там изначально. И ООП, и графика если надо... и скорость конечно. Единственный недостаток блоки выделяются не отступами, отсюда синтаксический мусор. Блоки отступами - это единственное чем питон захватил мир, этим прорывом во второе измерение в эргономике кода. Что снизило количество синтаксического мусора.
     
     
  • 4.130, Анонимчжан (?), 18:03, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    не только этим. но скорости и впрямь хватает для простых задач. а крупные на питоне редко делают. скорее обертки вокруг того же си/с++. так что да в большинстве возможностей чистого питона за глаза. nympy и прочие это уже некоторые попытки сделать питон языком чисто системно-прикладного уровня как си, но помоему это глупо. он задумывался именно для максимальной переносимости и чисто внешних применений . никак не язык системного уровня. там где нужна скорость компилируемые языки всегда будут лучше, хотя бы потому , что они пропускают этап компиляции еще на пути сборки.ну а питон и ему подобные как известно компилятся в байт код. и этим все сказано. так называемое изначальное преимущество в скорости у компилируемых языков, зато в переносимости сильно отстают. что то одно. пусть сделают язык с синтаксисом питона и возможностью компиляции. вот там и посмотрим.
     
     
  • 5.138, Аноним (131), 20:54, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Слушай не нужно страдать херней. Пишу я на Питоне управляющий код, а когда совсем ясно, что не тянет, то перевожу модуль на C/C++ и все хорошо и замечатлеьно. Хотя конечно сейчас документация Python начинает уже раздражать, так как многое приходитсья изучать прямо в коде Python-а. Я это все к чему, ну вот и зачем делать еще один какой-то Cython когда вроде и так все хорошо?
     
  • 2.124, myhand (ok), 12:18, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Т.к. "правильность" и "неправильность" в наше время определяет
    > его величество рынок, тот кто платит, а не то кто умничает

    Во-во.

    The planet is fine. The people are f*cked. (ц)

    > Ему-то всё равно - лишь бы работало правильно.
    > А для этого есть тесты.

    Если бы программисты строили дома...

     
     
  • 3.139, Аноним (131), 20:58, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Платят обычно тому кто умничает за то что он умничает, так как ума у тех у кого есть деньги на это не хватает.

    Так что тут палка о двух концах.

     
  • 1.126, Anon_Erohin (?), 14:43, 25/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Мелкомягкие как всегда закидывают в свой репозиторо-помойник очередную ненужную вещь. Не понимаю зачем СПО обществу подобное...
     
     
  • 2.127, Аноним (127), 15:48, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Что значит зачем? SoftwareNazi?
     
  • 2.151, Аноним (151), 18:33, 28/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ой, тебя спросить забыли
     
  • 1.128, Аноним (128), 16:05, 25/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ну не нравиться вам питон, ну не пишите на нем, кто заставляет ???
    Откуда столько ненависти ?
     
     
  • 2.129, Аноним (123), 16:17, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ненависть от навязывания, идёт бешеная глобальная реклама этого довольно рядового, но постепенно усложняющегося до плюсплюсной монструозности языка. Люди чувствуют что их загоняют в интеллектуальное гетто, не любят насилия, даже если их насильно шоколадом кормят.
     
     
  • 3.140, Аноним (131), 21:00, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Дык кто мешает берите какой-нибудь Lua и пишите на нем. Я думаю, что проблемы в целом нет. А спорящие это просто засланцы из других религиозных групп всякие шарпойды жавройды и прочие пхпешеры.
     
  • 3.145, economist (?), 12:45, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Реклама всегда кем-то оплачивается, тут же - просто "добрая молва", которая да, идет сильно впереди развития языка. Учить Питон - бросаются пенсионеры в глубокой деменции, Навальный, школота, малинщики, студиозусы и теперь еще и радиолюбители - "STM-щики". Я это горячо одобряю и как начальник, потому что вижу пользу у коллег.

    В 97-2005 гг. похожим образом увлекательный мир программирования открыли для себя больше 2 млн. человек во всем мире с макросами VBA в Excel. Экономический эффект этого "вливания" - измеряется миллиардами долларов, так что не вижу причин топтать Python - он тот же VBA, только шире и лучше. Прогнозирую взрывной рост числа макросов на нём в MS Office и AOO/LO в ближайшие 2 года.      

    Python с его 173k+ бесплатными библиотеками может всё и имеет, наверное, ну самый простой человекочитаемый синтаксис. Кривая обучения - прямая. Все парадигмы - в наличии. Вакансии - есть. Насилия - нет.    

     
     
  • 4.146, brbrbr (?), 13:17, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вот именно, бизнес получает профит от распространения Питона, т.к. каждую макаку можно ему обучить,
    и платить ей едой.
    Я лично такой макакой быть не хочу, и мне осточертели зазывания на курсы макак.
     
     
  • 5.147, economist (?), 14:57, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Бизнес, который получает профит от использования СПО и массового макросописательства - платит в перспективе зарплат/премий больше, и имеет возможность платить их больше (за счет экономии на СПО и профита).

    Бизнес, который сидит на проприетарщине, будучи зависим от вендора и узкоспециальных IT - платит зарплат/премий меньше, т.к. тратит весь свой профит на вендора и дорогих специалистов IT. Последние, к слову, имеют сильную тягу к перемене мест, их частенько перекупают, и с т.зр. ROI - платить премии питонирующим макросописателям - выгоднее.

    Да, P. слишком уж часто звучит, на том же хабре - каждая пятая статья о нем. Но тут ничего не поделаешь. Так как каждая четвертая о JS и его отпрысках.

     
     
  • 6.148, Попугай Кеша (?), 15:23, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще начальник прав. А если вы не хотите быть макакой - не будьте! Учитесь лучше ;)
     
  • 2.141, Аноним (141), 05:03, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Питон хорош как клей, как выполняемый псевдокод. Его ниша где-то между башем и 'настоящими' языками. Рано или поздно скрипты на питоне достигают предела, где выгоднее или удобнее использовать более строгую типизацию. В Lua это свойство выражено ещё сильнее.
     
     
  • 3.150, Аноним (151), 18:30, 28/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    В качесте клея perl по-удобнее будет (и не надо шутить про "Момент")
     
     
  • 4.152, economist (?), 21:44, 28/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Смотря что нужно клеить. PY-библы pywin32, win32com, xlsxwriter итд - дают такой уровень интероперабельности, выше которого даже сложно что-либо придумать. Обертки "по над уси" - типа D3.js - в принципе позволяют не изучать документацию родительского приложения и помогают с рендером, парсингом аргументов, лезут всюду со своей помощью и очень помогают. Самое удачное и известное прикладное ПО из свободного или почти бесплатного - имеют или Python внутри, или API на нем с очень хорошей поддержкой объектной модели приложения, часто в 2-3 раза превышающей доступную пользователю интерактивно (OpenOffice|LibreOffice, GIMP, Blender, Maya, InkScape, Scribus, Reaper - всех и не упомнишь). У Perl тоже много всего, но меньше и ощутимо. Комьюнити змеелюбов сейчас просто прёт вверх, и уже нет нужды читать документацию на сам питон, можно "спрашивать Алису". Вот уж действительно "высокоуровневость" в чистом виде. Особенно в ML/AI/CV. И плевать что это все часто обертки над другими ЯП. Пусть будет "клей".  

      

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    MIRhosting
    Fornex
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру