Comments 12
UFO just landed and posted this here
Возможно я задам глупый вопрос, так как только начинаю свой путь в разработке, прошу не серчать, и не минусовать, а просто объяснить:
зачем выбирать язык с динамической типизацией, а потом, по сути, приводить его к статической?
зачем выбирать язык с динамической типизацией, а потом, по сути, приводить его к статической?
0
- Выбирают потому, что кажется, что не надо будет думать об этом (ошибаются, конечно — типы не куда не деваются, просто тогда их в уме держать надо).
- На определенном этапе роста держать в уме эту метаинформацию не получается даже в отдельных участках кода.
- Сам Python объявляет это своей необычайной гибкостью и свободой. Ну может быть оно и так. К тому же, система типов MyPy намного гибче, чем у многих распространенных более статических ЯП.
- А еще обилие разных библиотек под Python, включая системные, научные и даже лучшие биндинги Qt.
0
у питона все хорошо с производительностью пока используешь функции основанные на си.
- иногда в проекте появляется узкое место в производительности и тогда либо переписывать на си этот участок либо это.
- + динамика да позволяет делает быстро многие вещи.
- но когда идет поиск ошибок и рефактор вполне удобно пройти добавить типы когда не спешишь и менеджер уже не стоит за душой
- Когда сам уже забыл какие параметры нужны твоей функции удобно видеть тип в подсказке. Конечно ты можешь передать параметры любых типов компиляция пройдет, но функция от этого не будет работать верно?
0
Все равно, исходя из сказанного, я категорически не понимаю — в чем преимущество (читай: «смысл») динамической типизации. Да, наверное, на коротких дистанциях — это дает некоторое преимущество в скорости разработки (все равно, не думаю, что это преимущество существенное), но ведь любой проект имеет свойство становиться больше и больше с течением времени, имеют свойство уходить старые разработчики, и приходить новые -> из всего этого следует, что выбор языка с динамической типизацией крайне недальновиден, и не имеет под собой никаких оснований.
Если я ошибаюсь — опять же, прошу объяснить, ибо, честно, я понимаю, что могу чего-то не понимать.
Если я ошибаюсь — опять же, прошу объяснить, ибо, честно, я понимаю, что могу чего-то не понимать.
0
Меньше порог вхождения, что позволяет студентам, ученым и devops программировать алгоритмы. Когда синтаксис простой проще сконцентрироваться на самом алгоритме и выше читаемость, а значит и проще разобраться, что он делает.
Единственное надо указать на вход типы и набор параметров, чтобы легче было применить функцию без копания в ней вообще и все. А те кто захочет разобраться код будет читаем. А читаемость кода тоже очень важный момент при больших проектах, рефракторах и т.д.
Если речь идет о веб то просто идет куча шаблонного кода выполнения запросов, где и так все понятно, там статика и не нужна.
Си может что угодно от ОС, драйверов до сайтов. Но подождите сайты на си делать конешно можно, но Очень геморойно. По этому каждый язык на самом деле под свою задачу.
Если тебе нужен овер стабильное и надежное мультиплатформенное приложение, или на андройд ты берешь JAVA. Если тебе надо чтобы программа супер быстро обрабатывала и ела немного ресурсов (особенно если нужно системить типо драйвер написать) ты берешь c/c++ (надеюсь что и rust добавится сюда), а если тебе надо сделать сайт, скрипт для бекапа, протестировать научный алгоритм, бота, парсер ты берешь питон, потому что это просто быстро и понятно! И то если вдруг у тебя узкое место ты можешь его переписать на си! Беспроигрышный вариант по моему мнению. Кроме того сам по себе как и доказывает статья питон не язык — это концепция языка. Он уже реализован десятками способов под разные оболочки в основном конечно на си, но и на java есть jpython. Вообще все потихоньку идет к универсальному языку в котором все моменты будут сбалансированы, на котором будет удобно делать и ОС и сайты. Даже называют питона прадедушкой такого языка.
Вообщем если сильно заморочится можно сидеть и не слазить практически с любого языка, вопрос в том как эффективнее решить задачу?
Питон решает эффективно очень широкий спектр задач, больше чем любой другой язык о котором я слышал, поэтому его учить и использовать эффективно. А эти все дополнения делают его применение ещё удобнее — если требуется.
В остальных случаях да — полная статика, но статику я буду использовать только в тех случаях когда вообще никак по другому не достигнуть требуемых параметров программы. Читаемость и универсальность лично для меня важнее. Учитывая как он развился и сколько способов придумали как, и что ускорить это требуется все меньше.
Вообщем я вижу современного прогера это питон + си + java (там где они действительно нужны).
Единственное надо указать на вход типы и набор параметров, чтобы легче было применить функцию без копания в ней вообще и все. А те кто захочет разобраться код будет читаем. А читаемость кода тоже очень важный момент при больших проектах, рефракторах и т.д.
Если речь идет о веб то просто идет куча шаблонного кода выполнения запросов, где и так все понятно, там статика и не нужна.
Си может что угодно от ОС, драйверов до сайтов. Но подождите сайты на си делать конешно можно, но Очень геморойно. По этому каждый язык на самом деле под свою задачу.
Если тебе нужен овер стабильное и надежное мультиплатформенное приложение, или на андройд ты берешь JAVA. Если тебе надо чтобы программа супер быстро обрабатывала и ела немного ресурсов (особенно если нужно системить типо драйвер написать) ты берешь c/c++ (надеюсь что и rust добавится сюда), а если тебе надо сделать сайт, скрипт для бекапа, протестировать научный алгоритм, бота, парсер ты берешь питон, потому что это просто быстро и понятно! И то если вдруг у тебя узкое место ты можешь его переписать на си! Беспроигрышный вариант по моему мнению. Кроме того сам по себе как и доказывает статья питон не язык — это концепция языка. Он уже реализован десятками способов под разные оболочки в основном конечно на си, но и на java есть jpython. Вообще все потихоньку идет к универсальному языку в котором все моменты будут сбалансированы, на котором будет удобно делать и ОС и сайты. Даже называют питона прадедушкой такого языка.
Вообщем если сильно заморочится можно сидеть и не слазить практически с любого языка, вопрос в том как эффективнее решить задачу?
Питон решает эффективно очень широкий спектр задач, больше чем любой другой язык о котором я слышал, поэтому его учить и использовать эффективно. А эти все дополнения делают его применение ещё удобнее — если требуется.
В остальных случаях да — полная статика, но статику я буду использовать только в тех случаях когда вообще никак по другому не достигнуть требуемых параметров программы. Читаемость и универсальность лично для меня важнее. Учитывая как он развился и сколько способов придумали как, и что ускорить это требуется все меньше.
Вообщем я вижу современного прогера это питон + си + java (там где они действительно нужны).
0
Вообщем я вижу современного прогера это питон + си + java (там где они действительно нужны).
iOS — не прогеры? ))
0
UFO just landed and posted this here
Возможно я задам глупый вопрос, так как только начинаю свой путь в разработке, прошу не серчать, и не минусовать, а просто объяснить:
зачем выбирать язык с динамической типизацией, а потом, по сути, приводить его к статической?
Для прототипирования язык с динамической типизацией удобнее.
0
Sign up to leave a comment.
Путь к проверке типов 4 миллионов строк Python-кода. Часть 3