На каком языке программирования разрабатывать программное обеспечение для USC, которое также работает на других ОС? (Windows / OS X)

На каком языке программирования разрабатывать программное обеспечение для USC, которое также работает на других ОС? (Windows / OS X)

Имею навыки работы с Java и C#.

Сначала я поближе познакомился с Java (Eclipse с плагином Windowbuilder). - Swing: Но там нет поддержки GUI для GTK3 (например, HUD, похоже, не работает)

Затем я посмотрел на JAVA - SWT: он слишком тяжелый. Я хочу написать небольшое приложение, которое улучшит рабочий стол Ubuntu. Я не хочу поставлять программу с включенным Eclipse.

После этого я нашел C# Mono (Monodevelop): GTK# доступен только для GTK2. Скоро появится порт GTK3, но возможно ли преобразовать программу из GTK2 в GTK3 без дополнительных адаптаций? Следующая плохая вещь заключается в том, что Mono теперь исключен из Ubuntu LTS 12.04. Поэтому у меня нет шансов, что мое приложение станет приложением по умолчанию в официальном Ubuntu Live CD. (Это также является для меня фактором при выборе языка программирования).

Я знаю, что есть и другие технологии, но я хочу использовать в качестве языка программирования Java или C#.

решение1

Затем я был в JAVA - SWT: Он слишком тяжелый. Я хочу написать небольшое приложение, которое улучшит рабочий стол Ubuntu. Я не хочу поставлять программу с включенным Eclipse.

Я бы не советовал отказываться от Java и SWT на этой основе. Если вам нужно что-то на Java, что действительно выглядит как нативное, SWT — ваш лучший выбор. WindowBuilder Eclipse его тоже поддерживает. Вы явно не понимаете, что вам нужно поставлять с вашим приложением. Вам не нужно поставлять Eclipse, только jar-файлы SWT. Если ваше приложение не очень простое, скорее всего, вам придется в какой-то момент зависеть от сторонних jar-файлов (или в любом случае поставлять свои собственные).

Главное отличие Swing в том, что вам нужно отправить правильный SWT jar для правильной платформы (например, x86_64). На самом деле это не так уж и сложно сделать, и можно упаковать соответствующим образом с помощью подходящей системы сборки.

Связанный контент