FAQ 9 – Quels langages utilisez vous pour développer des logiciels ?

Conception de logiciels embarqués ou Windows et Android.

Pour réaliser la conception de logiciels embarqués, nous utilisons le langage C et l’assembleur lorsque les performances l’exigent.

Pour réaliser des logiciels sur PC (Windows) nous utilisons le langage C++ avec l’aide d’un compilateur Borland Builder C++ (versions 2009, XE2 ou Berlin 10.2). Nos logiciels sont bâtis à l’aide de la ‘Visual Components Library de Borland’ (VCL)

Et enfin, pour réaliser la conception de logiciels pour Smartphones et tablettes Android nous utilisons également le langage C++ à l’aide de la librairie ‘FireMonkey’ (FMX) de Borland  (Borland Builder C++ Berlin 10.2).

Quid de Visual C++ (et les fameuses MFC), C#, ADA, Java, PASCAL (DELPHI), Visual Basic, Phyton, Cobol, Fortran, Smalltalk, etc … ?

Nous n’avons rien contre ces langages, mais notre choix s’est porté sur le C puis le C++ depuis plus de 20 ans. Notre structure atypique (voir « Qui sommes nous? ») ne nous permet pas de maintenir une expérience significative dans tous les domaines. Nous préférons donc continuer de cultiver nos compétences dans les domaines que nous avons choisis.

Notre choix d’utiliser la VCL de Borland pour la conception de logiciels PC plutôt que les MFC (Microsoft Foundation Class) est souvent discuté par nos clients. Nous comprenons parfaitement que cela puisse gêner vos équipes de développement si vous travaillez habituellement avec les outils de Microsoft. C’est pour cela que nous prenons grand soin d’isoler les API de nos logiciels dans des DLL structurées de façon standard (extern « C » __declspec(dllexport)).

Nos DLL sont livrées avec une documentation complète de sorte que jusqu’aujourd’hui aucun de nos clients travaillant avec les MFC n’a eu de difficulté à intégrer nos logiciels dans leurs applications.

Que faites vous pour vos clients qui ne travaillent pas en C++ ?

Lorsque nos clients ont besoin d’interfacer nos logiciels avec d’autre langages de programmation, nous leur apportons bien entendu toute notre assistance. Cependant notre expérience avec les autres langages n’est pas aussi complète qu’en C++. Aussi, lorsque le cas se présente nous préférons encapsuler les fonctions de nos logiciels dans une DLL accompagnée d’un petit programme de démo en C++. Nous laissons ensuite le soin à nos clients d’intégrer les fonctions dans l’application finale.

Par le passé, pour aider des clients peu habitués à utiliser des DLL, il nous est arrivé de construire des programmes de démonstration de mise en œuvre de nos DLL dans des langages aussi variés que C#, Delphi ou Visual Basic. Cependant nous ne souhaitons pas généraliser cette forme de support car elle ne nous permet pas de rester parfaitement efficace.

Développez vous des logiciels pour LINUX ou UNIX ?

Conception de logiciels embarqués mettant en oeuvre des interfaces USB
Nous concevons des logiciels embarqués mettant en oeuvre des interfaces USB

Notre expérience du développement d’applications pour les systèmes UNIX et LINUX est très limitée. Ceci est dû principalement au fait que nos applications habituelles nécessitent une interface matérielle en liaison avec l’ordinateur et que dans ce domaine l’USB est roi ! Or, dans ce domaine notre expérience est exclusivement basée sur Windows et nous n’avons jamais trouvé le temps de développer des applications USB sous LINUX.

Par le passé il nous est arrivé de développer quelques applications (en mode console uniquement) mettant en œuvre un port RS232 et un socket TCP/IP sous UNIX. Mais notre expérience dans ce domaine est faible et relativement ancienne. Actuellement, au vu de notre charge habituelle de travail nous ne pensons pas compléter notre expérience sous UNIX ou LINUX à court et moyen terme.

Développez vous des logiciels pour ANDROID ou IOS ?

A l’heure actuelle nous n’avons réalisés quelques développements relativement simples pour nos clients, pour des cibles fonctionnant sous Android, en mettant à profit la mise à jour de nos outils de développement (Borland Builder C++ Berlin 10.2). Les cibles IOS sont supportées également par notre environnement de développement, mais pour le moment, nous n’avons pas réalisé les investissements matériels requis. Aussi notre expérience actuelle reste centrée uniquement sur les applications Android. Bien sûr, si votre projet nécessite l’utilisation d’une plateforme IOS nous pouvons envisager d’accélérer notre apprentissage de cet environnement pour vous accompagner, sous réserve que la complexité de votre projet reste modérée.