Logo id.androidermagazine.com
Logo id.androidermagazine.com

Apa garpu itu 'garpu'?

Daftar Isi:

Anonim

Beberapa hari terakhir Anda mungkin pernah mendengar kata "garpu" lebih dari yang dapat Anda hitung. Facebook memotong ini (meskipun tidak), Amazon memotongnya, tim Chrome memotong seluruh web, dan seterusnya dan seterusnya. Sementara semua orang berbicara tentang siapa yang bercabang siapa, tidak ada yang mau repot-repot menjelaskan apa itu percabangan, dan mengapa begitu banyak orang punya masalah dengan itu.

Forking, atau pecah, mendapat sedikit rep buruk 20 tahun yang lalu, karena cenderung membagi pengembang menjadi faksi-faksi terpisah yang tidak berbagi kode satu sama lain. Pada zaman hal-hal seperti perpecahan Gnu-Emacs / XEmacs, ini penting karena tidak ada banyak orang yang mampu mengerjakan proyek-proyek sumber terbuka yang besar ini, dan memiliki dua cabang atau garpu berarti perlu waktu lebih lama untuk menambahkan fitur dan mengatasi masalah untuk kedua sisi. Dalam beberapa kasus ini masih terjadi, saya yakin, tetapi sebagian besar ada banyak pengembang yang dapat mengisi kekosongan yang ditinggalkan oleh mereka yang memiliki visi terpisah dan akan memotong kode untuk mengikutinya. Tetapi beberapa orang tidak pernah lupa, dan stigma yang melekat pada forking forking diturunkan. Setelah mengatakan semua ini, kita tidak bisa berpura-pura garpu buruk tidak terjadi. Kita hanya perlu melihat melewati tindakan itu sendiri sebelum kita membuat keputusan.

Saya tahu beberapa dari Anda tahu apa artinya semua ini, dan hanya berusaha mengabaikan semua kebisingan, tetapi bagi banyak orang itu membingungkan. Mari kita coba memperbaikinya.

Apa itu garpu perangkat lunak, dan bagaimana pengaruhnya terhadap Android?

Pikirkan Android banyak kode. Ada dua bagian - bagian open-source, yang merupakan AOSP, dan bagian-bagian berpemilik yang disimpan Google untuk dirinya sendiri. Jika seseorang ingin mengambil Google Android dan mengubahnya, mereka akan mengunduh kode untuk digunakan sebagai basis, dan membentuk proyek mereka sendiri dengannya. Samsung melakukan itu, HTC melakukan itu, dan pengembang ROM favorit Anda mungkin melakukannya. Kapan saja seseorang mengambil kode yang ada, dan memulai proyek independen (itu perbedaan penting) berdasarkan itu, mereka telah membuat garpu. Banyak pengembang akan memeriksa kode, mengedit bagian dari itu, lalu mengirim perubahan mereka kembali ke hulu secara keseluruhan, yang bukan garpu.

Amazon mengangkat beberapa alis ketika bercabang Android untuk membangun OS untuk garis Kindle Fire. Tetapi di sisi open-source, itu tidak berbeda dengan apa yang dilakukan Motorola dengan Cliq, atau HTC dengan Hero - atau apa yang dilakukan Samsung sekarang untuk perangkat seri Galaxy. Ini adalah berapa banyak proyek sumber terbuka besar bekerja. Setiap vendor (kecuali mungkin Amazon) bekerja dengan dasar-dasar yang sama, kemungkinan melaporkan bug dan mengirimkan perbaikan kembali saat mereka berjalan, untuk membuat keputusan sendiri tentang produk akhir.

Facebook tidak menggunakan Android. Ini menggunakan sistem niat Android (cara aplikasi dapat bekerja satu sama lain dan berbagi di Android) dan membangun aplikasi besar yang juga mencakup rumah pengganti. Di dalam kotak pasir mereka, mereka dapat melakukan apa pun yang mereka inginkan atau perlu lakukan, dan selama mereka menggunakan niat Android, mereka dapat berkomunikasi dengan seluruh sistem. Jika Anda ingin mendapatkan teknis, HTC mungkin telah bercabang Android untuk bekerja lebih baik dengan Facebook Home di HTC First, karena menyebutkan beberapa perubahan yang dibuat untuk kompatibilitas yang lebih baik. Kita akan tahu lebih banyak tentang apa yang mereka lakukan ketika telepon keluar.

