Aller au menu - Aller au contenu

Bêta 3.0 du langage Squirrel disponible

Revenir à la liste des news
Participer à la discussion

Image

Informations

Contributeur(s) : Graphox
Publié : le 21/08/2010 à 05:00:00
Catégorie : Programmation
Visualisations : 9 010

Licence : Creative Commons BY SA

Bêta 3.0 du langage Squirrel disponible

Dernièrement, la version 3.0 bêta 2 de Squirrel (à ne pas confondre avec SquirrelMail, un webmail) a été annoncée. Encore peu connu des développeurs, Squirrel est un langage de programmation dit impératif et orienté objet.


Un langage impératif, c'est quoi ?

Image utilisateur

La programmation impérative, tout comme la programmation fonctionnelle, forme un paradigme de programmation très populaire. En effet, les langages C, Java, Python, PHP et bien d'autres sont impératifs. Pour expliquer la dominance de ce paradigme, il faut remonter au début de la programmation où, faute de moyens très évolués, le programmeur devait coder son programme dans un langage de bas niveau, proche du langage machine. Or, les processeurs étant pour la plupart de nature impérative, ce paradigme a donc constitué le premier type de programmation et reste actuellement très utilisé.


Principales instructions


La programmation impérative est caractérisée par des changements d'états effectués par des commandes. Un état contient les couples « emplacement mémoire/valeur » et peut-être modifié par plusieurs instructions dont voici les principales :
  • Les affectations de variables et l'assignation du résultat d'une opération mathématique, logique ou fonctionnelle ;
  • Les conditions, qui soumettent l'exécution d'une séquence d'instructions à certaines conditions ;
  • Les boucles, qui permettent de répéter l'exécution d'instructions un jusqu'à ce qu'une condition soit réalisée ;
  • Les sauts, qui s'utilisent pour déplacer le processus d'exécution à un endroit voulu dans le programme.

L'ensemble des changements d'états que l'on peut rencontrer à l'exécution d'un programme constitue un effet secondaire ou effet de bord.

Bien que la programmation impérative reste sans doute la plus populaire, il est bon de savoir que d'autres paradigmes de programmation existent.


Les caractéristiques de Squirrel

Image utilisateur

Comme dit dans l'introduction, Squirrel est un langage de programmation de haut niveau, impératif et orienté objet. Il a été conçu en 2003 par Alberto Demichelis dans l'optique de créer un langage de programmation léger, que ce soit en terme de taille, d'utilisation de la mémoire et de besoins en « temps réel », comme pour les jeux vidéo.

Inspiré par les langages Python, Javascript et principalement Lua, Squirrel possède une syntaxe proche de celle du C et de Java. Voici quelques-unes de ses caractéristiques et fonctionnalités :

  • Gestion dynamique des types ;
  • Gestion automatique de la mémoire ;
  • Héritage de classe ;
  • Récursion terminale ;
  • Fonctions d'ordre supérieur et fonctions anonymes (lambda);
  • Gestion des exceptions ;
  • Support des processus coopératifs (Coroutine) ;
  • Implémentation des générateurs (nombres aléatoires, par exemple) ;
  • Délégation implicite par le biais des dictionnaires, types fondamentaux dans Squirrel.

    Code : Java - Exemple de délégation d'un comportement spécial à un dictionnaire enfant
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    Entity <- {
    }
    
    function Entity::DoStuff()
    {
        ::print(_name);
    }
    
    local newentity = {
        _name="Je suis la nouvelle entité !";
    }
    
    newentity.setdelegate(Entity); // délégation de la fonction Entity au dictionnaire enfant newsentity 
    newentity.DoStuff(); //affiche "Je suis la nouvelle entité !"
    

  • Support des méta-méthodes, qui permettent de redéfinir certains aspects sémantiques du langage. Par exemple, la relation entre deux dictionnaires lorsque l'on utilise un opérateur logique autre que « == ».

    Code : Java - Exemple de méta-méthode qui redéfinit la relation logique entre deux dictionnaires
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    class Comparable {
             constructor(n)
             {
                      name = n;
             }
    
             function _cmp(other)
             {
                      if(len(name) < len(other.name)) return -1;
                      if(len(name) > len(other.name)) return 1;
                      return 0;
             }
             name = null;
    }
    
    local a = Comparable("Alberto"); //première instance de la classe Comparable
    local b = Comparable("Wouter"); //deuxième instance de la classe Comparable
    
    if(a > b) //on cherche à comparer les deux « objets » : c'est en fait leur attribut name qui le seront, grâce à la méthode _cmp
         print("A contient plus de caractères que B");
    
    else
         print("B contient moins ou autant de caractères que A");
    

    Dans cet exemple, la machine virtuelle de Squirrel recherchera une méthode nommée _cmp. Si elle la trouve, c'est cette méthode qui sera appelée lorsque les objets seront comparés. Dans l'exemple ci-dessus, la méta-méthode permet de comparer la taille des chaînes, implicitement.

  • et bien d'autres fonctionnalités...


À l'instar du langage Java, Squirrel possède une machine virtuelle qui interprète et exécute le bytecode produit à la pré-compilation du programme, ce qui fait de lui un langage multiplate-forme.

De plus, Squirrel est distribué sous licence librezlib/libpng.


Quelques nouveautés de Squirrel 3.0 bêta


En plus des nombreux bugs corrigés dans cette version 3.0, Squirrel se dote de quelques fonctionnalités intéressantes comme la possibilité d'ajouter ou de remplacer des méthodes à une classe après avoir créé une instance de celle-ci.

Code : Java - Exemple d'ajout de méthode après avoir instancié une classe avec Squirrel
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
class Test {
    function Increment() { a++; }

    function Print() { ::print(a);}   

    a = 2;
}

local i = Test(); //crée une instance de la classe Test
i.Increment();

//ajoute une méthode à la classe Test

Test.MultiplyBy <- function(amount) {
     a *= amount;
}

i.MultiplyBy(5);
i.Print(); //affiche 15


D'autre part, le développeur de Squirrel annonce travailler sur une implémentation native de JSON, un format de données ayant pour but de représenter des données structurées, comme le langage XML. Actuellement, cette fonctionnalité est expérimentale, mais voici un aperçu avec cette version 3.0 bêta 2 de Squirrel :

Code : Java - Exemple d'utilisation du format JSON avec Squirrel
1
2
3
4
5
6
7
8
9
local jsontest = {
    "int" : 1,
    "string" : "I'm a string",
    "array" : [1,2,3,4]
}

print(jsontest.int + "\n");
print(jsontest.string + "\n");
print(jsontest.array[2]+ "\n");



Squirrel a déjà pu faire ses preuves dans le domaine du jeu vidéo en étant utilisé par MirthKit, un ensemble d'outils permettant de créer et de distribuer des jeux multiplate-forme Open Source. De plus, il a été utilisé pour développer un jeu Final Fantasy pour la Wii et gère actuellement les événements scriptés du jeu Left 4 Dead 2. Dans un autre domaine, Squirrel est largement utilisé par Code::Blocks pour les scripts. Par ailleurs, un shell multiplate-forme a été développé en Squirrel, mais l'auteur indique que son développement a été suspendu pour une durée indéterminée.


Malgré ses quelques références, Squirrel n'est que très peu connu du grand public, malgré une documentation complète.


Liens et sources


35 Participations

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page 1  2  Suivante
Pseudo Discussion
1 visiteur sur cette news (0 membre et 1 Anonyme)
Page 1  2  Suivante
Hors ligne Picasso11 # Posté le 21/08/2010 à 06:04:28
Avatar

Ville : Paris
Pays : France métropolitaine

Puissant le petit écureuil ! Il a quand même été utilisé pour un jeu sur wii, et des scripts sur L4D2. Mais je vais pas l'apprendre pour autant ^^
<hs>Et oui, j'aime aussi la photo et le nom :D </hs>

EDIT : Une erreur que j'ai signalé, mais au lieu que je la dise on va faire un petit jeu, je vous laisse le temps restant avant qu'un newser l'édite pour la trouver. :ange:

Mon compte SteamImage utilisateur ; Ma chaine YouTubeImage utilisateur ; Mon compte TwitterImage utilisateur
19/09/09 => Le plus beau jour de ma vie ! Rencontre avec JaKhris et Christophe Balestra :D
Image utilisateur
Image utilisateur
Image utilisateur
 
Hors ligne Marg51 # Posté le 21/08/2010 à 07:55:04

Avatar

Ville : Saint pierre de boeuf
Pays : France métropolitaine

Langage qui semble interessant, bonne description :)
je vais regarder ça de plus près

Powered by Image utilisateur
 
Hors ligne Hilaia # Posté le 21/08/2010 à 09:11:34
C'est la fin du début...
Avatar
Groupe : Anciens

Ville : Profondeville
Pays : Belgique

Citation
Les affections de variables et l'assignation du résultat d'une opération mathématique, logique ou fonctionnelle ;

Ca serait pas plutôt
Citation
Les affectations de variables et l'assignation du résultat d'une opération mathématique, logique ou fonctionnelle ;


EDIT: Merci de nous faire découvrir ça :D .

Dropbox: Obtenez 250Mo supplémentaires en étant parrainé sur ce service de synchronisation de données.
Peut servir à tout, et juste génial pour gérer ses projets gratuitement.
Le fait que nous vivions dans un monde rationnel ne prouve-t-il pas l'existence d'un principe supérieur ? si oui, je pense qu'il est un niveau au-dessus de ce que nous nous imaginons.
L'Homme se croit intelligent, c'est en fait bien la preuve qu'il est naïf.
 
Hors ligne Graphox # Posté le 21/08/2010 à 09:16:45
Avatar
Groupe : Anciens

En effet, merci à toi !
 
Hors ligne qcharrex # Posté le 21/08/2010 à 09:20:17
La vie est une bougie.
Avatar

Bonjour,

Effectivement, c'est un petit langage très performant.

Image utilisateur Suisse et fière de l'être !
 
Hors ligne zarthur # Posté le 21/08/2010 à 10:03:40

Moi je trouve que les langages de programmation se multiplient un peu vite : combien y en a-t-il aujourd'hui ? Des dizaines ? Des centaines ? Certains sont quand même un peu de trop, vous ne croyez pas ?
 
Hors ligne patate_violente # Posté le 21/08/2010 à 10:14:41
Avatar

Ville : Triel sur seine
Pays : France métropolitaine
Études : Université de Cergy-Pontoise

Citation : zarthur
Moi je trouve que les langages de programmation se multiplient un peu vite : combien y en a-t-il aujourd'hui ? Des dizaines ? Des centaines ? Certains sont quand même un peu de trop, vous ne croyez pas ?

Des milliers oui ! Dont des ré&putés, moins... Tu peux même inventer le tiens ! :D
Personnelement je fais un peu comme la majorité, j'apprends les langages informatiques qui ont la plus grande pérennité histoire de ne pas sombrer trop vite dans l'oubli. Mais une fois le 5ème langage appris, un de plus ou un de moins c'est du vite fait

Un langage utilisant une machine virtuelle pour un jeu ?
 
Hors ligne qwerty # Posté le 21/08/2010 à 10:39:40
"2 virgule 21 gigowatts ?!"
Avatar
Groupe : Bannis

A quand un tuto sur le sdz ?
 
Hors ligne nivramdu94 # Posté le 21/08/2010 à 10:41:00
Linuxien et fier de l'être !
Avatar

Sympa, ca me fait un peu penser au JS, ne me demander pas pourquoi :p

