¿Por qué las aplicaciones de Linux a menudo ponen el idioma con el que fue escrito en el resumen?


19

Cuando se muestran aplicaciones, Windows y Mac hablan principalmente de características. Las aplicaciones de Linux, por otro lado, tienen más detalles sobre qué lenguaje se usó para escribirlo (y las bibliotecas que lo acompañan) en lugar de las características. ¿Porqué es eso?

¿Podría entender saber la diferencia entre GTK + versus QT que hace la diferencia solo por los requisitos de integración de escritorio, pero C vs C ++ vs Python vs Assembly vs etc.? De Verdad?

Por ejemplo: foo es un bla bla simple escrito en C / GTK +.


2
Me gustaría mencionar que muchas aplicaciones de Windows no son de código abierto ... A menudo están empaquetadas con las dependencias que necesitan, incluso si son de código abierto. Un ejemplo es pidgin. No tiene que descargar gtk por separado en Windows para que funcione pidgin. Puede encontrar que incluir el idioma en Windows sucede cuando requiere dependencias externas, aunque no puedo pensar en ningún ejemplo en este momento, ya que parece que es muy difícil no requerir dependencias externas.
xenoterracide

Respuestas:


21

Creo que el usuario tradicional de Linux (un ingeniero friki que realmente instaló el sistema por sí mismo) se preocupa por dicha información (¿qué tecnología hay detrás de esta herramienta?). También soy uno de esos tipos geek que, por ejemplo, se abstendrían de instalar y usar un paquete solo porque usa alguna tecnología que no me gusta. Algunos llaman a este tipo de comportamiento religión, por supuesto. ¿No es tonto?

De todos modos, puedo pensar en dos razones:

  • Los empaquetadores son tan geeky (si no más) que esos usuarios de Linux también, por lo que les pareció una buena idea agregar dicha información.

  • Creo que cuando estos empaquetadores ponen esa información en las descripciones de sus paquetes, es probable que lo hagan como una forma de promoción. Funciona a veces (me funcionó varias veces).

Esto es solo una suposición, por supuesto.


Sí, creo que tienes un buen punto aquí. La cultura * nix es una cultura de hecho.
Jordan Parmer

1
También ahorra tiempo al preguntarse "hey, ¿en qué idioma se escribe Chromium?".
greenoldman

@macias: El geek que hay en mí me hace ver las dependencias del paquete, donde este geek descubrirá con mayor frecuencia el idioma. De hecho, este geek es tan religioso que cada vez que visita un sitio web, se molesta que no puede verificar rápidamente en qué idioma está escrita la herramienta desconocida. Si es <insertar idioma no amado>, este geek se escapa, y si es <inserte el idioma favorito>, muestra el prejuicio del friki.
tshepang

44
Un ejemplo práctico sobre la tecnología que podría ser un problema es el mono / .NET ya que Microsoft tiene muchas patentes en esa área y tiene una larga historia de ser "hostil" ... Por lo tanto, no es extraño que a algunas personas les gustaría Conozca este tipo de cosas para evitar futuros problemas.
Johan

1
Desde la perspectiva del administrador de sistemas, lo que se escribe un proyecto a menudo dicta qué dependencias deben estar disponibles.
JM Becker

12

Mi sentido es que se relaciona con la segunda de las cuatro libertades de software :

La libertad de estudiar cómo funciona el programa y cambiarlo para que haga lo que desea (libertad 1). El acceso al código fuente es una condición previa para esto.

La publicidad del idioma (u otras características técnicas) respalda la capacidad de las personas para elegir y fomenta la participación en proyectos de personas que dominan esos idiomas.


10

Esto puede ser parcialmente histórico. Incluso en un pasado no muy lejano, era habitual que los administradores de sistemas individuales construyeran e instalaran todo lo que se ejecutaba en su sistema.

Las notas sobre qué idioma y bibliotecas se usaron para implementar una herramienta dan una pista al administrador sobre cuánto trabajo va a ser ese proceso para su sistema.

En esta era de herramientas de gestión de paquetes ubicuas y de largo alcance, esto es un poco anacrónico, pero la cultura unix es conservadora en el sentido de no tirar cosas que parecen estar funcionando, por lo que pasará un tiempo antes de que el hábito desaparezca.


2
Un ejemplo decente en el que estoy pensando es una aplicación web llamada redmine. Está escrito con Ruby on Rails, por lo general, ni ruby ​​ni rails se proporcionan en el sistema de manera predeterminada. Las aplicaciones Java también son así.
xenoterracide

