Aucun message portant le libellé Java. Afficher tous les messages
Aucun message portant le libellé Java. Afficher tous les messages

mercredi, février 14, 2007

Sur les langages

Deux thèmes, un seul mot ce matin: langages.
Je prends des cours de chinois. Un soir par semaine. C'est peu mais c’est intellectuellement stimulant.

Ce que je trouve intéressant, c'est de comparer comment on dit une chose équivalente d'une langue à l'autre. Je parle couramment le français et l'anglais et j'ai déjà étudié le japonais et l'allemand. Je peux donc faire quelques comparaisons.
En japonais et en chinois, il y a des mots d'énumération. C'est un mot que l'on met entre le cardinal et l'objet compté et qui nous renseigne, un peu, sur la nature de l'objet compté. En japonais comme en chinois il existe un mot réservé au compte d'objet de forme ronde ou sphérique. Si on vous mentionne un mot que vous ne connaissez pas mais qui est précédé du mot d'énumération (et d’un cardinal!) pour les objets ronds ou sphériques, vous faites l'acquisition d'une information supplémentaire, qui jumelée au contexte, vous permet de (peut-être) deviner le sens du mot inconnu. Pratique.
Prenez aussi par exemple les pronoms relatifs en français. Avez-vous pensez ce que la langue serait sans eux? La phrase "La femme dont le mari est gros.." deviendrait "La femme, elle a un mari gros, ...". Même si les deux phrases ont la même signification, la première forme sonne mieux. Un petit mot, "dont", influence la syntaxe et la rend expressive (si vous trouvez un meilleur exemple, dites-le moi).

Le concept « d'expressivité par la syntaxe » n'existe pas que pour les langages humains. Il existe aussi pour les langages informatiques. On a qu'a comparer les langages de type fonctionnel (F#, ML, Erlang, Haskell, ...) aux langages impératifs (Java, C, ...). Leurs syntaxes sont radicalement différentes. Ils parviennent tous à exprimer les mêmes concepts mais sans les mêmes structures. Pour certains types de programmes, les langages de type fonctionnel mènent à des solutions plus élégantes.

Je m’intéresse pas mal ces temps-ci aux langages fonctionnels. J’étudie Lisp/Scheme et j’aimerais bien avoir le temps de jeter un coup d’œil à Haskell ou Erlang (ce dernier se prêtant pas mal bien à la programmation concurrentielle). Je trouve stimulant d’être exposé à autre chose que des langages impératifs auxquels tous sont familiers. Je suis convaincu qu’apprendre sur les langages fonctionnels fera que je serai plus productif et clair avec les langages impératifs que j’utilise les plus souvent.


En Lisp, en écrivant une macro on créé une nouvelle structure du langage qui altère la structure, la rendant plus expressive. Cette caractéristique du langage n'existe pas dans les langages de type impératifs.

En Haskell, par le biais du « pattern matching » on peut décrire à l’intérieur de la signature d’une fonction des cas d’utilisation de celle-ci plutôt que de recourir à une structure de type « case » dans le corps de la fonction.

Voilà pour ce matin. Si je pense à autre chose, je l'écrirai.

mardi, janvier 09, 2007

"Bug" avec NetBeans 5.5?

J'ai tenté à plusieurs reprises d'installer NetBeans 5.5 sur mon desktop Window$ XP. La seule manière de faire est d'installer premièrement le JDK sur le drive C:. Ça m'enrage, mes programmes sont tous sur le drive D:. Bug?
Mise-à-jour: Impossible à installer! Sais pas pourquoi, je devrai investiguer... Entretemps je devrai faire du java sur le laptop...

mercredi, décembre 27, 2006

Lecture de vacance

Je fais des avancées dans mon livre sur Java. J'ai téléchargé la dernière version de Java et l'éditeur NetBeans 5.5. Je suis agréablement surpris par comment tout est bien intégré (édition -> compilation -> exécution -> débuggage) et par comment l'éditeur est "joli". Le style du livre, avec ses exercices pratiques et progressifs rend l'apprentissage agréable. J'espère pouvoir bien me débrouiller en Java d'ici un mois ou deux. Je n'ai pas de projets précis dans lequel j'utiliserais Java mais c'est un langage de programmation qu'il est bien de connaitre.

vendredi, décembre 22, 2006

Pot-pourri pré-Noël

