Pages : 1
#1 Le 04/03/2013, à 14:00
- Morrio
Language C
Bonjour,
Le language C est libre ou pas ?
Hors ligne
#2 Le 04/03/2013, à 14:20
- ssdg
Re : Language C
Moi, je dis qu'il l'est (puisque gcc est un compilo initialement codé par Richard Stallman, on peut partir du principe que le C en tant que langage est libre.)
Par contre, il faut faire attention aux librairies et fonctions que tu utilise et à leurs licences respectives. (par exemple read() doit avoir une license super permissive, readline, il faut la recoder si tu veux faire du proprio et pour d'autres que je ne connait pas, tu ne dois pas pouvoir faire du libre avec)
s'il n'y a pas de solution, c'est qu'il n'y a pas de problème... ou pas.
Hors ligne
#3 Le 04/03/2013, à 14:38
- Clémentv
Re : Language C
Il faudrait déjà savoir ce qu'on veut dire par "libre" pour un langage. La définition des logiciels libres me parait difficilement applicable.
C'est la liberté de redistribuer la norme ? la liberté d'implémenter un compilateur ? la liberté de l'utiliser pour développer ?
Concernant le C, il y a eu plusieurs normes au cours de son histoire, c'est à voir selon les versions.
En pratique, tu peux faire ce que tu veux en C, donc je dirais que, oui, c'est "libre".
@ssdg read n'est pas une fonction de bibliothèque mais un appel système POSIX.
Hors ligne
#4 Le 04/03/2013, à 14:43
- Morrio
Re : Language C
Je peux créer un programm en C puis le vendre ?
Hors ligne
#5 Le 04/03/2013, à 15:08
- serged
Re : Language C
Je peux créer un programm en C puis le vendre ?
Si c'était impossible, il y a longtemps que de nombreuses entreprises de logiciel (Windows, Office etc. sont écrits majoritairement en C ou C++) n'existeraient plus...
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#6 Le 04/03/2013, à 15:08
- inkey
Re : Language C
Je peux créer un programm en C puis le vendre ?
Évidemment d'ailleurs je pense que de nombreux programmes libres et propriétaires sont fait avec du C dont on est loin du langage utilisable que pour les logiciel gratuit interdisant l'usage commercial.
Attention Libre ≠ Gratuit . (et inversement)
Tu peux vendre du logiciel libre, parcontre rien ne dit que quelqu'un sera là pour l'acheter ( vu qu'en le vendant , celui qui l'a acheté peux le diffuser gratuitement s'il le veut).
Dernière modification par inkey (Le 04/03/2013, à 15:09)
Hors ligne
#7 Le 07/03/2013, à 19:17
- ssdg
Re : Language C
@ssdg
read s'utilise quand même vachement comme n'importe quelle autre fonction non?
et elle est définie dans un morceau de " http://en.wikipedia.org/wiki/C_POSIX_library " non?
Donc, moi, j'aurais tendance à dire que c'est une fonction de la librairie C POSIX qui se trouve être un appel systeme. Par contre, en faisant un rapide survol de Google, il ne semble pas y avoir de licence, probablement est-ce lié aux conditions d'utilisation du kernel (ce n'est pas parceque linux est en GPL qu'on ne peut pas se servir de "read" dans un programme proprio puisque les devs kernel ont dit qu'on pouvait s'en servir pour faire tourner ce qu'on voulait (ce qui n'est pas le cas pour certains systèmes lourds ou embarqués)
s'il n'y a pas de solution, c'est qu'il n'y a pas de problème... ou pas.
Hors ligne
#8 Le 07/03/2013, à 19:42
- Clémentv
Re : Language C
read est implémenté dans le noyau mais le programme n'est pas lié avec le noyau, du coup la contamination de la GPL ne s'applique pas. La définition de read se trouve (dans le cas de mon système) dans la glibc donc sous LGPL (voir /usr/include/unistd.h).
Mais même s'il y avait un problème de licence, je ne pense pas que ça poserait problème, read n'appartient pas à GNU. Il faudrait juste trouver une autre bibliothèque qui la fournit ou même la redéfinir (il faut très peu de chose pour appeler un appel système).
L'utilisation d'une norme (C ou POSIX par exemple), c'est différent de l'utilisation d'une bibliothèque.
Hors ligne
#9 Le 07/03/2013, à 22:40
- ssdg
Re : Language C
L'utilisation d'une norme (C ou POSIX par exemple), c'est différent de l'utilisation d'une bibliothèque.
Au delà de la sémantique et au niveau de ce qui se passe dans la machine:
La norme est passée par un bureau de mecs qui ont dit basiquement "ouais, ça devrait servir à ceux qui ont ce besoin là" (après, en général, soit les mecs sont des têtes, soit une bande de gros marqueteux moches, parfois les deux. Dans ce cas, je dirais le premier).
La bibliothèque c'est un groupe qui a moins de responsabilités (encore que sur certaines libs, genre en java dans le cas d'hibernate et JPA...) qui dit "ça correspond à une solution à notre problème et c'est packagé de façon à ce que n'importe qui dans la même situation puisse s'en servir".
En général, la bibliothèque c'est une bibliothèque dont l'API n'est pas encore normalisée, la norme, c'est une API qui est validée par un groupe, si on a de la chance, parce qu’une bibliothèque à prouvé que c'était possible, si on en a pas, dans l'espoir que celui qui en fera une implémentation (dans une bibliothèque) arrivera à faire un truc utilisable en la respectant.
Dans les faits, un développeur écrit un programme, appelle une fonction qui est dans un .h et le compilateur/interpreteur/VM/whatever ira le lier à une implémentation qui est à la base séparée du code original.
Exemple:
read est défini dans un .h, elle appelle un peu de code dans un .so qui lui va tapper dans le code du kernel qui est en train de faire tourner la machine
un ORM (dans un langage "objet" et assimilé, le truc qui lit des lignes de BDD et qui construit des instances de classes) c'est un truc défini dans un .h (ou équivalent ou lu directement dans le code dispo) qui est lié à du code dans un .so (.jar, .pyc, ...) qui sera appellé qui fera un appel à autre chose ou sera assez malin pour le faire tout seul.
Moi, au dela des termes et du processus par lequel l'API est arrivée, je ne vois pas de différences. (évidement, je suis plus pour utiliser le code des normes quand il fait le boulot équivalent à une lib non normalisée, pour des raisons de stabilité du code dans le temps)
s'il n'y a pas de solution, c'est qu'il n'y a pas de problème... ou pas.
Hors ligne
#10 Le 08/03/2013, à 01:47
- Clémentv
Re : Language C
Je parlais d'un point de vue licence.
Quand j'écris mon programme j'utilise la bibliothèque C standard ou POSIX. Ce sont des spécifications, et n'ont aucune licence. Je peux donc choisir la licence que je veux pour mon code sans risque de conflit.
Par contre quand je le compile, je dois utiliser une implémentation dont la licence est compatible avec la mienne (mais je pense qu'il y a jamais de problème, on implémente pas ce genre de bibliothèque avec une licence GPL).
Tout cela pour dire que le langage C c'est d'abord des spécifications et non des implémentations. Et il n'y a pas licence. On peut faire ce qu'on veut avec mais utiliser "libre" dans le même sens que les logiciels me parait inapproprié.
Hors ligne
#11 Le 08/03/2013, à 09:39
- serged
Re : Language C
Beaucoup de développeurs utilisent la fonction "read()" que ce soit avec gcc ou un environnement de développement propriétaire (je pense à Visual C++). Il n'y a jamais eu de problèmes que ce soit pour développer du libre ou du propriétaire...
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#12 Le 31/03/2013, à 17:52
- GangsterAutorisé
Re : Language C
Donc ça voudrait dire que flash n'est pas un langage propriétaire pour vous ?
Mais il y a quand même une différence de taille entre flash et le C, non ? Flash est implémenté par une seule entreprise privée. Je veux dire au niveau du compilateur ? Flash ne repose pas sur des normes publiques, c'est ça ? En plus pour flash, il y a un bout de code propriétaire à installer sur le pc client. Est ce que c'est pareil pour les bibliothèques en C ? Le fichier de la biliothèque doit être sur le disque du pc client ?
Quel con a dit y a rien qui se passe ?
Chanson d'Alain Leprest
Hors ligne
#13 Le 01/04/2013, à 08:20
- serged
Re : Language C
Donc ça voudrait dire que flash n'est pas un langage propriétaire pour vous ?
Mais il y a quand même une différence de taille entre flash et le C, non ? Flash est implémenté par une seule entreprise privée. Je veux dire au niveau du compilateur ? Flash ne repose pas sur des normes publiques, c'est ça ? En plus pour flash, il y a un bout de code propriétaire à installer sur le pc client. Est ce que c'est pareil pour les bibliothèques en C ? Le fichier de la biliothèque doit être sur le disque du pc client ?
Flash est un environnement propriétaire. Le langage en lui même (ActionScript) n'est pas propriétaire (basé sur EcmaScript successeur de JavaScript). Il existe des générateurs de Flash libres ou pas : Par exemple LibreOffice ou Swish (propriétaire) permet d'exporter en Flash.
Voir Wikipédia pour plus d'information.
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
Pages : 1