Nous allons démarrer un nouveau projet qui impliquera la formation de tous les développeurs .net en Java (frameworks / système ECO etc). Nous avons beaucoup de code écrit en C # et il semble que tout cela sera gaspillé car nous devons tout réécrire en Java. Le problème que je vois est que la première année environ (probablement 2 ans), nous n'aurons rien à livrer car nous passerons la plupart du temps à reproduire ce que nous avions avant mais maintenant à Java.
Étant donné que notre équipe est répartie dans différents bureaux à travers le monde et que nous avons un grand nombre de développeurs java (20 à 30) et 10 développeurs utilisant .net, nous voulons que tous les développeurs utilisent le même langage / plateforme afin que nous puissions commencer à réutiliser les composants / modules. Je peux donc comprendre le point de vue des directions.
Hier, je suis tombé sur Scala et je me demandais s'il serait préférable de l'utiliser avec le produit actuel (qui est écrit en C #) et puis au moins nous aurons un produit fonctionnel dans un an. Aussi dans un an, nous avons des modules qui peuvent être utilisés dans le monde Java pendant que nous migrons d'autres parties du produit.
Scala serait-il un meilleur choix que Java compte tenu de ce que nous essayons de réaliser?
Réponses:
Quelques points à considérer:
Compte tenu de tout cela, vous voudrez peut-être couvrir vos paris et opter pour une stratégie mixte Java / Scala - c'est-à-dire migrer vers la plate - forme JVM et vous concentrer initialement sur Java, mais gardez ouverte l'option d'utiliser Scala lorsque vos développeurs sont à l'aise et / ou cela correspond au problème à résoudre.
Du point de vue de la gestion, cela présente de nombreux avantages:
L'inconvénient est que vous avez encore deux langues principales à prendre en charge. Mais vous en avez probablement déjà bien plus que deux (scripts shell? Formats XML spécifiques au domaine? Fichiers de configuration? Moteurs de règles? HTML? Javascript?).
la source
J'ajouterai une 3ème option. Quelqu'un dans votre organisation a-t-il envisagé l'interopérabilité entre vos modules C # et Java? Comment exposez-vous la fonctionnalité C #? Les services Web SOAP ou RESTFul sont-ils une option?
Une réécriture de 2 ans peut être un glas pour une organisation (il suffit de demander à Netscape). Cependant, une migration progressive tandis que le code existant se joue bien entre eux a potentiellement moins d'impact sur l'entreprise.
la source
La réécriture de C # vers Scala sera aussi difficile que la réécriture vers Java. Quant à la langue qui est "meilleure", ce point est théorique, chaque langue a ses propres points positifs et négatifs.
Je ne sais pas quelle est la taille de votre base de code mais 2 ans pour 30 développeurs semble énorme pour une simple réécriture. Récupérer Java lorsque vous savez que C # est facile. Cela m'a pris un jour ou deux pour me familiariser avec ça.
Mon conseil serait de laisser la direction faire son chemin et profiter du fait que vous soyez payé pour élargir vos compétences.
la source
Je pense que l'option la plus simple serait d'amener les développeurs java à apprendre le C #. Les deux langages sont très similaires à bien des égards et il ne faut pas longtemps pour qu'un développeur java prenne C #. J'ai travaillé avec de nombreux développeurs Java qui ont appris le C # et c'est généralement une transition en douceur. Le seul domaine où ils pourraient rester bloqués pendant un certain temps est le modèle de programmation WebForms. Les développeurs Java s'adaptent mieux au paradigme MVC. De cette façon, vous n'avez pas besoin d'attendre un an avant de commencer à développer de nouvelles fonctionnalités. En ce qui concerne Scala, je crains que cela n'introduise un tout nouveau problème avec les 30 développeurs essayant d'apprendre une nouvelle langue.
la source