Android va Go

Android va Go

Android va Go

Sun kompaniyasini Oracle sotib olganda biroz achingandim: Java’ga bog’liq litsenziyalarni Google sotib olishi kerak edi, Google Java’ni Oracle’ga nisbatan yaxshiroq rivojlantirardi IMHO. Java sabab bo’lib sudlashishdi ham. Hozir Android mobil operatsion tizimlar ichida eng ommabopligini hisobga olsak, ham Google uchun, ham Android developerlar uchun ancha foydali bo’lardi.

Java’da yoziladigan applar Dalvik virtual mashinasi orqali ishlaydi, shuning uchun, Objective C’da yozilib, nativ binar bajariluvchi kodga kompilyatsiya¹ qilinadigan applarga nisbatan sekin ishlaydi. Buning yechimi sifatida Google tomonidan Native Development Kit (NDK) taqdim qilingan; C/C++ yordamida kod yoziladi. NDK’ni moslash, unda kod yozish noqulayroq, bilishimcha.
Google yaqinda ishlab chiqqan yaxshi, quyiroq darajali, normal kompilyatsiya bo’ladigan til — Go mavjud. Obro’si ham oshib boryapti (News’da Go bilan bog’liq postlar ko’pincha yuqori reytingda turadi), interpretatsiya qilinadigan tillarda yozilgan (PHP, Ruby, Python, JavaScript/Node.js) loyihalarni optimallashtirishda Go dasturlash tili tanlaniladi.

Meni qiynardi shu savol: nega Google o’zining (!) tili bo’lgan Go’dan foydalanib Android’ga app yozish imkoniyatini bermaydi? Applar tezroq ishlardi, odamlar Android NDK bilan boshini og’ritib yurmasdi (kamida dasturlash tillari orasida «sakrab»).

Va BUM! Bugun News’da chiqdi:

Go support for Android

Hozircha, NDK API bilan mos bo’larkan va o’yinlar uchun mo’ljallangan (ular ko’p resurs talab qiladi). Keyinchalik, Go orqali to’laqonli applar yozish imkoniyati qo’shilsa yaxshi.

Go hozir modada. Habrdagi mos habda qiziq misollar, tajribalar keltirilgan. Ming marta skeptik yondoshganda ham sal o’ylantirib qo’yadigan maqolalar: How We Went from 30 Servers to 2: Go, Go After 2 Years in Production.

Programmistga har yili kamida bitta qo’shimcha dasturlash tilini o’rganish tavsiya qilinadi:

Learn at least one new language every year. Different languages solve the same problems in different ways. By learning several different approaches, you can help broaden your thinking and avoid getting stuck in a rut. Additionally, learning many languages is far easier now, thanks to the wealth of freely available software on the Internet.
http://programmers.stackexchange.com/a/136140

Ha, aytgandek, bu yoqda yana bitta favorit bor — Rust!

Manba:

Umumiy Dasturlash
Android va Go