10

En extensión a la respuesta de jasonwryans :

Si nombra el idioma en el que se escribió, la persona que lo recibe puede estimar lo difícil que será proporcionar un parche, obtener algunas ideas o extender el programa.

Por supuesto, esto solo tiene sentido si eres un programador.

¿Dónde viste los resúmenes? ¿En un repositorio o en un paquete como .deb o .rpm?

Si lo compila desde la fuente, la información puede ser útil para identificar si tiene que instalar otras cosas (compilador, bibliotecas, herramientas de compilación).


Simplemente navega por los repositorios de Ubuntu (a través del Centro de software). Casi todos los resúmenes incluyen el lenguaje dentro de la primera oración. Me parece un poco extraño que la mayoría de los desarrolladores de Linux parezcan estar desarrollando para otros desarrolladores de Linux en lugar de usuarios.
Jordan Parmer

@ j0rd4n no es un usuario de ubuntu, ¿puede dar un ejemplo de un paquete de software? ¿Quiero decir que realmente pusieron C en la descripción de Firefox? Supondría que alrededor del 90% del software en Linux no está destinado a usuarios finales, es una biblioteca. Además ... ¿no te diste cuenta de que los desarrolladores de Linux se desarrollan por sí mismos? es triste pero cierto ... como programador perl estoy divagando Todavía no he escrito nada para un usuario final :(
xenoterracide

Utilizo ubuntu, con el alemán como idioma de interfaz, por lo que solo nos ayudará a algunos de nosotros, por citar algunos ejemplos, pero puedo asegurarles: en Synaptics, la herramienta de instalación para el nuevo software, hice una prueba y elegí 5 paquetes, y no encontró ninguno, mencionando el idioma en que fue escrito.
usuario desconocido

Ampliando mi comentario: a menudo, el software está escrito para Unix (si encuentra archivos de automake y tal) y no necesariamente producido para Linux, pero debido a la compatibilidad, disponible en diferentes sabores de Unix.
usuario desconocido

6

Unix, y ahora LInux y los BSD, siempre han tenido una base de software realmente fracturada, y existía una base de hardware mucho más diversa en el pasado más reciente. Era importante saber que algún software se ejecutaba en los intérpretes que tenía en su sistema, o que podía compilar el código fuente. Si no tiene un intérprete de Common Lisp, o un intérprete de Tcl o cualquier otro intérprete, no quería molestarse en descargar la fuente, solo para descubrir que no podía ejecutarlo.

Tener una descripción de en qué idioma se encontraba algo evitaba perder mucho tiempo.


4

Cuando se le pregunta "¿qué es esto?", Un desarrollador tenderá a describir su naturaleza, que para ellos está vinculada al código fuente, en lugar de su función. Es de esperar que alguien reescriba la descripción para que se centre más en el usuario antes de que termine en un paquete, pero mencionar el lenguaje aún puede ser relevante, por ejemplo, para la extensibilidad y la capacidad de escritura, o útil para la oportunidad de atraer contribuyentes.


El repositorio de Ubuntu tiene una increíble cantidad de descripciones de paquetes que las primeras cinco palabras contienen el idioma. Yo también soy desarrollador, pero nunca pensé que a mis usuarios les importara. Sin embargo, podría entender que, al ser de código abierto, podría tener más significado, pero ¿estamos desarrollando para personas u otros desarrolladores?
Jordan Parmer

1
@ j0rd4n ¡Los desarrolladores también son personas!
Zach

3

Desde mi punto de vista, dicha información es esencial para atraer nuevos contribuyentes, así como para darles a los posibles usuarios una idea inmediata de cuánto trabajo puede implicar integrar la aplicación en su sistema.

  • Un aspecto general son las bibliotecas utilizadas al ejecutar la aplicación.

Algunas instalaciones están restringidas a algunos kits de herramientas seleccionados, como GTK + pero no QT, o viceversa. Para un administrador que mantiene un sistema y actualiza regularmente sus componentes durante un largo período de tiempo, esto puede ser únicamente una cuestión práctica y no religiosa.

  • Otro aspecto son las bibliotecas utilizadas y los requisitos previos necesarios para compilar la aplicación.

Es decir, para los usuarios de una distribución de Linux basada en la fuente, hace una gran diferencia si una aplicación está escrita en C o en Objective-C, porque su compilador necesita admitir el lenguaje en primer lugar. Otros idiomas pueden hacer que sea necesario instalar una gran pila de bibliotecas. La pregunta es, nuevamente, cuánto trabajo está dispuesto a aceptar para compilar esta aplicación.

  • Un aspecto diferente es la intención de atraer contribuyentes.

La mayoría de los desarrolladores tienen preferencia por un pequeño número de idiomas, o simplemente pueden carecer de experiencia en otros. Para permitir que un mayor número de personas contribuyan a una aplicación, algunos proyectos incluso dividen sus fuentes en dos idiomas diferentes (como Wesnoth, Vega Strike, Naev, solo por nombrar algunos). Uno de ellos para la aplicación principal (como C o C ++), el otro para una fácil modificación (como Python o Lua). Aquí hay un enlace a un capítulo de "La arquitectura de las aplicaciones de código abierto" que describe cómo y por qué esto se hizo en Wesnoth.

  • Finalmente, obviamente hay muchos prejuicios y prejuicios contra algunos idiomas.

Solo diré que he visto un software terriblemente ineficiente escrito en cualquier idioma. Si me preguntas, por eficiencia, la calidad del código de la aplicación es mucho más importante que el idioma en el que está escrito.


1

Creo que mucho tiene que ver con la publicidad de rendimiento. Una aplicación escrita en un lenguaje compilado (C, C ++, ...) funcionará muchísimo mejor que una escrita en un lenguaje de script (perl, python, ...).

Pero también se vincula con la compatibilidad. También es probable que una aplicación escrita en un lenguaje de script sea más portátil en arquitecturas y sistemas operativos con poca o ninguna modificación.


Entonces, en ambos casos tienes un argumento a favor y en contra, que no es satisfactorio. El código compilado que es de código cerrado también es común en Windows, por lo que el argumento del rendimiento no distinguiría un programa Linux
usuario desconocido

1
¿Qué? Simplemente no tenía sentido. Pro y contra es exactamente por qué enumerarías el idioma. Si uno solo tuviera 'profesionales', entonces todos lo usarían. Y ni siquiera entiendo lo que intentas decir sobre el código compilado y los sistemas operativos.
Patrick

Entendí su respuesta de esa manera, que las personas anuncian implícitamente el rendimiento, si está escrito en C / C ++, y que anuncian implícitamente la portabilidad si no está escrito en C / C ++. Lo que siempre es un argumento contrario, ya sea contra la portabilidad o contra el rendimiento, ambas razones, sin mencionar el lenguaje. Entonces, ¿por qué a veces es esto y otras veces es lo contrario?
Usuario desconocido

0

En los sistemas de escritorio / servidor actuales puede que no sea tan relevante, pero para sistemas más pequeños que van desde sistemas integrados hasta netbooks y tabletas SSD, los idiomas o bibliotecas utilizados por un programa pueden ser un problema decisivo, tanto por el tamaño como por la interrupción. consideraciones de portabilidad.

En cuanto al tamaño: agregar un intérprete para un idioma adicional, junto con todos los módulos estándar y los módulos complementarios que se usan normalmente, puede agregar fácilmente cientos de megabytes a los requisitos de almacenamiento. Lo mismo ocurre con las familias de bibliotecas, especialmente las asociadas con los principales entornos de escritorio como Gnome y KDE. Lo que es peor, pasar de ejecutar na n+1programas Perl podría no agregar tanto a los requisitos de uso de memoria, ya que se puede compartir mucha memoria, pero pasar de nprogramas Perl y 0 programas Python anLos programas Perl y 1 programa Python dan como resultado un aumento significativo en el uso de memoria. Esto se convierte en un problema aún mayor cuando cada tonto que escribe software libre tiene su propio lenguaje de script / radtool favorito en el que desea programar ... Perl, Python, PHP, Ruby, JavaScript, Bourne shell, Bash, Csh, ...

Con respecto a la portabilidad: muchos lenguajes interpretados (así como marcos de bibliotecas) hacen un uso intensivo de las funciones que pueden estar disponibles en los grandes sistemas de escritorio / servidor Linux, pero no necesariamente en sistemas más pequeños / incrustados / sin MMU. .soMe viene a la mente la dependencia de la carga dinámica de módulos en tiempo de ejecución ...


¿Por qué los llamas tontos? ¿Por qué no codificarían en el idioma que les gusta? ¿Qué idioma deberían usar en su lugar?
tshepang
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.