Кто-нибудь переходил из C# в Java
От: Gattaka Россия  
Дата: 04.03.17 11:24
Оценка:
Имеется разработчик Senior .Net. Насколько тяжело переходить в джаву? Если у вас есть такой опыт — в чем на первых порах был основной затык? Как это происходило? Ломка непонятки и т.п.?
Re: Кто-нибудь переходил из C# в Java
От: Arsen.Shnurkov  
Дата: 04.03.17 12:18
Оценка:
G> Насколько тяжело переходить в джаву?

3 месяца

G> Если у вас есть такой опыт


начинай с Java trails — https://docs.oracle.com/javase/tutorial/
Re[2]: Кто-нибудь переходил из C# в Java
От: Submitter  
Дата: 04.03.17 12:22
Оценка:
Здравствуйте, Arsen.Shnurkov, Вы писали:

G>> Насколько тяжело переходить в джаву?


AS>3 месяца


А если Java с нуля? Точнее после C++, но это было давно и неправда поверхностно.
Re[2]: Кто-нибудь переходил из C# в Java
От: Gattaka Россия  
Дата: 04.03.17 13:50
Оценка:
Здравствуйте, Arsen.Shnurkov, Вы писали:

Книжки мне уже посоветовали, тут я хотел спросить как оно было. Т.е. что было сложным, необычным и т.п. уже после прочтения литературы.
Re[3]: Кто-нибудь переходил из C# в Java
От: Klikujiskaaan КНДР  
Дата: 04.03.17 14:11
Оценка:
Здравствуйте, Gattaka, Вы писали:

G>Здравствуйте, Arsen.Shnurkov, Вы писали:


G>Книжки мне уже посоветовали, тут я хотел спросить как оно было. Т.е. что было сложным, необычным и т.п. уже после прочтения литературы.


Ничего сложного, суть одна и та же. Безболезненно переходил с жабы на шарп, с плюсов на ноду и обратно.
Re[4]: Кто-нибудь переходил из C# в Java
От: Gattaka Россия  
Дата: 04.03.17 14:27
Оценка:
Здравствуйте, Klikujiskaaan, Вы писали:

K>Ничего сложного, суть одна и та же. Безболезненно переходил с жабы на шарп, с плюсов на ноду и обратно.

Тут, конечно, интересна ваша мотивация из джавы в шарп переходить.
Re[5]: Кто-нибудь переходил из C# в Java
От: Klikujiskaaan КНДР  
Дата: 04.03.17 14:44
Оценка: +1 :))
Здравствуйте, Gattaka, Вы писали:

G>Здравствуйте, Klikujiskaaan, Вы писали:


K>>Ничего сложного, суть одна и та же. Безболезненно переходил с жабы на шарп, с плюсов на ноду и обратно.

G>Тут, конечно, интересна ваша мотивация из джавы в шарп переходить.

Мои заказчики, в основном, — банки и почти всегда приходится иметь дело с их легаси кодом, а код в банковской сфере весьма говноспецифичен. По этому переход на шарп — это как глоток свежего воздуха, а по деньгам вышло то же самое.
Re: Кто-нибудь переходил из C# в Java
От: Крякозавр  
Дата: 04.03.17 16:59
Оценка: 7 (2)
Здравствуйте, Gattaka, Вы писали:

G>Имеется разработчик Senior .Net. Насколько тяжело переходить в джаву? Если у вас есть такой опыт — в чем на первых порах был основной затык? Как это происходило? Ломка непонятки и т.п.?


Хотя, в целом, платформы, действительно, похожи, есть ряд обламывающих моментов. Ну, самое очевидное, конечно же, это сборки vs пакеты. Хоть сама концепция пакетов до примитивизма проста, я все же никак не мог смириться с отсутствием сборок. Из этого сразу вытекают проблемы с видимостью классов. Вот пилишь модуль, завел себе пакет utils, но классы в нем в итоге приходиться обнажать для всех желающих. Поэтому, когда в идее ищешь какой-либо класс, на тебя вываливается куча говна со всех подключенных зависимостей. Дело, конечно, не в удобстве даже разработки, а в отсутствии возможности правильной организации кода. Вот что, если юный падаван заюзает сторонний класс, видимость которого по идее должна быть ограничена самим этим модулем, а APi этого класса изменится в следующей версии модуля? Вот щас, приколу ради, вбил наобум в проекте StringUtils, и получил около 30 результатов о_0
Еще неожиданностью было переопределение объектовых методов в коллекциях: equals/hascode, toString. Не ожидал, что две коллекции с идентичным содержимым не зайдут в Set, к другому привык. Может это и правильно даже, на самом то деле, но неожиданно для дотнетчика.
Много чего еще обламывало: отсутствие LINQ, неадекватный API для работы с датой/временем (даже 8 не решила проблему), нет всяческих привычных полезняшек, язык убогий и многословный. Тут надо сразу Lombok и Guava подрубать, например.
В итоге то я переварил и даже полюбил жабу. Стандартная библиотека устроена логично, если не сказать красиво. В чем-то (многопоточность и коллекции те же) устроена она грамотно. Очень много полезных библиотек, хорошо обкатанные паттерны и лучшие практики здесь повсюду.