Image utilisateur Android User

Image utilisateur HTML5/CSS3 Programmer
 
Hors ligne neowillow # Posté le 21/08/2010 à 10:51:39
(/◔ ◡ ◔)/
Avatar
Groupe : Anciens

Je trouve que ça ressemble beaucoup au Java effectivement. Sinon, merci pour la news.
Citation : qwerty
A quand un tuto sur le sdz ?

Quand quelqu'un trouvera le temps et la motivation pour en commencer la rédaction. ;)

#LGDF: victor vaincra !
« Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi »
Statistiques mondiales en temps réel. - FAQ C - The C LRG - FAQ Java - Python - OCaml - quoi.info




 
Hors ligne planete.game57 # Posté le 21/08/2010 à 11:34:40
Avatar

Études : IRIS

Effectivement, j'en ai à peine entendu parler.

En tout cas, la news explique vraiment bien les nouveautés et le fonctionnement du langage, merci Graphox. ;)

xHTML/CSS |||||||||| 100% | PHP/MySQL |||||||||| 100% | Langage C |||||||||| 8.5%
Python |||||||||| 100% | JavaScript |||||||||| 5.5% | Photoshop |||||||||| 0.0%
Smarty |||||||||| 100%

Image utilisateurImage utilisateur
 
Hors ligne Drumer67bts # Posté le 21/08/2010 à 11:37:06
Pearl Drum
Avatar

Citation : patate_violente
Un langage utilisant une machine virtuelle pour un jeu ?


Pourquoi pas ? Des jeux ont déjà été développés en Java.

Sinon, la news est intéressante, mais comme dit plus haut, ça fait encore un langage de plus, peut-être un langage de trop o_O ?
Hors ligne Pandore # Posté le 21/08/2010 à 11:45:27
Ange Gardien
Avatar

Citation : Drumer67bts
Sinon, la news est intéressante, mais comme dit plus haut, ça fait encore un langage de plus, peut-être un langage de trop o_O ?

C'est ce que je me suis dit aussi en voyant la news.

Après s'il est vraiment aussi léger, faut voir en application ce que ça donne comparé à d'autres langages. :)

"Plus les choses changent, plus elles restent les mêmes ..."

Mes sites web à mouuuuaaaahhh !!! :D : 1) dogue allemand de la Boite de Pandore 2) great-danes-of-the-world, le portail mondial du dogue allemand 3) mon classeur de cartes Magic the Gathering
Un jeu de cartes par navigateur gratuit intéressant : Eredan ITCG
 
Hors ligne Chem # Posté le 21/08/2010 à 11:51:55
Legendary ! :D
Avatar

Super ! Je sens que je vais me mettre à ce langage :D
On peut rajouter des méthodes à un objet après instanciation, j'avais jamais vu ça et ça m'a l'air très intéressant. Cependant, je pense que c'est une fonctionnalité qui pourrait apporter un bon tas de bugs ou une utilisation démesurée de la mémoire (style utilisation barbare des std::vector du C++ quoi).

Les fonctions lambda, c'est aussi une très bonne idée de la part du créateur de ce langage. Il va sûrement gagner des "clients" (moi en l'occurence :p )...

#LGDF: linkboss vaincra !
Image utilisateur
--------------------------------------------------------------------------------
-> Paraitre sérieux lors d'un recrutement sur le forum.
-> Avant de proposer un recrutement.
 
Hors ligne anonyme # Posté le 21/08/2010 à 11:52:08

Citation : Drumer67bts
non, la news est intéressante, mais comme dit plus haut, ça fait encore un langage de plus, peut-être un langage de trop o_O ?</position>


