Bonjour,
En résumé, j'ai développé du système, de l'hexa à l'UML en passant par le Basic, C/C++/C#, Pascal, Java, PHP, Perl, Python, Ruby.
J'ai toujours cherché du code qui soit portable. Et un développement efficace.
J'ai essayé le Java, déçu à l'époque du JDK4, peu de documentation. Énormément de bugs. Et code très lent. (sauf sur Android bien sûr, merci Delvrik)
Je continue donc développer en Java.
À une époque, je pensais que le le Web, avec Perl puis PHP/Javascript, était la solution. J'avais presque réussi. Framework très abouti. Mais il manquait quelque chose. L'exécution du code Hors Web.
De plus, scripter, c'est faire du code à usage unique. Cela va à l'encontre de ce que je voulais. Du code réutilisable à volonté.
Effectivement, avec le Web, le code est utilisé une fois, puis réexécuté.
Bon, certes, aujourd'hui, les systèmes ont un peu évolué.
Mais, j'ai un petit rêve d'enfant, avoir du code qui peut se modifier de lui même. Un truc de fou quoi. Difficile là. Et puis, le souci, c'est qu'il faut être connecté pour que ça fonctionne.
La fameuse page erreur 404 m'a marqué l'esprit.
Et puis, en plus d'être portable, je veux que ce soit rapide. Pas attendre.
Donc après ce passage au Web, je suis revenue à la programmation disons plus concrète.
Et je me suis mis au FreePascal en 2010. Je trouvais que le code était rapide, fiable.
Et effectivement, je me suis mis à développer, de vraies applications. Un plaisir. Et cela a commencé par de petites applications personnelles. Dessin vectoriel, agenda...
Puis professionnel ; j'ai remplacé une application développée en Java par une développée en Pascal. Après quelques difficultés surmontées.
J'ai obtenu des performances élevées et efficacité. Non, les utilisateurs ne comprenaient pas comment on pouvait gagner autant performance.
<< Je pensais que cela venait du mobile >>. Précision, mobile 2004. Et encore pire avec les nouvellement achetés.
J'ai très peu de soucis de ce côté-là. J'ai développé sur Windows 32/64bit puis en mode Cross Platform sur WinCe/Arm. Maintenant, je prépare la version pour mobile Android. En même temps, une nouvelle version encore plus performante.
Je développe des applications d'échange entre bases de données :
Oracle (Win2003) > Microsoft SQL(WIN2008)
Microsoft SQL(WIN2008) > MySQL
Je développe des applications portables et lourdes pour support :
Sur processeur proche famille x86 (32/64Bit);
- Windows XP/7/8/8.1
- Linux Debian/Ubuntu
- Android armel / atom
- WinCe arm
Puis dernièrement m'ont grandement simplifié la vie : Code Typhon / Laz4Android (LazToApk).
Et toujours avec quasiment avec le même code. Je développe selon une méthode portable.
Prochainement, je vais voir du côté de chez Mac. Voir si mon code tiens la route chez eux aussi.
Donc effectivement, il y a eut des moments difficiles et des soirées de solitude pour comprendre les problèmes rencontrés.
Dernièrement, un stagiaire programmait en JVM. Je me suis vue trouver des erreurs de développement multiplateforme dans son code. Et sur AVD, tout fonctionnait bien mais sur l'appareil ça débloquait.
Tout ça en regardant le code.
C'est ça le Javatar
J'aurais du mal à revenir en arrière. Mais je comprends les réticences a passer à Lazarus. C'est vrai, Java c'est le côté obscur. Plus rapide à produire, mais pas plus efficace au travail.
Travailler, en solo ou en équipe, trouver les problèmes par moi-même. Et ne pas attendre que l'on me donne les solutions de suite. J'ai toujours connu ça quels que soient les langages. Il y a des communautés plus rapides que d'autres.
De toutes manière, pour la documentation, en fait, tout est fourni dans le code, vu qu'il est accessible. Et puis, c'est assez proche du Delphi.
La question est plutôt quoi utiliser pour faire quoi.
Exemple : différence entre lNet et Indy.
Bien, Indy passe pas en cross WinCe, lNet lui oui.
Ou encore, quoi utiliser pour le SQLite. Moi, perso, j'utilise une bibliothèque que j'ai développée en 2005 pour Delphi 7.
En se basant sur la DLL qui, elle, est très bien documentée. (Et passe en WinCe / Android).
Pour des connexions Base comme MySQL/Microsoft SQL/Oracle... J'utilise ZEOSDBO. Mais sur Android, j'utilise un Middleware Web. (échange via page Web)
Pour certains, matériel ou calcul, j'utilise de l'ASM. (exemple mask XOR)
Il faut avoir une démarche en programmation adaptative. C'est-à-dire pouvant passer d'une plateforme à une autre facilement. En appelant les bonnes implémentations.
Effectivement, toutes les personnes qui font du multiplateforme, par exemple migration ERP ou changement à l'international... rencontrent ce type de problème de la migration d'une base à une autre, même dans le même langage.
Une date enregistrée en Européen doit être convertie en USA, les décimales qui se la jouent virgule point flottante.
C'est d'autant plus vrai qu'il suffit que l'installeur soit différent et ne suive pas les mêmes procédures. Ou pour des raisons de coût, performance, ou critères de choix. On se retrouve avec des configurations différentes.
Avec des performances élevées, j'obtiens des résultats intéressante. Effectivement, certains me diront qu'avec Java, j'aurais pu faire la même chose. Après comparaisons, sauf pour Android (bien sûr), j'obtiens des performance trop mauvaises.
Donc très bon rapport Coût/Portabilité.
Comme c'est du Pascal, je trouve beaucoup de sources et des solutions à mes problèmes, en cherchant auprès de Delphi.
Et pour les documentations, on retrouve énormément de similitudes avec Delphi. De plus, les meilleurs doc sont en Anglais. Dommage pour les non bilingues.
Enfin, avec ce qu'apporte CodeTyphon, on a enfin un outil qui permet d'importer ses bibliothèques préférées sans se poser la question : est-ce qu'il vont fonctionner.
Je l’utilise de manière professionnelle. Et j'obtiens de très bon résultats.
3 |
0 |