Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Souhaiteriez-vous reprogrammer en C/C++ après des années d'utilisation de .NET/C# et Java ?
Pour ou contre le low level ?

Le , par Katleen Erna

151PARTAGES

1  0 
Souhaiteriez-vous reprogrammer en C/C++ après des années d'utilisation de .NET/C# et Java ? Pour ou contre le low level ?

En tant que développeur, envisageriez-vous de faire un petit voyage dans le passé, disons dans les années 1980, pour retrouver les langages de programmation d'avant ?

Beaucoup de professionnels de l'informatique ont passé la dernière décennie à travailler sous C# et Java (on parle évidement ici d'une tendance, et non pas d'une généralité). Certains ont récemment choisis de se remettre à coder en C/C++ et sont satisfaits de ce choix.

Bien sûr, certains outils et bibliothèques leurs manquent mais ils se sentent soulagés par un style "plus simple que celui de Java et de ses bibliothèques inutilement complexes". Pour autant, Java apporte l'avantage du code multi-thread. Mais d'autres de conciderer que la programmation en pthreads n'est pas plus difficile.

En outre, certains codes de socket seraient plus faciles a éxecuter en C du fait de la façon ardue dont fonctionne I/O dans Java.

Dans la liste des arguments favorables au low level, on note également que la majorité des APIs actuelles ont été construites en C. Certains développeurs perfectionnistes expliquent aussi que la programmation de ce type leur permet de se focaliser d'avantage sur la performance et les optimisations et de pousser très loin les assemblages.

Dans l'autre camp, on préfère traiter des problèmes "plus compliqués, que le low level ne permet pas de prendre en charge". Eclipse (dans Java) faciliterait beaucoup de tâches avec "une seule manière de faire chaque chose".

Bref, toute cette cuisine de langages semble finalement surtout être une question de goûts personnels. Quels sont les vôtres ?

Sources : Diverses opinions de développeurs anonymes.

Java est-il vraiment d'un plus "haut niveau" que le low level (C/C++) ? Et C# ?

Que pensez-vous des performances de Python comparé à Java et C# ?

Le recours à un compiler moderne peut-il changer la donne ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de robert_trudel
Membre éclairé https://www.developpez.com
Le 27/11/2009 à 1:54
j'ai débuter avec le langage C, j'en ai fait durant plus de 3 ans, un peu de vb, delphi, une miette de C++ et ensuite Java

je dirais que la majorité des tâches que je fais à chaque jours je pourrais aussi le faire en C, mais ça prendrais beaucoup plus de temps

c'est certain que java est beaucoup plus haut niveau que le C, C++
il "cache" certain élément

faire du C, C++ portable n'est pas du tout évident, aucun compilateur respecte entièrement les performances

pour ton exemple de socket, c'est la première chose que j'ai du faire en Java... difficile de faire plus simple

elle varie d'un compilateur à un autre

j'ai jamais été un fan de python, j'aime pas trop sa syntaxe et n'importe qu'elle benchmark montre qu'il est plus que le c, c++, java
1  0 
Avatar de deadalnix
Membre chevronné https://www.developpez.com
Le 27/11/2009 à 2:00
Je trouve que D est une bonne réponse à ce problème.

C'est pourquoi j'ai décidé de m'y mettre.

Andrei Alexandrescu est d'accord, ce qui me fait penser que je ne dois pas être totalement fou.
1  0 
Avatar de Hayaxx
Membre du Club https://www.developpez.com
Le 27/11/2009 à 2:17
Il est vrai que D semble une bonne alternative.

Encore étudiant, je n'ai pas une maitrise totale des langages mais je prefere tout de meme la syntaxe complexe du C++ que celle de Java.
J'aime la sensation de controle totale d'un langage bas niveau.

Et pour la portabilité C++/Qt !
1  0 
Avatar de Viish
Rédacteur https://www.developpez.com
Le 27/11/2009 à 2:21
Citation Envoyé par robert_trudel Voir le message
pour ton exemple de socket, c'est la première chose que j'ai du faire en Java... difficile de faire plus simple
Si, en Python c'est encore plus simple et rapide

