Saat menampilkan aplikasi, Windows dan Mac sebagian besar berbicara tentang fitur. Aplikasi Linux, di sisi lain, memiliki lebih banyak detail tentang bahasa apa yang digunakan untuk menulisnya (dan menyertai perpustakaan) daripada fitur. Mengapa demikian?
Saya bisa mengerti mengetahui perbedaan antara GTK + versus QT membuat perbedaan hanya karena persyaratan integrasi desktop, tetapi C vs C ++ vs Python vs Majelis vs dll? Betulkah?
Sebagai contoh: foo adalah bla bla sederhana yang ditulis dalam C / GTK +.
Jawaban:
Saya pikir pengguna Linux tradisional (penggerutu culun yang benar-benar menginstal sistem sendiri) tidak peduli dengan informasi tersebut (teknologi apa yang ada di balik alat ini?). Saya juga salah satu dari orang-orang culun yang, misalnya, menahan diri untuk menginstal dan menggunakan paket hanya karena menggunakan beberapa teknologi yang saya tidak suka. Beberapa menyebut perilaku semacam ini tentu saja agama. Konyol bukan?
Bagaimanapun saya dapat memikirkan dua alasan:
Para pembuat paket sama geeky (jika tidak lebih) dari para pengguna Linux juga, jadi mereka menemukan ide yang bagus untuk menambahkan info tersebut.
Saya pikir ketika para pembuat paket ini memberikan informasi seperti itu pada deskripsi paket mereka, mereka cenderung melakukannya sebagai bentuk promosi. Ini berfungsi kadang-kadang (ini bekerja pada saya beberapa kali).
Ini hanya dugaan saja.
sumber
Perasaan saya adalah ini berkaitan dengan yang kedua dari empat kebebasan perangkat lunak :
Mempublikasikan bahasa (atau fitur teknis lainnya) mendukung kemampuan orang untuk memilih, dan mendorong partisipasi dalam proyek oleh orang-orang yang mahir dalam bahasa tersebut.
sumber
Ini mungkin sebagian historis. Bahkan di masa lalu yang tidak terlalu jauh, biasanya administrator sistem individu membangun dan menginstal semua yang berjalan pada sistem mereka.
Catatan tentang bahasa dan perpustakaan apa yang digunakan untuk mengimplementasikan alat memberi petunjuk kepada administrator tentang berapa banyak pekerjaan yang akan proses untuk sistem mereka .
Dalam era alat manajemen paket yang ada di mana-mana dan jauh jangkauannya, ini adalah sedikit anakronisme, tetapi budaya unix konservatif dalam arti tidak membuang hal-hal yang tampaknya berhasil, sehingga akan butuh waktu sebelum kebiasaan itu mati.
sumber
Sebagai perpanjangan dari jawaban jasonwryans :
Jika Anda menyebutkan bahasa yang digunakan untuk menulisnya, orang yang menerimanya dapat memperkirakan seberapa sulit untuk menyediakan tambalan, atau untuk mendapatkan wawasan, atau untuk memperpanjang program.
Tentu saja ini hanya masuk akal jika Anda seorang programmer.
Di mana Anda melihat ringkasan? Dalam repositori, atau paket seperti .deb atau .rpm?
Jika Anda membuatnya dari sumber, informasinya mungkin dapat membantu mengidentifikasi, apakah Anda harus menginstal hal-hal lain (kompiler, pustaka, alat-alat bangunan).
sumber
Unix, dan sekarang LInux dan BSD, selalu memiliki basis perangkat lunak yang benar-benar retak, dan basis perangkat keras yang jauh lebih beragam ada di masa lalu. Penting untuk mengetahui bahwa beberapa perangkat lunak berjalan dalam intepreters yang Anda miliki di sistem Anda, atau bahwa Anda dapat mengkompilasi kode sumber. Jika Anda tidak memiliki juru bahasa Common Lisp, atau juru bahasa Tcl atau juru bahasa apa pun, Anda tidak ingin repot-repot mengunduh sumber, hanya untuk mengetahui bahwa Anda tidak dapat menjalankannya.
Memiliki deskripsi tentang bahasa apa yang ada di dalamnya mencegah banyak waktu yang terbuang.
sumber
Ketika diminta "apa benda ini?", Pengembang akan cenderung menggambarkan sifatnya, yang bagi mereka terkait dengan kode sumber, bukan fungsinya. Mudah-mudahan seseorang akan menulis ulang deskripsi menjadi lebih user-centric sebelum berakhir pada sebuah paket, tetapi menyebutkan bahasa masih bisa relevan, misalnya untuk ekstensibilitas dan skripibilitas, atau berguna untuk kesempatan menarik kontributor.
sumber
Dari sudut pandang saya, informasi tersebut sangat penting untuk menarik kontributor baru, serta memberi calon pengguna gagasan langsung tentang seberapa banyak pekerjaan yang mungkin diperlukan untuk mengintegrasikan aplikasi ke dalam sistem mereka.
Beberapa instalasi terbatas pada beberapa toolkit yang dipilih, seperti GTK + tetapi tidak untuk QT, atau sebaliknya. Untuk seorang administrator yang memelihara suatu sistem dan secara teratur memperbarui komponen-komponennya dalam jangka waktu yang lama, ini mungkin semata-mata masalah praktis dan bukan masalah agama.
Yaitu untuk pengguna distribusi Linux berbasis sumber itu membuat perbedaan besar apakah aplikasi ditulis dalam C, atau di Objective-C, karena kompiler mereka perlu mendukung bahasa di tempat pertama. Bahasa lain mungkin perlu menginstal setumpuk perpustakaan yang sangat besar. Pertanyaannya adalah, sekali lagi, berapa banyak pekerjaan yang Anda bersedia terima untuk mengkompilasi aplikasi ini.
Sebagian besar pengembang memiliki preferensi untuk sejumlah kecil bahasa, atau mungkin kurang berpengalaman dalam bahasa lain. Untuk memungkinkan lebih banyak orang berkontribusi dalam suatu aplikasi, beberapa proyek bahkan membagi sumber mereka menjadi dua bahasa yang berbeda (seperti Wesnoth, Vega Strike, Naev, hanya untuk beberapa nama). Salah satunya untuk aplikasi inti (seperti C atau C ++), yang lain untuk modifikasi mudah (seperti Python atau Lua). Berikut tautan ke bab "Arsitektur Aplikasi Sumber Terbuka" yang menjelaskan bagaimana dan mengapa ini dilakukan di Wesnoth.
Saya hanya akan mengatakan bahwa saya telah melihat perangkat lunak yang sangat tidak efisien ditulis dalam bahasa apa pun. Jika Anda bertanya kepada saya, untuk efisiensi, kualitas kode aplikasi jauh lebih penting daripada bahasa yang ditulisnya.
sumber
Saya pikir banyak hubungannya dengan iklan kinerja. Aplikasi yang ditulis dalam bahasa yang dikompilasi (C, C ++, ...) akan melakukan heck yang jauh lebih baik daripada yang ditulis dalam bahasa skrip (perl, python, ...).
Tetapi juga terkait dengan kompatibilitas. Aplikasi yang ditulis dalam bahasa scripting juga cenderung lebih portabel di seluruh arsitektur & OS dengan sedikit atau tanpa modifikasi.
sumber
Pada sistem desktop / server saat ini mungkin tidak begitu relevan, tetapi untuk sistem yang lebih kecil mulai dari sistem tertanam hingga netbook dan tablet SSD, bahasa atau pustaka yang digunakan oleh suatu program dapat menjadi masalah make-or-break, baik karena ukuran dan pertimbangan portabilitas.
Mengenai ukuran: Menambahkan penerjemah untuk bahasa tambahan, bersama dengan semua modul standar dan modul tambahan yang biasanya digunakan, dapat dengan mudah menambahkan ratusan megabita ke persyaratan penyimpanan. Hal yang sama berlaku untuk keluarga pustaka, terutama yang terkait dengan lingkungan desktop utama seperti Gnome dan KDE. Yang lebih buruk, beralih dari menjalankan
n
ken+1
program Perl mungkin tidak menambah banyak persyaratan penggunaan memori, karena banyak memori dapat dibagi, tetapi beralih darin
program Perl dan program 0 Python ken
Program Perl dan 1 program Python menghasilkan lonjakan signifikan dalam penggunaan memori. Ini menjadi lebih banyak masalah ketika setiap orang bodoh yang menulis perangkat lunak bebas memiliki skrip / bahasa radtool favorit mereka sendiri yang ingin mereka programkan di ... Perl, Python, PHP, Ruby, JavaScript, Bourne shell, Bash, Csh, ....Mengenai portabilitas: Banyak bahasa yang ditafsirkan (serta kerangka kerja perpustakaan) memanfaatkan banyak fitur yang mungkin tersedia pada sistem desktop / server Linux yang besar tetapi tidak selalu tersedia pada sistem yang lebih kecil / tertanam / kurang-MMU. Ketergantungan pada
.so
pemuatan modul dinamis saat runtime muncul dalam pikiran ...sumber