Dans pratiquement toutes les facs le premier langage est fonctionnel. Dans les prépas c'est souvent du caml.
et j'avais déjà pris beaucoup de réflexes en langage impératif.
Donc il s'agit plus d'une préférence. L'impératif est plus intuitif pour toi car tu as commencé par ça (comme la plupart d'entre nous).
Bonne question. La raison est simple, rapidité. Un code caml même compilé en natif sera plus lent que du C++ (sauf si c'est Gcc ;-). Je ne sais pas, à vérifier, mais AMA ils n'ont pas implémenté toutes les optimisations que l'on trouve dans les compilo modernes. L'idée est donc de faire une bibliothèque de base représentant 30% du code total et 90% du code éxécuté en C++. (stat évaluée à la louche)
qu'un langage impératif est beaucoup plus facile à apprendre car plus intuitif qu'un langage fonctionnel
C'est vrai que dans un premier temps un débutant en programmation aura plutot tendance à s'orienter vers des programmes impératifs. Pourquoi ? Car les principaux langages sont impératifs, car le fait de donner une suite d'instructions parait plus naturel au premier abord ...
Mais la logique fonctionnelle est plus proche du raisonnement scientifiques que la logique impérative. L'ordinateur fonctionne suivant une logique impérative, l'homme sur une logique fonctinnelle (les suites en math, les fonctions f(x), les équations, ...). Exprimer des algorithmes est donc beaucoup plus facile et intuitif en fonctionnel qu'en impératif.
Sur la lisibilité du code, compare le code d'une factorielle en C++ et en Caml. Je crois que d'un point de vue de lisibilité le caml remporte la palme.
Une dernière chose, pourquoi dans les formations informatiques apprend-t-on souvent au début un langage fonctionnel plutot qu'impératif.
en quoi est-il moins portable qu'un autre langage ?
Un programme C++ est moins portable qu'un programme Caml, meme en utilisant les bonnes bibliothèques. Des différences existent entre les compilateurs (certains compilateurs implémentent la norme C++ à leur sauce, dixit MSCV), l'OS utilisé (les appels systèmes ne sont pas identiques d'un système à l'autre), et l'architecture (système 64 et 32bits). Un programme Caml ne necessitera aucune modification pour s'éxecuter alors qu'un programme C++ pourra "peut être" se comporter différement (si vous voulez des exemples j'en ai).
parce que compiler un programme prend une seconde ou deux ?
Ce n'est pas vraiment le fait qu'il soit interprété qui est un avantage. Je me suis mal exprimé. J'ai voulu dire qu'un langage fonctionnel facilite le prototypage.
il existe Under C
Under C n'implémente pas toute la norme.
Pourquoi ne pas directement tout faire en C++ ?
A chaque problème son langage. Pourquoi des logiciels comme Blender propose d'intégrer des plugin en les codant en Python ?
Les raisons d'avoir une couche application codée dans un langage de haut niveau (supérieur à C++) sont nombreuses :
- Extension du logiciel : créé des plugins dans ce langage est plus simple que de plonger la tête dans le code source C++ ;
- Séparation des fonctionnalités : la bibliothèque C++ d'un coté (pour les perfs) et l'appli caml de l'autre (pour la faciliter de développement) ;
- prototypage rapide et debugage facile (langage interprété) ;
- syntaxe proche du problème : comme je l'ai déjà dit, le langage s'adapte au problème et non l'inverse ;
- du code caml reste beaucoup plus lisible que du code C++ (c'est mon avis personnel ;-) ;
- caml est plus facile à apprendre et plus intuitif que le C++ ;
- portabilité (disons que moins il y a de code C++, plus le code est facilement portable) ;
- caml propose des mécanismes par défaut très pratique, en particulier les flots qui permettent d'écrire des parser en quelques lignes (et comme par hasard mon appli a besoin de parser)
En gros pour résumer, la couche application est essentiellement fonctionnele, peut être objet, proche des mathèmatiques (implémentation de modéle). Donc exit le C++, un langage fonctionnel est beaucoup plus adapté.
Comme je l'ai expliqué plus haut, je cherche un langage s'adaptant au problème plutôt que d'adapter le problème au langage. (ce qui n'est pas le cas du C)
Python me parait pas mal en effet, surtout avec l'utilisation du lambda. Mais ce que je veux absolument ne pas avoir c'est la notion de variable ou emplacement mémoire (exit pointeurs, références, ...). Je m'explique, j'aimerais éviter ce type d'instruction (un classique) :
x = x + 1;
qui n'a en effet aucun sens en mathématiques. OCaml et tous les langages fonctionnels en général satisfont cette contrainte et permettent d'écrire des équations et des algorithmes très facilements (sans le "bruit" induit par des langages impératifs comme le C). Je désire donc que le langage utilisé s'adapte au modèle codé et non l'inverse.
La dernière fois que j'ai utilisé Texmacs, il m'a effectivement semblé être une grosse usine à gaz. Mais il était en pleine phase de développement quand je l'ai essayé, peut être a-t-il chagé aujourd'hui.
Quant à Lyx, je trouve que c'est une pure merveille ! Il est extrémement léger (il tourne sur un P166 MMX), et surtout respecte la philosophie de Latex. C'est vrai que l'interface nécessite une petite phase d'apprentissage car elle n'a rien à voire avec OO ou Word. Mais il dispose de fonctionnalités très interessantes telle qu'une VRAI sauvegarde automatique (Si lyx plante, ce qui est rare, il sauvegardera entierement votre travail avant de se fermer). Mais surtout il est extrémenent stable, très facilement extensible et très bien documenté (en français). Une fois qu'on y a gouté, il est très difficile de revenir à emacs/vi pour éditer son code Latex. Le plus drôle, c'est qu'en réutilisant des éditeurs de textes tels que OO ou Word, on se rend compte très vite du "trou" séparant ces deux philosophies. Le fait de devoir penser à la forme avant de penser au fond et de vérifier au fur et à mesure que l'on tape le texte, que la forme correspond à ce que l'on recherche, est très loin d'être ergonomique. Lyx permet, grâce à Latex, de ne se concentrer que sur le fond, après on choisit des modèles, on paramètre deux trois trucs et le document est près (tout en visualisant les résultats au fur et a mesure que le fond est construit). Je trouve aussi que c'est un trés bon moyen de découvrir Latex sans le connaitre.
D'ailleurs il n'est pas facile d'utiliser Latex sous windows http://www.miktex.org(...) J'ai jamais eu de problème avec cette distro et il en existe plein d'autres ...
Pourquoi ne pas utiliser OpenOffice alors ? En plus il permet d'échanger des documents de travail avec des personnes utilisant Word.
Ouaaarrfff!!!!! Le support des .doc d'oo est tout pourri !!! Si on est obligé de se contenter de documents simples autant utiliser le format RTF.
est-il nécessaire de l'imposer alors que bien souvent OpenOffice permet de faire la même chose sans passer par la phase d'apprentissage
Peut-être que oui ... L'un des principaux freins de Latex en lisant les commentaires ci-dessus est l'absence d'éditeur de texte graphique à la Word. Connais-tu Lyx (http://www.lyx.org(...) ) ? Cet éditeur permet de réaliser des documents Latex très simplement
et surtout sans aucune connaissance particulière de latex.
Il existe d'autres éditeurs visuels (Texmacs par exemple http://www.texmacs.org/(...) ) et même un mode emacs permettant de visualiser en temps réel la sortie dvi.
Je pense que la meilleur solution est de proposer des modèles de documents pour les principaux formats pour l'édition (.doc, .rtf et .tex ) et de n'accepter que les formats de type .pdf ou .ps pour la publication.
je n'ai absolument pas le souvenir de telles absurdités. Avant peut-être, mais sûrement pas dans les 15 - 20 dernières années
Il y en a plusieurs, elles sont utilisées aujourd'hui par les services de secours pour entrer sur la 4 voies. Il y'en a une entre montauban et bédée (c'était il y a un peu plus de 10 ans), une autre à hauteur de St gilles il me semble.
Et pour ceux qui n'ont pas envie de le voir car ça à l'air d'être une bonne grosse [censuré] ce film, ce serait possible de dire en quoi il est différent ce cube ?
ba justement, t'as pas vue comment sont les 4 voies en bretagne. On est très loin des autoroutes. Quand il y a un trou, c'est pas grave : on le rebouche et c'est repartit ! Sur une autoroute c'est fait beaucoup plus proprement... Autre exemple : le type de bitume utilisé, quand il pleut (même un petite peu) ca devient une vraie patinoire ... Certaines voies d'accéleration font 10 mètres ; et je rappele qu'il y a 10 ans, pour rentrer sur une 4 voies bretonnes on le faisait avec des stops et il n'y avait pas de pont, fallait traverser (même et surtout les tracteurs) !!!
C'est pas l'europe qu'a financé nos routes, c'est les impots locaux ... La raison est historique comme je l'ai dit, ca remonte au 15ème siecle à la mort d'anne de Bretagne. La bretagne perd son indépendance et se retrouve rattaché à la France. Elle conserve par contre certains privilèges, en particulier ceux concernant les impôts et les taxes. Ce qui explique pourquoi en bretagne (Nantes compris), les ponts et les autoroutes sont gratuits et financés par le département et la région.
[^] # Re: Demain, évènement mondial
Posté par Anonyme . En réponse au journal Demain, évènement mondial. Évalué à 1.
[^] # Re: Choix d'un langage de programmation
Posté par Anonyme . En réponse au journal Choix d'un langage de programmation. Évalué à 2.
ALLE LA LICHE ALLE ALLE !!!!
[^] # Re: Choix d'un langage de programmation
Posté par Anonyme . En réponse au journal Choix d'un langage de programmation. Évalué à 2.
[^] # Re: Choix d'un langage de programmation
Posté par Anonyme . En réponse au journal Choix d'un langage de programmation. Évalué à 2.
et j'avais déjà pris beaucoup de réflexes en langage impératif.
Donc il s'agit plus d'une préférence. L'impératif est plus intuitif pour toi car tu as commencé par ça (comme la plupart d'entre nous).
[^] # Re: Choix d'un langage de programmation
Posté par Anonyme . En réponse au journal Choix d'un langage de programmation. Évalué à 1.
[^] # Re: Choix d'un langage de programmation
Posté par Anonyme . En réponse au journal Choix d'un langage de programmation. Évalué à 2.
C'est vrai que dans un premier temps un débutant en programmation aura plutot tendance à s'orienter vers des programmes impératifs. Pourquoi ? Car les principaux langages sont impératifs, car le fait de donner une suite d'instructions parait plus naturel au premier abord ...
Mais la logique fonctionnelle est plus proche du raisonnement scientifiques que la logique impérative. L'ordinateur fonctionne suivant une logique impérative, l'homme sur une logique fonctinnelle (les suites en math, les fonctions f(x), les équations, ...). Exprimer des algorithmes est donc beaucoup plus facile et intuitif en fonctionnel qu'en impératif.
Sur la lisibilité du code, compare le code d'une factorielle en C++ et en Caml. Je crois que d'un point de vue de lisibilité le caml remporte la palme.
Une dernière chose, pourquoi dans les formations informatiques apprend-t-on souvent au début un langage fonctionnel plutot qu'impératif.
[^] # Re: Choix d'un langage de programmation
Posté par Anonyme . En réponse au journal Choix d'un langage de programmation. Évalué à 1.
Un programme C++ est moins portable qu'un programme Caml, meme en utilisant les bonnes bibliothèques. Des différences existent entre les compilateurs (certains compilateurs implémentent la norme C++ à leur sauce, dixit MSCV), l'OS utilisé (les appels systèmes ne sont pas identiques d'un système à l'autre), et l'architecture (système 64 et 32bits). Un programme Caml ne necessitera aucune modification pour s'éxecuter alors qu'un programme C++ pourra "peut être" se comporter différement (si vous voulez des exemples j'en ai).
parce que compiler un programme prend une seconde ou deux ?
Ce n'est pas vraiment le fait qu'il soit interprété qui est un avantage. Je me suis mal exprimé. J'ai voulu dire qu'un langage fonctionnel facilite le prototypage.
il existe Under C
Under C n'implémente pas toute la norme.
[^] # Re: Choix d'un langage de programmation
Posté par Anonyme . En réponse au journal Choix d'un langage de programmation. Évalué à 2.
[^] # Re: Choix d'un langage de programmation
Posté par Anonyme . En réponse au journal Choix d'un langage de programmation. Évalué à 1.
[^] # Re: Choix d'un langage de programmation
Posté par Anonyme . En réponse au journal Choix d'un langage de programmation. Évalué à 1.
[^] # Re: Choix d'un langage de programmation
Posté par Anonyme . En réponse au journal Choix d'un langage de programmation. Évalué à 1.
[^] # Re: Choix d'un langage de programmation
Posté par Anonyme . En réponse au journal Choix d'un langage de programmation. Évalué à 2.
Comme je l'ai expliqué plus haut, je cherche un langage s'adaptant au problème plutôt que d'adapter le problème au langage. (ce qui n'est pas le cas du C)
[^] # Re: Choix d'un langage de programmation
Posté par Anonyme . En réponse au journal Choix d'un langage de programmation. Évalué à 2.
x = x + 1;
qui n'a en effet aucun sens en mathématiques. OCaml et tous les langages fonctionnels en général satisfont cette contrainte et permettent d'écrire des équations et des algorithmes très facilements (sans le "bruit" induit par des langages impératifs comme le C). Je désire donc que le langage utilisé s'adapte au modèle codé et non l'inverse.
[^] # Re: Choix d'un langage de programmation
Posté par Anonyme . En réponse au journal Choix d'un langage de programmation. Évalué à 4.
;-)
[^] # Re: Choix d'un langage de programmation
Posté par Anonyme . En réponse au journal Choix d'un langage de programmation. Évalué à 1.
# Re: Choix d'un langage de programmation
Posté par Anonyme . En réponse au journal Choix d'un langage de programmation. Évalué à 1.
http://linuxfr.org/~ilaioului/3952.html(...)
encore une fois désolé chui un boullet ( http://www.tusors.fr.st/(...) ;-)
[^] # Re: Histoire vraie
Posté par Anonyme . En réponse au journal Histoire vraie. Évalué à 3.
[^] # Re: L'Education nationale propose de faire des thèses en Word
Posté par Anonyme . En réponse à la dépêche L'Education nationale propose de faire des thèses en Word. Évalué à 1.
Quant à Lyx, je trouve que c'est une pure merveille ! Il est extrémement léger (il tourne sur un P166 MMX), et surtout respecte la philosophie de Latex. C'est vrai que l'interface nécessite une petite phase d'apprentissage car elle n'a rien à voire avec OO ou Word. Mais il dispose de fonctionnalités très interessantes telle qu'une VRAI sauvegarde automatique (Si lyx plante, ce qui est rare, il sauvegardera entierement votre travail avant de se fermer). Mais surtout il est extrémenent stable, très facilement extensible et très bien documenté (en français). Une fois qu'on y a gouté, il est très difficile de revenir à emacs/vi pour éditer son code Latex. Le plus drôle, c'est qu'en réutilisant des éditeurs de textes tels que OO ou Word, on se rend compte très vite du "trou" séparant ces deux philosophies. Le fait de devoir penser à la forme avant de penser au fond et de vérifier au fur et à mesure que l'on tape le texte, que la forme correspond à ce que l'on recherche, est très loin d'être ergonomique. Lyx permet, grâce à Latex, de ne se concentrer que sur le fond, après on choisit des modèles, on paramètre deux trois trucs et le document est près (tout en visualisant les résultats au fur et a mesure que le fond est construit). Je trouve aussi que c'est un trés bon moyen de découvrir Latex sans le connaitre.
[^] # Re: L'Education nationale propose de faire des thèses en Word
Posté par Anonyme . En réponse à la dépêche L'Education nationale propose de faire des thèses en Word. Évalué à 2.
http://www.miktex.org(...) J'ai jamais eu de problème avec cette distro et il en existe plein d'autres ...
Pourquoi ne pas utiliser OpenOffice alors ? En plus il permet d'échanger des documents de travail avec des personnes utilisant Word.
Ouaaarrfff!!!!! Le support des .doc d'oo est tout pourri !!! Si on est obligé de se contenter de documents simples autant utiliser le format RTF.
est-il nécessaire de l'imposer alors que bien souvent OpenOffice permet de faire la même chose sans passer par la phase d'apprentissage
Peut-être que oui ... L'un des principaux freins de Latex en lisant les commentaires ci-dessus est l'absence d'éditeur de texte graphique à la Word. Connais-tu Lyx (http://www.lyx.org(...) ) ? Cet éditeur permet de réaliser des documents Latex très simplement
et surtout sans aucune connaissance particulière de latex.
Il existe d'autres éditeurs visuels (Texmacs par exemple http://www.texmacs.org/(...) ) et même un mode emacs permettant de visualiser en temps réel la sortie dvi.
Je pense que la meilleur solution est de proposer des modèles de documents pour les principaux formats pour l'édition (.doc, .rtf et .tex ) et de n'accepter que les formats de type .pdf ou .ps pour la publication.
[^] # Re: Philips s'associe à Sony pour promouvoir Linux
Posté par Anonyme . En réponse à la dépêche Philips s'associe à Sony pour promouvoir Linux. Évalué à 2.
# Re: Linux Journal Readers' Choice Awards millésime 2003
Posté par Anonyme . En réponse à la dépêche Linux Journal Readers' Choice Awards millésime 2003. Évalué à 6.
[^] # Re: Voiture climatisée, danger
Posté par Anonyme . En réponse au journal Voiture climatisée, danger. Évalué à 1.
Il y en a plusieurs, elles sont utilisées aujourd'hui par les services de secours pour entrer sur la 4 voies. Il y'en a une entre montauban et bédée (c'était il y a un peu plus de 10 ans), une autre à hauteur de St gilles il me semble.
# Re: Cube 2 : Hypercube
Posté par Anonyme . En réponse à la dépêche Cube 2 : Hypercube. Évalué à 0.
[^] # Re: Voiture climatisée, danger
Posté par Anonyme . En réponse au journal Voiture climatisée, danger. Évalué à 1.
[^] # Re: Voiture climatisée, danger
Posté par Anonyme . En réponse au journal Voiture climatisée, danger. Évalué à 1.