A l'aise Blazor

RazorBlazor
Jean-Baptiste Raulin - 04/04/2018 à 00:00:000 commentaire

Ode au C#

C# est un langage qui a su faire ses preuves

Créé en 2002, il a longtemps été principalement utilisé dans son implémentation originale, la plateforme .Net.

Il a été par la suite de plus en plus populaire dans d'autres domaines.

Notablement :

  • Mono, qui permet au langage de tourner sur une multitude de plateformes
  • Xamarin qui permet un développement unifié pour plateformes mobiles.
  • Unity3D pour le développement de jeux vidéo

Le C# a des fonctionnalités attractives

  • Il permet une meilleure productivité dans la programmation asynchrone avec la syntaxe spécifique (mots clé async, await, Task, lambdas, ...)
  • C'est un langage performant, plus que Java par définition : https://blog.xamarin.com/android-in-c-sharp/
  • On peut, avec Linq, programmer de manière pseudo-fonctionnelle
  • Le framework sur lequel il s'appuie a bénéficié d'un développement soutenu et chaque version apporte des nouveautés

Son usage s'est accru de façon stable depuis sa création.

Mais il est un domaine où le C#, comme beaucoup d'autres langages, ne s'impose pas.

Ce domaine, c'est le web côté client.


Javascript, le voisin encombrant

Même si Javascript est un langage qui a su se moderniser, il a été conçu sur de mauvaises bases.

Voici la vision de Netscape, qui en collaboration avec Sun, implémentait Java (et ses magnifiques applets) côté serveur et développait le Javascript côté client :

"We aimed to provide a "glue language" for the Web designers and part time programmers who were building Web content from components such as images, plugins, and Java applets. We saw Java as the "component language" used by higher-priced programmers, where the glue programmers -- the Web page designers -- would assemble components and automate their interactions using JS."

"Notre but était de fournir un langage "colle" pour les web designers et les développeurs du dimanche qui concevaient du contenu web a partir de composants tel que des images, des plugins et des applets Java. Nous voyions Java comme le "langage pour les composants" utilisé par les développeurs expérimentés, où les développeurs "colle"(les designers de page web) assembleraient et automatiseraient leurs interactions en utilisant Javascript". (1)

Développé à la hâte, même son nom(2) qui entretient encore la confusion .

Si plusieurs solutions tel que le typescript ou Ruby tentent de limiter ou contourner les problèmes, nous avons un langage avec des faiblesses :

  • syntaxe inconsistante : petit florilège
  • Objet pas vraiment objet
  • Pas de typage, ce qui limite la productivité en cours de développement.

Javascript est si populaire côté client uniquement parce qu'il était le seul langage dynamique à pouvoir s'exécuter sur tous les navigateurs.

Il est tellement incontournable qu'à défaut de pouvoir le remplacer, on lui a permis de s'installer sur les serveurs.


Webassembly, ce héros

Webassembly ou wasm pour les intimes est un format d'instruction qui permet la compilation de langages de haut niveau pour des applications web serveur et client.

Il est donc désormais possible d'exécuter du C++, du Rust, du C# sur Chrome, Firefox, Edge et Safari. Et ça, c'est plutôt cool.


Goodbye JS, Hello Blazor

Microsoft a commencé à développer un Framework nommé Blazor qui permet de développer en C# côté client.

Le projet en est à son commencement mais on peut déjà tester le Framework.

Toutes les infos sont sur github.

Ci dessous, voici à quoi ressemble un composant Blazor :

<div class="alert alert-survey" role="alert">

<span class="glyphicon glyphicon-ok-circle" aria-hidden="true"></span>

<strong>@Title</strong>


Please take our

<a target="_blank" class="alert-link" href="https://go.microsoft.com/fwlink/?linkid=870381">

brief survey

</a>

and tell us what you think.

</div>

 

@functions

{

// This is to demonstrate how a parent component can supply parameters

public string Title { get; set; }

}

C'est le moment de tester ce Framework pour l'instant experimental et assez simple mais qui, si Microsoft et la communauté vont dans le bon sens, pourra être une alternative viable aux frameworks Js les plus populaires.

Sources :

(1) https://www.computerworld.com.au/article/255293/a-z_programming_languages_javascript/

(2) https://www.infoworld.com/article/2653798/application-development/javascript-creator-ponders-past--future.html

 

Commentaires :

Aucun commentaires pour le moment


Laissez un commentaire :

Réalisé par
Expaceo