Je comprends pas vraiment votre « raisonnement ». Un langage de programmation, c'est un outil : tant qu'il trouve une niche d'utilisation, quel est le problème ? À vous lire j'ai l'impression que vous remarquez qu'il y a autre chose dans la vie que C++ et PHP. Oui, des langages il y en a des centaines, et même s'ils ne sont pas tous utiles, c'est quand même le cas de la majorité d'entre eux. Les fautifs, dans l'histoire, ceux qui font tout en un seul langage même quand ça n'est pas adapté parce qu'ils n'en connaissent qu'un, c'est bien vous.
Hors ligne Drumer67bts # Posté le 21/08/2010 à 12:33:14
Pearl Drum
Avatar

Citation : iPoulet
Je comprends pas vraiment votre « raisonnement ». Un langage de programmation, c'est un outil : tant qu'il trouve une niche d'utilisation, quel est le problème ? À vous lire j'ai l'impression que vous remarquez qu'il y a autre chose dans la vie que C++ et PHP. Oui, des langages il y en a des centaines, et même s'ils ne sont pas tous utiles, c'est quand même le cas de la majorité d'entre eux. Les fautifs, dans l'histoire, ceux qui font tout en un seul langage même quand ça n'est pas adapté parce qu'ils n'en connaissent qu'un, c'est bien vous.


Je connais bien plus qu'un langage et d'autres que le C++ ou le PHP. Certes, pour faire du développement web je n'ai jamais tenté rien d'autre que le PHP, mais pour du développement logiciel, déjà le C++, je l'ai appris, mais il ne m'a pas trop attiré, j'ai préféré le Java. J'ai aussi fais du VB.NET ou du C#, etc...

En ayant dit que c'était peut-être un langage de trop, c'est dans le sens où avec tous les langages qui ont été créés, on ne peut pas passer notre temps à s'intéresser à tous et à les apprendre, on ne ferait plus que ça !

En tout cas, moi je n'ai pas le temps d'apprendre chaque nouveauté. Donc je me limite à certains outils.
Hors ligne anonyme # Posté le 21/08/2010 à 12:39:08

Citation : Drumer67bts
déjà le C++, je l'ai appris, mais il ne m'a pas trop attiré, j'ai préféré le Java. J'ai aussi fais du VB.NET ou du C#, etc...


Ces langages se ressemblent quand même tous pas mal. Même si ça a été plus facile d'apprendre C# en connaissant déjà Java et VB.NET que d'apprendre un langage vraiment nouveau, tu as également appris moins de nouvelles choses, et tout ce que tu peux faire en C# ou presque était déjà accessible en VB.NET. Alors forcément, si tu passes ton temps à réapprendre les mêmes choses…

Citation
En tout cas, moi je n'ai pas le temps d'apprendre chaque nouveauté. Donc je me limite à certains outils.


