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 08/03/2010, à 23: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 08/03/2010, à 23: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 wink

Hors ligne

#3 Le 08/03/2010, à 23: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 08/03/2010, à 23:59)

Hors ligne

#4 Le 09/03/2010, à 00: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, à 00: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, à 00: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, à 00: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, à 00: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 :

IRB a écrit :

puts "Hello World"

big_smile

Beaucoup plus simple qu'en C...

Dernière modification par Koshie-2.0 (Le 09/03/2010, à 00:33)

#8 Le 09/03/2010, à 00:38

Neros

Re : Java, Python, C... J'ai mal à la tête.

Koshie-2.0 a écrit :

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"

big_smile

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, à 00:58)

Hors ligne

#9 Le 09/03/2010, à 00: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, à 00:57)

Hors ligne

#10 Le 09/03/2010, à 00: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 smile


Red flashing lights. I bet they mean something.

Hors ligne

#11 Le 09/03/2010, à 00:59

Koshie-2.0

Re : Java, Python, C... J'ai mal à la tête.

ǤƦƯƝƬ a écrit :

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 smile

+1

#12 Le 09/03/2010, à 01:00

Neros

Re : Java, Python, C... J'ai mal à la tête.

ǤƦƯƝƬ a écrit :

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 smile

C'était fait exprès tongue

Hors ligne

#13 Le 09/03/2010, à 01: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, à 01:16

Link31

Re : Java, Python, C... J'ai mal à la tête.

Koshie-2.0 a écrit :

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, à 01:19)

Hors ligne

#15 Le 09/03/2010, à 01: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, à 02:09

bloublou

Re : Java, Python, C... J'ai mal à la tête.

Neros a écrit :
using namespace std ;

NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOON sad

main()

NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOON sad

 \n" ;

NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOON sad


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, à 02:14

Neros

Re : Java, Python, C... J'ai mal à la tête.

Heu, pourquoi tous ces « NOOON » ? hmm

Hors ligne

#18 Le 09/03/2010, à 02: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, à 06:37

Skadi

Re : Java, Python, C... J'ai mal à la tête.

Koshie-2.0 a écrit :

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. tongue


Confortablement installée dans la sécurité d'un soyeux cocon d'ennui…

Hors ligne

#20 Le 09/03/2010, à 07:25

grim7reaper

Re : Java, Python, C... J'ai mal à la tête.

louiz' a écrit :

« 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)

louiz' a écrit :

Un main c'est « int main (void) » ou « int main(int ac, char** av) »

Fail smile, en C++ "int main()" est parfaitement valide, portable et standard (Cf. Stroustrup).

louiz' a écrit :

pour le \n → std::endl

Re-Fail smile, "\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, à 08: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 ... tongue 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, à 09: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  tongue)

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, à 09:22

Grünt

Re : Java, Python, C... J'ai mal à la tête.

lol

Simple, le C, vraiment simple!!
On dirait de l'alchimie votre truc tongue


Red flashing lights. I bet they mean something.

Hors ligne

#24 Le 09/03/2010, à 09:29

DrDam

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 !

ǤƦƯƝƬ a écrit :

Simple, le C, vraiment simple!!
On dirait de l'alchimie votre truc tongue

je suis assez d'accord avec toi ... le C c'est la base ...

Dernière modification par DrDam (Le 09/03/2010, à 09: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, à 09:33

Xarkam

Re : Java, Python, C... J'ai mal à la tête.

DrDam a écrit :
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.

DrDam a écrit :
ǤƦƯƝƬ a écrit :

Simple, le C, vraiment simple!!
On dirait de l'alchimie votre truc tongue

je suis assez d'accord avec toi ... le C c'est la base ...

Non, la base c'est l'asm tongue


Osames Manager
---
Asus Rampage V Extrême | Intel i7 5820K | Corsair 16GB DDR4 | NVIDIA GeForce 770GTX
Utilisateur d'Ubuntu, Debian, et Windows

Hors ligne