Я разработчик Unix с 25-летним опытом. Я сделал много кросс-платформенной работы, в последнее время разрабатывая код на MacOS и перенастраивая его на Linux с помощью autoconf и на Windows с mingw в режиме кросс-компиляции. Это дает хорошие результаты по большей части. Тем не менее, я заинтересован в переходе на язык с типом безопасности. Кроме того, мои пользователи предпочли бы, чтобы я предоставлял им приложения на основе графического интерфейса, а не приложения командной строки.
Большинство моих пользователей находятся в Windows, но значительное число важных пользователей находятся в Linux. Ни один из моих пользователей не работает в MacOS, но это моя предпочтительная среда. (Вероятно, я должен переключиться на Linux или Windows, но мне действительно нравится Apple Mail.)
В течение примерно трех лет я смотрел на то, чтобы продвинуть свои усилия по развитию с С++ на Java или С#. С++ работает быстрее, и мы делаем операции, которые очень интенсифицированы. Типичная программа будет обрабатывать 500 ГБ до 1 ТБ и принимать 3-5 часов. Разница между программой, заканчивающейся за 5 часов и заканчивающейся в 9, является разницей между программой, которая заканчивается в тот день, когда вы начинаете ее, и заканчивается на следующий день. С другой стороны, все чаще я пишу многопоточные программы, а модель протектора намного чище как на Java, так и на С#.
Итак, я нахожусь в тупике. Я нашел одно сравнение скорости, которое указывает, что я не должен выбирать Java против С# из-за скорости. Поэтому я пытаюсь повлиять на другие проблемы:
- Долгосрочные обязательства. Никто не знает, что происходит с Java, но С# с нами до тех пор, как Microsoft.
- Доступность и согласованность на платформе. Java практически везде одинакова. Я понятия не имею, как похожи Microsoft и Mono С#.
- Простота разработки. Я довольно привык к разработке в EMACS, но я продолжаю думать, что я должен перейти в Eclipse из-за факторинга кода. (Я хочу, чтобы у EMACS был достойный кодовый факторинг, но он этого не делает.) Visual Studio довольно хорош, но работает только в Windows. Среда разработки Mono кажется довольно жалкой, но может стать лучше.
Итак, я ищу мнения других людей.