Perché le applicazioni Linux inseriscono spesso la lingua con cui è stata scritta nel riepilogo?


19

Quando si mettono in mostra le applicazioni, Windows e Mac parlano principalmente di funzionalità. Le applicazioni Linux, d'altra parte, hanno maggiori dettagli su quale linguaggio è stato usato per scriverlo (e sulle librerie di accompagnamento) piuttosto che sulle funzionalità. Perché?

Potrei capire conoscendo la differenza tra GTK + e QT fare la differenza solo per via dei requisiti di integrazione desktop, ma C vs C ++ vs Python vs Assembly vs ecc.? Veramente?

Ad esempio: foo è un semplice blah blah scritto in C / GTK +.


2
Vorrei menzionare che molte app di Windows non sono open source ... Spesso sono impacchettate con le dipendenze di cui hanno bisogno, anche se sono open source. Un esempio è pidgin. Non devi scaricare gtk separatamente su Windows per far funzionare pidgin. Potresti scoprire che includere la lingua su Windows accade quando richiede dipendenze esterne, anche se al momento non riesco a pensare ad alcun esempio, dato che sembra molto difficile non richiedere dipendenze esterne.
xenoterracide,

Risposte:


21

Penso che l'utente Linux tradizionale (un geniale ginky che ha effettivamente installato il sistema da solo) si preoccupi di tali informazioni (quale tecnologia è dietro questo strumento?). Sono anche uno di quei ragazzi geek che, ad esempio, si asterrebbero dall'installare e usare un pacchetto solo perché usa una tecnologia che non mi piace. Alcuni chiamano questo tipo di comportamento religione ovviamente. Sciocco no?

Comunque riesco a pensare a due motivi:

  • I packager sono altrettanto geek (se non di più) anche di quegli utenti Linux, quindi hanno trovato una buona idea aggiungere tali informazioni.

  • Penso che quando questi packager inseriscono tali informazioni nelle descrizioni dei loro pacchetti, probabilmente lo fanno come una forma di promozione. A volte funziona (ha funzionato su di me parecchie volte).

Questa è solo una supposizione ovviamente.


Sì, penso che tu abbia un buon punto qui. La cultura * nix è davvero una cultura.
Jordan Parmer,

1
Inoltre, si risparmia tempo quando ci si chiede "ehi, in che lingua è scritto Chromium?".
Greenoldman,

@macias: il geek in me mi fa guardare alle dipendenze del pacchetto, dove questo geek molto spesso scoprirà la lingua. In realtà, questo geek è così religioso che ogni volta che visita un sito Web, si infastidisce che non può controllare rapidamente in quale lingua è scritto lo strumento sconosciuto. Se è <inserisci lingua non amata>, questo geek scappa e se è <inserisci la lingua preferita>, mostra il pregiudizio del geek.
Tshepang,

4
Un esempio pratico di tecnologia che potrebbe essere un problema è il mono / .NET poiché Microsoft ha molti brevetti in quella zona e ha una lunga storia sull'essere "ostile" ... Pertanto non è strano che alcune persone vorrebbero conoscere questo tipo di cose per evitare problemi futuri.
Johan

1
Dal punto di vista dell'amministratore di sistema, ciò che viene scritto un progetto spesso determina quali dipendenze devono essere disponibili.
JM Becker,

12

Il mio senso è che si riferisce alla seconda delle quattro libertà del software :

La libertà di studiare come funziona il programma e cambiarlo per farlo fare ciò che desideri (libertà 1). L'accesso al codice sorgente è una condizione preliminare per questo.

Pubblicizzare la lingua (o altre caratteristiche tecniche) supporta la capacità delle persone di scegliere e incoraggia la partecipazione a progetti da parte di persone competenti in tali lingue.


10

Questo può essere parzialmente storico. Anche in un passato non così lontano era normale che i singoli amministratori di sistema costruissero e installassero tutto ciò che funzionava sul loro sistema.

Le note su quale lingua e librerie sono state utilizzate per implementare uno strumento danno un suggerimento all'amministratore su quanto lavoro sarà quel processo per il loro sistema.

In questa epoca di strumenti di gestione dei pacchetti onnipresenti e di vasta portata, questo è un po 'un anacronismo, ma la cultura unix è conservativa nel senso di non buttare via cose che sembrano funzionare, quindi ci vorrà un po' prima che l'abitudine muoia.


