Форум сайта python.su
> В 3 версии можно (опционально) указывать тип переменных функций и возвращаемого результата, переменных класса.
> Нужно что-то еще?
Я не говорил, что мне *нужна* статическая типизация, скорее, я бы хотел попробовать “как оно”, возможно, мне бы не понравилось. Если фантазировать в этом направлении, то кроме указывания типа переменных и возвращаемого результата, я бы хотел проверку этих типов на уровне интерпретатора (а не IDE), чтобы хотя бы в runtime ловить ошибки неправильных типов. Или py3k уже позволяет это делать? Я не совсем в курсе новинок третьей ветки.
Офлайн
lorienДля чего?
я бы хотел проверку этих типов на уровне интерпретатора (а не IDE), чтобы хотя бы в runtime ловить ошибки неправильных типов
Офлайн
lorienтам можно самому написать декоратор из пары строк для простой проверки в рантайме
> Или py3k уже позволяет это делать?.
Офлайн
В большинстве проектов я не пишу тестов. И code review некому делать т.к. часто я сам для себя пишу или я один в проекте работаю.
Офлайн
lorienи если получается что-то не очень продуманное, то оно оставляется, потому что переделывать долго
В большинстве проектов я не пишу тестов.
Офлайн
lorien
Можно использовать слоты (google: python __slot__), это такая хрень, которая оптимизирует потребление памяти объектами за счёт выкидывания __dict__ хреновины из объектов (не знаю, как по научному сказать). Я недавно стал прикручивать слоты в классы своей библиотеки Grab, судя по тестам она стала течь (memory leaks) меньше. Побочным эффектом использования слотов является то, что нельзя уже будет написать obj.widht вместо obj.width - выпадет ошибка т.к. widht не будет описан в слотах. Правда ошибка будет runtime, а не “compile time”, но уже неплохо.
Офлайн
LexanderВообще-то мне куда более интересно не с чем-то разбираться, а поручить это дело IDE. Ну есть у Вас скажем какой-то злобный класс с парой десятков если не поболее того полей. Вы пишете, что объект “черт с рогами” принадлежит к злобному классу. Потом в программе пишете черт_с_рогами и ставите точку. IDE сама открывает список автокомплита, из которого Вы выбираете нужное поле. Как это может работать без статической типизации, хотя бы опциональной - хоть убейте не понимаю. Во всяком случае работаю сейчас на PyCharm 2.7.3 самой последней сборки и с питоном и с яваскриптом. Оно пытается делать автокомплит, но выходит это более чем хреново. И ведь это жуткий монстр, брендового производителя, превосходящий по качеству VisualStudio, а не фигня какая-то ! Там даже вероятностные методы анализа и самообучение используются, чтобы определить неопределенный тип, как я понял из наблюдений ! А результат все равно как говорится, оставляет желать… Так что типизация, хотя бы на уровне аннотаций, по-моему штука абсолютно необходимая. Да, чтобы скажем посчитать корни квадратного уравнения, это излишне. Но когда проект достигает хотя бы нескольких тысяч строк, без нее по-моему просто не обойтись.
В остальном я против, т.к. толку мало (ну не заменит Python Java в корпоративной среде!), а мороки и лишней писанины типа объявления переменных - много.
Плюс стат. типизация помогает разобраться с длинными текстами, а для Питона длинные тексты - моветон.
Офлайн
Странно вообще видеть такие посты на форуме, я честно говоря рад даже что нет статической типизации.
Офлайн
война - фигня, главное - маневры
Сейчас полдня прописал в mcedit, случайно зашёл и не смог остановиться. При этом, у меня в mcedit стоит особая тема, чтобы отличать от другого mcedit. Фишка этой темы в том, что на гномовском терминале вообще ничего не видно. Практически не видно текста, а уж отличить точку от запятой и их обоих от пробела - нереально вообще. Если врубается подсветка, приходится HOME-F3-END-F3 делать, чтобы увидеть, что там написано. А так - в основном вслепую.
При этом нормального буфера обмена в mcedit нет, особо не покопипастишь (к счастью). Если зашёл глубоко по иерархии, то нужно возвращаться, чтобы запустить, а потом ещё вспоминать, откуда вернулся.
Так что мне ваши проблемы IDE, не IDE - непонятны. И от количества строк тут ничего не зависит - чем больше мусора в коде, тем больше его в любом случае придётся держать в голове - ide ничего не заменяет и ничего В ПОНИМАНИИ не упрощает. Она только даёт разные финтифлюшки.
А что забирает? (по сравнению с mc?). Этап подготовки - 0, я на любом linux/*bsd могу сразу сесть и начать что-то делать, а не мучаться. Этап запуска - 0, у меня все файлы в панели, не нужно что-то открывать, за чем-то следить, что-то создавать. Скорость работы редактора - максимальная, никаких приостановок и задумчивостей. Все команды python - под рукой, не отрывая рук набрал python/ipython и запустил консоль. Аналогично с созданием тестовых или рабочих файлов, аналогично с копированием файлов и других шаблонов. Все команды hg - под рукой, не нужно их искать, не нужно искать, куда их вводить, они вводятся на-месте. Meta-? - поиск по директории, опять же без подготовки.
А вы говорите ide. На ide надейся, она тебе и нагородит. Для логики и для web, где чертить не надо, лучше самому понимать и помнить, что происходит,
Офлайн
А я на sublime - text2 перешел, мне очень нравятся возможности по обработке текста в целом, чего стоит только ctrl+d, ctrl+k…
Офлайн