fbpx

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

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