Qu'est ce que Quarkus

quarkus.jpg

Qu'est ce que Quarkus ?

Les avantages de Quarkus ?

Sa rapidité, sa faible empreinte mémoire, sa simplicité de configuration, et sa grande communauté.

Les inconvénients de Quarkus ?

Peut être complexe pour les petits projets, nécessite une bonne compréhension des concepts de Quarkus pour tirer parti de toutes ses fonctionnalités.

Les caractéristiques de Quarkus

Commun

  • Utilité (fonction) : Quarkus est utilisé pour le développement de microservices et d'applications natives cloud avec une empreinte mémoire réduite et un temps de démarrage rapide.

  • Langue de programmation : Java, Kotlin, Scala.

  • Système d‘exploitation : Multiplateforme (fonctionne sur Windows, macOS, Linux).

  • Existe depuis : Quarkus a été initialement publié en mars 2019.

  • Licence : Apache License 2.0.

  • Développeur : Red Hat et la communauté open source.

  • Communauté : Grande communauté active avec de nombreux contributeurs, forums, conférences (Quarkus World Tour), groupes d'utilisateurs, et ressources en ligne. Mais moins grande que Spring Boot

  • Performance générale : Très bonne, avec une empreinte mémoire réduite et un temps de démarrage rapide, spécialement optimisé pour les environnements de conteneurs.

  • Maintenabilité : Élevée, grâce à une structure modulaire, une configuration claire, et une documentation exhaustive.

  • Facilité d'apprentissage : Relativement facile pour ceux qui connaissent déjà Java ; de nombreuses ressources sont disponibles pour les débutants.

  • Configuration : Utilise Maven ou Gradle pour la gestion des dépendances et des fichiers de configuration YAML ou properties pour les paramètres de projet.

  • Documentation : Documentation exhaustive et officielle disponible sur le site quarkus.io, ainsi que de nombreux livres et tutoriels en ligne.

  • Alternative : Alternatives incluent Spring Boot, Micronaut, Helidon, et Vert.x.

  • On l'aime pour : Sa rapidité, sa faible empreinte mémoire, sa simplicité de configuration, et sa grande communauté.

  • On le déteste pour : Peut être complexe pour les petits projets, nécessite une bonne compréhension des concepts de Quarkus pour tirer parti de toutes ses fonctionnalités.

  • Fréquence de mise à jour : Mises à jour régulières avec des versions mineures tous les quelques mois et des versions majeures tous les ans environ.

  • LTS : Oui, certaines versions ont un support à long terme (LTS).

  • Maturité : Relativement nouveau mais rapidement adopté et soutenu par Red Hat et une communauté croissante.

Langage

  • Moto et philosophie : "Supersonic Subatomic Java" – Fournir un framework pour le développement de microservices Java natifs pour le cloud avec une performance exceptionnelle.

  • Paradigme de programmation : Orienté objet, basé sur Java, suit les principes de l'injection de dépendances et le modèle réactif.

  • Maintenabilité des développements : Élevée, grâce à une structure de projet claire, une gestion des dépendances efficace, et une documentation exhaustive.

  • Sécurité : Forte, avec des fonctionnalités de sécurité intégrées et une compatibilité avec des extensions de sécurité comme Quarkus Security.

  • Performance des applications : Très bonne, avec un temps de démarrage rapide et une faible empreinte mémoire, spécialement optimisée pour les environnements de conteneurs.

  • Deggugabilité : Excellente, avec des outils de débogage intégrés et des extensions pour les IDE.

  • Ecosystème : Vaste, avec de nombreuses extensions et une intégration facile avec d'autres bibliothèques et services.

  • Prise en charge des génériques : Oui, via Java, qui est utilisé comme langage principal.

  • Exceptions vérifiées : Oui, via Java, qui supporte les exceptions vérifiées et non vérifiées.

  • Polymorphisme : Oui, via Java, à travers l'héritage, les interfaces et les méthodes abstraites.

  • Conçu pour : Développement de microservices natifs pour le cloud avec une empreinte mémoire réduite et un temps de démarrage rapide.

  • Type de sécurité : Sécurité de la mémoire gérée par la JVM et des fonctionnalités intégrées pour la protection des applications.

  • Interropérabilité : Très bonne, avec des possibilités d'intégration avec diverses bases de données, services web, et autres technologies via des bibliothèques et des API.

  • Arrays : Prise en charge via Java.

  • Prise en charge de la compilation conditionnelle. : Oui, via Java.

  • Prise en charge de l'instruction Goto. : Non, Java (et donc Quarkus) n'inclut pas l'instruction goto.

  • Structure et syndicats : Prise en charge des classes et des interfaces, mais pas des unions, via Java.

  • Fait pour : Développement rapide et performant de microservices natifs pour le cloud en Java.

  • Installation : Ajout des dépendances Quarkus via Maven ou Gradle dans un projet Java.

  • Support multi-plateforme : Oui, via la JVM (Java Virtual Machine).

  • IDE : IntelliJ IDEA, Eclipse, Visual Studio Code.

  • Environnement d'exécution : JVM (Java Virtual Machine) et GraalVM pour les applications natives.

  • Dépendance à la plate-forme : Indépendant grâce à la JVM et GraalVM.

  • Pointers : Non, Java n'a pas de pointeurs explicites.

  • Point flottant : Oui, via Java, prise en charge des types float et double.

  • Indice TIOBE : Non applicable directement, mais Java (utilisé avec Quarkus) est généralement dans le top 3 à 5.

  • Mode d'Exécution du Langage : Non applicable, mais utilise Java qui est semi-compilé. Le code source est compilé en bytecode, puis exécuté par la JVM.

  • Typage : Non applicable, mais utilise Java qui a un typage statique et fort. Les types sont déclarés dans le code et vérifiés à la compilation.

  • Entreprises célèbres utilisant : Red Hat, Vodafone, Lufthansa, T-Mobile.

Framework

  • Structure du Framework : Quarkus propose et insite les développeurs à utiliser une achitecture précise.