2012-06-12 android vs ios
June 12th, 2012 by Vasil KolevКато бях малък, някой ми беше задал въпроса “Какво предпочиташ, да ти извадят едното око или да ти го вкара кон?” (“правилният” отговор беше да ти извадят окото, щото като ти го набие коя ще ти изскочат и двете).
Съществува фалшивата дилема дали човек трябва да си вземе Android или iOS базиран телефон. Моето мнение е като избора между две различни лайна и реално един от най-правилните избори е “нито един от двата”. Ето малко причини, които съм открил около занимаването с development, четенето на разни статии и гледането на лекции от CCC Kongress и подобни събития:
Практически погледнато, от хардуерна гледна точка и от гледната точка на ниското ниво всичките smartphone-и (донякъде с изключение на openmoko) са затворени и осакатени системи без нормална спецификация. Baseband процесора е неясен и не може да се пипа (съответно никой не може да вкара в тия телефони елементарната функционалност за проверка дали ви правят man-in-the-middle атака), свързан е директно към микрофона и говорителите (пробвайте се да намерите елементарното приложение “телефонен секретар”). Това има хиляди полезни приложения (и доколкото знам, под symbian е възможно, не че и тях ги хваля), най-малкото свестен запис на разговорите, което доста хора искат.
Реално обаче повечето хардуер по телефона е затворен и неясен, както и неща по операционната система (това, че google ползват linux ядро не помага особено), което води до това всякакви тривиални и елементарни неща да се водят нещо велико – защото да се постигне каквото и да е на тия телефони е магия. Дори за win3.11 нямаше нужда от толкова безсмислен приложен софтуер. Разбира се, apple не помагат с техните тотално побъркани правила кое може и кое не може да влезе в appstore (и третират всички jailbreak-нати телефони и потребителите им като престъпници)…
Андроидите специално заслужават допълнително споменаване, как има милиони производители и почти никаква консистентност и яснота кое как да работи и как да се казва. Човек би си помислил, че apple плащат LSD-то на HTC и компания да измислят нови и нови простотии. Хубав пример беше как се казваше камерата на няколко различни устройства.
Платформите за разработка и на двете платформи са трагични. От една страна имаме xcode и objective c на apple (не вярвах, че може вариант на C да стане по-грозен от C++, но objective C определено го настига), от друга java и всичкия ужас, свързан с нея. Честно казано, да бяха избрали erlang за платформа щеше да е по-добре и в двата случая. Или prolog. Или pascal/delphi.
Синдромът “not invented here” и в двата случая е довел до ужасяващи api-та, но тук наистина не знам откъде да почна. Елементарни неща се оказват почти невероятни за правене (“stream”-ване на данни от файл от телефона, т.е. четене на части и изпращане на части, например, трябваше да го направим с google protobuf-а и май така и не се получи и трябваше да сменим аpi-то).
При подобно осакатяване човек би очаквал сигурността на телефона да е добра и т.н., но в крайна сметка се оказва, че не е нещо особено. Продължават да се правят същите грешки и да се получават същите глупости, а приложенията дори с ограниченията, които са им поставени пак могат да събират какви ли не данни от телефона и да ги пращат където си искат. Аз вече чакам следващата вълна exploit-и, които да са за произволни приложения (понеже авторите ще са направили същите грешки).
За съжаление, мога още твърде много да разказвам, но не искам да си го причинявам, а да дам възможност на мозъка ми да потрие травмиращите спомени.
Накрая имаме калпави устройства с калпави операционни системи и калпави приложения, вършещи калпава работа, купуващи се от калпави хора. Надявам се до 3-4 години да се появят достатъчно добри батерии, да си пусна debian на телефона и да не ми се налага да се занимавам с глупости и да страдам от малоумието, некадърността и болните идеи на всичките хора, забъркани в тоя бизнес.
(от друга страна, да живее тоя бизнес, калпавите хора изглеждат склонни да дават пари за тотални глупости, а както е казал един римски император едно време, парите не миришат…)
(един ден openmoko ще изкарат нов телефон, това вероятно бих го ползвал)