Mengapa aplikasi Linux sering memasukkan bahasa yang ditulisnya dalam ringkasan?

19

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 +.

Jordan Parmer
sumber
2
Saya ingin menyebutkan bahwa banyak aplikasi windows bukan open source ... Seringkali mereka dikemas dengan dependensi yang mereka butuhkan, bahkan jika mereka open source. Salah satu contohnya adalah pidgin. Anda tidak perlu mengunduh gtk secara terpisah di windows agar pidgin berfungsi. Anda mungkin menemukan menyertakan bahasa di windows memang terjadi ketika memang memerlukan ketergantungan eksternal meskipun saya tidak dapat memikirkan contoh saat ini karena tampaknya paling sulit berusaha untuk tidak memerlukan ketergantungan eksternal.
xenoterracide

Jawaban:

21

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.

tepang
sumber
Ya, saya pikir Anda punya poin bagus di sini. Budaya * nix memang budaya.
Jordan Parmer
1
Ini juga menghemat waktu ketika bertanya-tanya "hei, dalam bahasa apa Chromium ditulis?".
greenoldman
@ Macias: Geek dalam diri saya membuat saya melihat dependensi paket, di mana geek ini paling sering mengetahui bahasa. Faktanya, geek ini sangat religius sehingga setiap kali dia mengunjungi sebuah situs web, dia merasa kesal karena dia tidak dapat dengan cepat memeriksa bahasa apa yang digunakan oleh alat yang tidak dikenal itu. <masukkan bahasa favorit>, prasangka si geek menunjukkan.
tshepang
4
Contoh praktis tentang teknologi yang bisa menjadi masalah adalah mono / .NET karena Microsoft memiliki banyak paten di bidang itu dan memiliki sejarah panjang tentang menjadi "tidak ramah" ... Oleh karena itu tidak aneh bahwa beberapa orang ingin tahu hal-hal semacam ini untuk menghindari masalah di masa depan.
Johan
1
Dari perspektif admin sistem, apa yang ditulis proyek seringkali menentukan dependensi mana yang harus tersedia.
JM Becker
12

Perasaan saya adalah ini berkaitan dengan yang kedua dari empat kebebasan perangkat lunak :

Kebebasan untuk mempelajari cara kerja program, dan mengubahnya untuk membuatnya melakukan apa yang Anda inginkan (kebebasan 1). Akses ke kode sumber adalah prasyarat untuk ini.

Mempublikasikan bahasa (atau fitur teknis lainnya) mendukung kemampuan orang untuk memilih, dan mendorong partisipasi dalam proyek oleh orang-orang yang mahir dalam bahasa tersebut.

jasonwryan
sumber
10

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.

dmckee
sumber
2
Contoh yang layak saya pikirkan adalah aplikasi web yang disebut redmine. Ini ditulis dengan Ruby on Rails, baik ruby ​​maupun rails biasanya disediakan pada sistem secara default. Aplikasi Java juga seperti ini.
xenoterracide
10

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).

Pengguna tidak diketahui
sumber
Cukup menjelajah melalui repositori Ubuntu (via Software Center). Hampir semua rangkuman menyertakan bahasa dalam kalimat pertama. Saya merasa agak lucu bahwa sebagian besar pengembang Linux tampaknya benar-benar berkembang untuk pengembang Linux lain, bukan pengguna.
Jordan Parmer
@ j0rd4n bukan pengguna ubuntu, bisakah Anda memberikan contoh paket perangkat lunak? Maksud saya, mereka benar-benar menempatkan C dalam deskripsi Firefox? Saya akan berspekulasi bahwa sekitar 90% dari perangkat lunak di Linux tidak dimaksudkan untuk pengguna akhir itu adalah perpustakaan. Juga ... Anda tidak menyadari bahwa Pengembang Linux mengembangkan untuk diri mereka sendiri? itu sedih tapi benar ... sebagai programmer perl saya ngelantur Saya belum menulis apa pun untuk pengguna akhir :(
xenoterracide
Saya menggunakan ubuntu, dengan bahasa Jerman sebagai bahasa antarmuka, jadi itu hanya akan membantu sedikit dari kita, untuk mengutip beberapa contoh, tetapi saya dapat meyakinkan Anda: Dalam sinaptik, alat instalasi untuk perangkat lunak baru, saya membuat tes dan memilih 5 paket - dan tidak menemukan satu pun dari mereka, menyebutkan bahasa yang digunakan untuk menulis.
pengguna tidak diketahui
Memperluas komentar saya: Seringkali, perangkat lunak ini ditulis untuk Unix (jika Anda menemukan automake-file dan sejenisnya) dan tidak harus diproduksi untuk linux, tetapi karena kompatibilitasnya, tersedia pada berbagai rasa unix.
pengguna tidak diketahui
6

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.

Bruce Ediger
sumber
4

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.

Tobu
sumber
Repositori Ubuntu memiliki deskripsi paket yang luar biasa, dimana lima kata pertama berisi bahasa tersebut. Saya sendiri seorang pengembang, tetapi saya tidak pernah mengira pengguna saya peduli. Namun, saya bisa mengerti bahwa menjadi open source, mungkin memiliki makna lebih, tetapi apakah kita berkembang untuk orang atau pengembang lain?
Jordan Parmer
1
@ j0rd4n Pengembang juga manusia!
Zach
3

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.

  • Aspek umum adalah perpustakaan yang digunakan saat menjalankan aplikasi.

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.

  • Aspek lain adalah perpustakaan yang digunakan dan prasyarat yang diperlukan untuk mengkompilasi aplikasi.

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.

  • Aspek yang berbeda adalah niat untuk menarik kontributor.

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.

  • Akhirnya, jelas ada banyak bias dan prasangka terhadap beberapa bahasa.

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.

Nicolas Kaiser
sumber
1

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.

Patrick
sumber
Jadi dalam kedua kasus Anda memiliki argumen pro dan kontra - yang tidak memuaskan. Kode yang dikompilasi yang merupakan sumber tertutup juga umum di windows, sehingga argumen kinerja tidak akan membedakan program Linux
pengguna tidak diketahui
1
apa? Anda tidak masuk akal. Pro dan kontra adalah alasan utama Anda akan membuat daftar bahasa. Jika seseorang hanya memiliki 'pro', maka semua orang akan menggunakannya. Dan saya bahkan tidak mengerti apa yang Anda katakan tentang kode dan OS yang dikompilasi.
Patrick
Saya mengerti jawaban Anda seperti itu, bahwa orang secara implisit mengiklankan kinerja, jika itu ditulis dalam C / C ++, dan bahwa mereka secara implisit mengiklankan portabilitas jika tidak ditulis dalam C / C ++. Yang selalu merupakan argumen kontra - baik terhadap portabilitas, atau terhadap kinerja - kedua alasan, belum lagi bahasa. Jadi mengapa kadang-kadang ini, dan di lain waktu sebaliknya?
pengguna tidak diketahui
0

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 nke n+1program Perl mungkin tidak menambah banyak persyaratan penggunaan memori, karena banyak memori dapat dibagi, tetapi beralih dari nprogram Perl dan program 0 Python kenProgram 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 .sopemuatan modul dinamis saat runtime muncul dalam pikiran ...

R ..
sumber
Mengapa Anda menyebut mereka bodoh? Mengapa mereka tidak membuat kode dalam bahasa yang mereka sukai? Bahasa mana yang harus mereka gunakan?
tshepang