Re[8]: Shareware на Python?
От: andyag  
Дата: 08.02.15 11:00
Оценка:
Здравствуйте, eskimo82, Вы писали:

E>Здравствуйте, eskimo82, Вы писали:


A>>>Сопровождаемость, неразрастание требований к квалификации программиста, которому позже придётся в этот код вносить изменения. Программистов знающих язык A всегда больше, чем программистов знающих одновременно A и B.

A>>>Неразрастание требований к рабочему месту — отсутствие необходимости ставить и конфигурировать десяток инструментов. Неразрастание инфраструктуры для сборки и деплоймента.
E>>Если нет возможности нанять квалифицированных програмистов, то имеет смысл посмотреть на интерпретируемые языки-песочницы. И неуходиь из них. Это очевидно.

Что такое "интерпретируемые языки-песочницы"?
Ещё раз — есть проект на C#, есть команда из 10 программистов, которые неплохо этот самый C# умеют. Вопрос — зачем в проект тащить Python, который, может быть, из этих 10 человек умеют двое?

A>>>Если проект _уже_ существует как "проект на C#", очевидно, что переносимость не рассматривается как ценность.

A>>>Ещё вопросы?
E>>Зачем вам Python ? В том плане, что он даст для отладки алгоритмов, по сравнению с шарпом ?

При дизайне какой-то фичи обычно можно выделить "интересующую часть" — собственно где сама фичность, и "неинтересующую часть" — интеграция с внешним миром. Из-за того, что в Python стандартная библиотека значительно круче стандартной библиотеки .NET, "неинтересующую часть" сделать на нём чаще бывает намного легче и быстрее, соответственно больше времени будет для "интересующей части". Вот несколько примеров:

1. У Python из коробки есть поддержка чисел с неограниченной разрядностью. Для .NET наверняка есть библиотека, но её нужно гуглить и ставить.
2. У Python из коробки есть возможность сравнивать файлы и папки. Для .NET наверняка есть библиотека, но её нужно гуглить и ставить.
3. У Python из коробки есть возможность использовать SQLite. У .NET есть SQLServer CE, но его нужно ставить отдельно.
4. У Python из коробки есть поддержка CSV, JSON, XML. У .NET из коробки только XML, для CSV и JSON — как обычно есть какие-то библиотеки.

Возьмём например задачу — из нескольких разных мест в интернете выкачать датасеты в разных форматах, как-то их проанализировать и выплюнуть результат в формате XML. Вот фича — это "проанализировать", а выкачать и сохранить результат — это рутина. В Python я могу в 5 строчек написать выкачивание, ещё в 5 — сохранение в базу, ещё в 3 — сохранение в XML. Это пишется за 5 минут без гугла и без геморроя с подключением левых библиотек. Далее я сажусь и пишу собственно "анализ данных". Более того, если мне захочется влезть в середину этой программы и попробовать добавлять/отключать какие-то датасеты или корректировать анализ, я могу это сделать в командной строке интерпретатора. На самом деле я могу вообще всё это проделать в командной строке.

В случае с .NET мне нужно будет подключить несколько библиотек, некоторые из которых могут оказаться "очень гибкими" и потребуют от меня кучи строчек кода, чтобы описать мою конкретную ситуацию. Далее, на каждое изменение в коде мне нужно будет перезапускать всю программу.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.