Por um JavaScript mais legível

Motivação

Já imaginou se você pudesse utilizar o JavaScript assim como usa o C#, C/C++, Java, Delphi…? Talvez não necessariamente igual, mas pelo menos parecido. Algo como:

/**
 * Exemplo de definição de uma classe
*/
Programa = Class({
  /**
   * Membros simples são definidos como públicos
  */
  name: [String, null],

  getName: [String, function() {
    return this.name;
  }],

  setName: [Void, function(v) {
    this.name = v;
  }],

  /**
   * Membros públicos explícitos
  */
  public: {
    variavel_1: [String, null],

    funcao_1: [String, function(){
      return Self.variavel_1;
    }],

    run: [Void, function(){
      alert('Executando programa: ' + Self.getName());
    }]
  },

  /**
   * Membros privados explícitos
  */
  private: {
    variavel2: [String, null],

    funcao_2: [String, function(){
      return Self.variavel_2;
    }]
  },

  /**
   * Construtor
  */
  constructor: function() {
    Self.name = "Programa Principal";
    Self.variavel_1 = "Valor1";
    Self.variavel_2 = "Valor2";
  },

  /**
   * Destrutor
  */
  destructor: function() {
    alert('Destruindo: ' + Self.getName());
  }
})

WordPress = Class( [Inherit, Programa],
{
  public: {
    endereco: [String, 'https://erlimar.wordpress.com'],
    name: [String, 'WordPress']
  }
})

P1 = new Programa();
P2 = new WordPress();

P1.run();
P2.run();

Com este exemplo você teria duas mensagens sendo exibidas na tela, a primeira: “Executando programa: Programa Principal”, e a segunda: “Executando programa: WordPress”.

E tudo isso com uso de herança e encapsulamento, isto tudo é possível com a proposta do JavaScript atual, mas e se ele fosse um pouco mais legível, assim como o proposto acima?

Conclusão

Bom esta é uma proposta que estou fazendo, pois assim utilizo em meus trabalhos, e imagino que talvez possa ser útil a alguém mais.