Introduction

Introduction

Maj 31/03/2021 par jeanluc - Photo en-tête : Simiane-la-Rotonde, Alpes-de-Haute-Provence , France

Pourquoi SuneiDojo ?

J’ai eu un coup de cœur pour Suneido qui est à la fois un outil de développement et un langage. Ce produit devient très vite captivant, car le concepteur nous laisse accès à tout et on ne connaît donc pas la frustration d’un outil bridé.

Ce site est mon carnet de route et mes notes relatant ma découverte de Suneido : il progresse au rythme calme et aléatoire de mon temps disponible (:-) . J’espère éveiller votre curiosité et que vous deviendrez, vous aussi, accroc à Suneido !

Les plus de Suneido

  • Gratuit : c’est rare de nos jours et cela nous permet d’apprendre sans se ruiner

  • Intégré : pour ce prix là on a un produit comprenant à la fois un langage et un environnement de développement

  • Complet : la base de données n’est pas réservée à une version professionnelle

  • Multilingue : 16 langues sont disponibles à ce jour et on peut en ajouter

  • Libre : on a accès aux sources et cette transparence peut être primordiale pour certains clients comme les administrations

  • Simple : moins de code à manipuler donc un gain de temps pour la maintenance

  • Léger : les logiciels bonsaïs restant à la mode face aux poids lourds

  • Communautaire : les contributeurs sont les bienvenus

Forum du site officiel

Prenez du temps pour vérifier, sur le forum du site officiel, si le sujet qui vous intéresse n’a pas déjà été abordé : il existe pour cela un moteur de recherche spécifique. Choisissez un pseudo et posez simplement votre question en anglais. L’équipe de Suneido se fera un point d’honneur à répondre à vos questions.

Pérennité de Suneido

Le 08/07/2003 Robert demandait sur le forum (traduction) :

« Avec la Recherche et Développement continue de votre part pour ce produit libre, comment pouvez vous gagner assez d’argent pour continuer ses développements futurs et assurer la survie à long terme de ce produit excellent, et celle de ses réalisateurs ? »

La réponse de Andrew McKinlay Suneido Software (traduction) :

« Bonne question. Suneido a été initialement développé par une compagnie commerciale, Axon Development Corp. qui vend des logiciels à l’industrie du camionnage (je suis un des propriétaires d’Axon). Tout le logiciel Axon est écrit en Suneido, aussi il est très engagé envers Suneido. Axon est dans les affaires depuis 20 années. Beaucoup du développement sur Suneido est actuellement fait par les programmeurs d’Axon. D’autres améliorations viennent des contributions des utilisateurs de Suneido. Si tout va bien, plus des personnes utiliseront Suneido et plus il y aura de contributions. Une fois que les gens développent des applications commerciales en utilisant Suneido (comme Axon), il devient intéressant pour eux d’apporter des améliorations.

Une autre question est de savoir si nous allons facturer Suneido un jour. C’est peu probable. Axon n’est pas dans le marché d’outils de développement, car ce n’est pas un marché attrayant (qui veut combattre Microsoft ?). Et puisque Suneido a été publié en open source, sous GPL, il sera toujours disponible librement sous une forme ou une autre. Axon pourrait vendre une partie de ses bibliothèques, telle que la Comptabilité. Et il y a aussi la possibilité de vendre des services ou de la programmation pour Suneido. Mais toujours, Suneido lui-même, demeurera libre.

J’espère que cela vous donnera confiance si je vous fait une confidence en vous avouant que Suneido ne "disparaîtra" pas. »

Le 15/04/2013 Arie demandait sur le forum (traduction) :

«Suneido sera-t-il toujours activement maintenu et développé dans le futur?»

Réponse d’Andrew sur le forum de Suneido (traduction) :

«Ma société commerciale (Axon Development) utilise Suneido pour développer son logiciel . Nous approchons d'un million de lignes de code Suneido dans notre application, avec des centaines de clients qui ont, au total, des milliers d'utilisateurs. C'est pourquoi Suneido ne s'éteindra pas de sitôt.»

Clap de fin pour cSuneido après 20 ans de bons et loyaux services

Le 15/03/2021, Andrew McKinlay, créateur et développeur de Suneido, annonce sur son blog https://thesoftwarelife.blogspot.com/2021/03/twenty-years-of-csuneido.html, l'arrêt de la maintenance de cSuneido, la version d'origine en C++, dont la dernière version remonte au 17/01/2018.

