Я разработчик Unix с опытом работы более 25 лет. Я сделал много кросс-платформенной работы, в последнее время разрабатывая код на MacOS и перенастраивая его на Linux с помощью autoconf и на Windows с mingw в режиме кросс-компиляции. Это дает хорошие результаты по большей части. Тем не менее, я заинтересован в переходе на язык с типом безопасности. Кроме того, мои пользователи предпочли бы, чтобы я предоставлял им приложения на основе графического интерфейса, а не приложения командной строки.Лучший выбор для кросс-платформенной разработки: Java или C#?
Большинство моих пользователей находятся в Windows, но значительное количество важных пользователей находится в Linux. Ни один из моих пользователей не работает в MacOS, но это моя предпочтительная среда. (Вероятно, я должен переключиться на Linux или Windows, но мне очень нравится Apple Mail.)
В течение трех лет я искал, что двигаю свои усилия по развитию с C++ на Java или C#. C++ работает быстрее, и мы делаем операции, которые очень интенсифицированы. Типичная программа будет обрабатывать 500 ГБ до 1 ТБ и принимать 3-5 часов. Разница между программой, заканчивающейся за 5 часов и заканчивающейся в 9, является разницей между программой, которая заканчивается в тот день, когда вы начинаете ее, и заканчивается на следующий день. С другой стороны, все чаще я пишу многопоточные программы, а модель протектора намного чище как на Java, так и на C#.
Так что я нахожусь в тупике. Я нашел одно сравнение скорости, которое указывает, что я не должен выбирать Java против C# из-за скорости. Поэтому я пытаюсь поставить другие вопросы:
- Долгосрочные обязательства. Никто не знает, что происходит с Java, но C# с нами до тех пор, пока Microsoft.
- Доступность и согласованность на платформе. Java практически везде одинакова. Я понятия не имею, как подобны Microsoft и Mono C#.
- Простота развития. Я довольно привык к разработке в EMACS, но я продолжаю думать, что я должен перейти в Eclipse из-за факторинга кода. (Я хочу, чтобы у EMACS был достойный кодовый факторинг, но он этого не делает.) Visual Studio довольно хорош, но работает только в Windows. Среда разработки Mono кажется довольно жалкой, но может стать лучше.
Так что я ищу мнения других людей.
определенно Java. Профили производительности для Mono и .NET различны. Какую IDE использовать - личный выбор. Я использую vim :) – khachik 2010-12-04 20:22:15
Я действительно разрабатываю коммерческое Java-приложение, которое развертывается на сотнях различных систем (OS X, Linux и Windows). Java может стать серьезной болью, особенно в отношении пользовательского интерфейса (Swing), который просто не так велик, но, тем не менее, Java превосходит C# в любом случае, если проблема переносимости является проблемой. JVM работает во многих разных системах, и * «блокировка поставщика» * не так плоха, как тот, который вы получаете, когда попадаете в Микки. Если переносимость и безопасность являются проблемами, выберите JVM. Что касается языка, Java, Scala или любой язык, предназначенный для JVM. – SyntaxT3rr0r 2010-12-04 20:28:37