IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

Programmation et mathématiques


Sujet :

Langages de programmation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de Lilic37
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2015
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2015
    Messages : 40
    Par défaut Programmation et mathématiques
    Bonjour !

    Je voudrais apprendre un langage qui m'aide dans mes études de Mathématiques (L2). Je sais un peu programmer en C (console) et C++ (console)

    Les domaines que je préfère sont : l'algèbre, les probabilités, la théorie des nombres (pas encore abordée).
    Sinon, ceux dans lesquels je dois aussi travailler sont : les séries et les intégrales, le calcul différentiel.

    J'ai vu que dans certains centres (universités, CNAM), c'était le python, le C et le C++, en plus de Scilab qui étaient abordés.

    Que me conseilleriez-vous ?

    Merci !

    Caroline89

  2. #2
    Membre Expert Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Par défaut
    Bonjour. Difficile à dire.

    * Le C ou C++ pour discuter avec des périphériques et la portabilité. Le C++ et Fortran pour les nombreux vieux codes numériques qui existent encore. Le C++ voire Java pour le calcul massivement parallèle sur serveurs (d'autres alternatives se pointent, comme Chapel). Python pour du code applicatif ou généraliste, de plus en plus utilisé de par sa place dans l'éducation et qui a gagné quelques biblios scientifiques.

    * R, Mathematica, Maple ou Scilab pour des outils spécifiquement dédiés aux mathématiques. Peu adaptés à la création d'applis, ils feront en revanche merveille pour la manipulation et la visualisation de données. Maple est plutôt pour le symbolique. Note que R offre des débouchés professionnels intéressants pour une mathématicienne, dans le big data.

    * Haskell est un langage fonctionnel (comme Caml ou Lisp, par opposition aux impératifs comme Python/C/etc). C'est un pur produit des mathématiques qui plaît généralement beaucoup aux personnes séduites par le formalisme mathématiques. Il est généraliste mais surtout très adapté à l'écriture d'algorithmes et à la recherche en informatique, et à la programmation massivement parallèle. Son apprentissage sera sans doute intellectuellement stimulant pour toi. Il est toutefois problématique pour du développement applicatif ou à grande échellle.

    * Coq pour les systèmes de preuve automatique. Indispensable à tout mathématicien moderne.

    * Prolog pour la programmation logique. Encore une autre outil qui séduit pas mal de mathématiciens et permet de résoudre des systèmes de clauses logiques. Il est toutefois peu adapté à la programmation "normale". Mais intéressant et utile à l'occasion.

  3. #3
    Membre averti Avatar de Lilic37
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2015
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2015
    Messages : 40
    Par défaut
    Pour le moment, j'hésite entre C/C++ et python.
    Je connaît peu ces langages mais ce sont les seuls avec lesquels j'ai déjà un peu programmé. Pour le moment, je ne sais pas grand-chose :

    C/C++
    Python
    bas-niveau
    gestion de la mémoire, pointeurs, etc
    C++ -> POO et C -> euh... impératif ?
    langage compilé
    syntaxe avec {}, indentation non requise
    ; indispensable à la fin d'une instruction
    haut-niveau
    pas de gestion de la mémoire
    POO
    langage interprété
    pas de {} mais indentation requise
    pas de ; à la fin d'une instruction

    Si quelqu'un pouvait me donner d'autres éléments de comparaison afin de trouver les arguments pour et contre pour les langages, ce serait gentil

  4. #4
    Membre Expert Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Par défaut
    Si on s'en tient aux caractéristiques objectives, tu pourrais ajouter :
    * Typage statique pour C++ (nominal et structurel, semi-fort), typage dynamique pour Python (structurel). C'est la grosse différence entre les deux.

    * Le C date des 70's, Python de 90. Et on ressent bien ce côté vieux, depuis le modèle de compilation anachronique du C/C++ (compilation en une passe, un gros fardeau hérité du passé et dont la seule raison d'être actuelle est la compatibilité) jusqu'aux trigraphes et autres saletés. Sans parler de toutes les erreurs que le C/C++ a enseigné au monde en les commettant. Quand on a l'oeil on voit facilement les stigmates laissées par la décennie de naissance d'un langage, tous ces usages dépréciés depuis lors. Même les outils C++ sentent la naphtaline en comparaison d'un SublimeText (encore que VS reste correct malgré quelques anachronismes).

    * Performances : c'est évident pour beaucoup, peut-être pas pour une débutante. L'interprété, c'est lent. 2 à 100 fois plus lent selon l'interpréteur, sachant que le 2 est exceptionnel et nécessite un gros investissement dans le compilateur (seul JS y parvient à ma connaissance - pas toujours). Heureusement le CPU et ses milliards d'instructions par seconde parvient souvent à amortir cette inefficacité et certains programmes délèguent à des biblios C tout le boulot (calcul matriciel par ex).

    * Productivité : il te sera beaucoup plus rapide et facile d'arriver à tes fins en Python. Le C/C++ est verbeux, la gestion mémoire se met constamment en travers de ton chemin et limite la composabilité, les bibliothèques standards sont minimalistes d'où des dépendances tierces, tu feras rapidement face à des méta-problèmes (incompatibilités entre bibliothèques, processus de compilation lent et qui plante de façon obscure, messages d'erreurs incompréhensibles, etc), et toute recherches sur le web concernant le C++ ressemble à un chantier archéologique avec des couches datant des 80's.



    Mais le plus important c'est surtout de savoir ce que tu veux faire. Un jeu aussi rapide que possible ? Utilise le C++. Un serveur web ? Utilise Python. Un code de calcul numérique distribué ? Les deux ont des outils pour ça. Le calcul symbolique ? Aucun des deux n'est adapté mais Python sera moins inélégant. Est-ce la machine et l'optimisation bas-niveau qui t'attirent, ou bien l'algorithmique ?

  5. #5
    Membre averti Avatar de Lilic37
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2015
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2015
    Messages : 40
    Par défaut
    Citation Envoyé par DonQuiche Voir le message
    Mais le plus important c'est surtout de savoir ce que tu veux faire. Un jeu aussi rapide que possible ? Utilise le C++. Un serveur web ? Utilise Python. Un code de calcul numérique distribué ? Les deux ont des outils pour ça. Le calcul symbolique ? Aucun des deux n'est adapté mais Python sera moins inélégant. Est-ce la machine et l'optimisation bas-niveau qui t'attirent, ou bien l'algorithmique ?
    Ce que je voudrais faire, c'est surtout m'amuser en programmant tout en faisant des mathématiques.
    Côté haut/bas niveau, difficile à dire : je connais le C/C++ bas-niveau et le js (haut-niveau) mais ce dernier ne m'a jamais plu...

    Pour le moment, j'ai commencé un tutoriel sur le python pour m'en donner une idée. Je me suis amusée à faire 2 petits programmes "console" : pgcd et équation du 2nd degré.
    Pour ce que je veux faire vraiment, c'est délicat de choisir : connaissant peu les langages et ne sachant pas faire de GUI, je ne connais pas les difficultés ni ce qui est abordable ou non...

  6. #6
    Membre Expert Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Par défaut
    Citation Envoyé par Caroline89 Voir le message
    Ce que je voudrais faire, c'est surtout m'amuser en programmant tout en faisant des mathématiques.
    Alors le python te conviendra bien mieux. Même si je pense que tu devrais loucher du côté de Haskell, Coq ou R.

    Quant à JS, personne ne te reprochera de ne pas l'aimer.

Discussions similaires

  1. Fonction mathématique programme en Java
    Par zemzoum89 dans le forum Débuter avec Java
    Réponses: 10
    Dernier message: 22/12/2010, 10h07
  2. Faire un rendu de formules mathématiques dans un programme C++
    Par E-Sh4rk dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 08/05/2009, 14h42
  3. Programme d'une fonction mathématique
    Par uuioga dans le forum C
    Réponses: 12
    Dernier message: 24/10/2007, 18h24
  4. Relation entre programmation et mathématiques ?
    Par Invité dans le forum Etudes
    Réponses: 27
    Dernier message: 17/10/2007, 21h52
  5. Petits programmes mathématiques
    Par SyrioDev dans le forum Scheme
    Réponses: 1
    Dernier message: 22/02/2007, 09h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo