Переносимость или безопасность?
Сегодня, наверное, каждый разработчик задумывался: "Не написать ли мне программу на Java? Ею много людей на многих ОС будут пользоваться". Возможно. Но всё зависит от типа проекта: бесплатный или коммерческий. Для первого случая, как раз, годен Java, ведь эту программу можно запустить на любой платформе, где есть рантайм. Но байт-код Java легко декомпилировать и снести защитный механизм у коммерческих программ, так что с платными проектами лучше к Java не подходить.
Собственно, у Java есть несколько плюсов: кросс-платформенность, мощь языка С, распространённость рантаймов на большей части ОС, бесплатность компилятора javac. Минусы: некая странность языка (он очень необычный), возможность декомпиляции байт-кода, сложность эксплуатации официального компилятора. Там сперва компилировать каждый исходник части программы надо, потом всё это засовывать в один архив... Плюсы минусы отнюдь не покрывают.
С native-кодом (родным кодом) дело обстоит с точностью до наоборот. Native-код - это машинный код, выполняемый напрямую процессором безо всяких рантаймов, как в случае с Java. Такой код работает только на одной архитектуре процессора и только на одной ОС, под которую программа была написана. Такие коды невозможно декомпилировать, только дизассемблировать, а в коде ассемблера без комментариев разработчика ничего не понять. Плюсы native-кода: полная защита исходного кода, существование множества простых и мощных языков для создания native-кода. Минусы: абсолютно не кросс-платформенны. Здесь же плюсы покрывают минусы.
Что бы тут не было написанно, выбор платформы - дело разработчика. Я лишь показал, что хороша ложка к обеду, и не стоит злоупотреблять ни Java, ни native-кодом.
Собственно, у Java есть несколько плюсов: кросс-платформенность, мощь языка С, распространённость рантаймов на большей части ОС, бесплатность компилятора javac. Минусы: некая странность языка (он очень необычный), возможность декомпиляции байт-кода, сложность эксплуатации официального компилятора. Там сперва компилировать каждый исходник части программы надо, потом всё это засовывать в один архив... Плюсы минусы отнюдь не покрывают.
С native-кодом (родным кодом) дело обстоит с точностью до наоборот. Native-код - это машинный код, выполняемый напрямую процессором безо всяких рантаймов, как в случае с Java. Такой код работает только на одной архитектуре процессора и только на одной ОС, под которую программа была написана. Такие коды невозможно декомпилировать, только дизассемблировать, а в коде ассемблера без комментариев разработчика ничего не понять. Плюсы native-кода: полная защита исходного кода, существование множества простых и мощных языков для создания native-кода. Минусы: абсолютно не кросс-платформенны. Здесь же плюсы покрывают минусы.
Что бы тут не было написанно, выбор платформы - дело разработчика. Я лишь показал, что хороша ложка к обеду, и не стоит злоупотреблять ни Java, ни native-кодом.
Отзывы и комментарии