Мне нужна действительно веская причина использовать Python

Я пытался обосновать использование Python в своей работе. Мы используем C# и ASP.NET практически для всей нашей разработки. 80% и более наших проектов - это веб-приложения. Кажется естественным, что мы рассмотрим некоторые из хороших динамических веб-языков (Ruby, Python и т.д.), и я начал серьезно исследовать такие вещи, как IronRuby и IronPython.

Я люблю Python. Это красивый, выразительный язык. Конечно, писать код - удовольствие. Множество модулей и фреймворков Python делают его очень привлекательным. Проблема в том, что я не могу думать о каких-либо конкретных проблемах, каких-либо конкретных препятствиях, которые могли бы вызвать требовать в языке вроде Python. ASP.NET дает нам RAD, он дает нам полнофункциональную структуру и все такое хорошее. Кроме того, мы все уже знаем C# и имеем множество проектов на C#, изучение нового языка просто потому что не совсем работает.

Не могли бы вы помочь мне придумать что-нибудь, чтобы наконец убедить моего босса действительно изучить Python и начать использовать его в проектах?

Обновлено: я знаю, что для решения любой проблемы требуется только один язык, я просто имел в виду, есть ли какие-то конкретные проблемы, в которых динамические языки превосходят статические языки.

Изменить еще раз: позвольте мне также упомянуть, что мой босс побудил меня расследовать это. Он потратил часы на то, чтобы исследовать эти языки, найти хороший, изучить его, а затем выяснить, как мы можем его использовать. Я здесь на последнем этапе, мне не нужна лекция о том, почему я должен учитывать свою мотивацию для изменения того, что делает моя компания, потому что они делают это по определенной причине.

«Отредактируйте еще раз: позвольте мне также упомянуть, что мой босс побудил меня расследовать это». «Мне не нужна лекция» Если вам не нужна лекция, предоставьте ВСЕ факты заранее. Это изменение делает ваш вопрос не совсем точным.

S.Lott 30.10.2008 13:15
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
12
1
3 750
10
Перейти к ответу Данный вопрос помечен как решенный

Ответы 10

Практически не проблема требует для конкретного языка программирования, просто все не так.

Самый простой способ внедрить новый язык в такую ​​среду, как ваша, - начать новый рабочий проект в удобное для вас время на новом языке. Заставьте его делать то, что вам нужно, и напишите это в удобное для вас время. Используйте его сами, и другие люди, вероятно, это заметят. Затем они говорят: "Вы можете прислать мне эту программу?" и бум, они используют ваш новый язык.

Если вы действительно чего-то хотите, я бы, вероятно, написал сайт на Django просто потому, что его интерфейс администратора поражает всех.

Главное помнить, что если вы начнете использовать python, это еще одна вещь, которую все остальные должны выучить, и это еще один пункт, который должен быть в резюме каждого потенциального сотрудника. Это может обойтись дорого, и руководству это не понравится.

Есть ли какие-то конкретные проблемы, которые Python решает лучше, проще и т. д.? Я знаю, что для решения любой проблемы <b> требуется </b> язык, это не то, что я имел в виду, я просто имел в виду некоторые общие "препятствия" или что-то еще, что динамические языки могут работать лучше, чем статические языки.

goldenratio 30.10.2008 05:08

Определенно есть вещи, которые легче сделать на python, вопрос: «Легче ли выучить совершенно новый язык, чем просто реализовать его на том, что мы знаем?»

Harley Holcombe 30.10.2008 05:10

Я также должен упомянуть, что на моей предыдущей должности я реализовал сайт Django и несколько программ на Python в среде .Net, и хотя это было здорово для меня, и компания значительно выиграла, как только я ушел, они были немного в затруднительном положении. , и знали ли они, что я делаю, когда начинал ...

Harley Holcombe 30.10.2008 05:12

... они, вероятно, не согласились бы с этим. К тому времени, когда они поняли, что половина компании зависит от Python ... ну, половина компании зависит от Python.

Harley Holcombe 30.10.2008 05:12
Ответ принят как подходящий

«Ребята, вы можете помочь мне придумать что-нибудь, чтобы наконец убедить моего босса действительно изучить Python и начать использовать его в проектах?»

Неа.

Нет ничего лучше успеха. Используйте Python. Быть успешным. Заставляйте людей ревновать.

Когда вас спросят, почему вы добились успеха, вы можете поговорить о Python. Не раньше, чем.

Выбирайте проекты с умом: вещи, в которых динамический язык имеет значительные преимущества. Вещи, где требования нет подробно изложены. Такие вещи, как преобразование данных, очистка файлов журнала и сверхсложная замена файлов BAT.

