C'était effectivement mon opinion avant (celle que tu as cité) mais maintenant j'ai pris conscience que Java est un langage qui permet tout, même des gros jeux grâce aux nombreux arguments apportés au débat.
C'est très bien, au mois tu a appris quelque chose, en fait, nous avons tous appris quelque chose
Mais je vais de dire un secret, moi aussi j'ai déjà pensé à quitter java, et j'y pense encore, j'ai pensé à m'introduire dans le monde du python, qui est facile et efficace! Beaucoup de bon logiciels on été faits en python, je cite par exemple, Cinema4D, un logiciel de création 3D qui est lui-même une VRAIE machine à gaz ! mais bon... je me dis que je ne devrais pas vraiment pas vraiment abandonner un travail déjà commencé... je suis trop avancé en java pour abandonner.
Pour l'instant, je pense à un gros projet en java qui pourrait être assez énorme: un Éditeur de texte. Cet éditeur de texte sera muni de multiples fonctions, qui ne sont peux même pas accessibles dans d'autres, comme le décryptage/cryptage et plein d'autres fonctionnalités je l'appellerais <b>"String Utilities"</b>, le seul problème c'est que je me retrouve encore une fois solitaire et seule pour un travail énorme je ne suis pas là pour recruter... mais bon, si tu est intéressé à me suivre dans ce projet, n'hésite pas à me contacter
Cinema4D ca m'étonnerai que ce soit fait en python , je pense plutot que c'est du C/C++ avec utilisation de python en langage de scripting
Tous les soft qui ont un rapport de près ou de loin à du multimédia c'est sur le GPU, que ça soit du jeu vidéo, comme l'a dit Gwen, du traitement d'image ou de vidéo, c'est tout sur le GPU donc java ou c++ pour le back-end, ca revient au même.
Ce qu'il faudrait c'est faire un Swing qui puisse s'adapter au web et au mobile. Un framework qui soit utilisable sur toutes les plateformes (vu que c'est un des principes de bases de Java). Ce qui sera le plus complexe dans ce genre d'aventure c'est de consilier l'aspect client/serveur et lourd (pour les requête les évènements ou autre) même si avec du javascript c'est faisable (il suffi de regarder GWT). Donc quelque chose qui serait semblable à GWT et à Android et à Swing (GWT s'inspirant fortement de Swing à ce que j'ai compris). Si ce défit et réalisé alors on pourra codé pour toutes les plateforme en une fois (un vieux rêve), au détail de la compilation (GWT est compilé pour donné au Byte code et du Javascript).
Cela s'appelait JavaFX et c'est mort avant l'arrivé. Donc je ne vois pas Oracle se risquer encore la dedans. De toute façon, il est trop tard maintenant, les cartes ont été distribuées et c'est google qui a raflé la mise.
Vous avez fait beaucoup de JNI ici ? Je ne crois pas que JNI soit fait pour avoir de meilleures performances (combien coute l'appel d'une méthode native ?), mais plutôt pour avoir des accès à des librairies qui n'existe pas en Java et surtout ceux touchent au matériel.
@shakkal
"pas de RAII" : Comment avoir du RAII en Java ? Les objets sont des pointeurs implicites et le langage est Garbage Collector... Sinon oui pour les fermetures de flux il y a le try-with-ressources.
"ni de surcharge d'opérateur" : La classe String en bénéficie déjà, et si les classes BigDecimal et BigInteger en bénéficiaient ça aurait été bien (mais ce n'est pas le cas). Sinon je n'en vois pas trop l'utilité. C'est un truc qui peut facilement être employé à mauvais escient.
J'ai lu plus haut qu'il n'y avait "pas de compilation" en Java (après création du bytecode), c'est peut-être moi qui ait mal compris, mais en faite Java compile en natif si besoin certaines méthodes.
Le gros problème en Java c'est la liaison avec le matériel, tu veux une connexion RS232 ? Tu vas utiliser la librairie RXTX (pas super d'après ce que j'ai lu), toujours mieux que Javacomm. Tu veux jouer du son ? Tu vas utiliser les librairies du packages sun (que j'ai testé et pas aimé) ou un truc externe, problème de compatibilité avec le format, et certains fichiers. Aussi on perd en portabilité avec les versions par plateforme.
artragis a écrit:
Tu trouves? En quoi ajouter vingt mots clefs redondant et assez longs augmente-t-il la lisibilité face aux getteurs/setteurs de C#par exemple? Au contraire, c'est bien plus immédiat à voir en C# qu'en Java.
Pourquoi C# revient toujours avec ses get/set ? Tu as quasiment la même verbosité en Java qu'en C#. Le get/set c'est du pipi de chat.
Il y a des trucs plus intéressants dont on pourrait parler, par exemple :
yield qui permet de faire des économies de mémoire lorsqu'on veut afficher une liste une seule fois (récemment introduit en PHP).
C# 5 qui offre une nouvelle syntaxe await/sync pour les méthodes asynchrones.
dynamic qui permet de ne pas préciser le type (un peu comme Python ?), truc que je n'adhère pas car peut être utilisé à mauvais escient.
Des choses utiles ou au contraire. Quelle est la richesse des enum en C# par rapport à Java ? Enfin bon on n'est pas trop dans le forum de débat non plus.
Vous avez fait beaucoup de JNI ici ? Je ne crois pas que JNI soit fait pour avoir de meilleures performances (combien coute l'appel d'une méthode native ?), mais plutôt pour avoir des accès à des librairies qui n'existe pas en Java et surtout ceux touchent au matériel.
Les appels JNI ne sont pas (trop) lourds tant qu'on se contente de passer un pointeur et les param vers le natif, et les types prévus en retour vers le java, ça devient lourds dès qu'on manipules des objets entre les 2 parties.
Rien n'empêche de faire un call JNI pour lancer un thread en natif.
"pas de RAII" : Comment avoir du RAII en Java ? Les objets sont des pointeurs implicites et le langage est Garbage Collector... Sinon oui pour les fermetures de flux il y a le try-with-ressources.
En gérant le cycle de vie avec un contexte réduit (de méthode dans ce cas), tout comme le fait le try avec auto closable.
"ni de surcharge d'opérateur" : La classe String en bénéficie déjà, et si les classes BigDecimal et BigInteger en bénéficiaient ça aurait été bien (mais ce n'est pas le cas). Sinon je n'en vois pas trop l'utilité. C'est un truc qui peut facilement être employé à mauvais escient.
Manipule des vecteurs, des matrices, des points à longueur de journée et tu verras l'intérêt.
Sinon pour les get/set y a une lib qui règle ça en les remplaçant par des annotations mais je l'ai pas encore testée.
>Pourquoi C# revient toujours avec ses get/set ? Tu as quasiment la même verbosité en Java qu'en C#. Le get/set c'est du pipi de chat.
Je l'ai dit, ce n'était qu'un exemple. Mais sauf à avoir Java1.8 tu n'as par exemple pas les closures, ce qui signifie que tu es obligé de passer par une classe anonyme assez verbeuse à écrire si tu veux juste faire un filtre à la volée. Les delegate de C# évitent cela.
Il y a pas mal d'autres exemple mais le get/set c'est juste accessible aussi bien au gars qui est un vétéran du code qu'au débutant donc c'est l'exemple qui est le plus facilement pris.
"pas de RAII" : Comment avoir du RAII en Java ? Les objets sont des pointeurs implicites et le langage est Garbage Collector... Sinon oui pour les fermetures de flux il y a le try-with-ressources.
En gérant le cycle de vie avec un contexte réduit (de méthode dans ce cas), tout comme le fait le try avec auto closable.
Je ne crois pas que RAII soit compatible avec Java. Déjà comment l'introduire sachant que tout objet se comporte comme un pointeur ? Ce serait un retour en arrière que d'introduire le mot-clé delete (ou une méthode System.gc(Object o)), cette instruction serait alors utilisée manuellement pour supprimer les ressources qui ne sont pas référencées par un autre objet (donc tester au préalable si un autre objet ne pointe pas dessus à partir de la liste du heap)...
Donc faire appel à un System.gc(Object o) pour une seule ressource. Et rien ne dit qu'après avoir effectué une recherche dans la liste du heap, ton objet sera supprimé.
Donc gain de mémoire mais perte de vitesse apporté par le Garbage Collector sur certains passages.
En C++ c'est plus brutal, tu utilises delete ton objet, et bien on s'en fou si tu as d'autres pointeurs qui utilisent la même ressource. Si c'était comme en C++, on se retrouverait à débugger des tonnes de NullPointerException sur les gros projets en Java.
"pas de RAII" : Comment avoir du RAII en Java ? Les objets sont des pointeurs implicites et le langage est Garbage Collector... Sinon oui pour les fermetures de flux il y a le try-with-ressources.
En gérant le cycle de vie avec un contexte réduit (de méthode dans ce cas), tout comme le fait le try avec auto closable.
Je ne crois pas que RAII soit compatible avec Java. Déjà comment l'introduire sachant que tout objet se comporte comme un pointeur ? Ce serait un retour en arrière que d'introduire le mot-clé delete (ou une méthode System.gc(Object o)), cette instruction serait alors utilisée manuellement pour supprimer les ressources qui ne sont pas référencées par un autre objet (donc tester au préalable si un autre objet ne pointe pas dessus à partir de la liste du heap)...
Donc faire appel à un System.gc(Object o) pour une seule ressource. Et rien ne dit qu'après avoir effectué une recherche dans la liste du heap, ton objet sera supprimé.
Donc gain de mémoire mais perte de vitesse apporté par le Garbage Collector sur certains passages.
En C++ c'est plus brutal, tu utilises delete ton objet, et bien on s'en fou si tu as d'autres pointeurs qui utilisent la même ressource. Si c'était comme en C++, on se retrouverait à débugger des tonnes de NullPointerException sur les gros projets en Java.
Tiens, j'avais zappé ce post...
ben tout simplement en partant sur le même principe que try with resource, mais sans sa lourdeur, et non delete n'est pas un retour en arrière, de nombreux objets doivent être nettoyés ou fermé manuellement: flux, fichiers, connexions...
le gc tu le sentiras pas vu qu'on est en contexte méthode et donc cycle de vie court, donc pas de risque que ça dépasse l'eden space.
et enfin, pas de NPE vu que les objets ne sortent pas de la méthode, si tu le return, alors son scope est étendu et close n'est pas appelé.
je sui passionne et jaime bien le java mais c pa si facile que sa ,je compte bien sur votre aide genereuse pr maider qd bien mm jen aurais besoin? Merci davance a vs tous sur le forum java
je sui passionne et jaime bien le java mais c pa si facile que sa ,je compte bien sur votre aide genereuse pr maider qd bien mm jen aurais besoin? Merci davance a vs tous sur le forum java
Oui, on peut t'aider, mais en échange on demande un minimum d'efforts de ta part. Notamment bien lire les règles du site et essayer de les appliquer : poster une nouvelle discussion pour chaque question, avec un minimum d'efforts sur l'écriture, un titre explicite des formules de politesse, utiliser le bouton « </> » pour colorer son code.
Ça nous permet alors de t'aider bien plus facilement et rapidement, ce qui est agréable pour nous.
Bref, c'est donnant-donnant.
GuilOooo
J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
salut excusé moi pour le dérangement, j'ai un petit doute. j'aimerais savoir si une application faite en java pourrais tourner sans problème sur toutes plateformes (OS pour mobile).
salut excusé moi pour le dérangement, j'ai un petit doute. j'aimerais savoir si une application faite en java pourrais tourner sans problème sur toutes plateformes (OS pour mobile).
Ha.
Ha.
Apprenez à programmer en Java
On peut faire de nombreuses sortes de programmes avec Java :
des applications, sous forme de fenêtre ou de console ;
des applets, qui sont des programmes Java incorporés à des pages web ;
des applications pour appareils mobiles, avec J2ME ;
Ce que te reproche le monsieur c'est de ne pas avoir lu.
>SVP, pourais-je avoir des liens pour les cours des applications pour appareils mobiles, avec J2ME ;
Il n'y en a pas sur OCR. Si tu veux vraiment en chercher google's your friend.
Sinon android se base sur quelque chose très proche du java donc tu peux te diriger vers ça aussi.
Des tutos surtout et gratuit|Déboguez php|Un cours sur ASP.NET MVC
Des tutos surtout et gratuit|Déboguez php|Un cours sur ASP.NET MVC
Des tutos surtout et gratuit|Déboguez php|Un cours sur ASP.NET MVC