Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 14/08/2015, à 13:07

Anard

Débuter en programmation sur Linux

Bonjour,

Je travaille depuis très longtemps sur Mac OS X et me convertis doucement à l'OpenSource depuis que mon ordinateur peut booter sur Ubuntu.
Pour mon métier, j'ai développé mon propre logiciel de données clients/fournisseurs, de facturation/devis et de comptabilité basique à l'aide d'Omnis Studio sur OS X. Mais ce logiciel de programmation simplifié est propriétaire et deviendra obsolète un jour ou l'autre (je ne suis pas certain qu'il soit encore mis à jour).
J'aimerai utiliser des outils plus libres et surtout sur lesquels je pourrai me reposer pendant quelques centaines d'années sans devoir un jour tout réécrire à cause de la disparition de mon outil...

J'ai quelques connaissances en HTML/CSS et PHP/MySql, mais il me parait compliqué de créer un logiciel à partir de ces langages.
Il faudrait démarrer un serveur sur l'ordinateur à chaque fois que j'ai besoin d'utiliser mon logiciel. Par contre, cette méthode aurait pour avantage d'être entièrement compatible sur Linux, sur Mac ou sur Windows puisqu'il suffit d'un navigateur web quelconque pour faire tourner le programme.

Je n'ai pas beaucoup de connaissances en C/C++, mais tous les langages se ressemblent un peu et quelques heures/jours/semaines... de lecture sur OpenClassRooms ou autres me permettrait de combler mes lacunes.
Je ne veux pas utiliser de langages comme Java puisque je dépendrais alors toujours de l'existence et de l'évolution de Java (qui n'est pas forcément installé par défaut sur toutes les distributions).
Je ne me vois pas écrire en C la création de fenêtres, listes, boutons, champs etc... j'ai besoin d'un outil pour gérer l'interface graphique et un maximum de fonctions (comme la gestion de la base de données).
J'ai téléchargé Qt sur Ubuntu et ça semble intéressant, bien qu'après 5 minutes, je ne comprenne strictement rien à comment ça fonctionne.
Comment fonctionne ce type d'outil ? C'est bien un genre de bibliothèque de codes touts faits en C/C++ qui permet de créer une interface graphique pour les débutants comme moi ?
Le logiciel créé a-t-il encore besoin de Qt pour fonctionner ou sera-t-il totalement indépendant ?

Aussi, j'aimerai pouvoir utiliser le logiciel créé depuis n'importe quel système d'exploitation pour pouvoir l'utiliser(et le faire évoluer) quelque soit le système que j'ai choisi au boot. De même si je choisissais un jour de quitter Ubuntu pour une autre distribution, je ne veux pas avoir à tout réécrire. J'ai quelques logiciels (comme par exemple aMule) qui n'ont pas de problèmes à passer de Linux à OS X et je trouve ça fort pratique !
J'avoue ne pas bien comprendre pourquoi un logiciel fonctionnant sous Linux ne fonctionnerait pas sous OS X puisqu'il partagent la même base. En fait, OS X est un Linux un peu particulier ?

Bref, je cherche des conseils pour choisir le langage de programmation idéal, histoire de ne pas apprendre le C/C++, créer mon logiciel et quelques mois plus tard, me dire que j'aurai mieux fait de le faire sur Python.
Je pensais à C/C++ au départ parce qu'il est utilisé par tout le monde et me parait donc le plus universel et le moins soumis à une éventuelle obsolescence. Mais je me trompe peut-être.

Merci en tout cas pour tous vos conseils. Comme vous pouvez le comprendre, j'ai quelques notions de programmation, mais il y a énormément de sujets et de notions sur lesquels je suis complètement à la ramasse.

Au final, j'aimerais un jour être dans la mesure de diffuser un micrologiciel OpenSource compatible Mac et Linux (voire Windows) capable de gérer un fichier clients/fournisseurs, facturation/devis automatisés et comptabilité pour n'importe quel autre autoentrepreneur. Voir même proposer d'autres logiciels, modifier les sources de logiciels existants (ça, ça parait compliqué, j'ai déjà souvent du mal à me repérer dans mes propres codes, pas assez commentés...), etc.

Dernière modification par Anard (Le 14/08/2015, à 13:18)


"iMack" : GA-H97M-D3H, Intel i5 4460, 16Go DDR3, Intel HD4600, SSD 256+120 / Bootloader Clover - macOS Mojave / Gentoo-Xfce
"Portable" : HP Pavilion DV3500, Intel T6400, 4Go, HDD 500Go / Grub2 - Gentoo-Xfce

Hors ligne

#2 Le 14/08/2015, à 13:43

Rufus T. Firefly

Re : Débuter en programmation sur Linux

Anard a écrit :

J'ai quelques connaissances en HTML/CSS et PHP/MySql, mais il me parait compliqué de créer un logiciel à partir de ces langages.
Il faudrait démarrer un serveur sur l'ordinateur à chaque fois que j'ai besoin d'utiliser mon logiciel. Par contre, cette méthode aurait pour avantage d'être entièrement compatible sur Linux, sur Mac ou sur Windows puisqu'il suffit d'un navigateur web quelconque pour faire tourner le programme.

Je trouve au contraire que c'est parfaitement adapté au genre de truc que tu veux créer (facturation, devis, compta).
Parce que c'est quoi, une facture ?
Des requêtes dans diverses tables d'une base de données. Pour ajouter un client (nom, adresse, etc.), un truc facturable, pour changer un prix, un taux de tva, puis des requêtes pour chercher de quoi bâtir une facture.
Et ensuite, des mises en forme genre formulaires pour rendre ça convivial, et une page imprimable (la facture proprement dite). Ultime opération, ventilation (encore des requêtes) dans la compta...

On peut bien sûr faire ça avec des choses comme C++, mais il ne faut surtout pas oublier que C++ est un langage compilé. C'est quand même plus compliqué de changer des choses, parce qu'il faut recompiler. Et d'autre part c'est nettement moins portable...

Edit : si tu disposes d'autre chose que d'un ordinosaure, tu laisses apache et mysql en tâche de fond. Par défaut, ça démarre tout seul en même temps que la bécane. Ça ne mange pas beaucoup de pain. Apache, par exemple :

  PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
  995 root       20   0  274M 26508 18772 S  0.0  1.5  0:01.30 /usr/sbin/apache2 -k start
 2227 www-data   20   0  274M  9624  1880 S  0.0  0.5  0:00.00 /usr/sbin/apache2 -k start
 2228 www-data   20   0  274M  9624  1880 S  0.0  0.5  0:00.00 /usr/sbin/apache2 -k start
 2229 www-data   20   0  274M  9624  1880 S  0.0  0.5  0:00.00 /usr/sbin/apache2 -k start
 2230 www-data   20   0  274M  9624  1880 S  0.0  0.5  0:00.00 /usr/sbin/apache2 -k start
 2231 www-data   20   0  274M  9624  1880 S  0.0  0.5  0:00.00 /usr/sbin/apache2 -k start

Dernière modification par Rufus T. Firefly (Le 14/08/2015, à 13:50)


La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme

Hors ligne

#3 Le 14/08/2015, à 13:59

mrUGSH

Re : Débuter en programmation sur Linux

Question tres interescante.

Si tu veut développer ton logiciel en C/C++ avec ou sans QT tu peut simplement gérer la production de celui-ci via CMake.
C'est un système de construction software ultra utilisé est qui à l'avantage d’être multiplate-forme (Linux, windows, mac osx) et rapide.( un exemple simple: Stellarium qui est un logiciel open source de planétarium l'utilise pour pouvoir être installer sur les trois système cité précédemment)

En gros le principe c'est que tu créer ton logiciel en C/C++ puis tu écrit des scripts CMake qui décrive la façon dont tu doit le compiler selon la plate forme (en utilisant le système de make dont tu dispose GNU make, Migwmake ...). Il à l'avantage d’intégrer des système assez simple pour trouver lui-même les librairie du système dont tu à besoin et d'intégrer celle-ci ou même de les télécharger et de les utiliser lors de l'installation de ton logiciel. Un autre avantage c'est qu'il permet de créer des projet eclipse, kdevellop et même visualstudio  directement à partir des script. Et je ne vais pas tout citer mais ça souplesse lui permet de réaliser bon nombre d'autre fonction.

SI ça t’intéresse tu à la doc en ligne de CMake ou celle de Kde qui l'utilise.
http://www.cmake.org/
https://techbase.kde.org/Development/Tutorials/CMake

Sinon beh il reste le langage "mono" qui est l’implémentation open source du .net de Microsoft et qui fonctionne sur les trois système qui t'intéresse.

Dernière modification par mrUGSH (Le 14/08/2015, à 14:01)

Hors ligne

#4 Le 14/08/2015, à 14:05

Anard

Re : Débuter en programmation sur Linux

Ce qui me gênait, c'est qu'en local, je suis obligé de démarrer un serveur MAMP/XAMPP pour faire tourner le code PHP. Et le logiciel tournerait alors dans un navigateur web.
Rien de tout ça n'est très gênant dans l'absolu, mais je me demandais comment créer un logiciel qui tourne de façon indépendante, que je puisse installer comme n'importe quel autre logiciel...
Même si en effet, ça me semblerait possible (et facile puisque j'ai déjà quelques bonnes bases) de fonctionner uniquement avec HTML/PHP, je ne vois jamais de logiciels conçus de cette manière.

Je ne comprends pas bien ce que signifie un langage compilé : il est impossible d'essayer le code au fur et à mesure de son écriture comme je peux le faire en lançant un fichier .php dans Firefox par exemple ?
Par exemple, sur OmnisStudio (mais je ne sais pas quelle base il utilise), on créait des fenêtres (objets) qui contenaient des objets, des propriétés et du code. Il suffisait de quitter le mode d'édition de la fenêtre pour essayer les modifications réalisées.

Je pensais que ce même genre d'outil existait en OpenSource. Mon souci est que le code d'Omnis lui semble spécifique et je ne peux pas réutiliser le code obtenu sans ce même logiciel (du fait que ce n'est pas de l'OpenSource). Je cherche quelque chose de plus ouvert (qui écrive directement en C ou autre langage très répandu) et où je puisse réutiliser le code. J'avais cru comprendre que c'était plus ou moins le principe de Qt. Mais je dis probablement n'importe quoi, vu mes connaissances en la matière...

Mais oui, je vois tout à fait comment réaliser ce que je veux avec du HTML et du PHP (je n'en vois pas encore bien les limites au fond à part celles que je viens de citer...) wink

Par défaut, ça démarre tout seul en même temps que la bécane

Il n'y a donc pas besoin de XAMPP pour faire générer du HTML par PHP sur Ubuntu ?

Dernière modification par Anard (Le 14/08/2015, à 14:11)


"iMack" : GA-H97M-D3H, Intel i5 4460, 16Go DDR3, Intel HD4600, SSD 256+120 / Bootloader Clover - macOS Mojave / Gentoo-Xfce
"Portable" : HP Pavilion DV3500, Intel T6400, 4Go, HDD 500Go / Grub2 - Gentoo-Xfce

Hors ligne

#5 Le 14/08/2015, à 14:30

Rufus T. Firefly

Re : Débuter en programmation sur Linux

Anard a écrit :

Ce qui me gênait, c'est qu'en local, je suis obligé de démarrer un serveur MAMP/XAMPP pour faire tourner le code PHP. Et le logiciel tournerait alors dans un navigateur web.

Sous linux, tu n'utilises pas des trucs genre xampp. Tout est dans les dépôts. Et ça vaut pour n'importe quelle distribution courante. Ça s'installe comme ça : http://forum.ubuntu-fr.org/viewtopic.ph … #p19074351

Anard a écrit :

Rien de tout ça n'est très gênant dans l'absolu, mais je me demandais comment créer un logiciel qui tourne de façon indépendante, que je puisse installer comme n'importe quel autre logiciel...
Même si en effet, ça me semblerait possible (et facile puisque j'ai déjà quelques bonnes bases) de fonctionner uniquement avec HTML/PHP, je ne vois jamais de logiciels conçus de cette manière.

Et ça ? Parmi bien d'autres : http://doc.ubuntu-fr.org/phpcompta

Anard a écrit :

Je ne comprends pas bien ce que signifie un langage compilé : il est impossible d'essayer le code au fur et à mesure de son écriture comme je peux le faire en lançant un fichier .php dans Firefox par exemple ?
Par exemple, sur OmnisStudio (mais je ne sais pas quelle base il utilise), on créait des fenêtres (objets) qui contenaient des objets, des propriétés et du code. Il suffisait de quitter le mode d'édition de la fenêtre pour essayer les modifications réalisées.

http://www.commentcamarche.net/contents … ormatiques
(le premier truc trouvé sur gogole)

Anard a écrit :

Par défaut, ça démarre tout seul en même temps que la bécane

Il n'y a donc pas besoin de XAMPP pour faire générer du HTML par PHP sur Ubuntu ?

Si, il faut toujours un serveur en local, si tu veux afficher du html/php dans ton navigateur. Mais un serveur en local qui sert juste à ça, ça ne consomme rien du tout. Il n'y a pas en permanence des milliers de requêtes comme sur un serveur internet...

Dernière modification par Rufus T. Firefly (Le 14/08/2015, à 14:31)


La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme

Hors ligne

#6 Le 14/08/2015, à 15:25

mazarini

Re : Débuter en programmation sur Linux

Sous linux, c'est comme si tu mettais apache et mysql comme un service windows. Comme le montrait Rufus, il tourne en permanence et ne consomme pas trop.

L'avantage que je trouve à une solution web, c'est la relative facilité de faire les interfaces graphique. J'ai de mauvais souvenir de la création d'objets graphiques sans un outils wysiwyg. Mais ca a peut être évolué...


S'il existait une école de la politique, les locaux devraient être édifiés rue de la Santé. Les élèves pourraient s'habituer. (Pierre Dac)

Hors ligne

#7 Le 14/08/2015, à 15:29

Anard

Re : Débuter en programmation sur Linux

Je croyais aussi que démarrer un serveur apache (que ce soit lamp ou xampp ou mamp, peu importe) pouvait créer des failles de sécurité pour l'ordinateur ?

Dernière modification par Anard (Le 14/08/2015, à 15:32)


"iMack" : GA-H97M-D3H, Intel i5 4460, 16Go DDR3, Intel HD4600, SSD 256+120 / Bootloader Clover - macOS Mojave / Gentoo-Xfce
"Portable" : HP Pavilion DV3500, Intel T6400, 4Go, HDD 500Go / Grub2 - Gentoo-Xfce

Hors ligne

#8 Le 14/08/2015, à 15:47

mazarini

Re : Débuter en programmation sur Linux

Anard a écrit :

Je croyais aussi que démarrer un serveur apache (que ce soit lamp ou xampp ou mamp, peu importe) pouvait créer des failles de sécurité pour l'ordinateur ?

Il peut écouter uniquement sur l'adresse 127.0.0.1.


S'il existait une école de la politique, les locaux devraient être édifiés rue de la Santé. Les élèves pourraient s'habituer. (Pierre Dac)

Hors ligne

#9 Le 14/08/2015, à 15:47

Rufus T. Firefly

Re : Débuter en programmation sur Linux

Il y a fondamentalement 2 choses très différentes dans ce genre de logiciel.
1) ce qu'il est censé produire, par exemple une facture
Ça, évidemment, ça a tout intérêt à être le plus propre possible. Mais ce n'est jamais qu'une seule page html, généralement plutôt simple, qui se remplit via php. Donc la conception et la réalisation est relativement facile à soigner, via css, même à la main...
2) i'interface utilisateur
Celle-ci doit surtout être utilisable facilement, mais le design est assez secondaire. On peut très bien se contenter de design genre cups (http://localhost:631/). Et ça aussi, c'est plutôt facile à faire à la main.

Dernière modification par Rufus T. Firefly (Le 14/08/2015, à 15:52)


La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme

Hors ligne

#10 Le 14/08/2015, à 15:54

Rufus T. Firefly

Re : Débuter en programmation sur Linux

mazarini a écrit :
Anard a écrit :

Je croyais aussi que démarrer un serveur apache (que ce soit lamp ou xampp ou mamp, peu importe) pouvait créer des failles de sécurité pour l'ordinateur ?

Il peut écouter uniquement sur l'adresse 127.0.0.1.

Il me semble que c'est ce qu'il fait par défaut. S'il doit écouter autre chose, il faut lui indiquer explicitement... Non ?

Dernière modification par Rufus T. Firefly (Le 14/08/2015, à 15:58)


La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme

Hors ligne

#11 Le 14/08/2015, à 16:07

Anard

Re : Débuter en programmation sur Linux

On peut très bien se contenter de design genre cups

yikes:o:o
Ah bah non justement !
Mais heureusement, on peut faire bien plus joli en HTML/CSS ! big_smile

Il peut écouter uniquement sur l'adresse 127.0.0.1.

Et donc, c'est inaccessible depuis internet, c'est ça ?

Dernière modification par Anard (Le 14/08/2015, à 16:07)


"iMack" : GA-H97M-D3H, Intel i5 4460, 16Go DDR3, Intel HD4600, SSD 256+120 / Bootloader Clover - macOS Mojave / Gentoo-Xfce
"Portable" : HP Pavilion DV3500, Intel T6400, 4Go, HDD 500Go / Grub2 - Gentoo-Xfce

Hors ligne

#12 Le 14/08/2015, à 16:17

mazarini

Re : Débuter en programmation sur Linux

Rufus T. Firefly a écrit :

Il me semble que c'est ce qu'il fait par défaut. S'il doit écouter autre chose, il faut lui indiquer explicitement... Non ?

Je viens de regarder et j'ai "<VirtualHost *:80>" dans  /etc/apache2/sites-available/000-default.conf. Ca doit être la version d'origine de Debian Jessie.

Donc, il écoute toutes les adresses par défaut. "<VirtualHost 127.0.0.1:80>" et ça roule.


S'il existait une école de la politique, les locaux devraient être édifiés rue de la Santé. Les élèves pourraient s'habituer. (Pierre Dac)

Hors ligne

#13 Le 14/08/2015, à 16:25

Compte anonymisé

Re : Débuter en programmation sur Linux

Anard a écrit :

Et donc, c'est inaccessible depuis internet, c'est ça ?

Oui, c'est ça en gros 127.0.0.1 c'est une adresse local pour ce connecté sur le serveur qui tourne en ce moment sur ta machine.
Tu peu changer 127.0.0.1 par localhost c'est pareil.