Используйте Python, чтобы начать делать что-то полезное, пока все остальные пытаются собрать достаточно информации о бизнесе и предметной области для запуска проекта по разработке сложной конструкции MVC.


Обновлено: некоторые истории о Python для спасения.

И это только я.


Обновлено: «босс побудил меня расследовать», «выяснить, как мы можем его использовать» меняет все.

Фраза «наконец убедить моего босса по-настоящему изучить Python» вводит в заблуждение. Вы не плывете против течения. См. Как сделать бизнес-обоснование для Python для задачи «убедить моего босса». В редактировании говорится, что вы прошли эту фазу.

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

  • Требования не определены полностью. С динамическим языком вы можете приступить к работе. Ремонт не помешает. С Java (а также с C++ и C#) вы не хотите заниматься разрушительными изменениями дизайна, потому что трудно все сломать и заставить его скомпилировать и снова заработать. В Python разрушительные изменения не так дороги.

  • Дизайн находится в постоянном движении, потому что вы не можете выбирать компоненты. Вы можете очень легко писать обертки и фасады на Python. Это язык сценариев. И модули Python очень просто объединяются в более крупные агрегаты.

  • Кодирование постоянно меняется, потому что требования и дизайн постоянно меняются. Это сценарий - не компилируется. Вы просто вносите изменения в код, и все готово. Тестирование проще, потому что рабочий цикл короче. Это не тест компиляции кода, это тест кода.

  • Тестирование постоянно меняется, потому что требования постоянно меняются. То же, что и выше. Рабочий цикл короче и быстрее.

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

goldenratio 30.10.2008 05:16

Can you guys help me think of something to finally convince my boss to really learn Python and start using it on projects?

К сожалению, нет. Как сказал Харли, нет проблем с требовать на конкретном языке. Подход, предложенный Харли, также хорош. Учитесь в свое время, создайте полезное приложение в свое время, и, может быть, просто возможно, кто-то на вашей работе захочет его использовать, ему понравится, понравится, а затем захочется узнать о нем больше.

Другой подход, который вы могли бы использовать, - это лучше понять, почему ваша компания использует .Net (следовательно, Windows Server и, возможно, SQL Server) почти для всей разработки. Как только вы хорошо поймете, почему они не открыты для других языков, у вас появится некоторая огневая мощь, чтобы построить бизнес-обоснование для вопроса «почему бы и нет?».

Зачем платить за лицензию, если у вас есть инструменты, которые позволяют делать то же самое? Существуют бесплатные альтернативы, такие как Python, которые работают на бесплатных серверах.

Почему бы не дать вашей команде шанс пополнить свой профессиональный портфель инструментов? Это мое мнение, но хороший разработчик - это разработчик, который не боится изучать новые способы делать то же самое, что и раньше.

Но, в конце концов, я бы не стал оправдывать твоих надежд. В итоге внедрение нового языка / среды в ИТ-магазин стоит денег. Будь то программное обеспечение, обучение или перевод сотрудников, использование единого языка в компании и его соблюдение имеют бизнес-причины.

Я нахожусь в том же сценарии, что и вы. Я работаю в магазине .Net, и в ближайшее время это не изменится. Я живу, работая над собственными проектами в «свободное» время. Мне это нравится, и это обеспечивает хороший баланс.

Надеюсь это поможет.

Сделайте шаг назад и посмотрите на свой подход. «Я знаю, каким хочу получить ответ, но не могу найти никаких доказательств, подтверждающих его».

Несмотря на то, что в настоящее время я предпочитаю Python, я боюсь, что окажусь на стороне вашего босса! Извиняюсь.

Я думаю, вам следует открыться и рассмотреть все варианты, исходя из интересов вашей организации, и посмотреть, не придете ли вы к другому выводу о том, какой язык лучше всего.

Выбор языка зависит от множества факторов, и то, насколько он красив, довольно незначительный. Наличие персонала является ключевым моментом. Стоимость переобучения, наличие библиотек и мета-инструментов, производительность и т. д. И т. Д.

После того, как вы примете во внимание все факторы (а не только «Ооо! Было бы весело!») И дадите сбалансированную оценку (а не заранее определенный ответ), вы можете обнаружить, что ваш босс более склонен слушать.

p.s. Предложение тайно использовать Python для рабочего кода и оставить компанию с ужасной задолженностью по коду на языке, к которому они не готовы, мне кажется очень непрофессиональным.

О, ну, я должен упомянуть, что мой босс побудил МЕНЯ расследовать это, но я на его стороне, и мне нужна причина, чтобы использовать это в первую очередь. Я не стараюсь изо всех сил, понимаете, мне просто очень нравится питон, и было бы здорово использовать его на работе. Но да, он спросил меня об этом, и я выучил это ...

goldenratio 30.10.2008 05:26

Скрытность языка часто выполняется путем автоматизации утомительных ручных задач (особенно динамических языков / языков сценариев, таких как Python / Ruby и т. д.). Настройте его так, чтобы что-то вроде развертывания сборок, перетасовки резервных копий или чего-то еще, сделанного с Python.

Затем небрежно поясните, насколько легко это было сделать, и попытайтесь распространить немного энтузиазма вокруг.

Принятие и осведомленность должны постепенно расти из этого, и прежде чем вы это узнаете, руководство серьезно рассматривает Python для нового проекта.

Лучшее преимущество, которое вы, вероятно, будете иметь, - это инструменты и библиотеки; как указывали другие, требуется не предназначен для решения какой-либо конкретной программы. Итак, давайте посмотрим, что можно использовать с помощью Python:

  • Google App Engine
  • SciPy
  • Pywinauto
  • джанго

Это не в моей голове; поиск того, что применимо к вашей команде и вашей компании, остается в качестве упражнения для задающего вопросы :)

