Question

Donc, j’écris une sorte de programme de statistiques (en fait, je le redéfinis en quelque chose de plus élégant) et j’ai pensé que je devrais utiliser un langage créé pour ce genre de choses (traitant d’énormes données de statistiques, de connexions entre eux et une sorte de programmation génétique / neurale).

Pour vous dire la vérité, je veux juste une excuse pour plonger dans lisp / smalltalk (smalltalk / lisp / clojure n'est-il pas le même? être facilement compris par d’autres personnes qui aiment le langage BASIC (c’est pourquoi je n’ai pas choisi LISP - pour le moment: D).

J’ai aussi vérifié sur Prolog et c’est un langage plutôt cool (relation facile entre les données et plus facile que Lisp), mais j'aimerais entendre ce que vous pensez.

Thx

Modifier: Je confonds toujours le lisp commun avec Smalltalk. Désolé de mettre ces deux langues ensemble. En outre, ce que je voulais dire par " d'autres personnes qui aiment le langage BASIC " C’est que je ne préfère pas un langage avec une sémantique comme lisp (pour les personnes sans antécédents CS) et que je trouve Prolog un peu plus intuitif (mais c’est mon opinion après que je me suis un peu écorné avec les deux).

Était-ce utile?

La solution

Existe-t-il une raison particulière de ne pas utiliser R? ? C'est en quelque sorte une construction par rapport à l'achat ( ou dans ce cas télécharger) décision. Si vous effectuez un calcul statistique, R a plusieurs packages dans les magasins. Celles-ci incluent de nombreuses bibliothèques et interfaces pour différents types de sources de données. Il existe également des bibliothèques d'interface permettant d'incorporer R dans d'autres langues telles que Python, afin de créer une application hybride avec une interface graphique en Python (par exemple) et un moteur de calcul principal utilisant R.

Dans ce cas, vous pourriez éventuellement réduire les efforts nécessaires à la mise en œuvre et terminer avec une application plus flexible.

Si vous êtes déterminé à apprendre une autre langue, faites-le. Il existe plusieurs bonnes implémentations gratuites (certaines dans le discours, d'autres dans la bière) de Smalltalk, Prolog et LISP.

Si vous mettez une interface utilisateur sur le système, Smalltalk peut être la meilleure option. Si vous souhaitez créer de grands ensembles de règles dans votre application, Prolog est conçu pour ce genre de choses. Plusieurs personnes ont écrit sur l'éphiphanie LISP qui influence la façon dont vous Pensez à la programmation, mais je ne peux pas vraiment en dire l'expérience - je n'ai vraiment utilisé AutoLISP que pour l'écriture de scripts d'automatisation sur AutoCAD.

Autres conseils

Au risque d’offenser certains, j’ai du mal à concilier " facilement compris par d’autres personnes qui aiment le langage BASIC ". avec l'une des langues que vous avez mentionnées. Ce n'est pas une critique, mais une observation du fait que chacune des langues que vous citez a un style et un idiome naturel assez différents de ceux de BASIC.

  • Smalltalk - OO pur à partir de rien, généralement (par exemple, Squeak), associé à un environnement intégré qui est à la fois l'EDI et le moteur d'exécution. IOW, vous entrez dans la machine virtuelle Smalltalk et travaillez à l'intérieur plutôt que de simplement écrire un texte au format "code source".

  • LISP - beaucoup plus proche de la programmation fonctionnelle (bien qu'avec des harmoniques impératives); La notation préfixe est le premier obstacle pour la plupart des personnes qui "aiment" et "aiment". autres langages, mais le concept et l’utilisation des macros sont beaucoup plus substantiels.

  • Clojure - La combinaison de l'intégration LISP, OO et JVM rend celle-ci encore moins semblable à celle de BASIC.

  • Python et Ruby - Je les combine (au risque d’ennuyer davantage les fans des deux ;-) parce qu’ils sont tous les deux du langage OO avec des notations distinctes qui entraîneront un peu d’apprentissage de la part d’un étranger. L'utilisation de l'indentation uniquement pour l'imbrication de contrôles en Python et l'utilisation de caractères spéciaux ressemblant à Perl dans Ruby sont souvent des points de réclamation des nouveaux arrivants. Bien que les deux puissent être écrits dans un style impératif, ils seraient considérés comme non standard par des utilisateurs chevronnés.

  • Prolog - C’est le plus différent du BASIC de toutes les langues mentionnées. Toutes les autres langues que vous avez mentionnées peuvent être (ab) utilisées dans un style semi-procédural, mais cela est essentiellement impossible dans Prolog. Cela nécessite une compréhension approfondie de la récursion et la maîtrise de la récursion pour faire quelque chose de non trivial.

Code écrit avec un "accent natif". Dans la quasi-totalité de ces langages (mais surtout Prolog, IMHO), on utilisera des idiomes et des concepts en dehors de la norme pour la programmation BASIC conventionnelle. En d'autres termes, si vous en choisissez un et écrivez ensuite le code "avec un accent BASIC". vous avez pratiquement gâché les avantages que la langue peut offrir.

Je pense qu’elles méritent toutes d’être apprises pour les concepts qu’elles peuvent enseigner (ou du moins les renforcer, en fonction de vos antécédents). Mais la similitude avec le langage X (pour un large éventail de valeurs de X) n’est pas ce que vous obtiendrez.

Je peux vous répondre partiellement

  

(Smalltalk / Lisp / Clojure ne sont-ils pas les mêmes? - comme le python et le rubis? -sémantique comme sage)

Non, ce n'est pas. Smalltalk est un langage OO avec message pass à la place des appels de méthodes. Lisp est Lisp ;-) Cela signifie un langage vraiment fonctionnel avec le puissant système de macros, un support OO qui n’est jamais vu dans d’autres langues (en CL) et beaucoup d’autres fonctionnalités. La fermeture est un langage de type Lisp sans beaucoup de fonctionnalités mais une bonne intégration à la JVM. Cela ne prend pas en charge l'optimisation des appels de queue, par exemple. Et le python ou le rubis sont des langages OO impératifs classiques avec une capacité fonctionnelle limitée. Remarque mot limité. Par exemple, Guido n'aime pas la programmation fonctionnelle et a supprimé certaines fonctionnalités des versions 2.5 et 2.6.

Si vous connaissez la programmation procédurale impérative comme en Python et que vous souhaitez changer de paradigme, vous devez prendre votre décision avec soin.

Prolog est une langue très différente. Cela peut être très difficile à comprendre, principalement parce que la récursion est essentielle pour l'exécution de tâches très élémentaires. Si vous êtes vraiment disposé, essayez-le. Il peut être très puissant car il permet d’expanser des relations et de résoudre des problèmes compliqués simplement, des exemples typiques sont Towers of Hanoi ou quicksort. Cela changera votre façon de penser, ce qui peut être difficile si vous êtes habitué aux langages impératifs.

Si vous êtes intéressé par Prolog, une version gratuite de Visual Prolog est disponible et le la version commerciale a un prix raisonnable.

Il s’agit d’un rejeton fort de Prolog; votre implémentation classique du langage n’est donc pas classique, mais son histoire est respectable - Borland en a vendu l’ancêtre DOS sous le nom de Turbo-Prolog à la fin des années 80.

Il s’agit également de Windows uniquement, mais peut être utilisé pour créer des DLL Windows standard afin de lier votre code à un langage de programmation Windows «normal». Je n'ai jamais utilisé le paquet moi-même dans la colère, mais j'ai suivi quelques cours de Prolog à Uni. Je l'ai donc téléchargé de temps en temps pour jouer et rechercher des utilisations possibles. Il semble assez solide. Peut-être juste la série de rouages ??que vous cherchez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top