Как насчет того чтобы написать DE на Java? Текст далее крайне не рекомендуется читать людям со слабой психикой. Глубокое териотизирование.
Что останавливает? Это конечно же отсутствие Shared JVM. Каждая копия процесса java будет хранить код библиотеки классов. Отсюда толстота запущеных, например 50 приложений. Проверил только что. Оптимизаций никаких не произошло. Если бы такая вещь была бы реализована, то библиотека классов бы заняла может 20 МБ максимум, что даже меньше чем Gnome/KDE и после этого приложения были бы достаточно лековесными.
В принципе можно реализовать запуск остальных приложений в виде просто подгрузки из главного процесса DE необходимых классов с последующим вызовом main. Автоматически получаем Shared JVM, но нужно как-то ювелирно ограничивать классы, чтобы они не лезли к друг другу, не завершили весь DE и решить проблему синглетонов, статических переменных. Может кто-то знает как запустить классы внутри некоторой ограниченной области?
Зачем это все? Мощь фреймворков Java, вот одна причина. Даже самый большой фреймворк для C++ (и вообще нативного кода) - Qt, отдаленно не дотягивает до Java SE, не говоря уже о Hibernate, Spring. Можно еще вспомнить многочисленные проекты Apache, прекрасные фреймворки логирования, отличный SecurityManager Java (сразу фтопку SELinux/AppArmor), готовый прозрачный пакетный менеджер - Java Web Start. JWS позволил бы создать самый очевидный для обычных пользователей AppStore, запускаешь и устанавливаешь одновременно. Сюда еще можно добавить Preferences API и 100500 способ вызывать методы другого обьекта через сеть. Короче есть из чего выбрать. Еще есть интерестные вещи как OSGi, Eclipse RCP и т.д
Ко всему этому нужно добавить торт jvisualvm с возможностью полного дампа всех потоков, их состояний, их стектрейсов, состояний владения lock'ами, всех классов, всех экземпляров классов и связей между ними у любого процесса на лету, с возможностю подключения профилирования CPU и памяти у существующего и запущеного процесса.
Ну нет аналогов такой мощности для C++, просто рожденный ползать не сравниться с управляемым кодом. Писать на плюсах сложнее, дебажить сложнее, быдлокод писать легче.
Пока так, расплывчато, но в целом может быть. Вот такой вброс/не вброс. Модераторов прошу не удалять, все таки интересная теоретическая дискуссия