Есть ли причина, по которой я не должен начинать с C # - PullRequest
11 голосов
/ 23 марта 2009

Я думаю, что склоняюсь к C # и .net как языку концентрации для изучения веб-разработки. Я хотел бы изучить хорошие основы программирования, и я посмотрел почти все остальное. Четыре, которые я сузил, это C #, Python, Ruby и PHP. Есть ли причина держаться подальше от C # (и я не думаю, что вопрос стоимости действительно применим к моей ситуации с соло-разработчиком, но я могу быть совершенно не прав). Есть мысли?

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

Ответы [ 19 ]

27 голосов
/ 23 марта 2009

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

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

Если вам абсолютно необходимо работать в Linux / Apache и вы не хотите использовать Mono, это будет причиной не использовать C #. Кроме этого, я не думаю, что есть веская причина не делать этого, особенно с ASP.NET MVC, который позволяет вам отойти от модели WebForms.

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

21 голосов
/ 23 марта 2009

Если вы используете C # для веб-разработки, в зависимости от вашего опыта работы с веб-технологиями, я бы искренне рекомендовал начать с ASP.NET MVC до ASP.NET Web Forms.

ASP.NET Web Forms - это оригинальный стиль построения приложений ASP.NET, который пытается абстрагировать многие детали. Он позволяет создавать приложения, не осознавая, что происходит под капотом (публикация данных, управление состоянием). На мой взгляд, эти абстракции, хотя и упрощают на первый взгляд, начинают «просачиваться», когда вы попадаете в более сложные сценарии (как этот урок доказывает ).

ASP.NET MVC , с другой стороны, упрощает создание веб-сайтов, которые намного "ближе к металлу", сохраняя при этом вашу производительность. Если вы хотите получить абсолютный контроль над получающимся HTML-кодом и не боитесь таких вещей, как файлы cookie, теги форм, данные записей и строк запросов, то вам может понравиться ASP.NET MVC гораздо больше.

Конечно, было бы полезно знать оба. Но если бы я начинал сейчас, я бы, вероятно, начал с MVC и перешел на формы (потом понял, насколько это плохо, и вернулся бы назад :)).

20 голосов
/ 23 марта 2009

Нет «лучшего языка над всеми». Вы используете один инструмент для той цели, для которой он был создан, поэтому есть несколько инструментов.

Поскольку ваш вопрос «почему бы не изучить C #» , я бы сказал:

  • Если вы планируете работать с другими ОС, тогда Windows (Mono не может сравнивать).
  • Если работаешь в окружении или с людьми, которые не дружат с сетью (например, банк, ученые)
  • Если вы работаете в env или с людьми, которые являются экспертами в других хороших технологиях (никогда не стоит недооценивать использование хорошего мастера).
  • Если вы считаете, что свободное программное обеспечение так важно, что использование продукта MS не стоит того.
  • Если вам не нравится MS Visual Studio (работа в c # без хорошей IDE - это боль).
  • Если вы планируете программировать то, для чего .net не подходит (например, встроенные устройства, скрипты, система реального времени, отказоустойчивая система, AI и т. Д.).
  • Если вы веб-разработчик и не можете позволить себе лицензию на Windows Server.
  • Если вы хотите научиться программированию с основами, включая простые функции и быстрые и грязные сценарии.

Теперь я программирую на Php, Python, Java и C #. Python - мой любимый язык, но c # - действительно первый инструмент программирования MS, который соблазнил меня: он чистый и эффективный. На самом деле речь идет о том, что вы хотите сделать, а не о религии.

Сделайте свой выбор.

Сказано, C # отстой и Python качается.

9 голосов
/ 23 марта 2009

Я согласен, C # - довольно полный язык, его синтаксис чистый и расширяемый. Уже доступно огромное количество веб-ресурсов, но это большое, но оно эффективно связывает вас с Windows как с вашей платформой. Для сети это особенно важно. На настольных компьютерах главное - окна, но на рынке веб-серверов это не так доминирует.

Еще одна побочная проблема: если вы просматриваете мультимедиа в Интернете, вы должны рассмотреть Flash и / или Silverlight. Если вы переходите на C #, то вы все равно используете Silverlight, не изучая другой язык.

7 голосов
/ 23 марта 2009

Не беспокойтесь о стоимости. Компилятор можно использовать бесплатно вместе с остальным пакетом Fx SDK, и вы даже можете бесплатно загрузить Visual Studio

7 голосов
/ 23 марта 2009

Недостатком изучения C # является то, что он связывает вас с проприетарной платформой и программным стеком. Теперь есть Mono, который хорошо выполняет большую часть C # и .Net, но основной и наиболее полной является несвободная реализация Microsoft.

Я недостаточно использовал C # для обсуждения технических достоинств Ruby или Python. Однако я могу сказать, что обучение использованию и даже внесению вклада в свободное программное обеспечение может быть весьма познавательным, в дополнение к другим преимуществам (подробно обсуждаемым в другом месте), которые предоставляет бесплатное программное обеспечение.

4 голосов
/ 23 марта 2009

c # - хороший язык для начала, потому что:

  1. Это очень хороший и очень чистый язык
  2. Имеет отличную библиотеку (.NET Framework). Это одна из самых важных вещей, которую следует учитывать при выборе языка.
  3. Он очень популярен, вы всегда сможете найти ответ, который ищете в сообществе.
  4. Если вы знаете c #, вы в значительной степени знаете VB.NET.
  5. c # синтаксически похож на Java. Изучение c # не научит вас библиотекам Java, но значительно сократит кривую обучения, если вы захотите войти в лагерь Java.
  6. c # синтаксически похож на c ++. Опять же, он использует другую библиотеку и в отличие от c ++ вы получаете управление памятью; но кривая обучения должна быть несколько уменьшена, если вы решите поиграть с с ++.

Что касается Интернета ...

ASP.NET webforms делает много магии для вас. ASP.NET MVC (только что выпущенный) не делает для вас почти никакой магии. Для обучения MVC - лучший выбор.

2 голосов
/ 23 марта 2009

C # отлично подходит для запуска, если вы занимаетесь веб-разработкой. Тем не менее, я рекомендую вам не начинать программирование с веб-разработки. Веб-разработка трудно понять правильно. Гораздо сложнее, чем маленькие вещи командной строки. Я рекомендую вам получить хороший опыт программирования для командной строки, а затем перейти к графическому интерфейсу и перейти к Интернету. В Интернете есть множество вещей, о которых вам нужно беспокоиться. Вы должны знать 3 языка (HTML, JS, C # (или вставить свой язык на стороне сервера здесь)). Кроме того, вам нужно беспокоиться обо всех причудах браузера и прочем. И это даже не попадая в базы данных. Который обычно используется в большинстве веб-приложений, но открывает целую другую банку с червями.

2 голосов
/ 23 марта 2009

Я думаю, что стоимость развертывания могла бы быть другой, то есть, если ваш проект должен масштабироваться горизонтально и добавлять больше серверов для балансировки нагрузки или даже для географически распределенных серверов. Обычно Windows-хостинг работает немного больше, чем Linux (даже без учета причин «пламенных войн»).

2 голосов
/ 23 марта 2009

C # - отличный язык для использования. А поскольку вы используете его, например, через Интернет, а не через настольные приложения, вам не нужно беспокоиться о многоплатформенности, поскольку код запускается на вашем сервере, а вывод доставляется клиентам. С учетом вышесказанного вам придется найти хостинг Windows (который иногда может быть немного дороже) или использовать моно (что не совсем обновленное программное обеспечение). Недостатки минимальны, возьмите копию экспресс-издания и сделайте это!

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