Quel langage pour une TRES grosse appli n-tier?

J’aimerais bien avoir quelques avis éclairés.
Pour vous, pour développer une TRES grosse application en n-tier, par exemple aussi complexe qu’un Office ou qu’un SAP (j’ai bien dit une grosse appli…), quels sont les environnements de programmation réellement productifs en n-tier ?
Les structures et les EDI Java conduisent à des monstres difficiles à développer comme à maintenir, avec des milliers de composants, de répertoires, et une complexité infernale. On est dans un rapport de productivité de 1 à 10 avec les outils RAD client/serveur… Est-ce que .Net est également aussi complexe et improductif (en n-tier) ? Quelqu’un a t-il un exemple de vrai grand progiciel en Java ? Même OpenOffice est essentiellement en C++ !
Php, Ajax et consors sont des pis-aller, difficile à utiliser pour développer une appli vraiment énorme… quand je dis énorme, pour vous donner une idée pour moi Google Maps ou autres sont des petites applis…
Merci de vos avis et débats…

Je ne vois pas le rapport entre l’EDI et le type d’appli à dev, tout est une question de logique dans son organisation, j’ai récup une partie du code source de windows (j’espere que tu vois ça comme une grosse appli) et il n’y a rien de particulier, si ce n’est des scripts ça et la à la racine de certains dossiers mais surtout une hiérarchisation des dossiers, sous dossiers avec un nommage fort et logique.
A partir de la, n’importe quelle EDI avec un minimum de fonctionnalité comme Visual C++ 2005 permet de retrouver ses petits sans le moindre problème.
'Fin, suffit de voire OpenOffice ou FireFox, tout est claire malgré la multitude de fichiers.

Java ou .NET c’est pareil.

Ca serais pas plutot un outil de gestion des configurations logicielle qui te manque ? Voir la F.A.Q SCM : http://conception.developpez.com/faq/scm/

Ou alors un outil de modélisation UML ?

Non non non.

Je vais préciser ma pensée.

Nous avons développé des applis professionnelles comportant plusieurs centaines de fenetres, avec des milliers d’accès base de données, et des modèles de données comportant des centaines de tables.

Avec des L4G comme Powerbuilder, Gupta, etc. la productivité est énorme : vous dessinez la fenetre, vous développez les actions liées aux objets, vous crééz des bibliothèques d’objets métiers, vous liez vos objets aux tables et colonnes de la base… ces outils comprennent des outils de gestion de partage de code, de versionning, etc. Vous pouvez développer une fenetre transactionnelle complexe en une demi journée. On retrouve aussi ce type de productivité dans des outils bas de gamme comme WinDev par exemple.

Avec JAVA, le simple fait de démarrer un nouveau projet sous Eclipse ou n’importe quel autre EDI commence par créer de gigantesques arborescences. Il faut se coltiner des installations massives de bibliothèques, frameworks, etc.
Le développement de quelques fenetres pas très complexes prend des jours.

Ceci est constaté aussi bien chez nos développeurs Java internes, que chez des prestataires spécialisés comme Sqli, Objet Direct ou autres…

Evidemment cette problématique ne peut être comprises que par des développeurs qui ont connu la productivité du Client Serveur.

Perso je bosse avec le FrameWork .Net 2.0 avec un bon visual Studio 2k5 archi et un SourceSafe 2005 derriere, et tout tourne nickel. Les projets webs fonctionne très bien en intercommunication avec les projects winforms, les webservices ou autre… la ou les datalayers sont compatibles entre elles, bref c’est le pied. Après le langage tu fais ce que tu veux, perso c’est C#, mais VB ou C++ fonctionnent très bien si tu as une préférence. et l’avantage c’est que chaque projet voir meme objet de ta solution globale peut etre coder dans n’importe quel langage supporter par le MSIL :neutre:
Pour finir je dirais que dès qu’un dev touche par exemple a un project de ta solution et qu’il compile c’est mis a jour en transparence dans ta solution. Donc plus de prob de version, de code qui marche dans une equipe et pas dans l’autre etc…

Donc en dehors du trollage qui ne va pas tarder a arriver dès qu’on prononce le mot microsoft, tous nos gros projets ici sont developpé en .NET car le monde Java/J2EE n’offre pas tous ces avantages ou alors s’il l’offre c’est au prix d’un bordel pas possible du fait des 350 framework a inclure ce qui il me semble ne t’interessait pas.

Voilà, si t’as d’autres questions n’hesite pas, c’est mon metier sauf que d’habitude je suis facturé 1200chf de l’heure :smiley:

Tu payes en plus pour bosser ? :MDR

je te rassure c’est pas moi qui touche cette somme :smiley:

rbb, je te suis pas du tout.

Il n’y pas de raisons de mélanger les problématiques langages des problématiques RAD.

Par exemple , la productivité RAD que tu connais existe bel et bien en java mais tu n’a sans doute pas les bons outils.

Eclipse est excellent mais il n’a pas de bon générateur d’interfaces en version de base, c’est ca qui te bloque

Soit tu installe un plugin pour Eclipse, soit tu passe à netbeans par exemple qui à un générateur d’interfaces.

Ca ne sert à rien d’accuser Java, tu n’à pas les bons outils en main c’est tout.

Les outils RAD pour Java ca existe aussi

Bonjour,
bon déjà pour moi, un architecture n-tier c’état Java ou dot net.
et je crois, sans vouloir t’offenser, que tu confond la productivité avec la taille d’un produit. Pour avoir travaillé avec des RAD (Domino, de type VB) ce sont des outils pratiques et rapide mais justement difficilement utilisable sur de gros projets.

Sur des gros projets, on est obligé de passer par une phase d"architecture logicielle, qui implique de bien ordonner son projet, d’ou l’arborescence complexe que tu décris.
Et je ne suis pas d’accord sur le fait que les développement sont trop long: une page JSP avec sa couche métier quand on utilise un bon framework, des bon CSS et des javascript bien fait, ça prend quelques jours et c’est fiable, avec un RAD, on obtient rapidement un écran, mais l’absence de framework derrière implique de nombreux tests de non régression sur le reste, ce qui devient finalement plus long sur de gros projets.

OpenOffice et C++: c’est vrai que le C d’une manière générale et le C++ est le langages des application bureautique de ce type: puissante et rapide. Mais on n’est plus dans une architecture n-tier, et ça n’a rien à voir non plus avec du SAP.

Et pour les société que tu cites: ObjetDirect et Sqli, j’ai travaillé avec les 2, et ils utilisent justement du Java!
ObjetDirect est très présent chez le client chez qui j’ai été, et ils travaillent sur des architectures n-tier Corba-Java Swing, ils travaillent aussi sur du n-tier avec struts je crois.
Quand à sqli, ils ont développé entre autre un outil de gestion de contenu Web en Java-JSP, qui a été open-source pendant un temps.

voilà pour quelques éclaircissements :wink:

Deltree, c’est bien gentil de m’expliquer que je ne comprends pas tout, mais je me permets de risquer une hypothèse : tu as quel age ? quelle expérience de programmation ? je parierai sur quatre cinq ans d’expérience et surtout essentiellement sur les nouvelles techno de programmation : java, n-tier, web, commerce électronique, …?
Tout ce que tu dis est vrai (et je sais déjà tout ça…) mais tu n’as sans doute jamais développé une application de 300 fenêtres principales, 600 tables, utilisée par 700 sites dans 15 pays, pour un total de 600.000 lignes de code (hors code importé ou bibliothèques bien sur).
Et surtout, tu ne connais pas les outils comme Gupta Team Developper ou Powerbuilder…
La différence de productivité entre un projet Gupta et un projet Eclipse, avec des équipes performantes dans les deux cas, est de l’ordre de 1 à 10…
Je cherche juste à trouver le moyen de passer du monde CS au monde n-tier avec une moindre déperdition de productivité.

Tiens, juste comme ça au passage : lis le premier chapitre… je ne suis pas extraterrestre… on est au moins deux à dire la même chose :slight_smile:

http://www.ib-com.ch/pages/archives/01.12/…tulogiciel.html

Bon déjà, heureusement que je te disais de ne pas t’offenser :sarcastic:
je ne faisait que donner mon avis, mon âge est sur ma fiche, et je ne suis pas censé donner mon CV pour donner cet avis, mais c’est 8 ans d’XP sur des produits très divers, je ne suis donc pas spécialisé, mais plutôt généraliste, en technologie essentiellement Web.
Quand aux 600 écrans, j’estime qu’il faut au minimum 2 jours pour faire un écran soigné et fonctionnel, donc 1200 jours d’expériences sur des écrans uniquements, ça fait 6 ans à plein temps uniquement sur des taches de design et sur le même produit, je suis pas prêt d’y arriver :wink:

Quand à la quantité de code, j’ai justement travaillé sur un projet avec 3000 classes de 200 lignes chaque, dont une bonne partie non commentée et in-maintenable car issue d’un logiciel générateur de code nommé “Together”, ce qui contribuerait à argumenter contre les générateurs de code en tout genre (ce qui semble être le cas du produit dont tu me donne l’exemple).

Pour redevenir sérieux :wink: je trouve que le Java a pas mal d’arguments en sa faveur, c’est l’objet de mon avis, Eclipse est déjà un produit ambitieux et qui fonctionne très bien en Java, mais il y a aussi malheureusement des outils qui fonctionne très mal en Java.

Quand à la dimension du projet, note qu’on n’avais pas ces informations dans le 1er post :neutre: je ne pouvais pas deviner que tu travaillait sur 600 Tables /écrans

Pour faire une outil Commercial largement diffusé le C est encore prédominant, mais il implique (encore à mon avis) encore plus d’investissement en développement.

C’est une question de choix stratégique de projet, mais pour ma part au niveau technologique, je choisirai entre C++ ou Java ou dot net, mais j’exluerait d’office les RAD, sauf pour des éléments annexes de petite taille.

Bon on est sur un forum bon esprit hein :whistle:
:wink:

Deltree,

tu confirmes ce que je dis… expérience essentiellement web. Il y a une grande différence entre les applis web (qui sont fort rarement des grosses applis de gestion gavées d’écrans dynamiques, avec des règles métiers, des systèmes experts embarqués, etc) et ce qu’on fait chez les éditeurs de logiciels métiers (par exemple dans le médical comme moi).
A titre d’exemple, les applis comme celles des sites Kelkoo (je connais les développeurs), ou même les gros sites comme Fnac, ou encore les dossiers médicaux web du marché, sont des projets dix à vingt fois plus petits que l’un de nos progiciels.
Certains de nos produits ont 50 ans hommes de développement en gupta.

Si tu relis mes posts j’avais indiqué la volumétrie (dans le second).

Pour finir tu parles de C : clairement, la différence de productivité entre un projet C et Java pour un gros progiciel existe (en faveur de C), en raison de la productivité d’un Visual C++ associé à un couche d’accès SGBD par rapport au bordel multicouches de Java.

Mais je ne parlais pas de C ! En Gupta nous avons une productivité qui est 4 à 5 fois meilleure qu’en C, ou C++, ou VB…etc.

Et pourtant nous N’UTILISONS PAS de générateur de code type Powerbuilder et ses fenêtres-tables.

Je reproduis le début de l’article extrêmemet parlant :

"PRODUCTIF. Compuware publie l’atelier de développement de 4e génération OptimalJ qui génère directement, à partir de modèles UML, des applications Java pour la plate-forme J2EE.

Java, c’est très chouette si on a la bosse de la programmation, mais très complexe aussi, et surtout pas très performant pour réaliser des applications un tant soit peu volumineuses. Pas étonnant, puisqu’il s’agit, malgré ses qualités évidentes, d’un langage (soyons charitable!) de type 3e génération. Lors de l’avènement du relationnel dans les années 1980, tout le monde rêvait, notamment grâce aux langages de 4e génération, d’un développement des applications, sinon par les utilisateurs eux-mêmes, du moins par des spécialistes du domaine plutôt que par des techniciens. Les outils d’Oracle, Progress, Informix, Uniface, avaient à l’époque certainement décuplé l’efficacité du programmeur par rapport à ce qui était d’usage avec Cobol. Plus tard, ceux de Microsoft (Visual Basic), Gupta, Powersoft avaient prolongé cette efficacité dans le cadre des plates-formes graphiques et du client-serveur… Compuware, géant du logiciel et des services
… Forte de 13’000 employés et générant un chiffre d’affaires de 2 milliards de dollars, Compuware, basée à Détroit et présente avec 140 filiales dans 47 pays, fait partie des cinq plus grands éditeurs de logiciels. Elle développe, commercialise et assure le support de 8 gammes regroupant 130 produits qui servent au développement, à l’intégration, au test, à la gestion et à la mesure des performances des applications informatiques d’une entreprise. En Suisse, Compuware occupe 150 personnes réparties entre Baden et Genève (produits) et Zurich (services). Parmi ses clients figurent notamment le Credit Suisse, Novartis, Danzas, Serono et l’Etat de Neuchâtel.

Retour à la
programmation sérieuse
Internet, le paradigme des clients «maigres» et les architectures à trois niveaux ou davantage devaient pourtant tout remettre en question et surtout tout compliquer. La séparation des logiciels en composantes présentation, application et données, les «applets» téléchargées dans les pages web et l’utilisation de serveurs d’applications fournissaient enfin aux «vrais» programmeurs, équipés de la nouvelle arme Java, l’occasion de leur revanche. "

