C# глазами java


Содержание

Java или C#, что нужнее сейчас и в перспективе? [закрыт]

Мне 17 лет. Встал выбор. Либо Java (android, кроссплатформа), либо C# (wpf, windows phone). Веб откинул сразу — пробовал , не понравилось. Опыт работы с обеими платформами примерно одинаков (одинаково мал) — пришло как раз время выбирать направление. С# и дотнет импонируют документацией msdn, студией, синтаксическим сахаром шарпа и активным развитием. Java в свою очередь — более «правильной» реализацией платформы (написано под старое — запускается на новом), простотой языка без лишних изысков, оупенсорсностью :) По статистике, на Украине и то, и другое востребовано примерно на одном уровне. Что чаще нужно в мелком городе? Что лучше на перспективу? Кому легче устроится без опыта? Кого чаще берут на удаленку? Во фрилансе что нужнее? Поделитесь своими наблюдениями. UPD: android + Java и desktop + C#. Думаю, что пойдёт, то и моё.

Закрыт по причине того, что необходимо переформулировать вопрос так, чтобы можно было дать объективно верный ответ участниками Kyubey, awesoon, Ella Svetlaya, dizballanze, Alexey Shtanko 13 июн ’15 в 6:23 .

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

Заблокирован участником Nick Volynkin ♦ 24 янв ’16 в 11:04 .

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

Подробнее о заблокированных сообщениях здесь.

7 ответов 7