Oui, comme tout le monde, mais tout le monde n'a pas non plus les mêmes besoins, alors il est intéressant de voir de nouveaux langages apparaître pour certains besoins particuliers (aucun des langages que tu n'as cités ne concurrence Squirrel et Lua dans leur domaine d'application).
Hors ligne tcpc` # Posté le 21/08/2010 à 13:04:48
tcpc™
Avatar
Groupe : Bannis

Ouais bah, yaurait qu'une dizaine de langages disponibles, vous gueuleriez en voulant de la diversité. Moi, des centaines de langage, ça me convient parfaitement. Je suis quasi-sûr de trouver mon coup de coeur et le langage approprié à mes besoins.
 
Hors ligne distopia # Posté le 21/08/2010 à 14:46:34
4-3 Komoku
Avatar

Intéressant... Je ne connaissais pas le "principe" de la programmation impérative...

Même si le langage ne m'intéresse pas vraiment, je vais au moins chercher des infos sur ce style de programmation :
ça peux toujours servir... :p

Article 42: Toute personne de plus d'un kilomètre de haut doit quitter la cour dans les moindres délais.
 
Hors ligne mickael # Posté le 21/08/2010 à 14:50:30
Tux is my friend
Avatar

Ville : Dachstein
Pays : France métropolitaine

Citation
Encore peu connu du grand public, Squirrel est un langage de programmation dit impératif et orienté objet.

Je trouve ce passage pas tout à fait juste. Il faudrait plutôt dire des développeurs que du grand public. En effet, je doute qu'on aura beaucoup de bonnes réponses si on prend une personne dans la rue et qu'on lui demande ce qu'est le C :-°

-> C'est corrigé, merci !

Citation : Inconnu
On est libre de penser qu'on est con mais on est con de penser qu'on est libre.
 
Hors ligne EMC1 # Posté le 21/08/2010 à 15:12:14
Avatar

Citation : Chem
Super ! Je sens que je vais me mettre à ce langage :D
On peut rajouter des méthodes à un objet après instanciation, j'avais jamais vu ça et ça m'a l'air très intéressant. Cependant, je pense que c'est une fonctionnalité qui pourrait apporter un bon tas de bugs ou une utilisation démesurée de la mémoire (style utilisation barbare des std::vector du C++ quoi).

Les fonctions lambda, c'est aussi une très bonne idée de la part du créateur de ce langage. Il va sûrement gagner des "clients" (moi en l'occurence :p )...


Ca devrait être tout naturel pour un langage où les fonctions sont des valeurs à part entière, non seulement de pouvoir ajouter des méthodes à une classe après définition, mais un aussi à un objet particulier après instanciation.

Je vois que le langage reprend la syntaxe plutôt désagréable du C. C'est plus ou moins un langage de script, il s'exécute sur une machine virtuelle qui doit être tout de même assez haut niveau. Ca m'étonnerait pas mal que les performances soit ne serait-ce que proche de Java.
On peut dire qu'il s'est vraiment très inspiré du Javascript...
Hors ligne brigand breton # Posté le 21/08/2010 à 17:03:20

Même si on sent qu'un effort a été fait pour être clair dans le début de la news, en tant que zéro je n'est rien compris à l'histoire d'impératif ...

Chez les nuls , on distingue 2 catégories : ceux qui ne tentent rien et qui resteront nuls , et les nuls qui tentent des choses, ceux-ci ne le resteront pas lomtemps
 
Hors ligne Karl Yeurl # Posté le 21/08/2010 à 17:12:14
Et gris.
Avatar
Flux RSS

Ville : Flémalle
Pays : Belgique
Études : FSA ULG

Citation : brigand breton
Même si on sent qu'un effort a été fait pour être clair dans le début de la news, en tant que zéro je n'est rien compris à l'histoire d'impératif ...

Bonjour.

L’impératif est un mode du verbe qui exprime un ordre, un conseil, une exhortation, un souhait.


Bonne journée. :)

À part ça, tcpc_, tu nous pondrais bien un tuto sur Squirrel, hein ? :-°


« Défendre le c cédille majuscule n’est-il pas vain ? Ca m’isole, comme disent les fous. »
Stéphane ARLEN
 
Hors ligne tcpc` # Posté le 21/08/2010 à 18:56:26
tcpc™
Avatar
Groupe : Bannis

À tes souhaits Karl Yeurl. :-°
 
Hors ligne Centas007 # Posté le 21/08/2010 à 19:06:04
Avatar

Ville : Cowansville
Pays : Canada

Citation
Ouais bah, yaurait qu'une dizaine de langages disponibles, vous gueuleriez en voulant de la diversité. Moi, des centaines de langage, ça me convient parfaitement. Je suis quasi-sûr de trouver mon coup de coeur et le langage approprié à mes besoins.


Je suis d'accord avec toi ! :) En informatique, c'est comme les vêtements : chacun ses goûts ! :p

Après tout, la diversité n'a jamais fait de mal à personne ^^ Personnellement, je ne vais pas l'apprendre parce que j'ai déjà beaucoup de projets à faire avant de me remettre à la lecture d'un autre tuto :-° ^^ mais je suis sûr que ça va en intéresser plusieurs ;)
Hors ligne Karl Yeurl # Posté le 21/08/2010 à 19:24:40
Et gris.
Avatar
Flux RSS