Pas mal de truc ces derniers temps, dans aucun ordre particulier:
  • J'ai acheté deux disques durs de 500GB cette semaine. Je ne pensais jamais acheter des disques de cette capacité mais le prix était irrésistible (à peine plus cher que des 400GB). Je me rappelle encore de mon premier disque de plus de 1GB, un disque de 6GB acheté en 1997 je crois. On en a fait du progrès depuis. Ces deux disques vont soit servir à étendre mon système de backup ou à former un array haute performance dans mon file server. Ça remplacerait une paire de 80GB qui commencent à dater.
  • J'ai aussi acheté deux cartes vidéo nVidia 6200 AGP. Ça commence à être dur à trouver, tout le monde passe à PCI-e. Une remplacera une Matrox G450 et l'autre sera ajoutée à la boîte MythTV que je prépare pour ma douce. Il faudra bien que je finisse ça en revenant des vacances de Noël...
  • Ottawa est encore vert. Il semble que ça restera vert jusqu'à Noël. Ça fait bizarre de penser à un Noël vert. Mon seul Noël vert fut en 1998 à Hong Kong (suivi par un jour de l'an sur une plage de Thaïlande ;-) ). Pas évident pour un p'tit gars qui a grandit à Québec...
  • Nous sommes allés au Palais Impérial pour souper la semaine passée. On a essayé quelque chose de nouveau: un met de boeuf épicé et croustillant. Pas mal bon, on va le prendre à nouveau. Juste plate que je ne me rappelle pas du nom du plat exactement.
  • Mardi on a essayé un autre restaurant chinois dans Chinatown: Northern Han Restaurant avec un couple d'amis. Les dumplings étaient excellent! Presqu'aussi bon que dans ce petit resto près de notre bureau à Taipei.
  • Un des drives d'un de mes arrays dans mon file server est devenu "dirty". Commande magique pour le réintégrer dans l'array: raidhotadd /dev/md1 /dev/sda1 L'array se re-synchronise à 51MB/sec: pas mal!
  • Je vais essayer de rattrapper mon retard de lecture de "The Economist". Je suis rendu à lire le premier de numéro de juin alors que je continue à recevoir un numéro par semaine. Je n'ai jamais le temps de lire ce que je veux... Je veux aussi commencer à lire "Head First Java". J'ai lu d'excellentes revues de ce livre. Je veux absolument apprendre Java mais je n'ai jamais trouvé de livre qui capte et garde mon attention sur le sujet.
  • Deux tendances parallèles qui s'entrecoupent: 1. Je passe pas mal de temps à jouer avec VMWare et je trouve que c'est un outil fabuleux pour tester et apprendre: si on fait une gaffe, on tue la machine virtuelle, on en part une autre et on recommence. 2. Je pense aussi à me bâtir une machine pas mal puissante pour remplacer la ribambelle de machines (PII400/512MB/HD:120GB/Gentoo Linux, Sempron2800/1GB/HD:760GB/WindowsXP Pro, Dual PIII500/1GB/HD:108GB/Gentoo Linux, Dual MP1800+/2GB/HD:240GB/Gentoo Linux, AMD3000+/1GB/HD:1.2TB/Gentoo Linux) dans mon bureau, d'ou l'intérêt de VMWare. Je pourrais avoir une grosse machine, ayant des machines virtuelles roulant par-dessus tout en gardant le gros de ma capacité de stockage sur un serveur de fichier indépendant. Les deux machines pourraient être liées par une connection dédiée à 1Gb/sec. Un avantage de cette configuration serait de réduire la consommation d'électricité (et le bruit!) et la génération de chaleur dans mon bureau (appréciée en hiver mais détestée en été). Pour ce qui est de la grosse machine, j'hésite entre un dual Opteron 2212 dual-core ou un dual Xeon 5335 Quad-core (mais les deux avec un motherboard Supermicro. Tyan et Asus ne sont pas assez stable pour moi.). Le Xeon est super rapide et offre 4 coeurs/cpu mais les performances de l'Opteron en matière d'accès à la mémoire sont imbattables. Au bout du compte il faudra que je détermine si ce que je fais est CPU-bound ou memory-bound. Grosses décisions et gros sous...
  • Ma douce m'a demandé de digitaliser des vidéos de voyages qu'elle a tournés avec une caméra Sony Handicam TR66. Pour ce faire j'ai du assemble une de mes vieilles boîtes avec ma carte de capture Pinnacle DV500. J'ai installé Windows 2000 comme OS. Ça faisait pas mal de temps que je n'avais pas utilisé W2K. Je ne me rappellais plus combien smooth et stable c'était.
  • J'ai finalement résous le problème de stabilité de ma machine principale: une banque de mémoire n'était pas assise correctement dans son slot... On l'a probablement bougée en enlevant la carte de capture vidéo.

mercredi, décembre 13, 2006

Mauvais timing

Hier après-midi, j'ai acheté le livre "Head First java, 2nd edition - Covers java 5.0" (le petit bout que j'ai lu est bien fait). En arrivant de la librairie, je regarde les nouvelles sur le web et je vois que Java 6 vient de sortir: pas très bon timing...