Здравствуйте, kaa.python, Вы писали:
KP>Здравствуйте, andyag, Вы писали:
A>>Zen of Python неявно существует в абсолютно любом ЯП. Главное чтобы автор кода верил, что придерживается этого дзена — тогда у него есть гармония. Но читатели кода часто несогласны, что написанный код имеет какое-то отношение к дзену и вульгарно называют код — говнокодом.
KP>Философия языков сильно разница. Наиболее важно то, какой политики (философии) придерживаются те, кто работает над развитием самого языка.
Пример философии тех, кто работает над развитием самого языка: "а нахрен щас поломаем совместимость, зато будет круче". С другой стороны, про "дзен" я регулярно слышу только в контексте Python — в любом другом ЯП об этом просто не говорят, хотя ценности вполне разделяют.
A>>Это снова что-то сильно субъективное. Если оно не мешает вашим кейзам, это не значит, что оно не мешает вообще. Это как-то нездорово — чувствовать себя спокойно, когда знаешь, что завтра может понадобиться какая-то библиотека для XXX, которой может не быть для Python 3, в то время как остальная часть проекта уже написана именно на 3. Это просто ненормально.
KP>Проблемы с совместимостью имеют только наиболее сложные библиотеки с большими специфическими для платформ фрагментами. Если на этапе старта проекта подумать о его архитектуре, то подобные ограничения будут видны еще до тех пор, пока появилась первая функция нового проекта. И, возможно, проект начнется не с выбора Python 3, а 2.7.
Давайте без "если". Практически любой говнокод на Java, который работал на 1.5 будет работать и на 1.8 — разница между ними 10 лет. Почему Python может позволять себе ломать совместимость и не получать за это минус?
A>>Просто чтобы я мог оценить ваше высказывание в полной мере — когда вы говорите "не самый лучший", какой "самый лучший" вы имеете в виду?
KP>Например мне куда больше Maven нравится. Лично я его считаю образцовым решением.
Maven мне тоже нравится. Хорошо — ваша оценка для pip понятна.
A>>Не понял с чем вы спорите — я сказал почти то же самое. Более того, тут вы подтверждаете мое самое первое утверждение — "С практической точки зрения нет смысла рассматривать Python как самостоятельный инструмент".
KP>Где? Что-то мне кажется, кое-кто пытается выдать собственную мысль, с которой я не согласен, за мою
Цитирую ваше высказывание:
Нет-нет и еще раз нет. Python можно и нужно рассматривать как основной кандидат для написания не критичной ко скорости логики. Именно по тем причинам, что я привел в самом начале.
А вот моё:
С практической точки зрения нет смысла рассматривать Python как самостоятельный инструмент.
В обоих случаях посыл один и тот же — "не стоит на Python делать всё". Или я ваше отверждение неправильно читаю?
A>>И нафига мне алгоритм на Python, если остальной код написан, например, на C#? Проясню ситуацию: я делаю какой-то проект на C#, возникает необходимость запилить какой-то не очень тривиальный алгоритм. Я хочу сначала пощупать этот алгоритм, проверить на разных данных, порисовать какие-то графики — в этом случае я возьму Python. Но как только нащупаюсь, перепишу всё на C#.
KP>А нафига тебе код на этом одноплатформенном недоразумении?
А у меня какой-то продукт для облегчения управления инфраструктурой Microsoft. Или чистилка реестра Windows. Или умная качалка апдейтов для Windows. Вариантов много, ни в одном случае переносимость не будет плюсом.
A>>Ни разу не спорю, что можно. Вопрос в том, какая должна быть мотивация, чтобы выбрать Python, а не что-то другое.
KP>1) Простой;
Бейсик тоже простой. Для меня, например, Java и C# — очень простые языки после C++

С другой стороны один приятель недавно пытался изучить программирование и начал с Python — где-то в районе первой 1000 строк кода полезла путаница с типами, все прелести динамической типизации. Нельзя сказать, что ему было _просто_ осознать и побороть этот феномен.
KP>2) Кроссплатформенный;
Бейсик тоже кроссплатформенный. А ещё JavaScript, Java, Scala, Groovy, Ruby.
KP>3) Со встроенной разумной защитой от write-only кода.
Расскажите пожалуйста подробнее. Я искренне не верю, что в языке с динамической типизацией этот консёрн может хоть как-то покрываться. Более того, видел много примеров write-only даже в случае статически типизрованных языков.
A>>Тут снова достаточно возразить, что у Ruby как минимум нет проблем 2 vs. 3, огроменный централизованный репозиторий с кучей библиотек и тот самый, упомянутый вами, RoR. Даже если согласиться, что Ruby и Python примерно одинаковы, окей, почему Python, а не Ruby?
KP>Когда я смотрел на Ruby и думал не взять ли его вместо Python, то мне не понравилось: 1) довольно специфический синтаксис, кмк должен провоцировать write-only стиль разработки,
У Python синаксис не менее специфический, если учесть что мейнстримные языки все со скобочками. Такой синтаксис может нравиться или не нравиться — это да, но в любом случае он специфический.
KP>2) отсутствие сопоставимых по качеству и широте использования с Python математических библиотек, 3) отсутствие сопоставимых по качеству и широте использования с Python AI-ориентированных библиотек,
Про эксклюзивные библиотеки я написал в своём самом первом сообщении — это безусловно перевес.
KP>4) сильная заточенность под Web (то, что мне вообще не нужно).
В чём именно проявляется заточенность под web? Если немного походить по rubygems.org, можно найти много сильно не-вебных библиотек вроде 3D геометрии, работы с MIDI — вроде кто-то ими даже пользуется.