Переносимість або безпека?

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

Схожі статті: