[gull] Php/MsSQL obsoletes?

Félix Hauri felix at f-hauri.ch
Wed Sep 28 13:50:13 CEST 2005


On Wed, Sep 28, 2005 at 10:34:16AM +0200, Antoine Induni wrote:
> > 
> > > Et que pensez-vous du fait que ces langages sont faiblement
> > > typés.
> > Qu'entend-tu par ``faiblement typés'' ?
> > 
> Effectivement, c'est une définition très vaste et contradictoire.
> Je pensais à ça...
> tableau = [1, 2, 3, "a", "b", "c"]
Alors il y a deux écoles:
 les programmeurs qui utilisent les exceptions et les erreurs 
 concretement, mais quand ils font tu perl ou du python alors
 font des prototypes et dans ce cas ils préfèreront gérer
 les erreurs eux-même.
 Forcer un type est une chose facile et souple. Par exemple la regexp 
 suivante autorise un nombre entier ou un nombre à virgule flotante, 
 celle-ci pouvant être exprimée par une virgule ou un point: 
    /^(\d+|\d*[.,]\d+)$/
et il y a les programmeurs qui n'utilisent pas les exceptions ou les 
 erreurs, d'ailleur ces considération les em... et ils sont bien 
 content de pouvoir assigner n'importe-quoi à une variable PHP...

> Moi ça me surprend un peu. Typiquement si je veux faire une collection
> d'objets métiers, peut-on forcer le type d'objets que l'on accepte?
Il existe des méchanismes (de base ou presque c.f. man perlmodlib) pour 
gérer ce type de limitations, générer des erreurs etc. dans chacun des 
languages cités.
(je présume un peu pour python, mais le contraire m'étonnerais fort;)

Même on peut faire des truc rigolos:
$ perl -e 'use Scalar::Util "dualvar";
           my $var=dualvar 100, "pommes";
           printf "%s, %d\n",$var,$var;
           printf "%d %s.\n",$var,$var;
           print "Et pour finir le double de ".$var.
                    " fait: ".($var * 2)." ".$var."\n";
          '
pommes, 100
100 pommes.
Et pour finir le double de pommes fait: 200 pommes

Voilà, ce n'est pas très lisible, mais cela fonctionne:-/
(Je n'ai pas trouvé d'application concrète de ce genre de propriété
 mis à part de démontrer la souplesse de perl;)

En plus, si ton script est une interface vers un serveur SQL,
c'est au niveau du SQL que te devra chercher à respecter
les types...

Maintenant, pour ``une collection d'objets métiers'', je te recommande
plutôt ``C'', c't'un vieux truc mais on n'a encore pas trouvé mieux;)

-- 
 Félix Hauri  -  <felix at f-hauri.ch>  -  http://www.f-hauri.ch



More information about the gull mailing list