«La semaine dernière a été une étape importante. Nous (mon entreprise) avons terminé la conversion de tous nos clients de cSuneido (l'implémentation C ++ d'origine) à gSuneido (l'implémentation la plus récente, dans Go).

Cela signifie que je n'ai plus besoin de maintenir cSuneido et que je n'ai plus à faire face à C++ (soupir de soulagement).

cSuneido a fait son temps. Nous l'avons déployé pour la première fois chez le premier client en 2000, il est donc utilisé en production en continu depuis plus de 20 ans. Il nous a bien rendu service.

Quand j'ai commencé à développer Suneido, à la fin des années 1990, C++ était relativement nouveau sur PC. J'ai commencé avec Zortech C++ de Walter Bright qui est devenu Symantec C++ (et plus tard Digital Mars C++). Plus tard, je suis passé à Microsoft C++ et MinGW.

Suneido, comme la plupart des langages dynamiques, utilise un ramasse-miettes. Mais pas C++. J'ai implémenté une série de mes propres ramasse-miettes conservateurs de plus en plus sophistiqués. Mais finalement, j'ai admis que mon temps serait mieux consacré à d'autres choses et je suis passé à l'utilisation du ramasse-miettes conservateur Boehm-Demers-Weiser. Dans des conditions normales d'utilisation, le ramasse-miettes conservateur fonctionne bien. Mais il y a des cas où la mémoire n'est pas recyclée et vous finissez par en manquer. C'était quelque peu tolérable du côté client, mais ce n'était pas si bon du côté serveur. (C'était l'un des facteurs qui ont incité le développement de jSuneido, la version Java que nous utilisons côté serveur. Un autre facteur était le manque de prise en charge de la concurrence en C++ à cette époque). Il a semblé pendant un moment que la balance penchait vers le ramasse-miettes. Mais Rust a donné une nouvelle vie à la gestion manuelle de la mémoire.

Honnêtement, je ne serais pas désolé de laisser C++ derrière moi. Il est devenu extrêmement complexe et, même si vous pouvez éviter une grande partie de cette complexité, il est difficile de ne pas en être affecté. J'ai aussi eu ma dose de langages dangereux. Même après 20 ans de correction de bogues, il y a très probablement encore des choses comme des débordements potentiels de mémoire tampon dans cSuneido. (Ironiquement, l'une des choses qui a ajouté beaucoup de complexité au C++, était les génériques de modèles. Pendant ce temps, j'attends avec impatience l'ajout prochain de génériques dans Go. Cependant, les génériques de Go seront beaucoup plus simples que la programmation complète de modèles de Turing en C++).

Bien qu'il puisse sembler fou de réimplémenter le même programme (Suneido) trois fois, cela a été un exercice intéressant. J'ai appris des choses à chaque fois et j'ai apporté des améliorations à chaque fois. Cela a demandé un travail supplémentaire de maintenir plusieurs versions, mais a également mis en évidence des bogues qui auraient été manqués si je n'avais eu qu'une seule implémentation. Le faire dans trois langages assez différents, C++, Java et Go, a également été instructif. Et avoir la contrainte de devoir exécuter parfaitement une grande base de code existante (environ un million de lignes de code Suneido) signifie que j'ai évité la plupart des dangers des effets de «second système».

Jusqu'à présent, je n'ai implémenté que le côté client de gSuneido. Nous utilisons toujours jSuneido (la version Java) pour le côté serveur. Je travaille actuellement sur l'implémentation de la base de données/serveur pour gSuneido (dans Go). Une fois que ce sera terminé, j'ai l'intention de retirer jSuneido également et de revenir à une seule implémentation à maintenir, comme au bon vieux temps :-). Et étant donné où j'en suis dans ma carrière, gSuneido sera presque certainement la dernière implémentation que je ferai. Je me demande si cela durera aussi longtemps que cSuneido?»

Andrew McKinlay

Andrew McKinlay

Qui est Andrew ?

Andrew McKinlay est chef de projet de Suneido et actionnaire d’Axon Development Corp, société qui commercialise des logiciels pour les transporteurs routiers. Le siège de cette société est située à Saskatoon dans la province de Saskatchewan au Canada.

Andrew se passionne pour les nouvelles technologies et les logiciels, et nous fait part de ses réflexions et de ses expériences sur son blog thesoftwarelife.

Il consacre son temps libre à photographier la flore et la faune, que ce soit lors d'un voyage ou sur le chemin du travail, et nous livre ses commentaires et ses magnifiques photos en alimentant un autre blog sustainableadventure.

J'ai eu la chance de le rencontrer en 2005, et le plaisir de découvrir quelqu’un d’intelligent, curieux, modeste et convivial.