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

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

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

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

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

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

Ответ 1

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

Неа.

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

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

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

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


Изменить: некоторые Python в истории спасения.

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


Изменить: "босс вызвал ME для исследования", "выяснить, как мы можем его использовать" изменяет все.

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

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

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

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

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

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

Ответ 2

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

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

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

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

Ответ 3

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

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

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

Ответ 4

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

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

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

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

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

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

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

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

Ответ 5

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

Несмотря на то, что Python - мой текущий язык выбора, я боюсь, что окажусь на стороне вашего босса! К сожалению.

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

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

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

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

Ответ 6

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

  • Google App Engine
  • SciPy
  • pywinauto
  • Джанго

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

Ответ 7

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

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

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

Не только это, но и Python применяет "красивый" код, и вам не нужно выполнять всю процедуру кода/компиляции. С IronPython вы можете просто закодировать на Python и использовать его как есть; просто еще один инструмент .NET.

Ответ 8

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

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

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

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

Удачи,:)

Ответ 9

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

Ответ 10

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

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