Если вкратце: переходить все-таки легко, если подходить к этому делу организованно, с умом. Проблемы только с работой могут быть. Не все жависты адекватно смотрят на бывших дотнетчиков — для них .NET бэкграунд словно бы как красная тряпка для быка.
Re[2]: Кто-нибудь переходил из C# в Java
От: Gattaka Россия  
Дата: 04.03.17 17:06
Оценка: :)
Здравствуйте, Крякозавр, Вы писали:

К>Если вкратце: переходить все-таки легко, если подходить к этому делу организованно, с умом. Проблемы только с работой могут быть. Не все жависты адекватно смотрят на бывших дотнетчиков — для них .NET бэкграунд словно бы как красная тряпка для быка.


Спасибо, то что надо!
На заре своей карьеры сидел в одной комнате с джавистами — злючие .
Re: Кто-нибудь переходил из C# в Java
От: C0s Россия  
Дата: 04.03.17 20:20
Оценка:
Здравствуйте, Gattaka, Вы писали:

G>Имеется разработчик Senior .Net. Насколько тяжело переходить в джаву? Если у вас есть такой опыт — в чем на первых порах был основной затык? Как это происходило? Ломка непонятки и т.п.?


полуоффтопик: я джавист, но довелось на C# немного поработать (был в далёкое безрыбное время небольшой проект, в который ввязался прежде всего из любопытства).

в результате понял, что мне в джаве нравится больше, чем в .net (хотя, понятное дело, на примере одного legacy-проекта тяжело претендовать на объективность):
— отсутствие привязки к одной среде (я часто работаю вообще без IDE, какие-то мои коллеги любят eclipse, другие — idea, все уживаемся на одном пространстве без проблем со сборкой и подготовкой дистрибутивов — для этого используются отделённые от средств инструменты: ant, maven). на том проекте можно было программировать и собирать только из visual studio
— наличие лучших альтернатив "стандартным" библиотекам там, где это повсеместно востребовано и, соответственно, развито. применительно к тому проекту, где была нужда в интеграции на веб-сервисах, согласно версии можно было использовать только глючные WSE, с которыми больше войны было, чем работы. на java в похожих ситуациях обычно используют решения на open-source библиотеках, которые в случае багов или пограничных юз-кейсов кастомизируются или могут быть пофиксены самостоятельно.

в то время одним из интересных преимуществ языка C# было наличие лямбд-монад-linq и т.п., но сейчас, начиная с 8й версии, в почти таком же объёме это появилось и в java.
Re: Кто-нибудь переходил из C# в Java
От: GarryIV  
Дата: 04.03.17 20:24
Оценка:
Здравствуйте, Gattaka, Вы писали:

G>Имеется разработчик Senior .Net. Насколько тяжело переходить в джаву? Если у вас есть такой опыт — в чем на первых порах был основной затык? Как это происходило? Ломка непонятки и т.п.?


Я переходил, давно правда. Затыка как такого не было, ну библиотеки новые, так то языки похожие (раньше особенно).
WBR, Igor Evgrafov
Re: Кто-нибудь переходил из C# в Java
От: SergeyIT Россия  
Дата: 04.03.17 20:56
Оценка:
Здравствуйте, Gattaka, Вы писали:

G>Имеется разработчик Senior .Net. Насколько тяжело переходить в джаву?


Странный вопрос для разработчика Senior'а.
Извините, я все еще учусь
Re[2]: Кто-нибудь переходил из C# в Java
От: Крякозавр  
Дата: 04.03.17 23:16
Оценка: +1
Здравствуйте, C0s, Вы писали:

C0s>но сейчас, начиная с 8й версии, в почти таком же объёме это появилось и в java.


Нет.
Re[2]: Кто-нибудь переходил из C# в Java
От: vsb Казахстан  
Дата: 04.03.17 23:42
Оценка:
Здравствуйте, Крякозавр, Вы писали:

К>неадекватный API для работы с датой/временем (даже 8 не решила проблему)


Почему не решила?
Re[3]: Кто-нибудь переходил из C# в Java
От: Крякозавр  
Дата: 05.03.17 00:05
Оценка: +1
Здравствуйте, vsb, Вы писали:

vsb>Здравствуйте, Крякозавр, Вы писали:


К>>неадекватный API для работы с датой/временем (даже 8 не решила проблему)


vsb>Почему не решила?


Потому что еще во многих местах по старинке нужен j.u.Date, и приходится конвертировать туда-сюда, из старого API в новый, и наоборот, и сам этот код конвертации, как часто в Java бывает, громоздкий и неуклюжий.
Короче, поздно это вводить было аж в восьмой версии. Они бы еще к 2030 году, когда жава окончательно превратится в Кобол, одумались.
Отредактировано 05.03.2017 14:18 Крякозавр . Предыдущая версия .
Re: Кто-нибудь переходил из C# в Java
От: andrey.t  
Дата: 05.03.17 03:44
Оценка:
Здравствуйте, Gattaka, Вы писали:

G>Имеется разработчик Senior .Net. Насколько тяжело переходить в джаву? Если у вас есть такой опыт — в чем на первых порах был основной затык? Как это происходило? Ломка непонятки и т.п.?


Расширял свои полномочия с C# GUI до GUI + Java backend во времена .NET 3.5. Каких-то особых сложностей с языками не было — очень уж они похожи были, ну и была привычка по исходному коду C# бродить, так что Java тоже по исходникам смотрел Самые большие сложности были с переходом на другую ось (Windows -> Linux) и Maven.
Re[4]: Кто-нибудь переходил из C# в Java
От: anton_t Россия  
Дата: 05.03.17 08:32
Оценка:
Здравствуйте, Крякозавр, Вы писали:

К>Здравствуйте, vsb, Вы писали:


vsb>>Здравствуйте, Крякозавр, Вы писали:


К>>>неадекватный API для работы с датой/временем (даже 8 не решила проблему)


vsb>>Почему не решила?


К>Потому что еще во многих местах по старинке нужен j.u.Date, и приходиться конвертировать туда-сюда, из старого API в новый, и наоборот, и сам этот код конвертации, как часто в Java бывает, громоздкий и неуклюжий.

К>Короче, поздно это вводить было аж в восьмой версии. Они бы еще к 2030 году, когда жава окончательно превратится в Кобол, одумались.

Куда уж проще:


Instant OffsetDateTime.toInstant()
static Date Date.from(Instant instant)

Instant Date.toInstant()
static OffsetDateTime OffsetDateTime.ofInstant(Instant instant, ZoneId zone)


Хотя первый раз найти метод конвертации не просто было
Re: Кто-нибудь переходил из C# в Java
От: TechL  
Дата: 05.03.17 09:08
Оценка: 3 (1)
Здравствуйте, Gattaka, Вы писали:

G>Имеется разработчик Senior .Net. Насколько тяжело переходить в джаву? Если у вас есть такой опыт — в чем на первых порах был основной затык? Как это происходило? Ломка непонятки и т.п.?


Проще переходить назад, имхо, но опыт был работы и там и там параллельно. То есть был уже готовый проект на Java-десктоп, а задача была переписать его на C# с нуля, хотя бекэнд и логика оставалась
на стороне Java, затем через IKVM собиралась в .NET сборку и аттачилась в новый дотнетовский проект.
Чего не хватало в Java:
— LINQ, extension methods
— Смущал синтаксис лямбд и генериков, хотя старался туда не лезьть
— s1.equals(s2) и s1 == s2, это разные вещи
— var тоже не хватало
— Коллекции из Object'ов
— Стримы, файловая система, веб-запросы — надо разобраться
— Нет свойств, Task'ов, async, await, string interpolation — то чего не хватало

По библиотекам. Есть отличная штука WPF, которая разделяет UI, логику и логику UI. И был Java Swing UI из кода, где все перемешано и что от чего зависит, надо еще понять. Визуализации того что в коде без перекомпиляции не было.
Пакеты и сборки, как уже упомянули — немного разные вещи. В плане удобства опять же.
Деплоимент и перформэнс как вы понимаете в разы отличается, поэтому и была задача их улучшить в новой версии путем перепеси на .NET, чтобы а) не тягать JVM с собой б) работало быстрее, ело меньше памяти

К вашему вопросу, конечно нужно больше конкретики. Нужло ли портировать с .NET на Java? На Java писать с нуля или это готовый проект? Вы переходите в каком направлении: десктоп-десктоп, десктоп-веб или что-то еще. Сам по себе язык Java для уровня Senior .NET, — это от недели до месяца практики, чтобы привыкнуть. Платформа, библиотеки, тесты, CI и сопутствующее — зависит от предыдущего вопроса.
Re: Кто-нибудь переходил из C# в Java
От: alzt  
Дата: 05.03.17 10:27
Оценка:
Здравствуйте, Gattaka, Вы писали:

G>Имеется разработчик Senior .Net. Насколько тяжело переходить в джаву? Если у вас есть такой опыт — в чем на первых порах был основной затык? Как это происходило? Ломка непонятки и т.п.?


Программировал на С++, чуть-чуть использовал C#. Потом перешёл на Java. Я тогда ещё думал, что это такой же язык, что и C#. Сложностей не было, но удивило отсутствие возвращаемых параметров вместе с отсутствием класса-пары (очевидный хак). Всякие библиотеки сделаны также коряво, поэтому проблем не будет.
Re[3]: Кто-нибудь переходил из C# в Java
От: pagid Россия  
Дата: 05.03.17 13:05
Оценка:
Здравствуйте, Gattaka, Вы писали:

G>На заре своей карьеры сидел в одной комнате с джавистами — злючие .

Как ЗиГ? Она вроде же тоже джавистка.
... << RSDN@Home 1.2.0 alpha 5 rev. 1495>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.