CQFD… la programmation redevenue compliquée et affaire de specialistes.

rbb > 'scuse moi d’intervenir dans cette discussion, mais j’ai l’impression que tu fais à la fois les questions et les réponses (ce qui as le don de m’agacer un brin) :neutre: …

'fin je veux dire, on te propose des solutions, et à chaque fois tu réponds “oui mais non, le logiciel dont je parlais avant est bien mieux, toi tu me parles d’un truc de débutant”, etc :neutre: …

donc bah (désolé d’être direct), mais puisque tu as les logiciels qui te conviennent, pourquoi en changer ? :neutre: …

(et pour couper court, je ne pourrais pas beaucoup d’aider car, comme deltree, je suis plutôt orienté developpement d’application web, ce qui m’as permis entre autre de travailler sur des applications de gestion financière “avec xxx centaines d’écrans différents et xxx centaines de milliers de lignes de codes PHP et SQL” … et pour corser le tout, je n’utilise que des technos libres :D)

Heu… c’est un peu surréaliste.

Je ne fais pas les questions et les réponses : le problème dans ce fil de discussion, c’est que comme c’est souvent le cas, personne ne répond à la question posée mais tout le monde s’évertue (parce qu’ils n’ont pas la réponse) à critiquer la question…

Je ne demandais pas “est-ce que Java est productif”, je posais comme une donnée de base que non. On peut critiquer le postulat, sauf que personne de sérieux n’oserait comparer la productivité dun L4G client serveur à la mode des années 90, avec les environnements n-tiers d’aujourd’hui.

Quand à conclure “pourquoi changer”, soyons là encore sérieux : les L4G CS Windows sont très productifs, mais ils ne permettent pas de faire du Web, ni des applis distribuées nationalement sauf à utiliser Citrix, ni des applis multiclient windows / unix / pda etc, et accessoirement CE N’EST PLUS A LA MODE… et hélas c’est le seul vrai problème dans mon cas puisque les clients “veulent du web” meme quand ils n’en ont pas besoin.

D’ou la question - que ne poserais pas si la réponse était si évidente : quand on constate le merdier noir que c’est de mettre en place un grand projet sous eclipse (rien que l’install de l’environnement avec les framework et la nécessité de compiler le tout me fait hurler de rire, quelle merde), on ne peut que penser que forcément un jour de vrais outils productifs sortiront. Quand ? y’en a t-il déjà ?

voilà…

t’as lu mon post ? [:kramoc]

Au passage, je reprends ce post qui est symptomatique !

OpenOffice, Firefox…
ce genre d’applis est développé par des dizaines de développeurs, et je pense que la somme cumulée des années hommes se chiffrent en centaines…

un éditeur français qui sort un progiciel médical, dont la couverture fonctionnelle est dix fois supérieure à un navigateur internet (vous avez déjà géré un hopital entier ?), dispose au mieux de trois ans à quatre ou cinq développeurs soit 15 ans hommes.

Un éditeur de logiciel de gestion ne “fait pas d’informatique”. Pour être clair : une entreprise de BTP qui construit un immeuble ne veut pas avoir à concevoir la grue et ne veut pas savoir comment elle marche. Il veut monter dans la grue et faire son batiment.
Avec Eclipse, avant de commencer à développer métier, il faut faire des semaines d’informatique, choisir un framework, décider entre struts, swing, jsf, hibernate (et autres bordellos qui ne m’interessent pas).
C’est très bien pour que les SSII vendent des centaines de jours hommes.
Et d’ailleurs, c’est un peu fait pour ça…

rbb > merci pour ta réponse, je comprends mieux ta problématique et tes réponses (même si je ne vais pas pouvoir t’aider) :jap:

bah oué, dans Theme Hospital :smiley:

Encore une fois, je ne vois toujours pas le problème, j’ai cotoyé le milieu médical (cabinets de radiologie) donc je pense connaitre, au moins substantiellement, ce corps de métier.
J’ai l’impression que tu veux une solution clé en main et à l’heure actuelle, je ne pense pas qu’elle existe d’où ma réponse qui consiste à faire en sorte de la “simuler” (la solution que tu recherches) avec les outils existants.
Concernant la “couverture fonctionnelle”, as tu lu, un tant soit peu, le code source de FireFox ou OpenOffice ?
Pour moi, tout est une question d’organisation, hiérarchisation et surtout de rigueur.