Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 15, 2013 15:29:19

eugenk
Зарегистрирован: 2013-08-15
Сообщения: 12
Репутация: +  -1  -
Профиль   Отправить e-mail  

Статическая типизация в питоне

Приветствую многоуважаемый all ! Скажите, существуют ли какие-то инструменты для питона, поддерживаемые IDE, позволяющие вводить статическую типизацию ??? У меня очень приличный опыт работы со статическими языками типа С++, ява и т.п. Сейчас нужно освоить питон, на котором пишу для одного проекта сервер. Что больше всего достает в языке - это именно его утиная типизация. Когда ни мне ни IDE непонятно, с чем работает та или иная функция в проекте размером в несколько тысяч строк.
Ранее тот же самый вопрос я задавал на форуме по javascript, на котором пишется клиент. Народ там заклеймил меня позором и ненормативной лексикой, назвал земляным червяком и желтой рыбой. Но один из клеймящих и ругающихся посоветовал такую штуку как TypeScript. Сейчас перешел на него и счастлив с исходниками, перевалившими уже за 10К строк. Короче вопрос, есть ли для питона что-то наподобее TypeScript ?

И тогда уж еще один вопрос. Чего бы такого интересного по питону почитать, желательно на русском ? Луца мне читать скучно. Хочу что-то средне-продвинутого уровня. Типа “Современный С++” Александриеску. Есть ли такое ? Т.е. того уровня, когда hello world уже пишется с закрытыми глазами, но МЕТОДОЛОГИЯ применения языка еще не очень понятна.

Офлайн

#2 Авг. 15, 2013 15:32:20

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Статическая типизация в питоне

посмотри на boo, это питон для .net со статической типизацией.



Офлайн

#3 Авг. 15, 2013 15:39:26

eugenk
Зарегистрирован: 2013-08-15
Сообщения: 12
Репутация: +  -1  -
Профиль   Отправить e-mail  

Статическая типизация в питоне

Спасибо, обязательно гляну. Но мне к сожалению нужен именно настоящий питон, причем ветки 2.Х. Дело в том, что мне на сервере придется запускать NlPack, который только для второй ветки, причем не идет даже на jpython. Как вариант, конечно можно разрабатывать что-то на boo, а потом переносить на питон, но хотелось бы это иметь прозрачно и бесшовно, как сейчас пишу на яваскрипте с помощью TypeScript.

Офлайн

#4 Авг. 15, 2013 16:15:52

wbt
Зарегистрирован: 2013-08-13
Сообщения: 143
Репутация: +  6  -
Профиль   Отправить e-mail  

Статическая типизация в питоне

Сравнивать python с javascript я бы не стал - в python строгая типизация. Хоть ты тресни, сложить строку с числом и помножить на None не получится.

И что значит “с чем работает?” Если вы не знаете, какие данные эта функция обрабатывает, то последнее, что будет интересовать - это её тип. А если знаете - то несколько тысяч строк это ещё не страшно, можно и разобраться. Ну или префиксы введите для типов, чтобы глазами видеть. Мне сложно представить, как это может раздражать… вчера краем глаза читал про генераторы, которые наконец-то появились в пыхе, там человек жаловался, что функцию для обработки генераторов нужно делать одну, для array-ев - вторую, для строк - третью. Вот это, понимаю, раздражает.



Бейсик - не порок, Гвидо - не пророк

Офлайн

#5 Авг. 15, 2013 17:05:25

sergeek
Зарегистрирован: 2012-06-26
Сообщения: 470
Репутация: +  43  -
Профиль   Отправить e-mail  

Статическая типизация в питоне

Утиную типизацию никто не заставляет использовать, наверное, имелась в виду динамическая? Тогда для описания сигнатур используют докстринги типа

 def __init__(self, foo, bar='baz'):
        """A really simple class.
        Args:
           foo (str): We all know what foo does.
        Kwargs:
           bar (str): Really, same as foo.
        """
IDE с них и парсят типы.
Есть еще аннотации, но питонокомьюнити затупило с ними. Да и они только для 3-й ветки

Отредактировано sergeek (Авг. 15, 2013 17:10:47)

Офлайн

#6 Авг. 15, 2013 17:44:51

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

Статическая типизация в питоне

sergeek
Вы правы. Утиная это и есть динамическая: «Если оно выглядит как утка, плавает как утка и крякает как утка, то это, наверное, и есть утка». :)



Отредактировано 4kpt (Авг. 15, 2013 17:45:01)

Офлайн

#7 Авг. 15, 2013 18:54:44

eugenk
Зарегистрирован: 2013-08-15
Сообщения: 12
Репутация: +  -1  -
Профиль   Отправить e-mail  

Статическая типизация в питоне

wbt, я даже скорее об IDE, чем о себе любимом. На яваскрипте это просто АдЪ, СодомЪ и Гоморра. Например я хочу описать панельку. В ней имеет место быть поле width, описывающее ширину. Допустим я хочу задать ширину равной 200. Но я описАлся и пишу вместо panel.width=200, panel.widht=200. Яваскрипт поймет это как то, что для объекта panel введено новое поле widht и ему присвоено значение 200. IDE этот момент не отловит. А поскольку язык не компилируемый, ошибка вылезет только при исполнении и может быть поймана только после долгого мозгофакства на тему почему оно не работает как надо. В С++, благодаря его статической типизации, оно будет выявлено еще при наборе кода с помощью IDE. Что будет на питоне - пока не знаю, ибо с классами еще не программировал. Но опыт использования драйвера для MongoDB, настраивает на довольно мрачные мысли.
sergeek, про аннотации читал. Увы, мне нужен питон именно второй ветки. С сигнатурами конечно попытаюсь, но это не спасает от библиотек, написанных без оных. С тем же драйвером MongoDB к примеру.

Офлайн

#8 Авг. 15, 2013 19:04:54

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

Статическая типизация в питоне

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

Как, например, мотоцикл.
- Не, хочу, чтобы он ездил задом???
- Хочешь задом - купи МТ с коляской.
- Да не мне нужен этот, и чтобы задом.
- Ну так он технически под это не затачивался.
- Ну а мне НАДО!!!!

P.S. Про минусы здесь писать не надо. Все и так их знают.
P.S.S. А меня бесит статическая типизация. Работал на делфях. Вспоминаю как страшный, кошмарный, ужасный, …., сон.



Отредактировано 4kpt (Авг. 15, 2013 19:05:19)

Офлайн

#9 Авг. 15, 2013 19:06:47

sergeek
Зарегистрирован: 2012-06-26
Сообщения: 470
Репутация: +  43  -
Профиль   Отправить e-mail  

Статическая типизация в питоне

Что будет на питоне - пока не знаю
тоже самое будет
В питоне вроде вообще все в рантайме происходит. Печально, да.

Офлайн

#10 Авг. 15, 2013 19:12:07

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

Статическая типизация в питоне

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



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version