Выяснение правильного языка для работы: переход от C # - PullRequest
4 голосов
/ 19 сентября 2008

Я работаю в среде Microsoft, поэтому я могу использовать свой молоток C # на любых ногтях, которые мне попадутся. При этом, какие языки (скомпилированные, интерпретируемые, скриптовые, функциональные, любые типы!) Дополняют знание C # и для каких целей? Например, я переместил многие функции сценариев из скомпилированных консольных приложений в сценарии Powershell. Если вы разработчик MS, нашли ли вы в своем мире нишу для других языков, таких как F #, IronRuby, IronPython или что-то подобное, и какую нишу они заполняют?

Примечание: этот вопрос адресован разработчикам Microsoft, так как я не могу убежать и начать устанавливать стеки LAMP вокруг своей компании, и поэтому вынужден поддерживать его вечно. :) Тем не менее, не стесняйтесь упоминать любые другие языки, которые показались вам интересными для выполнения определенной задачи / роли в вашем мире, помимо вашего основного языка.

Ответы [ 14 ]

7 голосов
/ 19 сентября 2008

Python / Perl / Ruby / PowerShell - отличные дополнения к C # / VB.NET. Если ваш босс вручает вам текстовый файл и говорит вставить его в базу данных один или два раза, то любой из Perl / Python / Ruby (я не уверен насчет powershell, но я думаю, что это не намного сложнее) должен подойти разбери это. В любом случае, для ваших основных приложений вы, вероятно, застряли в C #. Вы можете использовать один из более динамичных языков для генерации кода в C #.

Поскольку вы находитесь в среде Microsoft, вероятно, ваш лучший шанс на принятие вашего решения - это PowerShell. Рядом с этим я бы сказал IronPython или что-то еще, что интегрируется с CLR. Но главная проблема заключается в том, что для того, чтобы кто-то другой поддерживал то, что вы делаете, он должен знать, какой язык вы используете. В будущем у MS есть планы использовать PowerShell гораздо чаще, поэтому, вероятно, легче обосновать PowerShell, чем Python / Perl / Ruby.

Если вы обрабатываете текстовый файл только один раз. Или создание одноразового генератора кода, который сгенерирует весь код и затем намеревается сохранить сгенерированный код, тогда это не имеет значения. Вы - тот, кто будет использовать результаты, и если вы сэкономите время, используя Perl, тогда вы получите больше энергии. Но если вы делаете что-то, что будет использоваться снова и снова (например, генератор активного кода, где вы изменяете шаблоны и запускаете генератор вместо обслуживания сгенерированного кода), тогда другим разработчикам, работающим над тем, что вы сделали, нужно будет знать язык ты использовал. Гораздо сложнее спорить, изучая Perl / Ruby / Python в магазине Microsoft. Но PowerShell кажется более легким аргументом. Я думаю, что основной план MS заключается в том, что со временем приложения будут предоставлять больше функциональности для Power Shell через командлеты. Если предположить, что это произойдет, то PowerShell станет еще более легкой задачей, поскольку он предоставит тонны функциональных возможностей, доступных для сценариев, которых вы не получите другим способом.

5 голосов
/ 19 сентября 2008

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

2 голосов
/ 19 сентября 2008

Поскольку вы находитесь в магазине MS, я бы предложил PowerShell в качестве достойного языка сценариев для изучения. Хорошо играет с C #. Я тоже большой поклонник Ruby.

2 голосов
/ 19 сентября 2008

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

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

1 голос
/ 11 декабря 2008

Если вы используете .Net framework, язык действительно не важен, так как компилятор и интерпретатор в любом случае создают один и тот же код IL.

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

1 голос
/ 05 декабря 2008

Возможно, поиграйте с Бу и посмотрите, что вы думаете.
Бу на Codehaus.org
Бу в Википедии

1 голос
/ 19 сентября 2008

Я бы хотел второй или третий питон. В частности, IronPython (ttp: //www.codeplex.com/Wiki/View.aspx? ProjectName = IronPython) позволяет изучать Python, но также дает вам доступ к вкусностям .net framework.

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

1 голос
/ 19 сентября 2008

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

0 голосов
/ 11 декабря 2008

Чтобы выучить новый язык, дополняющий C #, я бы пошел с C ++. Вы можете использовать его в стиле «лучше, чем p / invoke», чтобы получить доступ к неуправляемому коду из ваших приложений на C #. Затем вы можете начать использовать его для записи приложений с ограниченным объемом памяти и / или критичных к производительности битов, если вы обнаружите, что некоторые из ваших приложений .NET начинают загружать всю оперативную память и / или ЦП или просто не так быстро тебе бы хотелось.

0 голосов
/ 05 декабря 2008

Проверьте Boo - он работает поверх стека .NET, но его синтаксис больше похож на Python.

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