Ringkasan: Alasan utama untuk beralih dari GCC ke Dentang adalah ketidakcocokan lisensi GPL v3 GCC dengan tujuan proyek FreeBSD . Ada juga masalah politik yang berkaitan dengan investasi perusahaan, serta persyaratan basis pengguna. Akhirnya, ada keuntungan teknis yang diharapkan berkaitan dengan kepatuhan standar dan kemudahan debugging. Peningkatan kinerja dunia nyata dalam kompilasi dan eksekusi bersifat spesifik kode dan dapat diperdebatkan; case dapat dibuat untuk kedua kompiler.
FreeBSD dan GPL: FreeBSD memiliki hubungan yang tidak mudah dengan GPL. Pendukung lisensi BSD percaya bahwa perangkat lunak yang benar-benar gratis tidak memiliki batasan penggunaan . Pendukung GPL percaya bahwa pembatasan diperlukan untuk melindungi kebebasan perangkat lunak, dan khususnya bahwa kemampuan untuk membuat perangkat lunak tidak bebas dari perangkat lunak bebas adalah bentuk kekuatan yang tidak adil daripada kebebasan. Proyek FreeBSD, jika memungkinkan, mencoba menghindari penggunaan GPL :
Karena kompleksitas tambahan yang dapat berkembang dalam penggunaan komersial perangkat lunak GPL, kami berupaya untuk mengganti perangkat lunak tersebut dengan pengiriman di bawah lisensi FreeBSD yang lebih santai bila memungkinkan.
FreeBSD dan GPL v3: The GPL v3 secara eksplisit melarang apa yang disebut Tivoisation kode, celah di v2 GPL yang memungkinkan pembatasan hardware untuk melarang modifikasi software dinyatakan legal oleh pengguna. Menutup celah ini adalah langkah yang tidak dapat diterima bagi banyak orang di komunitas FreeBSD:
Vendor peralatan khususnya memiliki kerugian terbesar jika sejumlah besar perangkat lunak yang saat ini dilisensikan di bawah GPLv2 hari ini bermigrasi ke lisensi baru. Mereka tidak lagi memiliki kebebasan untuk menggunakan perangkat lunak GPLv3 dan membatasi modifikasi perangkat lunak yang diinstal pada perangkat keras mereka ... Singkatnya, ada basis besar konsumen OpenSource yang tiba-tiba sangat tertarik untuk memahami alternatif untuk perangkat lunak berlisensi GPL.
Karena kepindahan GCC ke GPL v3, FreeBSD terpaksa tetap menggunakan GCC 4.2.1 (GPL v2), yang dirilis pada 2007 , dan sekarang sudah ketinggalan zaman. Fakta bahwa FreeBSD tidak bergerak untuk menggunakan versi GCC yang lebih modern, bahkan dengan sakit kepala pemeliharaan tambahan untuk menjalankan kompiler lama dan perbaikan backporting, memberikan beberapa gagasan tentang kekuatan persyaratan untuk menghindari GPL v3. Kompiler C adalah komponen utama basis FreeBSD, dan " salah satu tujuan (sementara) untuk FreeBSD 10 adalah sistem basis bebas GPL ".
Investasi perusahaan: Seperti banyak proyek open source besar lainnya, FreeBSD menerima pendanaan dan pekerjaan pengembangan dari perusahaan. Meskipun sejauh mana FreeBSD didanai atau diberikan pengembangan oleh Apple tidak mudah ditemukan, ada banyak tumpang tindih karena OS Darwin dari Apple menggunakan kode kernel yang berasal dari BSD . Selain itu, Clang sendiri awalnya merupakan proyek Apple in-house, sebelum menjadi open-source pada tahun 2007 . Karena sumber daya perusahaan adalah pendukung utama proyek FreeBSD, memenuhi kebutuhan sponsor mungkin merupakan pendorong dunia nyata yang signifikan .
Userbase: FreeBSD adalah pilihan open source yang menarik bagi banyak perusahaan, karena perizinannya sederhana, tidak membatasi dan tidak mungkin mengarah pada tuntutan hukum. Dengan kedatangan GPL v3 dan ketentuan anti-Tivoisation baru , telah disarankan bahwa ada tren percepatan, didorong oleh vendor menuju lisensi yang lebih permisif . Karena keuntungan yang dirasakan FreeBSD untuk entitas komersial terletak pada lisensi permisifnya, ada tekanan yang meningkat dari basis pengguna korporat untuk menjauh dari GCC, dan GPL pada umumnya.
Masalah dengan GCC: Selain dari lisensi, menggunakan GCC memiliki beberapa masalah yang dirasakan . GCC tidak sesuai sepenuhnya-standar, dan memiliki banyak ekstensi tidak ditemukan dalam ISO standar C . Dengan lebih dari 3 juta baris kode, ini juga merupakan " salah satu proyek perangkat lunak sumber paling bebas dan terbuka ". Kompleksitas ini membuat modifikasi kode tingkat distro menjadi tugas yang menantang.
Keunggulan teknis: Dentang memang memiliki beberapa keunggulan teknis dibandingkan dengan GCC . Yang paling menonjol adalah pesan kesalahan yang jauh lebih informatif dan API yang dirancang secara eksplisit untuk IDE, refactoring, dan alat analisis kode sumber. Meskipun situs web Clang menyajikan plot yang menunjukkan kompilasi dan penggunaan memori yang jauh lebih efisien, hasil dunia nyata sangat bervariasi , dan secara luas sejalan dengan kinerja GCC. Secara umum, binari Clang yang diproduksi berjalan lebih lambat dari binari GCC yang setara:
Saat menggunakan LLVM lebih cepat dalam membangun kode daripada GCC ... dalam banyak kasus, biner yang dibangun GCC 4,5 memiliki kinerja yang lebih baik daripada LLVM-GCC atau Dentang ... dalam tes lainnya kinerjanya dekat dengan GCC atau dengan baik dibelakang. Dalam beberapa tes, kinerja biner Dentang dihasilkan sangat mengerikan.
Kesimpulan: Sangat tidak mungkin bahwa efisiensi kompilasi akan menjadi motivator yang signifikan untuk mengambil risiko besar memindahkan proyek besar seperti FreeBSD ke toolchain kompilator yang sama sekali baru, terutama ketika kinerja biner kurang. Namun, situasinya tidak dapat dipertahankan. Diberikan pilihan antara 1) menjalankan GCC yang kedaluwarsa, 2) Pindah ke GCC modern dan dipaksa untuk menggunakan lisensi yang tidak sesuai dengan tujuan proyek atau 3) pindah ke kompiler BSD yang stabil, keputusan mungkin tak terhindarkan. Ingatlah bahwa ini hanya berlaku untuk sistem basis, dan dukungan dari distribusi; tidak ada yang mencegah pengguna menginstal dan menggunakan GCC modern pada kotak FreeBSD mereka sendiri.