2010-06-14 6 views
3

Je vais bientôt démarrer un projet où je dois programmer un pilote Modbus. Mon approche initiale était de vouloir le faire en Java, cependant mon patron a eu des contacts avec une entreprise qui a de l'expérience avec Modbus, et ils ont dit que C est le meilleur langage pour approcher Modbus. Donc, mon patron l'a presque demandé d'être en C. Ma connaissance du C n'est pas vraiment grande, alors il faudrait que j'apprenne suffisamment pour que le pilote Modbus fonctionne dans un ordre correct et stable.Pilote Modbus: C vs Java

Alors, ma question à vous empiler les gens avec une certaine expérience dans Modbus: quel pourrait être le choix de C vs Java? Le site modbus semble avoir des bibliothèques Java, si C était si supérieur à Java de toutes les façons, pourquoi aurait-il ces bibliothèques? Serait-il utile d'apprendre C correctement pour les avantages que cela pourrait donner?

+0

Je crois qu'il est bon d'apprendre C si vous prévoyez de l'utiliser. Comparé à Java est assez simple (une fois que vous avez la prise de pointeurs vous avez presque terminé). – INS

+1

Lorsque vous parlez de pilote, voulez-vous dire un pilote de périphérique de système d'exploitation ou simplement une API de niveau utilisateur? Si le premier, alors vous devez presque utiliser C. Sinon, peu importe. –

+0

Ce ne sera pas un pilote de système d'exploitation. C'est ce qu'on appelle le pilote à peu près parce que c'est comme ça que je l'ai toujours entendu se référer à ... – cpf

Répondre

2

J'ai seulement utilisé quelques implémentations de Modbus en C/C++ (implémentations internes), mais il y a quelques open source implementations de modbus. Je crois qu'ils peuvent être utilisés si la licence vous convient. Vous pouvez l'implémenter aussi en Java - c'est une question de choix; Dans ce cas, vous devrez justifier votre choix.

PLUS TARD:this implementation est sous licence BSD. Vous devriez pouvoir faire n'importe quoi avec lui - mais n'oubliez pas de mentionner la source.

+0

Quelle est la raison pour laquelle vous utilisez C/C++ en interne? Je connais les implémentations open source, et les licences sont certainement correctes, nous n'avons pas "peur" d'avoir cette partie du code connue de l'utilisateur final et de donner des crédits à la personne qui a fait la bibliothèque. La seule considération que je prends est le temps d'apprendre-décent-c par rapport à la stabilité, la vitesse, l'utilisation des ressources ... – cpf

+6

Développer des applications de haute sécurité vous oblige à avoir des temps déterministes et beaucoup de contrôle sur l'application (mémoire , fichiers ouverts, etc.) C'est plus facile à réaliser dans les langages de bas/moyen niveau qui nous permettent d'avoir plus de contrôle: C/C++. Le garbage collector de java est conforme à nos normes hors de cette catégorie. Je suis d'accord que C n'est pas facile à apprendre en peu de temps mais nous devons admettre qu'il a quelques avantages sur Java lorsqu'il s'agit d'un contrôle strict sur les ressources. – INS