Мы начнем новый проект, который будет включать обучение всех разработчиков .net на Java (frameworks / ECO system и т. Д.). У нас есть много кода, написанного на C #, и кажется, что все это будет потрачено впустую, так как мы должны переписать все это на Java. Проблема, которую я вижу, состоит в том, что в первый год или около того (возможно, 2 года) нам нечего будет доставлять, поскольку мы будем проводить большую часть времени, воспроизводя то, что у нас было раньше, но сейчас на Java.
Поскольку наша команда распределена по разным офисам по всему миру, и у нас большое количество разработчиков Java (от 20 до 30) и 10 разработчиков, использующих .net, мы хотим, чтобы все разработчики использовали один и тот же язык / платформу, чтобы мы могли начать повторно использовать компоненты / модули. Так что я могу понять точку зрения управления.
Вчера я наткнулся на Scala и подумал, будет ли лучше использовать это с текущим продуктом (который написан на C #), и тогда, по крайней мере, у нас будет рабочий продукт через год. Также через год у нас есть модули, которые можно использовать в мире Java, пока мы переносим другие части продукта.
Будет ли Scala лучшим выбором, чем Java, учитывая то, что мы пытаемся достичь?
Ответы:
Некоторые моменты для рассмотрения:
Учитывая все это, вы можете захотеть хеджировать свои ставки и пойти на смешанную стратегию Java / Scala - т.е. перейти на платформу JVM и сосредоточиться изначально на Java, но оставьте открытой возможность использовать Scala, когда ваши разработчики чувствуют себя комфортно и / или это соответствует проблеме под рукой.
С точки зрения управления это имеет много преимуществ:
Недостатком является то, что у вас еще есть два основных языка для поддержки. Но у вас, вероятно, на самом деле есть гораздо больше, чем только два (сценарии оболочки, специфичные для домена форматы XML, файлы конфигурации, движки правил, HTML, Javascript), поэтому вы можете утверждать, что на самом деле это не так уж и важно.
источник
Я добавлю третий вариант. Кто-нибудь в вашей организации смотрел на взаимодействие между вашими модулями C # и Java? Как вы демонстрируете функциональность C #? Можно ли использовать веб-сервисы SOAP или RESTFul?
Переписывание на 2 года может стать смертельным звеном для организации (просто спросите Netscape). Однако постепенная миграция, в то время как существующий код хорошо сочетается друг с другом, может оказать меньшее влияние на бизнес.
источник
Переписать C # на Scala будет так же сложно, как и на Java. Что касается того, какой язык «лучше», то этот вопрос является спорным, у каждого языка есть свои плюсы и минусы.
Я не знаю, насколько велика ваша кодовая база, но 2 года для 30 разработчиков кажутся огромными для простого переписывания. Поднять Java, когда вы знаете, C # легко. Мне потребовался день или два, чтобы освоиться с этим.
Я бы посоветовал руководству разобраться и получить удовольствие от того, что вам платят за расширение навыков.
источник
Я думаю, что более простым вариантом было бы заставить разработчиков Java изучать C #. Оба языка очень похожи во многих отношениях, и разработчику Java не понадобится много времени, чтобы освоить C #. Я работал со многими Java-разработчиками, которые изучили C #, и это обычно плавный переход. Единственная область, где они могут застрять - это модель программирования WebForms. Разработчики Java лучше адаптируются к парадигме MVC. Таким образом, вам не нужно ждать год, прежде чем вы начнете разрабатывать новые функции. Что касается Scala, я боюсь, что это создаст совершенно новую проблему для всех 30 разработчиков, пытающихся выучить новый язык.
источник