Différences entre C# et Java

Le logo Java

Cet année, j'ai décidé de me mettre sérieusement au développement pour tablette puisque je suis de plus en plus sollicité sur le sujet. Pour l'occasion, je me suis remis au Java que j'avais un peu abordé au siècle dernier pour pouvoir développer sur Android. J'en profite donc pour noter les différences avec le C# qui est le langage que j'utilise au quotidien. La syntaxe des deux langages est dérivée du C et ils partagent donc un grand nombre de similarités. Il y a cependant quelques différences :

  1. Pas d'entier non signé. Le mot clé byte en Java désigne un entier 8 bits signé (pouvant prendre des valeurs allant de -128 à 127) alors qu'en C#, il correspond à un entier non signé (pouvant prendre des valeurs allant de 0 à 255). Dans mon projet, je dois lire un fichier binaire avec DataInputStream. Pour lire un entier 16 bits non signé, il faut utiliser la méthode readUnsignedByte qui renvoie un int. ;
  2. Pas de propriétés. On doit donc utiliser des getter/setter. Dommage, j'ai appris la POO avec Delphi et j'adore les propriétés ;
  3. Différence dans les conventions de nommage. Les noms des méthodes sont en camelCase, alors qu'en C# on utilise le PascalCasing ;
  4. Le foreach a une syntaxe différente. foreach (Vertex vertex in vertices) se traduit en for (Vertex vertex: vertices). Plus concis, mais moins lisible ;
  5. Pour dériver une classe, on utilise le mot clé extends : Point3d extends Point2d. En C#, on se contente d'un signe deux points : Point3d: Point2d. Java prends ici sa revanche sur foreach.

Les deux langages sont donc assez proches et je pense pouvoir passer rapidement de l'un à l'autre. En plus PHP a pas mal emprunté à Java pour son modèle objet donc je retrouve des constructions familières (extends, camelCasing pour les noms des méthodes, getter/setter...). Java ne va pas détrôner C# qui reste mon langage préféré, mais il n'a pas d'inconvénient majeur. Le plus dur reste certainement d'appréhender la plateforme Android et OpenGL.

Après avoir passé une partie de mon week-end sur le sujet, j'ai réussi à exporter quelques lignes d'AutoCAD pour les afficher sur mon Nexus 5 avec OpenGL ES 1.0. Résultat modeste, mais Rome ne s'est pas faite en un jour n'est ce pas ?

Première capture d'écran

Ajouter un commentaire