Langage de programmation

Quel autre langage de programmation pratiquez vous ?

Vous pouvez sélectionner 1 option
 
 
Voir les résultats
ViPHP
ViPHP | 4674 Messages

13 août 2008, 11:21

Hey :),
Quel est l'intérêt de lister les langages, ce qui importe, ce n'est pas le langage, un langage s'apprend très bien. Ce qui compte c'est la technologie, ou la technique de programmation :
Langages bas niveau, langages de script, langages compilés haut niveau, langages web, langages de formatage de document, langages webs…
Programmation impérative, programmation procédurale, programmation fonctionnelle, programmation orientée objet, voire méthode b, programmation par contrainte, programmation orientée agent, etc…
+10 à Sékil (et paf, d'un coup).
Un langage n'est qu'une représentation d'une solution à un type de problème. Il est hors de question de faire de l'intelligence artificielle en objet, ce type de programmation ne s'y prête pas une seconde, on se tournerait d'avantage vers de la programmation fonctionnelle (et interprétée).
Alors au final, un langage, c'est juste qu'une syntaxe, c'est tout. Ce qu'il faut comprendre, c'est à quoi peut bien servir un langage, quelle sorte de problème résout-il, et pourquoi ? On ne crée pas un langage comme ça, pour faire beau, ça n'a aucun sens …

Donc poser la question : « combien de langage de programmation utilises-tu ? » est très bête car elle n'a aucun sens. Si on n'a jamais été confronté à un problème qui requiert un nouveau langage pour le résoudre, on ne va pas apprendre ce langage pour rien.

Dans ma formation universitaire, on aborde différent problème selon les matières, et on n'a jamais eut de cours pour apprendre le langage qu'on allait utiliser (si on s'intéresse au problème et à la façon de le résoudre). Ce n'est qu'une syntaxe. Et très souvent, les langages adoptent la bonne logique pour trouver la solution. Si on a la logique, on comprend le langage, et on l'apprend très vite.

Ensuite, certes, on peut trouver des détails dans l'utilisation du langage, des petits plus qui fait qu'on peut s'appeler guru, juste des optimisations, mais ça s'apprend avec le temps et l'utilisation.

Donc ta demande n'a aucun sens pour moi et me montre que — finalement — tu ne comprends toujours pas ce qu'est la programmation. Ce n'est pas un ensemble de langages, mais un ensemble de logiques.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Mammouth du PHP | 1668 Messages

13 août 2008, 11:36

Donc ta demande n'a aucun sens pour moi et me montre que — finalement — tu ne comprends toujours pas ce qu'est la programmation. Ce n'est pas un ensemble de langages, mais un ensemble de logiques.
Bon, ça fait toujours plaisir, si on va par là : tu parle d'ensemble de logique, donc, d'après ce que je comprend, chaque langage est censé représenté une logique en particulier, ou, pour éviter le trool, une facette de la logique en générale, dans ce cas, peut-tu me donner le nom de quelques logiques éxistantes ?

PS : Oui, vous pouvez placer ce topic dans la partie HS
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Eléphant du PHP | 169 Messages

13 août 2008, 11:59

Donc ta demande n'a aucun sens pour moi et me montre que — finalement — tu ne comprends toujours pas ce qu'est la programmation. Ce n'est pas un ensemble de langages, mais un ensemble de logiques.

Parfait :lol:


Sans compter ceux qui créer leurs propre langage :wink:

ViPHP
ViPHP | 4039 Messages

13 août 2008, 12:17

eeh, y'a pas erlang !??!

Mais perso, en ce moment, je fais du perl. Ouaip, un script en cli qui foirait en php, je me suis dis que j'allais le refaire en perl. C'est fun perl.

On ne passe pas comme de rien d'un langage à l'autre. La logique peut être la même, mais les moyens, les possibilités offertes diffèrent grandement.

Et la ça va, de perl à php, c'est quasi pareil. Mais quand on passe à du fonctionnel (erlang pour moi), c'est quand même un peu tout à fait autre chôse..

Sinon, pour faire dans l'utile, on devrait plus se concentrer sur SQL. Pour bien faire du sql, il faut changer sa logique, sa façon de penser la chose. Et ça, c'est intéressant. Ca s'appelle du set-based thinking.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

ViPHP
ViPHP | 4674 Messages

13 août 2008, 12:22

Bon, ça fait toujours plaisir, si on va par là : tu parle d'ensemble de logique, donc, d'après ce que je comprend, chaque langage est censé représenté une logique en particulier, ou, pour éviter le trool, une facette de la logique en générale, dans ce cas, peut-tu me donner le nom de quelques logiques éxistantes ?S
J'essaye juste de te faire évoluer et surtout de te faire comprendre ce qu'est la programmation (cela n'inclue pas que je le sache, mais je te fais part de mes sentiments). Ça ne résume pas à un langage, mais à des logiques. Parmi ces logiques, on peut retrouver l'IA par exemple, ou la résolution d'équations, d'expressions, les automates, les machines de recherches, les arbres, l'algorithmique de texte, et j'en passe. Tous ces domaines requièrent une logique et une approche différente.
Ce qui fait que pour la résolution d'équation, on va préférer utiliser OCaml plutôt que PHP, car OCaml (Objective Caml, de la famille ML) utilise un typage inductif, ce qui est très pratique. Sa syntaxe est également très clair pour résoudre ce type de problème. Bref, c'est un langage plus adapté que PHP. Tu comprends ?
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
ViPHP | 2287 Messages

13 août 2008, 12:38

...
@katagoto : pour faire une analogie plus simple à saisir, tu ne sors le marteau que si tu sais que tu vas devoir clouer. Sinon il reste sagement dans sa boîte, car c'est un outil spécialisé ;-)

L'important dans cette analogie est l'ordre des choses. On part d'abord du besoin et on en déduit les outils, pas l'inverse.

Il en va de même pour les langages de programmation, qui sont des outils comme les autres. Demander à un bricoleur quels outils il aime utiliser n'a pas de sens en soi. On lui demandera plutôt ce qu'il aime réaliser (et en fonction de cela, quels sont les outils qu'il choisit)
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Mammouth du PHP | 1668 Messages

13 août 2008, 12:40

J'essaye juste de te faire évoluer et surtout de te faire comprendre ce qu'est la programmation (cela n'inclue pas que je le sache, mais je te fais part de mes sentiments). Ça ne résume pas à un langage, mais à des logiques. Parmi ces logiques, on peut retrouver l'IA par exemple, ou la résolution d'équations, d'expressions, les automates, les machines de recherches, les arbres, l'algorithmique de texte, et j'en passe. Tous ces domaines requièrent une logique et une approche différente.
Ce qui fait que pour la résolution d'équation, on va préférer utiliser OCaml plutôt que PHP, car OCaml (Objective Caml, de la famille ML) utilise un typage inductif, ce qui est très pratique. Sa syntaxe est également très clair pour résoudre ce type de problème. Bref, c'est un langage plus adapté que PHP. Tu comprends ?
J'ai pas tout compris là...

Bon, j'admet que PHP n'est pas approprié pour faire des résolutions d'équations ou même des IA (faire des IA), mais là où je ne comprends pas, ou enfin je ne pense pas comprendre c'est : tu dis que chaque problème amène à penser différement, et que chaque langage nécessite la même logique, alors il faut prendre le langage le plus aproprié en terme de liibilité ?

c'est pas ça :(

Commence par donner une règle générale et après, en sautant une ligne, donne un exemple, je comprend mieu à l'envers, en plus, en ce moment je suis plus limité que d'habitude...
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

ViPHP
ViPHP | 4674 Messages

13 août 2008, 13:14

tu dis que chaque problème amène à penser différement, et que chaque langage nécessite la même logique, alors il faut prendre le langage le plus aproprié en terme de liibilité ?
Justement non. Chaque langage répond à une logique particulière. Certains langages ont des logiques similaires (comme l'a dit Berze : Perl et PHP se ressemblent dans la logique générale), mais ce sont des langages par famille.

On trouve des familles de langages, donc des familles de logiques : la famille ML (Caml, OCaml, …), la famille LISP (LISP, Scheme, …), la famille « script CGI » (PHP, Perl, Python parfois, …), etc.

Pour te donner un exemple : PHP n'est pas approprié pour résoudre des équations car il ne sait pas du tout comment faire, alors que Caml, lui, a déjà tout pour résoudre ça. Il sait très bien géré la récursivité (elle est optimisée), il a un typage inductif, qui se prête très bien aux équations justement, une gestion de mémoire différente, etc.
Un typage inductif c'est vachement sympa (mais je ne sais pas comment s'est codé, j'ai pas encore tout compris). C'est une autre façon de traiter les données, et c'est là toute la finesse de ce langage. PHP a un typage faible, il ne peut pas travailler sur des expressions (au sens Mathématiques), ou sinon, il faudrait faire de l'objet et ce serait très lourd.
En Prolog (pour faire de l'Intelligence Artificielle — IA —), on a le back-tracking qui est implémenté dans le langage. Encore une fois, rares sont les langages qui ont ceci car c'est peu utile, sauf dans le cas de l'IA où c'est pratiquement un des fondements.

Calimero a bien résumé ça. Je complète (ou insiste) en disant qu'il faut déjà connaître son problème et ensuite utilisé l'outil adapté. L'outil c'est le langage. On va lire le mode d'emploi, c'est sûr, mais ce n'est pas parce qu'on connaît tous les outils qu'on sait résoudre tous les problèmes. Ça n'a pas de sens.

En fait, on parle de paradigme de programmation, c'est tout à fait le mot que je cherchais.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Mammouth du PHP | 1668 Messages

13 août 2008, 13:45

Là j'ai compris
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

13 août 2008, 14:20

En Prolog (pour faire de l'Intelligence Artificielle — IA —), on a le back-tracking qui est implémenté dans le langage. Encore une fois, rares sont les langages qui ont ceci car c'est peu utile, sauf dans le cas de l'IA où c'est pratiquement un des fondements.
L'IA c'est quand même super vaste, dire que certains langage sont adaptés à l'IA et pas d'autres est un peu rapide à mon sens. Il y a certains problèmes placés dans la catégorie IA qui peuvent très bien être résolu avec du Java et donc de l'objet (on a parlé il y a quelques temps du problème du voyageur de commerce, et des algos génétiques par exemple).

Tout comme le Prolog est adapté à certaines problématiques de l'IA mais pas à d'autres.

Mammouth du PHP | 1668 Messages

13 août 2008, 16:12

J'ai une question stupide : pour quoi le C++ est adapté, pas de trool et ça n'a rien à voir avec PHP ^^
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

ViPHP
ViPHP | 3300 Messages

13 août 2008, 17:51

J'ai une question stupide : pour quoi le C++ est adapté, pas de trool et ça n'a rien à voir avec PHP ^^
du dev système classique, d'appli relativement grosse (pour avoir besoin de faire de l'objet) classiquement, on pourrait parler de langage "généraliste" pour reprendre les analogies précédentes
Fait du php depuis que ca existe ou presque :)

ViPHP
ViPHP | 4674 Messages

13 août 2008, 19:08

@ouckileou : Exact. J'ai pris Prolog en exemple. J'ai un ami (prof) qui fait une thèse sur la programmation génétique dans le but des preuves et tests ; il écrit tout en Java. En gros, les tests unitaires ne couvrent pas 100% des cas, mais 90% des cas (à la louche, pour l'exemple). Le but de la programmation génétique est de « créer » les 10% de tests manquants. Domaine très nouveau mais très intéressant.

Quant à l'algorithme du voyageur de commerce, on peut le résoudre simplement en Java, voire même en PHP c'est évident. Si on a un langage qui nous permet de coder des graphes, on peut résoudre le problème facilement.

Donc oui, ton intervention est utile : il faut modérer mes propos. Comme dans la vie, la programmation n'est pas soit toute blanche, soit toute noire : on trouve des cas ambiguës et cette fois, c'est la connaissance approfondie des langages qui va nous permettre de les départager.


@katagoto : La plupart des langages reposent sur C ou C++. PHP est « écrit » (interprété) en C, le noyau de Java est écrit en C (bien que les couches supérieures du noyau soient écrit en Java), Prolog est interprété en C, CAML également, Perl aussi je crois. C est un langage très très puissant car il met en place une trèèès grande abstraction qui est … logique ! Quand on commence à fouiner sérieusement dans C, on se rend compte que rien n'est impossible. J'irai jusqu'à dire que C est construit sur C. Les fonctions sont bâtis sur un type fonction, ce qui permet d'avoir des tableaux de fonctions par exemple. Le langage s'utilise lui-même pour fournir des outils de bases, c'est très très bien conçu (ça m'épate à chaque fois d'ailleurs).
Pour moi, C reste _le_ langage de l'informatique, une sorte de gros monstre tellement trop fort qu'en bientôt 40 ans, personne n'a réussi à faire mieux. On a bien le langage D qui est intéressant mais je n'ai pas encore trop mis mon nez dedans.
En bref, C est un langage très abstrait qui te permet de faire pratiquement n'importe quoi. Tellement n'importe quoi qu'il est la base de beaucoup de langages, et surtout de langages interprétés. Ces langages interprétés permettent de répondre à un problème précis grâce à une logique précise (tu vois la pyramide se construire ?). Mais le C, une fois compilé, n'est qu'un binaire, transformé en langage machine et interprété par le processeur ; fin : on est arrivé aux fondations de la pyramide.
Après, le C++ (incrémentation de 1) n'est qu'une évolution du C, mais C++ est écrit en C. On trouve aussi l'Objective C qui est très puissant, et bâtis en C à l'instar de C++. Bref, les possibilités sont illimités ;-).

C'est pas beau l'informatique :) ?
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
ViPHP | 5924 Messages

13 août 2008, 22:13

C est un langage très très puissant car il met en place une trèèès grande abstraction qui est … logique !
En bref, C est un langage très abstrait qui te permet de faire pratiquement n'importe quoi.
Euh, concret, pas abstrait, au contraire…
Quand on commence à fouiner sérieusement dans C, on se rend compte que rien n'est impossible. J'irai jusqu'à dire que C est construit sur C. Les fonctions sont bâtis sur un type fonction, ce qui permet d'avoir des tableaux de fonctions par exemple. Le langage s'utilise lui-même pour fournir des outils de bases, c'est très très bien conçu (ça m'épate à chaque fois d'ailleurs).
Comme tu le sais HyWaN, j'aime pas les raccourcis :)
Le langage C ne fournit pas d'outils. Le C ce n'est qu'une syntaxe (et encore, dans le temps c'était n syntaxes). Même le compilateur n'est pas unique, puisqu'il y a plusieurs dizaines de compilateurs pour le langage. Donc s'il y a des fonctions "natives", c'est que c'est maintenant à peu près harmonisé d'un système à l'autre…
Les fonctions natives que l'on utilise en C ne sont donc en aucun cas spécifiques au langage, elles sont utilisables en n'importe quel autre langage (du moment qu'il est compilé et qu'il supporte l'édition des liens). Après si la majorité de ces librairies, drivers, ou programmes de base d'un système, ainsi que les compilateurs (y compris les compilateurs de C), sont programmés en C, c'est que le C est le langage bas niveau le plus humainement lisible. Mais on pourrait tout aussi bien les coder en assembleur ou en tout autre langage permettant, comme le C, un accès direct aux périphériques ou autres ressources.

ViPHP
ViPHP | 4674 Messages

13 août 2008, 22:46

Ouf, Sékil était là pour me reprendre ;-).
En fait, tu as raison, mais quand je parlais de fonctions, je parlais de fonctionnalités. Je n'arrive pas à le décrire, mais la syntaxe de C est tellement bien construite qu'on peut écrire des gros délires en se disant : « Allé, si ça marche, je me rase la tête », et bah, hop, un chauve de plus (le malheureux). J'étais impressionné de voir des tableaux de fonctions par exemple. Je sais, c'est tout bête et extrêmement logique. Le C est tellement logique qu'on se demande pourquoi personne d'autre n'y ait pensé … c'est … hmm, déroutant de simplicité (et je pèse mes mots). Les structures, les typages, tout est une question de syntaxe, on est totalement libre.

Ah oui, j'ai oublié de préciser une chose. Le C est génial car c'est le langage le plus lisible par l'homme qui permet un tel contrôle des données, notamment au niveau mémoire.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).