<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>philippewang.info</title>
    <link>http://philippewang.info/</link>
    <description>
Javascript et compagnie...
</description>
    <language>fr</language>
    <generator>BASHGXD Another Super HTML Generator XD</generator>
    <item>
    <guid>http://philippewang.info/2008-04-10-23.00.xml</guid>
      <title>
Javascript et compagnie...
</title>
      <link>http://philippewang.info/2008-04-10-23.00.htm</link>
      <pubDate>Fri, 11 Apr 2008 02:07:17 +0200</pubDate>
      <description><![CDATA[
<!-- extra top links-->
<div>

</div>
<div>
<div>
<h1>Javascript et compagnie...
</h1>
<!-- body-content -->
<div>
<p>Javascript,  c'est un langage  que je  n'aime pas  trop dans  son état
actuel. Les navigateurs ne sont pas foutus d'avoir les mêmes comportements
pour un programme donné, et même pour les fonctions de base.</p>

<p>Par exemple, dans  Safari 3, la méthode sort de  la classe Array ne
se comporte  pas du tout de  la même façon  que la méthode sort  de la
classe  Array chez  Firefox 2  (à  part le  fait que  la méthode  trie
correctement). Chez  Firefox 2,  si on trie  un tableau déjà  trié, on
n'obtient  pas  obligatoirement le  même  tableau.   En  effet, si  un
tableau  comporte  deux  entrées  identiques d'après  la  fonction  de
comparaison,  alors   le  fait  de   retrier  un  tableau   le  change
(obligatoirement d'après  ce que j'ai pu  constater). C'est-à-dire que
si  A[i]  et  A[i+1]  ont  la  même  valeur  d'après  la  fonction  de
comparaison, alors lors du trie,  on peut être sûr qu'ils vont changer
de place.  C'est exactement le comportement contraire avec Safari 3.
</p>

<p>Une autre  chose de  bizare est  que la méthode  sort de  la classe
Array  de Safari  3  préfère  les fonctions  anonymes  plutôt que  les
fonctions  nommées, d'après ce  que j'ai  pu constater...  (La version
avec une fonction nommée fonctionnait bien avec Firefox 2, mais pas du
tout avec Safari  3. L'utilisation d'une fonction anonyme  a résolu le
problème...)
</p>

<p>J'imagine qu'Apple (ou bien les  développeurs de KHTML) se sont dit
que ça  ne servait  à rien de  perdre du  temps à bouger  des éléments
quand rien ne le demande explicitement... En tout cas c'est sûr que ça
joue sur  les performances... -- Je  n'ai aucune idée  de quand datent
les choix d'implantation. Je n'ai pas lu les spécifications ECMA.</p>
</div>
<div> 2008-04-10 </div>
</div>
</div>
      ]]></description>
    </item>
  </channel>
</rss>
