#1 Le 09/03/2010, à 00:43
- Koshie-2.0
Java, Python, C... J'ai mal à la tête.
Bonsoir,
J'aimerai vos avis. La programmation m'a toujours intéressé, j'y ai un peu touché (notamment les trois langages que je cite) mais je n'ai jamais approfondi.
J'aimerai m'y remettre, mais j'aimerai savoir ce qui peut-être réellement utile !
Le Java a l'avantage de permettre d'avoir une version d'un programme sur n'importe quel ordinateur (possédant Java) et il existe openjdk, qui est libre !
Le Python a l'avantage de donner un code propre et il semble être un des plus hauts (facile) langage de programmation.
Le C c'est mythique à ce que je sache, mais ça m'a l'air compliqué. Le noyau de Linux est écrit en C.
En faite, j'aimerai m'amuser mais me rendre utile, créer des petits softs à la con et participer à des projets populaire et aider.
Vous en pensez quoi ?
#2 Le 09/03/2010, à 00:54
- Elzen
Re : Java, Python, C... J'ai mal à la tête.
J'me débrouille pas trop mal en java, je commence à m'en sortir à peu près en python, et je connais les bases des bases du C...
Tout dépend de ce que tu veux faire, pour des choses pas trop complexes, j'aurais tendance à conseiller plutôt le python, aussi simple qu'efficace... pour des trucs plus compliqué, ma préférence reste au Java, sûrement parce que c'est le seul que je maîtrise assez pour y arriver...
Si tu as besoin d'inspiration pour des trucs à développer, j'en ai pas mal
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
Hors ligne
#3 Le 09/03/2010, à 00:55
- mimoun
Re : Java, Python, C... J'ai mal à la tête.
C'est un avis personnel, mais je pense que tu peux oublier le C. Je n'ai pas l'impression qu'on puisse "s'amuser" avec ce langage... pas en créant des petits softs à la con, en tout cas.
Le java, je connais bien et j'aime bien, il permet de faire des applications bien structurées, grâce à des bons framework (spring, hibernate...). C'est en général très bien pour faire des appli web, ça peut servir pour des petits softs à la con aussi, avec swing. Je connais pas vraiment d'autres api pour la création d'interfaces, mais il paraitrait que swing est assez compliquée comparée à d'autres api, dans d'autres langages. Je la trouve assez complète, perso.
Je connais pas python, mais j'ai l'impression qu'il serait bien adapté à ce que tu veux. C'est qu'une impression.
Je pourrais éventuellement t'aider pour du java, mais pas pour les deux autres.
Dernière modification par mimoun (Le 09/03/2010, à 00:59)
Hors ligne
#4 Le 09/03/2010, à 01:12
- freaxmind
Re : Java, Python, C... J'ai mal à la tête.
Le java et le C/C++ sont des langages assez laborieux et qui ne permettent pas les raccourcis. Leurs principaux avantages sont la performance, et la rigueur quand il s'agit de batir de grosses applications. Leurs apprentissages est demandé par les entreprises pour ces raisons.
Cependant, ces langages vont vite t'ennuyer hors de ce contexte. Si tu veux un langage généraliste, qui te permet de faire aussi bien de l'interface graphique, de l'analyse de fichier, des scripts voir des applications graphiques, je te conseille de te tourner vers des langages comme ruby ou python.
Pour ma part, mon langage favoris reste le ruby. Il me permet de faire beaucoup de chose et les api sont excellentes. Je m'en suis déjà servi pour faire des scripts de migration de base de données oracle, automatiser des tâches, générer des documentations ...
Actuellement, je m'en sers pour faire une application graphique en wxwidgets qui utilise le protocole XMPP.
Il y a de quoi approfondir sur cette question, mais je te recommande de regarder python ou ruby qui te permettront de résoudre bon nombre de problèmes tout en restant très fun à utiliser.
Hors ligne
#5 Le 09/03/2010, à 01:12
- Gage
Re : Java, Python, C... J'ai mal à la tête.
Pour de petits projets à la con, comme tu dis, si ça demande plus que bash, je te conseille python. Les avantages sont : la grande lisibilité, le haut niveau, l'interopérabilité au moins aussi grande que celle de java (une preuve ? Il existe un interpréteur python écrit en java, ce qui assure que tu peux faire tourner python sur toute plateforme où java tourne, en plus des plateformes où il existe un interpréteur plus optimisé).
De nombreux logiciels libres sont écrits en python, je dirais que c'est sans doute parce que c'est un langage qui favorise la coopération. Il n'y a qu'une façon de faire les choses, les conventions d'indentation et autres détails, par exemple, sont fixées d'entrée de jeu dans le code, ce qui évite que des habitudes entrent en conflit entre développeurs, et la grande lisibilité du code fait que tu peux reprendre un code peu commenté et le comprendre assez vite.
Pour le C, dès que tu dépasseras le stade du Hello world, il te faudra coder toi-même la gestion de la mémoire, par exemple, et autre trucs qui ne sont pas le cœur de métier de ton logiciel (un type qui code un client Jabber, par exemple, devrait bien plus s'intéresser au protocole XMPP qu'à la gestion de la mémoire ; c'est impossible en C). C'est la grosse limitation de ce langage. Alors, bien entendu, un programme en C bien optimisé et compilé avec les bonnes options sera souvent plus rapide que son équivalent en Python. Mais si tu t'es planté dans la gestion de la mémoire et que tu compiles pour un processeur dépassé (qui a dit le 386 ?), tu iras plus vite avec un langage de haut niveau, comme Java ou Python.
EDIT : comme l'a dit freaxmind pendant que je tapais mon post, tu peux aussi t'intéresser à Ruby. Entre Ruby et Python, la différence n'est pas majeure. Python a pour lui d'avoir un interpréteur en Java (et donc la portabilité y associée), ce que je ne crois pas qu'on trouve pour Ruby, et une bibliothèque standard considérable, et, depuis sa version 3.0, un support intégral de l'Unicode, Ruby, via son framework Rails, s'orienterait plus vers la programmation web. L'un comme l'autre sont des langages où tu peux faire de la programmation par objets, mais où c'est optionnel. Disons qu'en Python (je connais mal Ruby), tout est objet, et les opérateurs sont en réalité des méthodes associées aux objets, ce qui fait que tu peux tout traiter comme un objet (y compris surcharger tes opérateurs), ou bien tout traiter de façon classique, sans même voir l'objet (je ne sais pas si je suis très clair...), ou même mixer les deux.
Dernière modification par Gage (Le 09/03/2010, à 01:18)
Ça, ce sont les sources. Le mouton que tu veux est dedans.
Merci, c'est tout à fait comme ça que je le voulais ! Crois-tu qu'il faille beaucoup de ressources à ce mouton ? Parce que ma config est toute petite...
Ça devrait aller. Tu peux te compiler un petit mouton.
Pas si petit que ça. Tiens ! il s'est mis en veille...
Hors ligne
#6 Le 09/03/2010, à 01:30
- Neros
Re : Java, Python, C... J'ai mal à la tête.
Pourquoi vous râlez tous contre le C/C++ ? Il est pourtant génial !
Et puis tant mieux qu'il soit compliqué ! Quand c'est trop simple, il n'y a pas de défi, ce n'est pas drôle...
Hors ligne
#7 Le 09/03/2010, à 01:33
- Koshie-2.0
Re : Java, Python, C... J'ai mal à la tête.
Je crois que je vais me tourner vers le Ruby, le concept a l'air intéressant, et ça a l'air d'être un langage simple.
Je sais déjà faire un Hello World :
puts "Hello World"
Beaucoup plus simple qu'en C...
Dernière modification par Koshie-2.0 (Le 09/03/2010, à 01:33)
#8 Le 09/03/2010, à 01:38
- Neros
Re : Java, Python, C... J'ai mal à la tête.
Je crois que je vais me tourner vers le Ruby, le concept a l'air intéressant, et ça a l'air d'être un langage simple.
Je sais déjà faire un Hello World :
IRB a écrit :puts "Hello World"
Beaucoup plus simple qu'en C...
Heu bof :
C :
#include <stdio.h>
int main()
{
printf("Bonjour le Monde !\n");
return 0;
}
C++ :
#include <iostream>
using namespace std ;
main()
{
cout << "Bonjour le Monde \n" ;
}
Dernière modification par Neros (Le 09/03/2010, à 01:58)
Hors ligne
#9 Le 09/03/2010, à 01:55
- GentooUser
Re : Java, Python, C... J'ai mal à la tête.
- Mon plus gros reproche au C++ c'est la STL (EDIT: et les templates), Avec Boost ou Qt et du sucre genre AutoPtr et foreach on se rapproche de la simplicité du Python ou Ruby !
- Python justement je le trouve pas si simple que ça, avec les "__" et autres self. obligatoires on perd vite la lisibilité qu'on gagne avec l'utilisation intelligente de l'indentation.
- Le C n'est pas facile à maitriser mais il convient parfaitement à son usage.
Personnellement je suis plutôt C++/Qt, Ruby et Perl. J'abhorre Java en tant qu'utilisateur alors je ne l'imposerai pas aux autres dans mes développements, de toute façon il est trop verbeux pour un langage de ce niveau !
Dernière modification par GentooUser (Le 09/03/2010, à 01:57)
Hors ligne
#10 Le 09/03/2010, à 01:58
- Grünt
Re : Java, Python, C... J'ai mal à la tête.
J'adore comme tu arrives à démontrer l'imbitabilité du C, Neros.
Rien que le "#include <stdio.h>" au début, ça permet de faire fuir les gens qui veulent juste coder sans se poser des questions métaphysiques
Red flashing lights. I bet they mean something.
Hors ligne
#11 Le 09/03/2010, à 01:59
- Koshie-2.0
Re : Java, Python, C... J'ai mal à la tête.
J'adore comme tu arrives à démontrer l'imbitabilité du C, Neros.
Rien que le "#include <stdio.h>" au début, ça permet de faire fuir les gens qui veulent juste coder sans se poser des questions métaphysiques
+1
#12 Le 09/03/2010, à 02:00
- Neros
Re : Java, Python, C... J'ai mal à la tête.
J'adore comme tu arrives à démontrer l'imbitabilité du C, Neros.
Rien que le "#include <stdio.h>" au début, ça permet de faire fuir les gens qui veulent juste coder sans se poser des questions métaphysiques
C'était fait exprès
Hors ligne
#13 Le 09/03/2010, à 02:02
- GentooUser
Re : Java, Python, C... J'ai mal à la tête.
À même temps #include, import, use, require... tu trouvera ce genre de choses dans tout les langages
En Python c'est fun aussi avec les from classeX import fonctionA fonctionB fonctionC fonctionD fonctionE fonctionF
Hors ligne
#14 Le 09/03/2010, à 02:16
- Link31
Re : Java, Python, C... J'ai mal à la tête.
En faite, j'aimerai m'amuser mais me rendre utile, créer des petits softs à la con et participer à des projets populaire et aider.
Vous en pensez quoi ?
Je te conseille sans hésiter Python parmi les trois.
Le C est un langage pour ceux qui aiment se compliquer la vie. Même si je reconnais sans problème qu'il a son utilité : il est assez bien à sa place dans le noyau (même si une bonne partie du noyau est codée en programmation objet), et est parfait sur des systèmes embarqués.
Le Java, hmm... il faut une grosse VM, un gros SDK et du code à rallonge pour arriver à faire quoi que ce soit avec. C'est certainement très bien pour des softs d'entreprise à déployer le plus efficacement possible, mais comme langage "pour s'amuser"... non.
Comme le dit GentooUser, le C++ peut être d'aussi haut niveau et aussi facile que le Python ou le Java quand on sait s'y prendre. Mais il faut une bonne connaissance du langage, du compilateur et de l'environnement de développement pour être efficace. À toi de voir si tu as assez de temps à y consacrer... D'un autre côté, à partir du moment où tu es à l'aise en C++ et avec l'utilisation du compilateur ainsi que de quelques bibliothèques, tu es capable de maîtriser n'importe quel autre langage très rapidement.
Le Python est très bien intégré dans la plupart des distributions. Tu peux lancer un programme Python tel quel sur quasiment tous les OS (sauf Windows). L'interpréteur est léger (contrairement au Java...), la syntaxe est claire et puissante, les bibliothèques fournies sont particulièrement riches. Et c'est le langage de prédilection pour le développement sous Ubuntu, en dehors des projets qui requièrent du C ou du C++ et des scripts shell.
Dernière modification par Link31 (Le 09/03/2010, à 02:19)
Hors ligne
#15 Le 09/03/2010, à 02:52
- Le Farfadet Spatial
Re : Java, Python, C... J'ai mal à la tête.
Salut à tous !
Du fait de la multiplication des sujets pour être guidé pour choisir un langage de programmation pour débuter, un épinglé sur ce sujet a été créé : http://forum.ubuntu-fr.org/viewtopic.php?id=352537. Les questions des débutants y sont les bienvenues.
À bientôt.
Le Farfadet Spatial
Hors ligne
#16 Le 09/03/2010, à 03:09
- bloublou
Re : Java, Python, C... J'ai mal à la tête.
using namespace std ;
NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOON
main()
NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOON
\n" ;
NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOON
Sinon, clairement, python, oublie ce langage de merde qu'est le java et oublie le C/C++ si tu veux juste t'amuser.
Hors ligne
#17 Le 09/03/2010, à 03:14
- Neros
Re : Java, Python, C... J'ai mal à la tête.
Heu, pourquoi tous ces « NOOON » ?
Hors ligne
#18 Le 09/03/2010, à 03:44
- bloublou
Re : Java, Python, C... J'ai mal à la tête.
« using namespace std », c'est confusant
Un main c'est « int main (void) » ou « int main(int ac, char** av) »
pour le \n → std::endl
Hors ligne
#19 Le 09/03/2010, à 07:37
- Skadi
Re : Java, Python, C... J'ai mal à la tête.
et participer à des projets populaire et aider.
Je crois surtout que tu prends le problème à l'envers...
Si tu veux aider des logiciels déjà existants, regarde plutôt quels langages ils utilisent.
Car si tu es un dieu du C et que le projet est codé majoritairement en python, tu auras l'air fin.
Confortablement installée dans la sécurité d'un soyeux cocon d'ennui…
Hors ligne
#20 Le 09/03/2010, à 08:25
- grim7reaper
Re : Java, Python, C... J'ai mal à la tête.
« using namespace std », c'est confusant
Confusant !? En tout cas un "using namespace std" c'est à bannir dans la portée générale (Cf. Le Farfadet Spatial entre autre)
Un main c'est « int main (void) » ou « int main(int ac, char** av) »
Fail , en C++ "int main()" est parfaitement valide, portable et standard (Cf. Stroustrup).
pour le \n → std::endl
Re-Fail , "\n" n'a pas du tout le même comportement que "std::endl". En plus de faire un retour à la ligne en ajoutant un caractère '\n', std::endl purge le buffer de sortie et force ainsi son écriture en appelant ostream::flush() (cela a le même fonctionnement que la fonction fflush() du C).
Hors ligne
#21 Le 09/03/2010, à 09:18
- DrDam
Re : Java, Python, C... J'ai mal à la tête.
après c'est comme tout ... ça dépand ce que tu veux faire
tu veux "bidouiller un truc sans te prendre le crane" .... il y a le PHP ( ou autre ... je suis developpeur PHP ) pour faire ça ...
tu veux faire un truc hyper carré et prenant ton temps et arriver à un truc au petits oignons => C/C++
tu veux être entre les 2 : Java, Python, C# .... ( pourquoi ? la gestion de la mémoire ! )
après c'est comme ce qu'on répond à celui qui sais pas choisir entre des distrib linux ... essaye, test, voit, et choisit
Tout ce qui a été crée par l'Homme devrait être patrimoine de l'humanité
Vous etes perdu ?, là ce sera trop loin
Hors ligne
#22 Le 09/03/2010, à 10:17
- Xarkam
Re : Java, Python, C... J'ai mal à la tête.
using System;
namespace Classes_courrantes
{
class MainClass
{
public static void Main (string[] args)
{
Console.WriteLine ("Hello World!");
}
}
}
Ca c'est pour le C# (ouais j'apprends le csharp )
En fait tout dépend de ce que tu veux faire. Si tu veux faire des applications "web" php/jsp/aspnet est pas mal.
Si tu veux aller dans les clients dit lourd alors C/C++, Pascal (lazarus|Kyllix) {Tu a aussi des clients lourd en Java/C#}
Ensuite tu à les langages interprétés comme le Ruby, Python, Tcl/Tk, Perl, ect....
Chacun ont leurs avantages et inconvenant. Un client lourd sera autonome (sauf si il est basé sur une VM comme Java)
Le client lourd offre les meilleurs performances quant il ne demande pas une VM.
Le client lourd VM est moins performant mais offre la gestion de ma mémoire automatisée.
Ensuite tu à les interprétés qui sont sympa mais que oblige à avoir l'interpréteur et souvent une version précise (ca se rencontre souvent avec python).
Pour finir on a les langages dit "web" qui offre la possibilité de réaliser des applicatifs coté serveurs.
Donc, une modification se répercute sur tout les clients sans rien devoir faire.
Osames Manager
---
Asus Rampage V Extrême | Intel i7 5820K | Corsair 16GB DDR4 | NVIDIA GeForce 770GTX
Utilisateur d'Ubuntu, Debian, et Windows
Hors ligne
#23 Le 09/03/2010, à 10:22
- Grünt
Re : Java, Python, C... J'ai mal à la tête.
Simple, le C, vraiment simple!!
On dirait de l'alchimie votre truc
Red flashing lights. I bet they mean something.
Hors ligne
#24 Le 09/03/2010, à 10:29
- DrDam
Re : Java, Python, C... J'ai mal à la tête.
Pour finir on a les langages dit "web" qui offre la possibilité de réaliser des applicatifs coté serveurs.
Donc, une modification se répercute sur tout les clients sans rien devoir faire.
avec php-cli et php-gtk .. tu peut faire du client lourd !
Simple, le C, vraiment simple!!
On dirait de l'alchimie votre truc
je suis assez d'accord avec toi ... le C c'est la base ...
Dernière modification par DrDam (Le 09/03/2010, à 10:30)
Tout ce qui a été crée par l'Homme devrait être patrimoine de l'humanité
Vous etes perdu ?, là ce sera trop loin
Hors ligne
#25 Le 09/03/2010, à 10:33
- Xarkam
Re : Java, Python, C... J'ai mal à la tête.
Xarkam a écrit :Pour finir on a les langages dit "web" qui offre la possibilité de réaliser des applicatifs coté serveurs.
Donc, une modification se répercute sur tout les clients sans rien devoir faire.avec php-cli et php-gtk .. tu peut faire du client lourd !
Oui, mais on tombe dans l'interprété alors.
ǤƦƯƝƬ a écrit :Simple, le C, vraiment simple!!
On dirait de l'alchimie votre trucje suis assez d'accord avec toi ... le C c'est la base ...
Non, la base c'est l'asm
Osames Manager
---
Asus Rampage V Extrême | Intel i7 5820K | Corsair 16GB DDR4 | NVIDIA GeForce 770GTX
Utilisateur d'Ubuntu, Debian, et Windows
Hors ligne