Информация об изменениях

Сообщение Re[2]: Причины популярности java от 20.05.2022 8:45

Изменено 20.05.2022 8:50 vsb

Re[2]: Причины популярности java
Здравствуйте, cppguard, Вы писали:

C>На данный момент Java это единственный нормальный язык системно-прикладного уровня. Последнее, мною выдуманное слово означает, что можно открыть файл, запросив эксклюзивный доступ, открыть сокет, принять запрос на соединение и отправить содержимое файла в сокет, минуя процессор (DMA). И всё это из стандартной библиотеки, безопасно относительно доступа к памяти и с точки зрения возникновения исключительных ситуаций. Если дать такое задание плюсовику, то он первым делом подключит буст, а потом пол года будет его собирать. Другие пол года его коллега будет разбираться, что означает const auto& foo = boost::fucking_magic<network::tag, memory_allocator<super_safe>, move_semantics<fuck, this, shit>>::instance(). Есть ещё вариант подождать стандарта C++2032, в котором, наконец-то, реализуют всё то, что есть в Java 1.4.


У жавы очень ограниченный доступ к системному API. Ты или с жавой мало работал, или не договариваешь. Там на любой чих надо писать свою DLL-ку на JNI (на C/C++, ага). Банальный макосовский xattr (для доступа к extended file attributes) я в жаве не нашел, например.
Re[2]: Причины популярности java
Здравствуйте, cppguard, Вы писали:

C>На данный момент Java это единственный нормальный язык системно-прикладного уровня. Последнее, мною выдуманное слово означает, что можно открыть файл, запросив эксклюзивный доступ, открыть сокет, принять запрос на соединение и отправить содержимое файла в сокет, минуя процессор (DMA). И всё это из стандартной библиотеки, безопасно относительно доступа к памяти и с точки зрения возникновения исключительных ситуаций. Если дать такое задание плюсовику, то он первым делом подключит буст, а потом пол года будет его собирать. Другие пол года его коллега будет разбираться, что означает const auto& foo = boost::fucking_magic<network::tag, memory_allocator<super_safe>, move_semantics<fuck, this, shit>>::instance(). Есть ещё вариант подождать стандарта C++2032, в котором, наконец-то, реализуют всё то, что есть в Java 1.4.


У жавы очень ограниченный доступ к системному API. Ты или с жавой мало работал, или не договариваешь. Там на любой чих надо писать свою DLL-ку на JNI (на C/C++, ага). Банальный макосовский xattr (для доступа к extended file attributes) я в жаве не нашел, например.

Ещё есть забавный прикол. Для mmap в жаве есть интерфейсы. Но закрыть MappedByteBuffer невозможно. И пока он не уничтожен сборщиком мусора (что может произойти через секунду или через час или никогда), жава держит ссылку на соответствующий файл, что предотвращает его удаление. То бишь можно поймать забавный баг: на компьютере кончается память на диске. При этом через du -hs ничего аномального не находится и нифига не понятно. А дело в том, что рядом крутится жава, которая создает большой файл, делает mmap, работает с ним, потом типа закрывает и удаляет его, но по факту в файловой системе inode остаётся, только невидимый и пока сборщик мусора не запустится, места на диске больше не станет.