Developpez.com

Le Club des Développeurs et IT Pro

Microsoft publie des extensions pour combler les lacunes du JavaScript

Le 2011-11-24 13:30:50, par Hinault Romaric, Responsable .NET
Microsoft s’engage à faire progresser la norme JavaScript et a présenté lors de la réunion de l'ECMA TC39 (l’organisme chargé de la standardisation du langage) ses implémentations visant à combler quelques lacunes du JavaScript.

L’objectif de la firme est de doter la norme de quelques objets de bases et des aides pour les bibliothèques qui sont nécessaires pour le développement des applications Web riches et pour rendre le langage attrayant pour la conception des solutions complexes.

Les extensions développées par l’éditeur encore en phase expérimentale, ajoutent à JavaScript la globalisation des interfaces, des fonctions pour combler les limites des bibliothèques Math, Number et String.



Les prototypes supportent 363 localisations, 18 systèmes de numérotation, des formats de date différents et les calendriers grégoriens, musulmans, hébraïques, bouddhistes, coréens et japonais, lors d’une exécution sur les systèmes d’exploitation Windows 7.

Microsoft, qui voit en JavaScript des grandes opportunités pour la construction des applications complexes en HTML5, s’insurge contre les solutions alternatives, visant à remplacer le langage comme Dart, le langage de programmation structurée pour le Web de Google.

« Quelques exemples, comme Dart, montrent que JavaScript a des défauts fondamentaux et soutenir ces technologies nécessite une rupture nette avec JavaScript » écrit l’équipe JavaScript de Microsoft « Nous sommes en désaccord avec ces points de vue. Nous croyons qu’avec le soutien d’ECMA TC39, la norme pourra être étendu »

Les extensions sont disponibles en téléchargement sur HTML5 Labs avec des applications d’exemples. Microsoft souligne qu’elles ne doivent être utilisées qu’à des fins d’évaluation.

Télécharger les extensions

Source : Microsoft

Et vous ?

Que pensez-vous de ces extensions ?

Êtes-vous également contre des solutions comme Dart ?
  Discussion forum
5 commentaires
  • Code62
    Membre éclairé
    Etendre != corriger...

    C'est bien de vouloir rajouter des éléments pour combler les lacunes, mais javascript a pas mal de lourdeurs qui ne seront pas modifiées par ces ajouts... Les langages alternatifs qui se veulent plus orientés vers "le web de maintenant" ont la possibilité de simplement ne pas introduire les faiblesses présentes dans javascript, et d'implémenter nativement ce que microsoft propose d'ajouter au js...
  • ferber
    Membre éprouvé

    www.dartlang.org

    Dart apporte :
    cf :http://www.dartlang.org/docs/technic...iew/index.html

    Heritage + Interface
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        interface Shape {
        num perimeter();
        }
        class Rectangle implements Shape {
        final num height, width;
        Rectangle(num this.height, num this.width); // Compact constructor syntax.
        num perimeter() => 2*height + 2*width; // Short function syntax.
        }
         
        class Square extends Rectangle {
        Square(num size) : super(size, size);
        }
    Typage ( optionel )
    //sans typage
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        class Point {
        var x, y;
        Point(this.x, this.y);
        scale(factor) => new Point(x*factor, y*factor);
        distance() => Math.sqrt(x*x + y*y);
        }
         
        main() {
        var a = new Point(2,3).scale(10);
        print(a.distance());
        }
    //avec typage
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
       class Point {
        num x, y;
        Point(num this.x, num this.y);
        Point scale(num factor) => new Point(x*factor, y*factor);
        num distance() => Math.sqrt(x*x + y*y);
        }
         
        void main() {
        Point a = new Point(2,3).scale(10);
        print(a.distance());
        }
    des library de bases :
    http://www.dartlang.org/docs/api/index.html
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    Library Reference
    corelib
    Classes and interfaces
    
        AssertionError
        Clock
        Collection<E>
        Comparable
        Date
        Dispatcher<T>
        Duration
        Expect
        FallThroughError
        Function
        HashMap<K,V>
        HashSet<E>
        Hashable
        Isolate
        Iterable<E>
        Iterator<E>
        LinkedHashMap<K,V>
        List<E>
        Map<K,V>
        Match
        Math
        Object
        Pattern
        Promise<T>
        Proxy
        Queue<E>
        ReceivePort
        RegExp
        SendPort
        Set<E>
        Stopwatch
        String
        StringBuffer
        Strings
        TimeZone
        TypeError
        bool
        double
        int
        num
        BadNumberFormatException
        ClosureArgumentMismatchException
        EmptyQueueException
        Exception
        ExpectException
        IllegalAccessException
        IllegalArgumentException
        IllegalJSRegExpException
        IndexOutOfRangeException
        IntegerDivisionByZeroException
        NoMoreElementsException
        NoSuchMethodException
        NotImplementedException
        NullPointerException
        ObjectNotClosureException
        OutOfMemoryException
        StackOverflowException
        UnsupportedOperationException
        WrongArgumentCountException
    
    Top-level fields
    
        print
    dart peut être transcodé en js

    Que dire de plus ?
  • bilgetz
    Membre averti
    Que dire de plus ?
    Que l'un n’empêche pas l'autre ?
    Après tous on peut toujours étendre JavaScript, ça n' empêche pas les gens qui le veulent a utiliser DART.
    De plus comme DART peut être transcodé en JavaScript, il pourra utiliser ces nouvelles fonctionnalités.
  • Benjamin Delespierre
    Expert éminent
    C'est pas étonnant en effet de voir Microsoft critiquer le langage de son concurent Google. En revanche, je reste sceptique quand à l'amélioration possible de JavaScript, des extensions comme la surcharge des opérateurs, pourtant d'un intérêt indiscutable avec HTML 5 et le dessin 2D (voir 3D avec WebGL), ont déjà été rejetées.

    Rappelons également que le langage semble bien peu évoluer et qu'avant de vouloir étendre les fonctionnalités natives, il faudrait que tous les fabricants de navigateurs web se mettent d'accord une fois pour toute sur l'implémentation des normes et corrigent les problèmes de compatibilité inter-navigateurs (notamment en ce qui concerne le XHR - ok ça ne vient pas de l'ECMA mais bon...)
  • Traroth2
    Membre émérite
    Microsoft n'aime pas Dart ? Vachement étonnant !