2 poin oleh GN⁺ 2023-12-20 | Belum ada komentar. | Bagikan ke WhatsApp
  • Keluhan muncul di forum Swift bahwa memasukkan Swift ke dalam OS justru menciptakan situasi yang lebih buruk bagi para pengembang
  • Sebagai tanggapan, ada komentar sinis yang pada dasarnya berkata: selamat datang di dunia library yang didistribusikan bersama OS
  • Artikel ini menjelaskan latar belakang dan permasalahan mengapa Swift menjadi bagian dari OS, berdasarkan pengalaman mengembangkan Swift di Apple

Ketergantungan pada OS

  • Dahulu, komputer pribadi mengizinkan proses yang sedang berjalan untuk mengendalikan seluruh mesin, tetapi sekarang kernel sistem operasi selalu berjalan dan menyediakan layanan dasar OS
  • Sebagian besar OS modern memungkinkan pembuatan program yang dapat meminta tugas tertentu yang memerlukan hak istimewa melalui antarmuka system call.
  • OS Apple saat ini mengharuskan penggunaan library standar C/POSIX beserta ekstensinya untuk melakukan tugas-tugas dasar, karena antarmuka system call tidak stabil antarversi OS.

Model Apple (sebelum Swift)

  • Sebelum Swift, sebagian besar API publik Apple ditulis dalam C atau Objective-C dan disediakan dalam bentuk native code.
  • Versi OS baru menyertakan versi baru dari library yang tetap kompatibel secara biner, sehingga menyediakan superset yang mencakup API dari versi sebelumnya.
  • Kelemahan utama model ini adalah fitur dan API baru terikat pada versi OS baru.

Swift "beta" 1 ~ 5

  • Dari Swift 1 hingga Swift 5 terjadi banyak perubahan, dan stabilitas ABI selalu menjadi tujuan Swift.
  • Saat beralih ke Swift 5, sebagian besar masalah sudah teratasi, dan perlu dicari cara agar aplikasi serta proyek yang sudah ada tidak terdampak ketika Swift dimasukkan ke dalam OS.

Transisi

  • Dalam proses memasukkan Swift ke dalam OS, perlu dicari cara agar aplikasi dan proyek yang telah dibangun sebelumnya tidak rusak.
  • Dengan menggunakan fitur bernama "rpath", file executable dapat mencari dynamic library di serangkaian direktori alih-alih pada path yang di-hardcode.

Yang hilang

  • Setelah Swift dimasukkan ke dalam OS, aplikasi tidak lagi perlu menyertakan Swift, dan karena runtime Swift serta Objective-C disediakan bersama, peningkatan performa pun dimungkinkan.
  • Namun, para kontributor Swift dari luar Apple menghadapi masalah bahwa API baru hanya tersedia di OS baru.

Alternatif

  • Ada beberapa pendekatan yang masuk akal yang bisa dilakukan Apple untuk memberikan situasi yang lebih baik bagi pengembang, tetapi belum jelas apakah Apple akan melakukannya.

Kesimpulan

  • Menjadikan Swift bagian dari OS mungkin merupakan kesepakatan yang buruk bagi pengembang aplikasi, tetapi Apple tidak bisa melepaskan opsi untuk menulis system library dalam Swift.

Ini bukan hal baru terkait Swift

  • Banyak masalah yang terkait dengan Swift sebenarnya merupakan akibat dari library yang didistribusikan bersama OS.
  • Baik perubahan teknis maupun perubahan sosial di sekitar Swift sama-sama memengaruhi masalah ini.

Opini GN⁺

  • Menjadikan Swift bagian dari OS memang memberi batasan yang lebih besar bagi pengembang, tetapi ini adalah konsekuensi yang tak terelakkan dari model distribusi library Apple.
  • Artikel ini menyoroti kompleksitas pengembangan perangkat lunak dan pentingnya pengelolaan library dengan menelaah tantangan teknis dan operasional yang muncul saat Swift diintegrasikan ke dalam OS, serta solusi yang ditempuh.
  • Integrasi Swift ke dalam OS membawa ukuran file yang lebih besar dan masalah kompatibilitas bagi pengembang aplikasi, tetapi bagi Apple hal ini memungkinkan penulisan dan pembaruan system library dalam Swift, sehingga membantu menjaga konsistensi dan keamanan sistem secara keseluruhan.

Belum ada komentar.

Belum ada komentar.