Мне нужна действительно веская причина для использования Python - PullRequest
11 голосов
/ 30 октября 2008

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

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

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

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

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

Ответы [ 10 ]

28 голосов
/ 30 октября 2008

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

Нет.

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

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

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

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


Редактировать: Некоторые истории Python to the Rescue.

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


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

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

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

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

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

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

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

12 голосов
/ 30 октября 2008

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

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

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

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

6 голосов
/ 30 октября 2008

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

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

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

3 голосов
/ 30 октября 2008

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

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

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

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

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

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

3 голосов
/ 30 октября 2008

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

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

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

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

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

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

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

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

2 голосов
/ 30 октября 2008

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

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

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

1 голос
/ 30 октября 2008

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

1 голос
/ 30 октября 2008

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

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

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

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

Удачи,:)

1 голос
/ 30 октября 2008

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

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

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

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

0 голосов
/ 05 мая 2016

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...