(Я активный сторонник C#, моё мнение предвзято.)

  • Хорошо и быстро развивающийся язык. LINQ и async/await ещё долго будут вне пределов досягаемости других мейнстримовых языков.
  • Платформа Windows Phone сейчас растёт, под неё понадобятся приложения, которые уже есть под iOS и Android. Рынок пока не заполнен, можно рискнуть и выиграть.
  • WPF — один из немногих вменяемых декстопных GUI-фреймворков. Java в этом плане сильно отстаёт.
  • Андроид всё же самая популярная мобильная ось на текущий момент.
  • Энтерпрайз пишется в основном на Java.

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

Кстати, а где вы нашли отсутствие обратной совместимости в .NET?

Учи алгоритмы и ООП. А выбор платформы это уже дело техники и личных предпочтений. У джавы свои дыры, у шарпа свои. Это практически холивар по данному вопросу.

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

Молодой человек, вы сначала определитесь с логикой: то вы ищете то что востребованнее то вы ищете, что вам нравится (веб пробовал не понравилось, Java или C# что востребованнее. ). Корень лежит там — в этой логике. В вашем возрасте важнее, мне кажется, все таки логика «нравится — не нравится», а не «нужнее — не нужнее». По той простой причине, что то что нравится и получается лучше. В плане денег и шарп и джава примерно одного плана. Джава более международнее что ли разве что, а шарп поместечковее. Как то так.

Из вашего опуса вижу, кстати, что Java вам нравится поболее dot Net. Так что делайте выводы.

Я — разработчик на C#, но посоветовал бы автору изучать Java. Desktop-приложения — это умирающее направление разработки, все переходит либо в web, либо на мобильные приложения.

C# для Windows — это как Objective-C для Mac OS. C# активно развивает Microsoft и делает это очень хорошо и что не говори, но приложения написанные на C# будут всегда лучше всех работать на Windows. Это своего рода сфокусированный на Windows язык программирования, как и Objective-C для Mac OS. Просто при выборе C# не надо пытаться разрабатывать кростплатформенные приложения (используя всякие «Mono» и т.п.). И сегодня сделав выбор в сторону C# ни как не проиграешь. Ну а то что сегодняшний программист должен знать хотя бы пару языков, говорить думаю не стоит.

В Java нет структур, в топку её.

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

Структуры хранятся в stack’е (но в куче, если массив). Выделение памяти в stack’е происходит очень быстро: stack – заранее выделенный буфер памяти, в котором просто резервируется место по размеру структуры (в основном, на этапе компиляции) путём уменьшения значения в stack pointer (уменьшения, т.к. данные в stack’е хранятся задом-наперёд). Когда функция завершает свою работу, то «освобождение» всех переменных в stack’е происходит один махом путём увеличения указателя stack pointer на количество байт, необходимых для переменных. А выделение и освобождение памяти в куче – это огромное количество операций, в отличие от простого вычитания и суммирования.

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

Структуры, поля которых – только value types, легко сериализовать в массив байт и обратно.

А еще Java-компилятор не оптимизирует хвостовую рекурсию

JAVA ИЛИ C#. ЧТО ВЫБРАТЬ?

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

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

Общие сведения

Оба языка, C# и Java, — это усовершенствованный С++.

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

Java был создан под именем Oak Java в 1990 году американской компанией Sun Microsystems. В 1995 году была представлена первая бета-версия этого языка.

C# появился в 2000 году. Вскоре, в 2002, вышла первая версия фреймворка .Net, который поддерживался этим языком программирования.

Java был разработан на основе Objective-C и C, а базой языка C# выступили C++ и Java. Однако, несмотря на своё название, C# ближе к Java, чем к C++.

С точки зрения разработчика, Java и C# имеют почти идентичную структуру. Оба языка строго типизированы и объектно-ориентированы. Много функций позаимствованы из синтаксиса C++, однако эти языки проще для изучения начинающим.

Java и C# можно сравнить по следующим характеристикам:

  • синтаксическая основа;
  • механизм работы с динамическими данными;
  • объектные средства;
  • типы данных;
  • полезные функции.

Механизм работы с динамическими данными и сборкой мусора

Оба языка имеют схожую модель работы с динамическими данными: объекты создаются динамически с помощью конструкции “new”. Среда выполнения отслеживает наличие ссылок на них. Сборщики мусора периодически очищают память объектов, у которых нет ссылок.

В Java и C# есть сильные и слабые ссылки на объекты. Оба языка поддерживают метод финализатора. Из-за неопределенности момента удаления объекта, финализаторы не могут использоваться для освобождения системных ресурсов, занимаемых объектом. Это заставляет создавать дополнительные методы для объекта “cleaning” и вызывать их явно.


В Java 7 добавлена структура «try-with-resources», которая обеспечивает автоматическую очистку, аналогичную C#.

Java позволяет регистрировать слушателя (“listener”), который будет получать сообщения, когда ссылка подвергается сборке мусора, что улучшает производительность класса WeakHashMap.

Объектные средства

Код и данные могут быть описаны только внутри класса.

Инкапсуляция
В Java модификатор “protected”, помимо доступа из классов-потомков, разрешает доступ ко всем классам, находящимся в том же пакете, что и владелец класса.

В C# для объектов, которые должны быть видимыми в диапазоне сборки (примерный аналог пакета Java), был введен отдельный модификатор “internal” (аналог «default» в Java). Модификатор «protected» сохраняет свой первоначальный смысл от C++ — доступ только от классов-потомков.
Также возможно комбинирование модификаторов “internal” и “protected”.

Внутренние классы
Оба языка позволяют определять класс в классе.
В Java внутренние классы используются для эмуляции замыканий. Они имеют доступ к нестатическим элементам родительского класса. Также, в пределах метода, можно определить локальные классы, которые имеют доступ на чтение к локальным переменным; безымянные (анонимные) локальные классы, которые фактически позволяют создавать экземпляры объектов и интерфейсов, а также методы перекрытия класса непосредственно в месте их использования.

В C# есть замыкания и лямбды. Подход C# больше напоминает C++: внутренние классы доступны только для статических элементов внешнего класса. Для доступа в нестатические элементы необходимо явно указать экземпляр внешнего класса. В C# не поддерживаются локальные внутренние классы.
Лямбда-выражения появляются в версии Java 8.

Методы
В обоих языках методы определяются функциями класса. Тело метода локализовано в описании класса. Поддерживаются статические и абстрактные методы.
В C# существует очевидная реализация методов интерфейса, которая позволяет любому классу реализовывать их отдельно от своих собственных методов или давать различные реализации одноименных методов, принадлежащих двум разным интерфейсам.

В Java 8 появляется оператор “default”, который позволяет определить реализацию методов интерфейса “по умолчанию”. Таким образом, класс интерфейса избавляется от обязательства реализации методов по умолчанию, но может заместить их.

Виртуальные методы
C# повторяет концепцию виртуальных методов C++: виртуальные методы могут быть объявлены с ключевым словом “virtual”, другие методы не являются виртуальными. Более того, C# требует явного объявления перекрытия виртуального метода в производном классе с помощью ключевого слова «override».

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

Типы данных

Java и C# могут относиться к нескольким типам

Примитивные типы
Оба языка поддерживают идею примитивных типов (в C# они являются подмножеством типов-значений) и обеспечивают автоматическую “упаковку” (“boxing”) и “распаковку” (“unboxing”).
Количество примитивных типов в C# больше, чем в Java за счет беззнаковых (“unsigned”) целых типов.
Язык Java, для упрощения, отказался от большинства беззнаковых типов.

В C# возможно рассмотрение примитивных типов как объектов, и это одна из причин, которая делает его популярным.

Перечисляемые типы
Перечисляемые типы в C# происходят от примитивных целочисленных типов.
В Java перечисляемые типы представлены как классы, а их значения — как объекты.

Параметризированные (обобщенные) типы
В обоих языках типы могут быть параметризированны, и это поддерживает парадигму обобщенного программирования.
Обобщение типов в Java — всего лишь лингвистическая структура, которые реализуются только на компиляторе.

C# выбрал другой путь. Поддержка обобщения была интегрирована в виртуальную среду выполнения, впервые появившуюся в .NET 2.0. Язык здесь — это только внешний интерфейс для доступа к этим функциям среды.

Мы рассмотрели основные характеристики наиболее популярных языков программирования, и теперь самое время сравнить Java и C # через призму их полезных функций.

Преимущества C#

Лямбда-функции
Также, как и анонимные внутренние классы в Java, C# обеспечивает более эффективные лямбда-функции.
Это удобный метод для определения объекта анонимной функции непосредственно в точке вызова или передачи функции в качестве аргумента. Как правило, лямбда-выражения используются для инкапсуляции передаваемых в алгоритмы или асинхронных методов нескольких строк кода.

Делегаты
Делегаты используются в качестве методов для указания на другие методы. В Java тоже есть такая функция, но в C# она проще.

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

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

Поддержка ключевого слова “yield”
С помощью “yield” можно определить генератор. Используя генератор, можно создавать вычисления последовательностей «на лету», что помогает сэкономить память и выполнять вычисления бесконечных последовательностей.

Расширение методов
Это удобный способ расширения существующих классов, даже если они готовы без реального расширения

Поддержка “?? Operator”
Он предлагает простой синтаксис для получения значения ссылочного типа.

Основываясь на вышеперечисленных функциях, можно убедиться, что C# — продвинутый язык программирования, который был создан для решения различных задач высокой сложности.

Преимущества Java

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

Большая история
Язык Java существует на рынке с 1995 года, поэтому сегодня он широко изучен и предлагает сотни решений и технологий.

Упрощенная версия C#
Все разработчики, изучающие C++ и Java, очень близки к этому языку. Java изучается на основе C++ и достаточно лёгок. Более того, Java является простым, предсказуемым и минималистичным. Новые функции представлены очень основательно.

Доступные цены
Сильная интегрированная среда разработки, как, например, “ IntelliJ IDEA” — вершина эволюции средств разработки, и она намного дешевле, чем Visual Studio Ultimate для C#.

Кросс-платформенность
Приложения работают буквально на всём: от суперкомпьютеров до смарт-карт. Особенно хорошо запускаются на бесплатном Linux и FreeBSD.

Илон Маск рекомендует:  Что такое код cpdf_setrgbcolor

Изобилие библиотек
Существует около 350 гигабайт библиотек, доступных в Maven Repository . Можно найти любую для чего угодно, и, в большинстве своём, бесплатно!

Сторонники Java
Java — самый популярный язык программирования, что является причиной большого количества Java-программистов. Для него также существует официальная сертификация SCJP ( Sun Certified Java Programmer).

Полная обратная совместимость
Java имеет полную обратную совместимость с API и ABI ранних версий. Ни один язык не сможет похвастаться такой совместимостью, даже C#. Java эффективно используется в корпоративной сфере для больших проектов, занимая очень сильную позицию.

Выводы

Мы конструктивно и тщательно рассмотрели структуру, функции и преимущества Java и C#. Пока еще нелегко без сомнений ответить, какой язык лучше. Выбор очень зависит от конкретного разработчика, его стиля и опыта. Мы можем только сравнить функциональности обоих языков и, в соответствии с конкретной задачей, рекомендовать Java или C# в качестве наиболее подходящего языка по его производительности. Вполне вероятно, что когда-нибудь эти языки сможет заменить какой-нибудь более универсальный, но на сегодняшний день, Java и C# могут называться основой современного программирования.

suhorukov.com

Сравнение Java и С# — тема многочисленных интернет-баталий и холиваров. Этому противостоянию даже посвящена своя отдельная страничка в Википедии. Схватка в умах разработчиков началась давно и она, кажется, вышла зрелищнее, чем борьба Android с iOS. Но на сегодняшний день страсти вроде бы улеглись. Каждый язык занял свое место и развивается согласно собственной концепции.


Вот тут то мы и решили подвести черту. Не будем сравнивать языки с точки зрения вакансий и коммерческих перспектив. Просто спросим у наших экспертов, преподающих в IT-Академии, об их ключевых отличиях и идеях. Может быть, пора заключить перемирие?

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

Степан Яковенко, архитектор программного обеспечения в компании “LFIRON” (Словакия), более 10 лет опыта работы на Java, преподаватель курса Java Developer:

Язык C# приятен тем, что там больше синтаксического сахара, проще вызывать виндовые DLL. Мы портировали большой проект с C# на Java и выяснили, что C# работает с файловой системой значительно быстрее; в Java чтение из файла по байтам — разорительная операция.

С другой стороны, Java — более открытая технология. Если у вас появилась проблема с компонентом или средой, то шансов открыть их и исправить самостоятельно больше, чем в случае с более закрытыми решениями Microsoft, хотя и там это тоже иногда возможно. Мне это тяжело сейчас оценивать, но раньше цена входа для новичка в C# была ниже.

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

Где-то в курсе математики доказывается, что все языки программирования эквивалентны. Ограничение Java как языка — это необходимость что-то делать чересчур быстро, например, потоково сжимать графику или работать с очень большими объектами, которые из-за накладных расходов лучше хранить в куче (heap) C/C++. Но если требования к производительности умеренные, то, в принципе, можно достигнуть высокой нагрузки и на Java.

Олег Колесников, Software Engineer, Axmor Software, Inc, Новосибирск, программирует на языках C++/C#, преподаватель курса C# (C Sharp) онлайн:

С# — это очень хорошо продуманный высокоуровневый объектно-ориентированный язык программирования. На платформе .Net можно реализовать любое приложение: от оконной Windows программы (при помощи современной технологии WCF) и современных веб сайтов (с помощью ASP.NET) до мобильных и облачных приложений. Формально владение языком C# позволяет разрабатывать приложения для любой платформы и операционной системы. Например, компания Xamarin активно развивает проект Mono — реализацию .Net для UNIX-подобных операционных систем. Таким образом, можно сказать, что язык C# успешно конкурирует с другими языками программирования. Он не лучше и не хуже других языков, он просто занимает свою долю рынка, причем очень приличную.

Все эти языки реализуют идею объектно-ориентированного программирования. C#, как и Java является JIT-компилируемым языком, т.е. в процессе компиляции программы создаётся промежуточный байт-код, а в процессе выполнения самой программы, среда исполнения компилирует этот байт-код в машинные команды. Такой подход позволяет разрабатывать кроссплатформенные приложения, в отличие от C++, где для каждой отдельной платформы, скорее всего, придется написать своё приложение. Тем не менее, хорошо написанная программа на С++ будет производительнее аналога, написанного на языке с JIT-компиляцией. Что касается конкуренции между Java и C#, я думаю, что последний развивается быстрее благодаря стараниям компании Microsoft.

Николай Толстокулаков, старший преподаватель Факультета Информационных Технологий в НГУ, более 11 лет опыта разработки на Java, преподаватель курса Advanced Java with EE (Java для опытных):

Никто из них не умрет в ближайшее десятилетие. Самый острый этап конкуренции между ними тоже позади лет десять как. У каждого языка есть свои области, в которых они уже прочно обосновались. Конкуренция и обмен идеями между ними пошла на пользу обоим. Сфера применения Java гораздо шире и рынок программистов больше. Формально есть Tiobe index, где рейтинг отличается в три раза. Основное применение C# пока так и ограничивается Windows-платформами, но их доля на мобильном рынке ничтожна, а на серверном рынке испытывает давление со стороны Linux. Такие компании, как Google, Facebook, Twitter, строят свой бизнес из сотен тысяч серверов без использования Windows & .Net/C#. Значение desktop падает из-за планшетов. Альтернативные решения с использованием C# за пределами Windows есть, но особой популярности не завоевали.

Границы применимости Java — работа на низком уровне с hardware, ядром операционной системы, системы реального времени и там, где требуется выжать из железа все, что можно, и даже чуть больше. Стартапы, если речь идет не об Android, а о Web-сервисах, чаще используют другие технологии (PHP, JavaScript, Python, Ruby).

А вот интеграция разнородных распределенных систем — сильная сторона Java-платформы. Это связано, на мой взгляд, с двумя вещами: кроссплатформенностью самого Java и наличием библиотек интеграции практически со всеми системами и сервисами. Также производительность JVM и множество библиотек позволяют заниматься трансформациями данных при интеграции разнородных систем из самых экзотических форматов.

Заключение

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

5 языков, которые следует выучить после Java

Вот 5 языков программирования, которые после Java произведут наименьший негативный эффект:

C# — язык, с которым так или иначе сталкивался любой выпускник кафедры программирования (тем более опытный разработчик). Именно поэтому многие согласятся, что, не считая языков, транслируемых в JVM, это наиболее схожий представитель. Кроме того, C# востребован, а это важное условие, если вы собираетесь монетизировать свои знания.

Что общего: очень сложно удержаться от цитирования статьи на Википедии, поэтому вот вам факты.

Оба языка так или иначе являются развитием C++. Более того, создатели C# называют свой язык развитием Java. Кроме того, оба языка строго следуют принципам ООП.

А еще у них похожий синтаксис:

public class HelloWorld
<
public static void main(String[] args) <
System.out.println(«Hello World!»);
>
>

// HelloWorld.cs
public class HelloWorld
<
public static void Main()
<
System.Console.WriteLine(«Hello World!»);
>
>

И у Java, и у C# типизация строгая, что в известной степени способствует повышению безопасности в области использования памяти. Еще у языков похожие алгоритмы сборки мусора. Ещё один важный схожий момент, прекрасно характеризующий оба языка. Наконец, оба они кроссплатформенны. Изучение этого языка рекомендуем начать с нашего базового интенсива по Си Шарп.

От чего захочется ругаться: Microsoft и естественная завязанность на их экосистему.

Swift

Если вы изучили Java для разработки мобильных приложений, то Swift станет логичным карьерным развитием. Более того, не так давно слухи упорно связывали будущее платформы Android со Swift, однако в итоге Google отстояло свое право на использование Java. Впрочем, кто поставит свой компьютер на то, что в дальнейшем Google не свернет с этого курса? В любом случае, умение писать “правильные” приложения для iOS лишним точно не будет.

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

От чего хочется ругаться: подобно C#, экосистема Apple может вызывать отторжение.

Kotlin

Сахар для синтаксиса — распространенное мнение относительно Kotlin у разработчиков Java, ознакомившихся с ним лишь поверхностно. Куда более совершенный язык и наиболее очевидный преемник Java из существующих — утверждают люди, посвятившие изучению Kotlin чуть больше времени. В любом случае, как бы не сложилось ваше знакомство, равнодушным останитесь вряд ли.

Что общего: создатели не скрывают, что Kotlin является доработкой Java с перспективой полного замещения. То есть фактически Kotlin сочетает всё то, за что вы полюбили Java, но при этом ещё удобнее, безопаснее и функциональнее. Работает с виртуальной машиной JVM.

От чего хочется ругаться: и кому нужна Java, если есть Kotlin?

Python

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

Что общего: практически ничего, кроме некоторых общих принципов ООП и кроссплатформености.

От чего хочется ругаться: слишком далеко от привычного понимания о программировании.

Возвращаясь к теме возможного отказа Google от Java в своем мобильном будущем, стоит всерьез рассмотреть вариант развития событий, при котором наследником станет Go. Пока что язык здорово проявляет себя в привычной среде Big Data, то есть сегодня, как минимум, Go может послужить полезным расширением для функциональности вашего приложения. Но если Go продолжит развиваться заданными темпами, а Google решится на внутреннюю революцию, то знание этого языка станет не бонусом, а практически необходимостью. Кстати, пару лет назад один из создателей Go, выложил в сеть интересную презентацию с названием “Go для Java-программистов”. Рекомендуется к просмотру.

Что общего: формально общего здесь примерно столько же, сколько и в случае с C#: происхождение от языка C, строгая типизация, алгоритмы очистки памяти, схожие методы, интерфейсы и многое другое. Но, как язык, созданный почти через 15 лет после Java и через 10 после C#, Go он куда совершеннее, функциональнее и перспективнее.

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

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

Вот 5 языков программирования, которые после Java произведут наименьший негативный эффект:


C# — язык, с которым так или иначе сталкивался любой выпускник кафедры программирования (тем более опытный разработчик). Именно поэтому многие согласятся, что, не считая языков, транслируемых в JVM, это наиболее схожий представитель. Кроме того, C# востребован, а это важное условие, если вы собираетесь монетизировать свои знания.

Что общего: очень сложно удержаться от цитирования статьи на Википедии, поэтому вот вам факты.

Оба языка так или иначе являются развитием C++. Более того, создатели C# называют свой язык развитием Java. Кроме того, оба языка строго следуют принципам ООП.

А еще у них похожий синтаксис:

public class HelloWorld
<
public static void main(String[] args) <
System.out.println(«Hello World!»);
>
>

// HelloWorld.cs
public class HelloWorld
<
public static void Main()
<
System.Console.WriteLine(«Hello World!»);
>
>

И у Java, и у C# типизация строгая, что в известной степени способствует повышению безопасности в области использования памяти. Еще у языков похожие алгоритмы сборки мусора. Ещё один важный схожий момент, прекрасно характеризующий оба языка. Наконец, оба они кроссплатформенны. Изучение этого языка рекомендуем начать с нашего базового интенсива по Си Шарп.

От чего захочется ругаться: Microsoft и естественная завязанность на их экосистему.

Swift

Если вы изучили Java для разработки мобильных приложений, то Swift станет логичным карьерным развитием. Более того, не так давно слухи упорно связывали будущее платформы Android со Swift, однако в итоге Google отстояло свое право на использование Java. Впрочем, кто поставит свой компьютер на то, что в дальнейшем Google не свернет с этого курса? В любом случае, умение писать “правильные” приложения для iOS лишним точно не будет.

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

От чего хочется ругаться: подобно C#, экосистема Apple может вызывать отторжение.

Kotlin

Сахар для синтаксиса — распространенное мнение относительно Kotlin у разработчиков Java, ознакомившихся с ним лишь поверхностно. Куда более совершенный язык и наиболее очевидный преемник Java из существующих — утверждают люди, посвятившие изучению Kotlin чуть больше времени. В любом случае, как бы не сложилось ваше знакомство, равнодушным останитесь вряд ли.

Что общего: создатели не скрывают, что Kotlin является доработкой Java с перспективой полного замещения. То есть фактически Kotlin сочетает всё то, за что вы полюбили Java, но при этом ещё удобнее, безопаснее и функциональнее. Работает с виртуальной машиной JVM.

От чего хочется ругаться: и кому нужна Java, если есть Kotlin?

Python

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

Что общего: практически ничего, кроме некоторых общих принципов ООП и кроссплатформености.

От чего хочется ругаться: слишком далеко от привычного понимания о программировании.

Возвращаясь к теме возможного отказа Google от Java в своем мобильном будущем, стоит всерьез рассмотреть вариант развития событий, при котором наследником станет Go. Пока что язык здорово проявляет себя в привычной среде Big Data, то есть сегодня, как минимум, Go может послужить полезным расширением для функциональности вашего приложения. Но если Go продолжит развиваться заданными темпами, а Google решится на внутреннюю революцию, то знание этого языка станет не бонусом, а практически необходимостью. Кстати, пару лет назад один из создателей Go, выложил в сеть интересную презентацию с названием “Go для Java-программистов”. Рекомендуется к просмотру.

Илон Маск рекомендует:  Что такое код define

Что общего: формально общего здесь примерно столько же, сколько и в случае с C#: происхождение от языка C, строгая типизация, алгоритмы очистки памяти, схожие методы, интерфейсы и многое другое. Но, как язык, созданный почти через 15 лет после Java и через 10 после C#, Go он куда совершеннее, функциональнее и перспективнее.

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

В чём разница?

Разница между C# и Java

Основное отличие между C# (Си шарп) и Java (Ява) заключается в том, что программы на C# работают в среде Common Language Runtime (CLR), а на Java работают в виртуальной машине Java (JVM).

C# и Java являются популярными языками программирования, которые имеют много общего. Оба поддерживают объектно-ориентированное программирование, которое помогает легко моделировать реальные сценарии. Используя C# и Java, программист может реализовать многопоточность для повышения производительности приложения. У них также есть автоматические сборщики мусора для эффективного управления памятью. Кроме того, оба языка основаны на языке Си.

Содержание

  1. Обзор и основные отличия
  2. Что такое C# — определение, функциональность
  3. Что такое Java — определение, функциональность
  4. Сходства между C # и Java
  5. В чем разница между C# и Java
  6. Заключение

Что такое C#

C# — это современный язык программирования общего назначения, разработанный Microsoft и принадлежащий .NET Framework. Он помогает в разработке различных приложений, включая Windows, веб, распределенные приложения и веб-сервисы. Кроме того, .NET Framework состоит из Common Language Runtime (CLR). Он управляет и выполняет код, написанный на любом языке программирования .NET. Следовательно, программы на C# требуют CLR для их выполнения.

В целом, на языке C# существуют различные концепции программирования. Он поддерживает делегаты, которые являются указателями на безопасный тип метода. Индексатор позволяет индексировать объект как массив. Кроме того, есть также свойства LINQ и многие другие функции.

Что такое Java

Подобно C#, Java также является языком программирования общего назначения высокого уровня. Он используется для разработки различных приложений, таких как веб, мобильные и высокопроизводительные распределенные системы. Существуют различные версии, доступные на Java. Стандартная версия помогает разрабатывать настольные приложения, в то время как Enterprise Edition (Java EE) используется для веб-разработки, а Java Mobile Edition (Java ME) — для разработки мобильных приложений.

Кроме того, когда программист пишет исходный код на Java, он преобразуется в промежуточный язык, называемый байт-кодом. И этот код работает на любой машине с виртуальной машиной Java (JVM). Таким образом, это делает Java платформно-независимым языком.


Сходства между C# и Java

  • Во-первых, оба поддерживают объектно-ориентированное программирование (ООП).
  • Во-вторых, у обоих есть автоматические сборщики мусора.
  • В-третьих, языки C# и Java поддерживают многопоточность.
  • В-четвертых, оба языка основаны на языке Си.
  • Кроме того, можно подключить приложения C# и Java к системам управления базами данных, таким как MySQL и MSSQL.

В чем разница между C# и Java

Определение

C# — это многоцелевой язык программирования общего назначения, включающий строгую типизацию и поддерживающий объектно-ориентированное программирование. Напротив, Java является языком программирования общего назначения, который является параллельным, объектно-ориентированным и разработан специально, чтобы иметь как можно меньше зависимостей реализации. Таким образом, это принципиальная разница между C # и Java.

Разработчик

C# был разработан Microsoft, тогда как Java была разработана Sun Microsystem.

Рабочая среда программы

Основное различие между C# и Java заключается в том, что программы на C# работают в среде Common Language Runtime (CLR), а программы Java — на виртуальной машине Java (JVM).

Перегрузка оператора

Кроме того, важное отличие между C# и Java состоит в том, что C# поддерживает перегрузку операторов, тогда как Java не поддерживает перегрузку операторов.

Свойства класса

В языке C# есть свойства класса. Однако в Java нет свойств класса.

Делегаты

Кроме того, C# поддерживает делегаты, но Java не поддерживает делегаты.

Основные IDE

Основной IDE для разработки на C# является Visual Studio, а основными IDE для разработки на Java являются Eclipse и NetBeans.

Оператор goto

C# поддерживает оператор goto, и в Java нет оператора goto.

Структуры и объединения

Наконец, C# поддерживает структуры и объединения, в то время как в Java нет концепции структур и объединений.

Заключение

Вкратце, Java и C# являются двумя основными языками программирования высокого уровня. Основное отличие между C# и Java заключается в том, что программы на C# работают в среде Common Language Runtime (CLR), а Java — в виртуальной машине Java (JVM). В целом, программист может выбрать любой из этих языков в соответствии с приложением для разработки.

C# против Java

Сегодня прочитал следующее письмо, которое пролежало в ящике несколько дней (простите, все не было времени прочитать и ответить)

Михаил, привет. Изучаю Библию С#, спасибо за книгу. Но уже несколько человек сказали мне, что я нуб, и гораздо перспективнее начинать серьезно учить Java, так как работы больше, зарплаты выше и перспектив у языка больше. Поэтому хотел бы с тобой посоветоваться: с одной стороны Microsoft все-таки посильнее чем Oracle и C# развивается намного быстрее, но Java кроссплатформенный, а при сегодняшнем буме планшетов и смартфонов это большой плюс. Что ты думаешь по этому поводу? Какие перспективы у .NET? Какие тенденции в западных странах? Тема очень холиварная,!

Тема действительно халиварная, поэтому в комментах старайтесь высказывать мнение без оскорбления стороны противников.

Я никогда не выбирал язык за перспективность. Когда я выбрал Delphi, то это было потому, что мне нравился Паскаль и его перевоплощение в виде Delphi. Если бы я смотрел на перспективу, то выбрал бы C++, потому что Delphi популярен в России, немного в Германии и еще паре стран. В северной Америке полно народу, которые даже не знают о его существовании. Мне нравится C++ и я его использовал, но душа больше лежала на стороне Delphi.

Я выбрал C# не потому, что он перспективнее Java, а потому что мне он больше нравится. Я пытался изучать Java, несколько раз заставлял себя, но не смог ничего серьезного на нем написать. Ну не мое это, раздражает меня этот язык и вся платформа. Это личные предпочтения каждого. Если тебе нравится этот язык, то пиши на Java, если нравиться C# то пиши на C#. Но какой бы язык ты не выбрал, я бы просто на всякий случай изучал бы второй из них. Просто на всякий пожарный случай.

Лично я свои яйца разделил на две корзины (было больно, но я потерпел) – PHP и C#. Если какая-то из этих корзин упадет, то хотя бы с одним яичком я останусь. Хотя я все же в обеих корзинах уверен.

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

А вот теперь к халивару – перспективность языков. Если посмотреть на компании, которые поддерживают каждую из сторон, то Microsoft выглядит мелким школьником, потому что на противоположной стороне расположились такие гиганты как Oracle, Google и мега любитель Java корпорация IBM. Если сложить эти три кита, то Microsoft превращается в гонца за пивом. Но если посмотреть на историю, то гонцами становятся как раз киты.

Компания IBM любит Java и поддерживает ее уже долгие годы, но при этом Java практически не развивается и по разным рейтингам популярности этот язык во всех сферах летит вниз. И если бы не Google со своим Андроидом, то Java потеряла бы еще больше. Oracle вообще не особо влияет на судьбу языка. Они и не могут сильно повлиять, потому что они выпускают сервера (достались от Sun) и базы данных, поэтому на популярность платформы Java не могут сильно повлиять. А вот Google может и смог.

Я считаю, что только благодаря мобильной платформе и корпоративному рынку SAP систем язык еще жив (это только мое больное воображение после шока от разделения яиц). На рынке создания Web сайтов Java практически не используется, потому что он неудобен (опять же, мой больной взгляд). Тут властвует PHP и будет королем еще долгие годы. Все эти руби на рельсах, как камары на костылях появляются каждый год и кричат что они убийцы, а на самом деле через некоторое время превращаются в лузеров и так ничего и не захватывают.

На настольной платформе Java тоже не смог ничего показать. Этот язык на много старше .NET, но на .NET уже написано в несколько раз больше.

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

Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


C# или Java? Какой язык программирования тебе больше подходит?

Если вы пытаетесь найти исчерпывающее сравнение C# или Java – вы попали по адресу! Может быть действительно трудно выбрать только один язык программирования для изучения, когда вы только начинаете в области программирования (или компьютерных наук в целом). В то время как университеты и колледжи имеют свои собственные программы, на которых они изучают языки программирования, тем кто изучает самостоятельно может быть тяжело найти что-то конкретное. Именно здесь поэтому существуют статьи-сравнения как эта – вы не только узнаете (по крайней мере) о двух языках программирования (их плюсах и минусах и т. д.). Но и можете выбрать тот, который подойдет вам лучше всего.

В самом начале мы поговорим о каждом из двух языков. Мы не будем вдаваться в подробности, но у вас будет возможность узнать основные сведения о каждом из них. Узнав основы C # и Java, мы выведем критерии для сравнения C# или Java. Наконец, в самом конце мы проведем само сравнение.

Введение

Независимо от того, знакомы ли вы со всеми тонкостями программирования или вы впервые слышите о C# или Java – будет полезно прочитать краткое введение в оба языка. Преимущества довольно очевидны, если вы новичок – вы сможете развить довольно хорошее понимание обоих языков, прежде чем перейти к реальному сравнению.

Если вы уже являетесь опытным программистом, возможно, вам все же будет полезно пересмотреть базовые сведения о Java и C# (Си шарп). Чем лучше вы разбираетесь в программировании, тем более автоматизированной становится ваша работа – вы больше не задумываетесь о большей части того, что делаете, это становится мышечной памятью и привычкой. Вот почему повторение – мать учения.

Тем не менее, давайте начнем нашу статью про C# или Java с рассмотрения Java.

Создание Java началось в 1991 году. Его создали Джеймс Гослинг, Майк Шеридан и Патрик Нотон. До сегодняшнего дня он наиболее широко известен своим лозунгом WORA – напиши один раз, запускай где угодно (write once, run anywhere). Этот слоган используется для описания универсальности Java – код, написанный на Java, может использоваться на многих различных платформах.

Вся концепция Java заключалась в том, что она должна быть объектно-ориентированной, простой, знакомой и безопасной. Все четыре из этих принципов являются краеугольными камнями, на которых построен язык. Синтаксис Java схож с синтаксисом языков программирования C и C++. Это связано с тем, что C и C++ были самыми популярными языками программирования в начале 90-х годов.

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

Обсудив и описав основные моменты Java, давайте продолжим эту статью о C# или Java, рассказав о C#.

C#, созданный Андерсом Хейлсбергом в 2001 году, является языком программирования общего назначения. Он имеет высокий уровень абстракции и поддерживает множество различных дисциплин программирования.

Как и Java, язык программирования C# – это объектно-ориентированный язык программирования (также известный как ООП). Это действительно важный момент, если мы говорим о сравнении C# или Java – языки ООП в какой-то мере стали нормой в мире программирования. Объектно-ориентированный язык фокусируется на объектах и ​​классах вместо того, чтобы акцентировать внимание на логике, которая их определяет. Это позволяет программистам повторно использовать свой код для более поздних, различных проектов и делает процесс программирования в целом более плавным.

Если вы, как разработчик C #, решите использовать Visual C #, у вас также будет встроенный редактор кода. Многие программисты любят язык программирования C#, потому что он очень универсален. Си шарп был создан в Microsoft! Это не только гарантирует отличную производительность, но также означает, что язык хорошо документирован и имеет достаточную поддержку для любых проблем, которые могут возникнуть.

Один из самых больших недостатков C# заключается в том, что если вы хотите запрограммировать приложение .NET, вам придется делать это через ОС Windows. Это может стать серьезным препятствием для некоторых программистов, которые непреклонны в использовании Mac или любой другой ОС.

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

C# или Java – различия языков

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

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

Илон Маск рекомендует:  Что такое код gzgetss

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

Критерий сравнения

На данном этапе мы узнали общую информацию о C# или Java и упомянули некоторые фундаментальные различия между ними. Прежде чем вы на самом деле решите, хотите ли вы изучать и использовать C# или Java, нам все же нужно выявить аспекты, по котором мы будем оценивать. Есть много разных аспектов, на которых мы могли бы сосредоточиться, но это заняло бы много времени и очень, очень длинную статью для сравнения. Вместо этого я выбрал три различные функции, которые наиболее интересны людям, когда они пытаются найти подходящий язык программирования, чтобы начать обучение.

Три функции – это простота использования, поддержка сообщества и зарплата в этой области. Давайте быстро пройдемся по каждому из них.

Простота использования

С течением времени популярность языков программирования, которые легко использовать и освоить, быстро растет. Опытные программисты часто характеризуют это негативно. По их мнению, если человек решит изучать язык программирования высокого уровня в качестве своего первого языка программирования, он теряет много возможностей для развития своего логического мышления и математических навыков и упускает из виду философию программирование, в целом. Хотя эта тема действительно противоречива, цифры говорят сами за себя – люди ищут языки программирования, которые не требуют много времени для изучения, и сравнение C# или Java не является исключением.

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

Поддержка сообществом

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

Какой бы язык C# или Java вы ни выбрали, вам, вероятно, захочется начать изучать его онлайн, через курсы, видеоролики на YouTube или любым другим способом. Должно быть много соответствующей информации о языке, который вы могли бы выбрать. Популярные языки программирования предлагают различные источники на выбор, так что вам не нужно беспокоиться. Если бы мы рассматривали другой, неизвестный язык программирования, есть вероятность, что вы действительно не сможете изучить его через онлайн-источники – вы просто ничего не найдете

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

Зарплата

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

Однако не все языки программирования имеют одинаковую зарплату. Это также верно в нашем сравнении C# или Java – оба эти языка предлагают разные зарплаты. Естественно, сумма денег, которую вы можете заработать, зависит от нескольких факторов: сложности языка программирования, уровня владения им, компании и даже местоположения вашей работы (географической). может отличаться огромными наценками в разных странах). Однако одно можно сказать наверняка – программирование в целом – это сверхприбыльная и стабильная карьера, и это одна из его главных привлекательных сторон.

Сравнение

Теперь, момент, которого вы ждали – сравнение C# и Java. У нас есть основы, мы знаем различия между двумя языками, и мы выделили критерии. Осталось только ответить на вопрос – C# или Java?

Какой из языков проще использовать?

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

Хотя раньше Java был проще, недавние обновления C# как бы выравнивали игровое поле. Конечно, оба они не близки к уровням простоты, скажем, Python, но они также намного проще, чем C++.

У какого языка шире поддержка сообщества?

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

Когда дело доходит до изучения C# или Java, вам не нужно беспокоиться – какой бы вариант вы ни выбрали, информации в Интернете более чем достаточно. Будь то курс или статья, которую вы ищете, вы не столкнетесь с какими-либо препятствиями, пытаясь изучить C# или Java.

В какой сфере выше зарплаты?


По данным Glassdoor.com, средняя годовая зарплата разработчика Java составляет около 88 100 долларов США. Это составляет 7340 долларов США в месяц. По данным того же веб-сайта, зарплата разработчика C# составляет чуть более 95 000 долларов США в год или около 7920 долларов США в месяц.

Как вы видите, разработчик на C# зарабатывает немного больше денег, чем разработчик на Java. Разница не так уж и значительна, но она все же имеется. При этом обе зарплаты значительно выше средней!

Заключение

Итак, каков будет вывод этого сравнения C# или Java? Оба языка похожи, это точно. Тем не менее, если вы хотите больше ориентироваться на разработку игр, то C# – это определенно правильный путь, в то время как люди, ориентированные на веб-разработку, могут найти Java более подходящим выбором.

Я надеюсь, что это сравнение было полезно для вас, и вы узнали что-то новое о C# и Java! Желаем удачи и увидимся позже!

Конкуренция C# и JAVA

дата 24.04.2013
автор Alex05
голосов 10

Программирование постепенно внедряется во все сферы нашей жизни. Хотя большинство современных языков программирования похожи между собой (той же объектно-ориентированной моделью, к примеру), попытки изучить их все одновременно так или иначе заканчиваются провалом. Вполне закономерно, что со временем из общей массы начинают выделяться наиболее продуманные и эффективные языки, позволяющие одновременно решать наибольшее количество актуальных задач. Сегодня этими языками можно считать JAVA и C#. Скорее всего когда-нибудь на их смену придет нечто еще более универсальное, но в настоящий момент именно эти языки можно называть основой современного программирования.

Если касаться непосредственно конкуренции Java и C#, то, на мой взгляд, C# все же на шаг впереди. Почему? Основным фактором, повлиявшим на мое мнение, является то, что C# умеет множество полезных вещей, чего о Java не скажешь. И на этом я и хотел бы акцентировать ваше внимание.

  • Лямбда-функции, которые гораздо лучше, нежели внутреннее анонимные классы, которые также есть в C#

Console.Write( «Введите пароль: » );
string password1 = Console.ReadLine();
Console.Write( «Повторите пароль: » );
string password2 = Console.ReadLine();
// Используем лямбда-выражение
BoolPassword bp = (s1, s2) => s1 == s2;
if (bp(password1, password2))
Console.WriteLine( «Пароли совпали!» );
else
Console.WriteLine( «Пароли не совпадают» );

delegate void MyDelegate();
class Program
<
static void Main(string[] args)
<
//создание экземпляра делегата с передачей имени метода
MyDelegate myDelegate = new MyDelegate(MyMethod);
//вызов метода делегата
myDelegate();
>
static void MyMethod()
<
Console.WriteLine( «Делегированный метод выполняется» );
Console.ReadKey();
>
>
//вызов метода делегата из main-класса
string result = myDelegate( 5 );

public class Student
<
private string name;
public string name
<
get
<
return name;
>
set
<
name = value;
>
>
>

  • Поддержка yield в итерациях.
  • Методы расширения. Это эквивалент в С# неявному приведению типов в Scala, и это черт побери, удобно. Это позволяет вам расширить существующие классы, даже если они готовы, без реального расширения.
  • Поддержка оператора ??, который предлагает простой синтаксис получения значения ссылочного типа, если оно не равно null или указанное значение по умолчанию.

int ? x = null; //обратите внимание на ?

// y = x, если x не равен null, иначе y = -1.

int y = x ?? — 1 ; // у присвоили


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

И все же невозможно однозначно ответить на вопрос: что лучше, JAVA или C#? Ответ на этот вопрос в большей степени зависит от конкретного программиста, его стиля и опыта. Можно лишь сравнивать между собой функционал этих языков, и, в зависимости от конкретной задачи, рекомендовать JAVA и C# в качестве чуть более подходящего языка для ее решения.

Если Вам понравилась статья, проголосуйте за нее

Выбор для изучения JAVA vs C#: мнения

Преамбула:
Работа на которой я сейчас подвизаюсь требует, что называется «идти вперед». 1 мая 2010 года будет год стажа. Специализация не скажу, что узкая. Подробности не смогу изложить в силу данного слова о неразглашении коммерческой тайны. В целом вся работа нацелена на Интернет, клиент-серверные решения.
Изначально вакансия на которую я пришел звучала как PHP-программист. ( для ясности: я ПоХаПэ-быдлокодер [ Delphi-эмигрант ] и скорее горжусь этим, чем стыжусь ) Бросать это дело не собираюсь, ибо нравится. Однако назрел вопрос о профессиональном росте.
В выборе я несколько ограничен. Два моих коллеги: один ушел с головой в JAVA, а второй — грозный апологет MS Visual Studio (уровень его подготовки намного выше моей, в связи с чем делать сравнения не могу). Оба в тайне друг от друга предлагают всяческую помощь в этом нелегком начинании :) Каждый конечно соответственно.
Так или иначе других определяющих факторов не предвидится. Руководство в рамках этих двух вариантов дополнительных пожеланий не имеет.
Проект, над которым сейчас тружусь — это PHP в котором есть «мостики» взаимодействия с JAVA-приложениями.
В целом знаком с ООП настолько, что использую его в разработках. Ни в предыдущем ни в текущем проекте процедурым не страдал. Хотя обязательно найдутся кто-то, кто с ООП дружит больше чем я.
JAVA код читаю, и даже местами понимаю :)
Аргументы имеющиеся на данный момент таковы, что нахожусь на распутье. Ни в ту, ни в другую сторону больших преимуществ нет. И хотелось бы начать освоение ближе к апрелю.
Собственно нужны мнения как можно большего числа троллей (в том числе и толстячков), экспертов, практиков и просто мимопроходящих.

ПыСы: в дискуссии участвовать на горячую наверное не смогу. Только по вечерам.

из двух зол выбирай наименьшее же.
С#

Если используешь виндус, то выбор очевиден же! Но знай, что многие специалисты прогнозируют скорую смерть платформы Windows, поэтому подумай несколько раз.

Для настоящего программиста — один путь C++.

Ну а если выбирать из этих двух, то конечно C#. Ибо интерпрайз сейчас прочно сидит на MS Windows. А MS всё сильнее и сильнее продвигает .Net/C#. Javа уже давно на том свете с фонарями ищут.

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

Сервер надо писать на java, а не на C#. Так что java.

Ориентируйся на рынок. Сейчас очень много C# быдлокодеров. Хоть спрос на них велик, но, зачастую предпочтения отдадут тому, кто меньше запросит компенсацию, а таких будет большинство. Зато изучить его будет проще. C Java всё наоборот. Решать тебе. Смотри на рынок работы в твоём регионе.

>Для настоящего программиста — один путь C
ты ведь так хотел написать, да?

> Для настоящего программиста — один путь C++.

Лучшие проекты, в которых стоит поучаствовать, чтобы примкнуть к Open Source движению и развить свои навыки. Часть вторая. Java, C#

Если вы интересуетесь жизнью Open Source сообщества и хотите к нему присоединиться, то эта серия подборок (которую мы продолжаем пополнять) придётся вам как нельзя кстати, ведь в ней собраны лучшие проекты с открытым исходным кодом. Во второй части серии вы найдёте самые интересные Open Source проекты на Java и C#.

Druid — это распределённое хранилище данных, поддерживающее анализ в реальном времени, часто используемое в виде информационной панели.

Druid отлично подходит для хранения и обработки наборов данных размером до петабайта. Инструмент поддерживает различные фильтры, точные и приближённые вычисления, а также может быть интегрирован в Samza, Kafka, Storm, Spark и Hadoop.

libGDX — это кроссплатформенный Java-фреймворк для разработки игр, основанный на OpenGL (ES). Он работает на Windows, Linux, Mac OS X, Android, iOS и в браузерах с поддержкой WebGL.

Как видите, открытых Java-проектов не так уж и много, так что если вы сочтёте какой-либо инструмент достойным упоминания в этой подборке, делитесь им в комментариях и отправляйте его автору оригинальной подборки.

Nancy — это легковесный фреймворк для создания HTTP-сервисов на .NET Framework/Core и Mono. Целью фреймворка является как можно более “незаметное” обеспечение взаимодействий в приложений.

Nancy способна обрабатывать запросы DELETE , GET , HEAD , OPTIONS , POST , PUT и PATCH и снабжена простым и элегантным языком Domain Specific Language (DSL). Вот пример приложения:

Репозиторий corefx содержит реализацию .NET Core. Она включает в себя System.Collections, System.IO, System.Xml и другие компоненты. Больше информации можно найти в документации. Сопутствующий репозиторий .NET Core Runtime содержит реализацию среды выполнения CoreCLR для .NET Core.

Roslyn предоставляет C#- и Visual Basic-компиляторы с API для анализа кода, аналогичными инструментам Visual Studio.

DotNetty — это порт Netty, фреймворка для работы с асинхронными сетевыми приложениями и высокопроизводительными протоколами серверов и клиентов.

Cake (C# Make) — это система автоматизации сборки с C# DSL, предназначенная для компиляции кода, копирования файлов и папок, запуска юнит-тестов, сжатия файлов и сборки NuGet-пакетов.

OpenTK — это быстрая низкоуровневая C#-связка OpenGL, OpenGL ES и OpenAL. Она работает на всех основных платформах.

NUnit — это фреймворк для юнит-тестирования для всех языков .NET. Изначально он являлся портом JUnit, но текущая версия была переписана с нуля.

XUnit — это фреймворк, аналогичный предыдущему. Работает с ReSharper, CodeRush, TestDriven.NET и Xamarin.

Json.NET — это персональный проект, целью которого было создание лучшего JSON-сериализатора для .NET.

Topshelf — это фреймворк для хостинга сервисов, написанных на .NET. Создание сервисов упрощено, что позволякет разработчикам создавать простых консольных приложения, которые можно установить в виде сервиса, используя Topshelf. Разумеется, консольные приложения отлаживать куда проще.

MassTransit — это фреймворк для разработки распределённых приложений.

SimpleInjector — библиотека для внедрения зависимостей.

Dapper — это простой маппер объектов в виде NuGet-пакета, которые расширяет интерфейс IDbConnection.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL