#c_sharp #работа #java
Closed. This question is opinion-based. It is not currently accepting answers. Want to improve this question? Update the question so it can be answered with facts and citations by editing this post. Closed 4 года назад. Заблокировано. This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions. Мне 17 лет. Встал выбор. Либо Java (android, кроссплатформа), либо C# (wpf, windows phone). Веб откинул сразу — пробовал , не понравилось. Опыт работы с обеими платформами примерно одинаков (одинаково мал) — пришло как раз время выбирать направление. С# и дотнет импонируют документацией msdn, студией, синтаксическим сахаром шарпа и активным развитием. Java в свою очередь — более «правильной» реализацией платформы (написано под старое — запускается на новом), простотой языка без лишних изысков, оупенсорсностью :) По статистике, на Украине и то, и другое востребовано примерно на одном уровне. Что чаще нужно в мелком городе? Что лучше на перспективу? Кому легче устроится без опыта? Кого чаще берут на удаленку? Во фрилансе что нужнее? Поделитесь своими наблюдениями. UPD: android + Java и desktop + C#. Думаю, что пойдёт, то и моё.
Ответы
Ответ 1
(Я активный сторонник C#, моё мнение предвзято.) Итак, плюсы .NET: Хорошо и быстро развивающийся язык. LINQ и async/await ещё долго будут вне пределов досягаемости других мейнстримовых языков. Платформа Windows Phone сейчас растёт, под неё понадобятся приложения, которые уже есть под iOS и Android. Рынок пока не заполнен, можно рискнуть и выиграть. WPF — один из немногих вменяемых декстопных GUI-фреймворков. Java в этом плане сильно отстаёт. Плюсы Java: Андроид всё же самая популярная мобильная ось на текущий момент. Энтерпрайз пишется в основном на Java. По поводу кроссплатформенности, она не кажется мне решающим фактором. Обычно проекты пишутся под конкретную платформу, особенно если они завязаны на фронт-энд. Кстати, а где вы нашли отсутствие обратной совместимости в .NET?Ответ 2
Учи алгоритмы и ООП. А выбор платформы это уже дело техники и личных предпочтений. У джавы свои дыры, у шарпа свои. Это практически холивар по данному вопросу.Ответ 3
кто сильней слон или кит, честно говоря профессионализм рулит больше чем язык, конечно понятно, что потолок зарплаты может быть разным для программиста работающего на том или ином языке, но добраться до потолка это дело не очень быстрое и обычно к тому времени проблема перехода с одного языка на другой сводится сроку от двух-трех недель до пары месяцевОтвет 4
Молодой человек, вы сначала определитесь с логикой: то вы ищете то что востребованнее то вы ищете, что вам нравится (веб пробовал не понравилось, Java или C# что востребованнее...). Корень лежит там - в этой логике. В вашем возрасте важнее, мне кажется, все таки логика "нравится - не нравится", а не "нужнее - не нужнее". По той простой причине, что то что нравится и получается лучше. В плане денег и шарп и джава примерно одного плана. Джава более международнее что ли разве что, а шарп поместечковее. Как то так. Из вашего опуса вижу, кстати, что Java вам нравится поболее dot Net. Так что делайте выводы...Ответ 5
Я - разработчик на C#, но посоветовал бы автору изучать Java. Desktop-приложения - это умирающее направление разработки, все переходит либо в web, либо на мобильные приложения.Ответ 6
C# для Windows - это как Objective-C для Mac OS. C# активно развивает Microsoft и делает это очень хорошо и что не говори, но приложения написанные на C# будут всегда лучше всех работать на Windows. Это своего рода сфокусированный на Windows язык программирования, как и Objective-C для Mac OS. Просто при выборе C# не надо пытаться разрабатывать кростплатформенные приложения (используя всякие "Mono" и т.п.). И сегодня сделав выбор в сторону C# ни как не проиграешь. Ну а то что сегодняшний программист должен знать хотя бы пару языков, говорить думаю не стоит.Ответ 7
В Java нет структур, в топку её. Структуры занимают меньше места в памяти, т.к. у них нет заголовка описывающий тип данных, указателей на таблицы виртуальных методов, а так же другие поля, необходимые для синхронизации и сборки мусора. Структуры хранятся в stack’е (но в куче, если массив). Выделение памяти в stack’е происходит очень быстро: stack – заранее выделенный буфер памяти, в котором просто резервируется место по размеру структуры (в основном, на этапе компиляции) путём уменьшения значения в stack pointer (уменьшения, т.к. данные в stack’е хранятся задом-наперёд). Когда функция завершает свою работу, то «освобождение» всех переменных в stack’е происходит один махом путём увеличения указателя stack pointer на количество байт, необходимых для переменных. А выделение и освобождение памяти в куче – это огромное количество операций, в отличие от простого вычитания и суммирования. Из-за того, что структуры хранятся в stack’е, они не требуют сборки мусора. Это сильно разгружает сборщик мусора и избавляет от проблемы фрагментации памяти. Структуры, поля которых – только value types, легко сериализовать в массив байт и обратно. А еще Java-компилятор не оптимизирует хвостовую рекурсию
Комментариев нет:
Отправить комментарий