2
Un esempio decente a cui sto pensando è una webapp chiamata redmine. È scritto con Ruby on Rails, né ruby ​​né rails sono normalmente forniti sul sistema per impostazione predefinita. Anche le app Java sono così.
xenoterracide,

10

In estensione alla risposta di jasonwryans :

Se assegni un nome alla lingua in cui è stato scritto, la persona che la riceve può stimare quanto sarà difficile fornire una patch, ottenere informazioni dettagliate o estendere il programma.

Naturalmente questo ha senso solo se sei un programmatore.

Dove hai visto i riassunti? In un repository o in un pacchetto come .deb o .rpm?

Se lo costruisci dalla fonte, le informazioni potrebbero essere utili per identificare, se devi installare altre cose (compilatore, librerie, strumenti di compilazione).


Basta sfogliare i repository Ubuntu (tramite Software Center). Quasi tutti i riassunti includono la lingua nella prima frase. Trovo divertente che la maggior parte degli sviluppatori Linux stia effettivamente sviluppando per altri sviluppatori Linux invece che per utenti.
Jordan Parmer,

@ j0rd4n non essendo un utente ubuntu puoi dare un esempio di pacchetto software? Voglio dire, hanno davvero messo C nella descrizione di Firefox? Vorrei ipotizzare che circa il 90% del software su Linux non sia destinato agli utenti finali, è una libreria. Inoltre ... non ti sei reso conto che gli sviluppatori Linux si sviluppano da soli? è triste ma vero ... come programmatore Perl sto divagando Non ho ancora scritto nulla per un utente finale :(
xenoterracide

Uso Ubuntu, con il tedesco come linguaggio di interfaccia, quindi sarà di aiuto a pochi di noi, per citare alcuni esempi, ma posso assicurarvi: in synaptics, lo strumento di installazione per il nuovo software, ho fatto un test e ho scelto 5 pacchetti - e non ne trovò nessuno, menzionando la lingua in cui era scritto.
Utente sconosciuto il

Estendendo il mio commento: spesso, il software è scritto per Unix (se trovi file di automake e simili) e non necessariamente prodotto per Linux, ma a causa della compatibilità, disponibile su diverse versioni di Unix.
utente sconosciuto

6

Unix, e ora LInux e BSD, hanno sempre avuto una base software davvero fratturata, e una base hardware molto più diversificata esisteva in un passato piuttosto recente. Era importante sapere che alcuni software funzionavano con gli interpreti che avevi sul tuo sistema o che potevi compilare il codice sorgente. Se non si dispone di un interprete Common Lisp, di un interprete Tcl o di un interprete qualunque, non si è voluto preoccuparsi di scaricare la fonte, solo per scoprire che non si poteva eseguirla.

Avere una descrizione della lingua in cui si trovava qualcosa ha evitato molto tempo perso.


4

Quando viene richiesto "cos'è questa cosa?", Uno sviluppatore tenderà a descriverne la natura, che per loro è legata al codice sorgente, piuttosto che alla sua funzione. Si spera che qualcuno riscriva la descrizione in modo che sia più incentrata sull'utente prima che finisca su un pacchetto, ma menzionare la lingua può ancora essere pertinente, ad esempio per estensibilità e gestibilità, o utile per l'opportunità di attrarre collaboratori.


Il repository Ubuntu ha un'incredibile quantità di descrizioni dei pacchetti che le prime cinque parole contengono la lingua. Sono uno sviluppatore me stesso, ma non ho mai pensato che ai miei utenti importasse. Potrei capire, tuttavia, che essendo open source, potrebbe avere più significato, ma stiamo sviluppando per persone o altri sviluppatori?
Jordan Parmer,

1
@ j0rd4n Anche gli sviluppatori sono persone!
Zach,

3

Dal mio punto di vista, tali informazioni sono essenziali per attirare nuovi collaboratori, oltre a dare ai potenziali utenti un'idea immediata di quanto lavoro potrebbe comportare per integrare l'applicazione nel loro sistema.

  • Un aspetto generale sono le librerie utilizzate durante l' esecuzione dell'applicazione.

Alcune installazioni sono limitate ad alcuni toolkit selezionati, come GTK + ma non QT, o viceversa. Per un amministratore che mantiene un sistema e aggiorna regolarmente i suoi componenti per un lungo periodo di tempo, questa può essere solo una questione pratica e non religiosa.

  • Un altro aspetto sono le librerie utilizzate e i prerequisiti necessari per compilare l'applicazione.

Vale a dire per gli utenti di una distribuzione Linux basata sul sorgente fa una grande differenza se un'applicazione è scritta in C o in Objective-C, perché il loro compilatore deve supportare il linguaggio in primo luogo. Altre lingue potrebbero rendere necessaria l'installazione di un enorme stack di librerie. La domanda quindi è, ancora una volta, quanto lavoro sei disposto ad accettare per compilare questa applicazione.

  • Un aspetto diverso è l'intenzione di attrarre collaboratori.

La maggior parte degli sviluppatori preferisce un numero limitato di lingue o potrebbe semplicemente non avere esperienza in altre. Al fine di consentire a un maggior numero di persone di contribuire a un'applicazione, alcuni progetti hanno persino diviso le loro fonti in due lingue diverse (come Wesnoth, Vega Strike, Naev, solo per citarne alcuni). Uno di questi per l'applicazione principale (come C o C ++), l'altro per una facile modifica (come Python o Lua). Ecco un link a un capitolo di "L'architettura delle applicazioni open source" che descrive come e perché ciò è stato fatto in Wesnoth.

  • Infine, c'è ovviamente molta propensione e pregiudizio contro alcune lingue.

Dirò solo che ho visto un software orribilmente inefficiente scritto in qualsiasi lingua. Se mi chiedi, per efficienza, la qualità del codice dell'applicazione è molto più importante della lingua in cui è scritta.


1

Penso che molto abbia a che fare con la pubblicità della performance. Un'applicazione scritta in un linguaggio compilato (C, C ++, ...) eseguirà un controllo molto migliore di una scritta in un linguaggio di script (perl, python, ...).

Ma si lega anche alla compatibilità. È probabile che un'applicazione scritta in un linguaggio di script sia più portabile su architetture e sistemi operativi con modifiche minime o nulle.


Quindi in entrambi i casi hai un argomento pro e uno contro - che non è soddisfacente. Il codice compilato che è closed source è comune anche su Windows, quindi l'argomento performance non distinguerebbe un programma Linux
utente sconosciuto

1
che cosa? non hai avuto senso. Pro e contro è esattamente il motivo per cui dovresti elencare la lingua. Se uno avesse solo "pro", tutti lo userebbero. E non capisco nemmeno cosa stai cercando di dire sul codice compilato e sui sistemi operativi.
Patrick,

Ho capito la tua risposta in quel modo, che le persone pubblicizzano implicitamente la performance, se è scritta in C / C ++, e che pubblicizzano implicitamente la portabilità se non è scritta in C / C ++. Che è sempre un argomento contrario - sia contro la portabilità, sia contro le prestazioni - entrambe le ragioni, per non parlare della lingua. Allora perché a volte è questo, e altre volte il contrario?
utente sconosciuto

0

Sui sistemi desktop / server di oggi potrebbe non essere così rilevante, ma per i sistemi più piccoli che vanno dai sistemi embedded ai netbook e tablet SSD, le lingue o le librerie utilizzate da un programma possono essere un problema di make-or-break, sia per dimensioni che per considerazioni sulla portabilità.

Per quanto riguarda le dimensioni: l'aggiunta di un interprete per una lingua aggiuntiva, insieme a tutti i moduli standard e ai moduli aggiuntivi normalmente utilizzati, può facilmente aggiungere centinaia di megabyte ai requisiti di archiviazione. Lo stesso vale per le famiglie di biblioteche, in particolare quelle associate ai principali ambienti desktop come Gnome e KDE. Quel che è peggio, passare dall'esecuzione nai n+1programmi Perl potrebbe non aggiungere molto ai requisiti di utilizzo della memoria, poiché molta memoria può essere condivisa, ma passando dai nprogrammi Perl e 0 programmi Python anI programmi Perl e 1 programma Python comportano un picco significativo nell'uso della memoria. Questo diventa ancora più un problema quando ogni pazzo che scrive software libero ha il proprio linguaggio preferito di script / radtool che vuole programmare in ... Perl, Python, PHP, Ruby, JavaScript, Bourne shell, Bash, Csh, ....

Per quanto riguarda la portabilità: molti linguaggi interpretati (così come i framework di librerie) fanno un uso pesante di funzionalità che potrebbero essere disponibili su grandi sistemi desktop / server Linux ma non necessariamente su sistemi più piccoli / integrati / senza MMU. .soViene in mente la dipendenza dal caricamento dinamico del modulo in fase di runtime ...


Perché li chiami sciocchi? Perché non dovrebbero programmare nella lingua che preferiscono? Quale lingua dovrebbero invece usare?
Tshepang,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.