Bagaimanapun, kode forking bukan selalu hal yang buruk dan tidak pantas mendapatkan semua hal negatif yang Anda dengar ketika seseorang menyebutkannya. Analis industri Stephen O'Grady merangkumnya dengan baik saya pikir:

Perlu disebutkan, bagaimanapun, bahwa dari perspektif pelanggan, garpu atau varian tidak buruk secara universal. Sementara berbagai versi Android dapat mewakili keputusan desain yang tidak menguntungkan dari pihak vendor yang bertanggung jawab untuk mereka, aplikasi dalam mayoritas kasus yang kompatibel dari perangkat ke perangkat, dengan asumsi kesetaraan versi.

Memiliki aplikasi yang kompatibel dari perangkat ke perangkat adalah alasan mengapa Android dirancang. Kode forking tidak membuat itu tidak terjadi. Tetapi hal-hal lain juga.

Sisi lain forking Android

Di Cina, Anda dapat membeli telepon dari operator yang menjalankan Android, tetapi tidak memiliki layanan Google? Sama seperti Kindle Fire, itu dibuat dari kode Android Google (kadang-kadang tidak dimodifikasi) tetapi tidak dikirim dan diuji untuk menjadi kompatibel Google dan memiliki hal-hal seperti Gmail atau Google Play disertakan. Aplikasi-aplikasi itu, dan berbagai macam file sistem yang harus mereka jalankan, bukan open-source, dan Anda tidak bisa hanya memasukkannya tanpa izin dari Google.

Selain pengalaman "berbeda" (saya tidak akan mengatakan itu "lebih buruk", hanya berbeda) tanpa aplikasi ini, mereka dapat terlihat dan terasa seperti ponsel Android yang Anda beli dari Verizon atau AT&T. Mereka juga dapat terlihat dan merasa sangat berbeda, seperti yang dilakukan Amazon. Tapi semua ini bukan karena mereka memotong kode Android Google - itu adalah keputusan sadar untuk tidak membuat perangkat "bersertifikat" Google. Google menghadirkan Android sebagai platform aplikasi dan serangkaian kerangka kerja aplikasi. Tidak termasuk aplikasi layanan Google tidak menjadikannya sebagai platform aplikasi. Tentu saja, kami membayangkan Google lebih suka semua perangkat berbasis Android dan Android menggunakan layanan Google, tetapi tidak ada aturan yang keras dan cepat yang mengatakan bahwa vendor harus melakukannya.

Membuat perangkat tanpa aplikasi Google tidak ada hubungannya dengan forking Android. Ini dapat membuat perangkat kurang diinginkan, atau suatu hari ponsel Android utama dapat dibangun tanpa aplikasi Google, tetapi itu dapat terjadi tanpa forking kode apa pun. Kita semua bersalah karena menyatukan dua hal bersama, tetapi kita seharusnya tidak melakukannya.

Forking hanyalah suatu hal

Tidak baik jika OEM mengeluarkan Android dan mengerjakan proyek mereka sendiri dengan kodenya. Tidak buruk jika OEM tidak menggunakan Android dan mengerjakan proyek mereka sendiri dengan kodenya. Itu hanya hal yang mereka semua lakukan.

Selain Nexus fanclub, Anda tidak dapat memberi tahu saya bahwa Samsung atau HTC telah merusak Android dengan memalsukan kode dan membuatnya. Mereka menambahkan fitur sambil menjaga semuanya kompatibel sehingga aplikasi yang dibangun untuk "Android" sesuai dengan pedoman pengembang akan berfungsi dengan baik. Dan mereka secara konsisten memberikan perangkat yang ingin dibeli orang. Saya pikir inilah yang Google pikirkan untuk Android. Mereka tahu bahwa pada akhirnya seseorang akan melangkah lebih jauh dan menciptakan sesuatu yang tidak sepenuhnya "Android" patuh, tapi tidak apa-apa. Pengguna perangkat tersebut masih di Internet, dan aplikasi web seluler Google cukup baik.

Mudah-mudahan, sekarang Anda tahu lebih banyak tentang apa yang orang maksud ketika mereka berbicara tentang forking Android.