Ville : Flémalle
Pays : Belgique
Études : FSA ULG

Je savais qu’on pourrait compter sur toi. :)
(comprendra qui pourra)

Sinon, ouais, c’est cool qu’il y ait plein de langages. Personnellement, je me sentirais plutôt attiré par le concept du fonctionnel que par un énième ( :-° ) autre langage de type impératif. Mais la syntaxe de Squirrel a l’air glop (bon, le fait qu’elle ressemble énormément à celle du Java n’y est pas étranger).


« Défendre le c cédille majuscule n’est-il pas vain ? Ca m’isole, comme disent les fous. »
Stéphane ARLEN
 
Hors ligne darkcherry # Posté le 21/08/2010 à 20:32:23
A votre service
Avatar
Flux RSS

Citation : Chem
Super ! Je sens que je vais me mettre à ce langage :D
On peut rajouter des méthodes à un objet après instanciation, j'avais jamais vu ça et ça m'a l'air très intéressant. Cependant, je pense que c'est une fonctionnalité qui pourrait apporter un bon tas de bugs ou une utilisation démesurée de la mémoire (style utilisation barbare des std::vector du C++ quoi).


Cette fonctionnalité est déjà implémentée dans d'autres langages, java en l'occurence avec la réflexivité....

Comme dit plus haut, je trouve que le langage est inspiré du javascript, et j'ai l'impression que la différence ne réside pas trop dans la façon de rediger ...

je trouve que la news n'explique pas bien ce que c'est qu'un langage impératif ... et j'aurais aimé avoir des comparaisons en terme de performance par rapport a d'autres langages du même domaine d'application.

Image utilisateur
 
Hors ligne rom1504 # Posté le 21/08/2010 à 23:55:29

Études : ENSIIE

Citation : darkcherry
Citation : Chem
Super ! Je sens que je vais me mettre à ce langage :D
On peut rajouter des méthodes à un objet après instanciation, j'avais jamais vu ça et ça m'a l'air très intéressant. Cependant, je pense que c'est une fonctionnalité qui pourrait apporter un bon tas de bugs ou une utilisation démesurée de la mémoire (style utilisation barbare des std::vector du C++ quoi).


Cette fonctionnalité est déjà implémentée dans d'autres langages, java en l'occurence avec la réflexivité....

ça s'appelle la programmation orientée prototype , mais tu es sur qu'on peut faire ça en java ( en javascript oui selon wikipédia en tout cas ) ?
Hors ligne Einstein++ # Posté le 22/08/2010 à 00:20:17
It's not a bug, it's a feature
Avatar

Études : ENSI Tunisie

Citation : rom1504
ça s'appelle la programmation orientée prototype , mais tu es sur qu'on peut faire ça en java ( en javascript oui selon wikipédia en tout cas ) ?


On ne peut pas le faire en Java mais on peut le simuler.
 
Hors ligne Nadrieril # Posté le 22/08/2010 à 00:30:17
Un clavier azerty en vaut 2...
Avatar

Je voudrais rappeller que le fait qu'un langage de programmation utilise une machine virtuelle n'est pas forcement synonyme de lenteur d'execution...
Pour certaines taches, le Java peut s'averer tres competitif avec un langage de plus bas niveau comme le C.
Apres, bien sur, il est assez probable que la JVM soit plus complexe et puissante que la machine virtuelle d'un langage plus recent et moins connu.

Et la reflexivite en Java ne permet pas d'ajouter des methodes a une classe, elle permet juste de manipuler des classes et des methodes sans savoir lesquelles au moment de la compilation (par le biais de leur nom sous forme de chaine de caracteres).
C'est par contre possible en Javascript ou encore en Lua (bien qu'il ne soit pas vraiment oriente objet).
Pour accéder à cette section
Connectez-vous !
connexion_rpx

Revenir à la liste des news