Что ж, вот вид о том, почему программисты Python делают лучших программистов на Java; концепции во многом такие же, как и для вашей ситуации.

По сути, люди, которые изучают язык, потому что хотят показать, что им нравится программировать, любят узнавать новое и с большей вероятностью будут мыслить нестандартно.

...if a company chooses to write its software in a comparatively esoteric language, they'll be able to hire better programmers, because they'll attract only those who cared enough to learn it. And for programmers the paradox is even more pronounced: the language to learn, if you want to get a good job, is a language that people don't learn merely to get a job.

Более того, Python обеспечивает «красивый» код, и вам не нужно выполнять всю процедуру кода / компиляции. Используя IronPython, вы можете просто написать код на Python и использовать его как есть; просто еще один инструмент .NET.

Язык почти никогда не является ключом к успеху. Хорошие программисты могут успешно владеть множеством языков, и вы найдете успешные проекты практически на любом языке. Вы не найдете столько неудач, потому что эти проекты просто уходят, чтобы о них больше никогда не слышать. Если вы ищете новый язык, потому что у вас нет хороших программистов, даже лучший язык в мире вам не поможет.

И вы ничего не сказали о том, что делаете. Python может быть хорошим выбором, потому что он имеет хорошо поддерживаемые и широко используемые библиотеки, которые для вас важны. С другой стороны, C# может лучше поддерживать то, что вы хотите делать. Инструмент вне контекста не имеет внутренних достоинств. Вы можете любить отвертки, но это не поможет вам грести в лодке.

Если вы хотите использовать Python или любой другой язык только потому, что он вам нравится, будьте честны с собой и окружающими. Похоже, вы приняли решение переключиться, не знаете, почему вы меняете, и теперь вам нужно рационализировать его с помощью причин, которые не имеют ничего общего с вашим желанием переключиться. Если бы у вас была веская причина, вы бы здесь не спрашивали :)

Однако это не так уж и плохо. Программирование - это человеческое предприятие. Если программисты (на любом уровне) безумно любят определенный язык, независимо от того, насколько глупая причина, они, вероятно, будут производить больше. Но это просто не технологическое решение.

Удачи, :)

Python получил хороший старт в мире Java как Jython для модульного тестирования. Фактически, многие люди, занимающиеся Java, впервые начали использовать его именно таким образом. Благодаря своей динамической природе сценариев он отлично подходит для модульных тестов. Буквально вчера мне хотелось использовать его или что-то подобное для модульных тестов, которые я писал для проекта VB.Net. Я должен сказать, что речь идет не столько об отдельных языках IronRuby или IronPython, сколько о стиле разработки, который они обеспечивают. Вы можете написать статический язык, такой как код, на любом из них, но вы не ощутите в полной мере преимущества, пока не начнете думать динамически. Как только вы усвоите эти концепции, вы начнете постепенно менять способ кодирования, и ваши проекты потребуют меньше классов и меньше кода для реализации. Тестирование, особенно модульные тесты, станет обязательным, поскольку вы отказываетесь от теплого одеяла, известного как компилятор с проверками безопасности типов, для другой эффективности.

Я почти уверен (на 100%), что вам, по крайней мере, не нужно использовать Python для MS Windows.

В случае других платформ вы можете использовать любой язык, который вам нравится.

Другие вопросы по теме