[Programmation]Le quelle me conviendrais ? Java , python ou Ocaml

Répondre
Partager Rechercher
Salut !
j'ai un probleme , je ne sait pas trop quelle langage choisir definitivement
j'ai fait pas mal de python
un peut de java
et je commence l'ocaml qui a l'air cool

mais je voudrais rester sur un seul langage ..... pour mieu le connaitre .. je ne sait pas quoi choisir ...

je compte surtout developper sur windows , et un peut sur linux
je cherche un langage universel qui permette de faire beaucoup de chose
je developperais surtout des petits soft utilitaire ,
je veut pouvoir faire les choses facilement sans m'occuper des choses inutiles (pointeurs/gestion de memoire)
c'est pour ca que java et python ne sont pas l'ideal pour la distribution et l'execution (20mo de memoire pour afficher une fenetre dans java ...... , et un executable de 10 mo pour afficher une fenetre avec python (py2exe) , et java encore il faut avoir la JVM d'installer ....)

l'ocaml lui a l'air super ,mais j'entend dire qu'il n'est utile que quand l'on a besoin de manipuler des données complexes , et les libs se font rare je trouve (ou alors souvent que pour linux :/ )

pour le python: hmm .. que dire , presque parfait
pour le java: trop de POO ... la POO est complexe et parfois inutile ! (trouvez l'utiliter des static) , rien que pour acceder a une variable dans une autre classe c'est galere !
pour l'ocaml: j'ai un peut de mal a me faire a la programmation fonctionnel, mais ca a l'air tres puissant
voila j'attend vos avis :mrgreen:
Personellement je suis amoureux du Python. Quel merveille ce language!
Mais pour ce qui est du monde de l emploi, ce sont surtout des programmeurs J2EE qui sont recherchés...
Citation :
la POO est complexe et parfois inutile ! (trouvez l'utiliter des static) , rien que pour acceder a une variable dans une autre classe c'est galere !
Ok lol. Y'a un langage sinon que tu ne sembles pas avoir encore découvert, ça peut être pas mal de l'apprendre, c'est le français
Citation :
Publié par Kedare
je cherche un langage universel
Déjà, c'est mal parti :/



Ceci dit, si c'est, comme tu le dis, pour faire uniquement des petites applis à utilisation perso, plus ou moins oneshot, tu devrais faire au feeling, ce qui te semble le plus simples a coder.
Par contre, si tu veux ne serait ce qu'un peu, envisager de faire des choses portables (bon, ok, surtout pour ce qui est de java, la portabilité en C++, oublie ), propres (meme si, bien evidemment, ca dépendra toujours de la maniere dont tu codes), et surtout plus faciles a faire evoluer, je te conseille fortement de ne pas regarder de haut la poo, et de t'y mettre un tant soit peu. Une fois qu'on y est habitué, et rodé, ca devient difficile de s'en passer. Dans ce domaine, si tu veux t'y mettre, je conseille fortement Java. Ok, les perfs sont pas grandioses (oh, le bel euphémisme), mais la simplicite de mise en oeuvre compense quand meme pas mal. La doc est excellente, il y a des environnement de dev tres bons (Eclipse es tu là ? ), et ca evite de passer par du C++ avec toutes les blagounettes de pointeurs qu'on connait.
.Net pose des soucis pour le multi-plateforme (y a bien Mono pour Linux mais restons basique ..)

donc je te conseille Java (qui me semblait avoir de bonnes perf dans sa dernière version) même si la prise en main est peut être moins guidée que .Net (moins d'assistant)
Citation :
Publié par puchiko
.Net pose des soucis pour le multi-plateforme (y a bien Mono pour Linux mais restons basique ..)

donc je te conseille Java (qui me semblait avoir de bonnes perf dans sa dernière version) même si la prise en main est peut être moins guidée que .Net (moins d'assistant)
Pour ce qui est de la prise en main boaf. Il faut comparer à niveau d'edi équivalent.
Si tu prends Visual studio pour .Net, prends Websphere pour java (même si c'est pas vraiment à la portée des particuliers ).

Sinon, dans les choix que tu propose je dirais java.
D'abord, la POO est casi incontournable à notre époque en matière de programmation.
Ensuite, java vient de passer en open source, ce qui laisse présager plein de bonnes choses.
Enfin, comme cité plus haut, dans les grosses boites (et les plus petites aussi) ce qu'on demande la plupart du temps, c'est j2EE ou .NET.
juste pour info, il existe des IDE pour .Net non édités par Microsoft (même si une version de Visual Studio .Net est gratuite et téléchargeable depuis le site de Microsoft) qui s'appelle .. SharpDevelop
Personne n'a l'air d'aimer Ocaml
pour le .NET , Va savoir pourquoi mon pc plante a chaque fois quand j'installe Visual Studio :/

pour le moment c'est le python que je prefere , mais c'est vraiment pas simple simple de distribuer ses applications

java j'aime bien parcequ'il y a les JWS , les applets , et tout ca
Moi j'aime bien ocaml, ca marche très bien. Si tu apprecies la programmation fonctionelle c'est ce qu'il te faut, ca repondra a toutes tes attentes.

Autrement Python est super aussi. Pour faire de la prog "sans se prendre la tete" c'est l'idéal.
Citation :
Publié par Kedare
Salut !
pour le java: trop de POO ... la POO est complexe et parfois inutile ! (trouvez l'utiliser des static) , rien que pour accéder a une variable dans une autre classe c'est galère !
la POO n est pas complexe , inutile peut être ça dépend les objectifs

une classe static te permet d utiliser ses méthodes sans l instancier.

une variable dans une autre classe.
Tu crée l objet et tu fait appelle a ses attributs et ses méthodes.

Exemple :
MaClasse maclasse=new MaClasse();
x=maclasse.valeur;
Citation :
Publié par Tholdan
Ouais enfin, Java c'est un peu une usine à gaz pour faire du oneshot...
Eclipse pour la java c'est une usine a gaz, du java fait entièrement en ligne de code sans AGL graphique c'est pasd une usine a gaz.
Citation :
Publié par Kedare
le truc que j'aime pas dans java aussi , c'est qu'il nous OBLIGE a mettre des exception si non il se compile pas :/
lol

pauvre petit programmeur oblige de mettre des exceptions

Apprends encore un peu tu verras c est utile. Sinon si ca marche pas comme tu veux, tu connais VisualBasic ?
Citation :
Publié par KROGOTH
Eclipse pour la java c'est une usine a gaz, du java fait entièrement en ligne de code sans AGL graphique c'est pasd une usine a gaz.
La JVM est beaucoup plus lourde que l'interpréteur Python.
Citation :
Publié par Demoniciduth
La JVM prends peut-être plus de ram (?) mais elle est moins lente que l'interpreteur python .
ca depend ....
les accées au systeme de fichier sont plus rapide en python(d'apres mes testes qui consiste a ziper tout un repertoire(python met 0.86s , et java .... 3.95s))
tu peut voir les differences de vitesse la :
http://twistedmatrix.com/~glyph/rant...n-vs-java.html

Citation :
Publié par willoi
pauvre petit programmeur oblige de mettre des exceptions

Apprends encore un peu tu verras c est utile. Sinon si ca marche pas comme tu veux, tu connais VisualBasic ?
c'est parfois inutile ....
Citation :
les accées au systeme de fichier sont plus rapide en python(d'apres mes testes qui consiste a ziper tout un repertoire(python met 0.86s , et java .... 3.95s))
Essaie de faire un bench plus long pour voir. La JVM est un peu plus lente pour se mettre en marche. Mais l'appli est plus fast qu'en python.
http://furryland.org/~mikec/bench/
:x
Python fait pire que Perl et Java.

Java n'est cependant pas adapté à des petits trucs qu'on utilise l'espace de 3 secondes.
Citation :
Publié par Demoniciduth
Java n'est cependant pas adapté à des petits trucs qu'on utilise l'espace de 3 secondes.
le probleme c'est que c'est ce que je compte faire le plus souvent au debut
(par exemple la je me suis amuser a faire un ptit crypteur/decrypteur de fichier en python)
je n'imagine meme pas comment faire ca en java ....
(la source pour les interessé) :
Code:
#! /usr/bin/env python
#################################
## EASYCRYPTER 1               ##
## @author: Kedare             ##
## @Date: 22-Juin-2006         ##
#################################
import base64

def encryptString(texte,motdepasse):
    index=0
    final=''
    for lettre in texte:
        lettre=ord(lettre)
        lettre+=ord(motdepasse[index])
        if lettre>255:lettre-=256
        lettre=chr(lettre)
        final+=lettre
        index+=1
        if index>=len(motdepasse):index=0
    return base64.encodestring(final) 


def decryptString(texte,motdepasse):
    texte = base64.decodestring(texte)
    index=0
    final=''
    for lettre in texte:
        lettre=ord(lettre)
        lettre-=ord(motdepasse[index])
        if lettre<0:lettre+=256
        lettre=chr(lettre)
        final+=lettre
        index+=1
        if index>=len(motdepasse):index=0
    return final




def encryptFile(source,to,motdepasse):
    f = open(source, "r")
    dataSource = f.read()
    f.close()
    f = open(to, "w")
    f.write(encryptString(dataSource,motdepasse))
    f.close()
    
def decryptFile(source,to,motdepasse):
    f = open(source, "r")
    dataSource = f.read()
    f.close()
    f = open(to, "w")
    f.write(decryptString(dataSource,motdepasse))
    f.close()
faudrais quoi .... 100 lignes minimum de java pour faire l'equivalent je pense
Citation :
Publié par Kedare
faudrais quoi .... 100 lignes minimum de java pour faire l'equivalent je pense
Bof. Les choses qui font grossir le code que tu as donné (a vue de nez en survolant, je ne suis pas competent en python, mais assez en prog pour lire un bouzin et dire en gros ce qu'il fait et comment transposer en un langage que je connais ), c'est l'encapsulation des methodes dans une classe, et l'ecriture d'un main pour l'appel sur un fichier. Comme il y a duplication de code dans tes fonctions (ouverture / fermeture du fichier) et que cette partie serait transferee dans le main en java, rien que cela ferait gagner les quelques lignes qui sont perdues du à l'obligation de proteger la gestion de fichier dans un try catch, le dernier point susceptible de faire gonfler le code java par rapport au python.

Donc, estimation au pif :
- encapsulation globale : +2l
- main : +4-6l
- modifications diverses pour transcrire en java (gestion des boucles ? la premiere boucle for m'a l'air pas tres catholique directement mise en java telle quelle) : +8l

On se retrouve avec un source qui a grosse d'une quinzaine de lignes, soit environ 70l. On a vu pire en matiere de gonflement du code, et on est loin des 100l tant redoutées
(Et puis, si tu veux juste faire du petit traitement de fichier comme ca et que tu es un maniaque de la performances, mets toi au COBOL, y a que ca de vrai ! )
Citation :
Publié par willoi
Citation :
Publié par Kedare
Salut !
pour le java: trop de POO ... la POO est complexe et parfois inutile ! (trouvez l'utiliser des static) , rien que pour accéder a une variable dans une autre classe c'est galère !
la POO n est pas complexe , inutile peut être ça dépend les objectifs

une classe static te permet d utiliser ses méthodes sans l instancier.

une variable dans une autre classe.
Tu crée l objet et tu fait appelle a ses attributs et ses méthodes.

Exemple :
MaClasse maclasse=new MaClasse();
x=maclasse.valeur;
C'est quand même plus propre en terme d'encapsulation d'utiliser autant que faire se peut des variables private. Cela dit Kedare ça ne complique pas les choses outre mesure : un getter, un setter et le tour est joué. On a vu pire comme galère.
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés