Прочитайте это, если вы хотите знать, что лучше для вас, чтобы учиться

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

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

Веб-приложения, нативные приложения, настольные приложения. С этой точки зрения C# лучше, чем Java.

C# произносится как "до-диез" и использует в основном Windows в качестве платформы. Много лет назад этот единственный факт был бы для вас явным знаком, чтобы вы не узнавали его, но с тех пор времена изменились. Microsoft (владелец Windows) снова крутая компания. Под руководством ее генерального директора Наделы многие вещи действительно удавались.

Язык программирования Java используется в основном в крупных корпорациях. Он был разработан в Sun Microsystems, компании, которая сейчас принадлежит Oracle. Его основная продвигаемая характеристика — WORA: «Напиши один раз, работай где угодно». Сегодня он очень популярен, но его корпоративные родители полны бюрократии, и его развитие несколько застопорилось.

Давайте предположим, что вашими мотивами для обучения программированию являются: а) получить хорошо оплачиваемую работу и/или б) создать новый Facebook. Если это так, то вы должны выбрать маршрут С#. Главным образом потому, что это надежный вариант с динамичной, современной, хорошо управляемой технологической компанией:

  • Платформа .NET: это хорошо разработанная и мощная платформа. С ним у вас есть доступ к очень полному движку форм, такому же, как VisualBasic (VB) уже много лет. C# позволяет вам взаимодействовать с любым другим языком на платформе .NET.
  • Современный язык: C# — это модернизированная версия C++, которая появилась для добавления объектной ориентации в C, а C++ стал языком создания «настоящих» приложений для Windows. C# расширяет эту возможность, принимая во внимание глобальный переход от настольных приложений к веб-приложениям.
  • Безопасность типов. C# является типобезопасным, что означает, что вы не можете использовать неинициализированные переменные. Его компилятор уведомит вас, если вы попытаетесь использовать переменную до того, как вы инициализируете ее некоторым допустимым значением. Это поможет вам избежать возможных ошибок.
  • Объектно-ориентированный. В C# философия объектно-ориентированного (ОО) доведена до крайности. Даже простые типы данных можно рассматривать как объекты!
  • Простой синтаксис. C# пытается упростить синтаксис, чтобы сделать его более последовательным и логичным, а также удалить некоторые из более сложных функций старых языков. Например, в C# нет указателей. И как типобезопасный язык, C# не позволяет напрямую манипулировать памятью.
  • Управление памятью. Используя схему сборки мусора .NET, C# также устраняет проблемы с управлением памятью. Элементы, на которые больше нет ссылок, помечаются для сборки мусора, и платформа может освободить эту память по мере необходимости.
  • Гениальный ход Microsoft: Microsoft выпустила C# для ECMA (примите это, Java-разработчики!) и опубликовала его в качестве стандарта. Кроме того, проект Mono — это попытка создать версию .NET Framework с открытым исходным кодом (ее подмножество, называемое CLI) и версию C# с открытым исходным кодом, все для Linux. Это вызвало благосклонность в сообществах разработчиков открытого исходного кода.

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

Моя последняя рекомендация такова: не тратьте свое драгоценное время и переходите на C#.