Sinon perso je préfère le Java ou le Python au C/C++/C#.
1  0 
Avatar de Averroes
Membre du Club https://www.developpez.com
Le 27/11/2009 à 5:51
Citation Envoyé par Katleen Erna Voir le message
Mais d'autres de conciderer que la programmation en pthreads n'est pas plus difficile.
[...]
Dans l'autre camp, on préfère traiter des problèmes "plus compliqués, que le low level ne permet pas de prendre en charge". Eclipse (dans Java) faciliterait beaucoup de tâches avec
Avant tout il y a des grosses fautes dans ton passage (en plus des petites que je n'ai pas re-cité. (Utilises au moins le dico Fr si t'utilises Firefox).

Pour ma part je pense que le problème du langage est un sujet de masturbation cérébrale propre aux experts dans un langage.
J'ai toujours favorisé les objectifs du projet avec les contraintes temps de développements et temps d'exécution et accessoirement préférence du client pour un langage car il a des ressources pour maintenir.
1  0 
Avatar de mister3957
Membre expérimenté https://www.developpez.com
Le 27/11/2009 à 8:33
J'ai fait pas mal de trucs en C++, puis je suis passé à C#.

La transition n'était pas facile étant donné que je faisais les conceptions, et arrivé à l'implémentation, je m'apercevait qu'il n'était pas possible de faire certains trucs en C# (méta programmation notamment).

Ca m'a donné un sentiment de manque de liberté, de ne pas pouvoir avoir la main sur tout ce que je voulais. Du coup, je m'arrange pour n'être que sur les projets en C++.

Il y a également pas mal de fonctionnalité apportées au C++ via les différentes libs disponibles (surtout boost) qui ne sont pas disponibles en .net ou en java. Quand on est habitué à les avoir, ensuite c'est difficile de s'en passer.

Enfin, je trouve les libs C++ plus créatives et ingénieuses que celles de .net ou java, la communauté est plus large et plus ouverte.

Python je ne connais pas.
1  0 
Avatar de smyley
Expert éminent https://www.developpez.com
Le 27/11/2009 à 8:51
Le truc c'est que normalement tout ce qui est lib C/C++ en général, soit c'est intégré nativement en .NET soit on peut quand même y accéder via des P/Invoke.

Personnellement j'ai fait du C/C++ et du C# (et d'autres trucs genre Java, but i'd rather not talk about it ) et il y a plein de petites choses qu'il faut surveiller en C/C++ pour faire un programme propre (référence ? pointeur ? copie ? j'ai bien tout libéré ? je crois que j'ai oublié un \0 ... c'est des erreurs de noob mais quand on a pas fait de C/C++ depuis longtemps, il arrive forcément un moment où on en fait) qui sont quasiment géré automatiquement par .NET.

Et puis ça fait plaisir de ne jamais avoir de Access Violation ou Heap Corrupt. Par contre, il n'y a encore aucun moyen de faire certains trucs genre des Drivers en C#, sur le coup c'est indéniable ...

ps. C++ n'implique pas low level
1  0 
Avatar de brulain
Membre régulier https://www.developpez.com
Le 27/11/2009 à 8:52
Genre : vous préférez avoir une jambe en mousse ou des dents en carton ?
Pas de doute, le schmilblic avance...
1  0 
Avatar de vintz72
Membre actif https://www.developpez.com
Le 27/11/2009 à 9:12
Actuellement sur Java, j'ai tâté de C# et de C et C++ également.
Je pense que le langage lui-même n'est pas si important. Ce qui l'est pour moi, c'est qu'il soit orienté objets. Ca, je ne pourrais plus m'en passer. Ensuite, si l'EDI est performant, ça facilite grandement les choses !
En outre, ça fait 10 ans que je n'ai plus fait de C++, mais a priori, il y a eu pas mal d'évolutions (libs standards, etc.), donc pourquoi pas s'y remettre à l'occasion.
Sinon, il y a Objective-C aussi... ;-)

Quant on Python, je ne connais pas suffisamment pour en parler.
1  0 
Avatar de Médinoc
Expert éminent sénior https://www.developpez.com
Le 27/11/2009 à 9:13
Personnellement, j'adore le bas niveaul. Mais pour certaines applications, le C pur, c'est vraiment gonflant.
Le C++ est bien mieux, vu qu'il permet de faire du bas niveau tout en apportant l'avantage de la RRIF.

Pour autres langages plus évolués, je pense que .Net est un bon compromis: Selon moi, C# est un poil plus bas que java, et couplé à C++/CLI, on peut tout faire avec.
1  0