96 votes

APL par rapport à Une contre J contre K?

La matrice de langue paysage, tout en fascinant, est source de confusion sans fin. Est-il une raison de choisir l'un des J ou K ou de l'APL ou de l'Un? Aucune de ces options semblent être open-source -- sont là open source versions? J'aimerais élargir mon esprit, mais je reste confuse.

154voto

kaleidic Points 1710

Les différences entre ces langues sont relativement subtiles. APL "correcte" a des avantages et des inconvénients, de l'original de la notation symbolique. (Il y a des changements mineurs ont été apportés à la série de symboles au fil des ans, mais ils sont tous assez vrai à l'origine de la vision.)

Le langage est disponible en open source. Elle s'écarte de manière significative de la "classique" de ces engins, mais il est, comme eux, en gardant la plupart de la base de jeu de caractères. Mon sentiment est qu'il n'a pas été mis à jour avec les changements de technologie. Il a été un précurseur de K.

Les langues dans le tableau de langue de la famille qui ont quitté le signe distinctif de l'APL jeu de caractères: J, K, et Nial. Nial utilise des mots anglais au lieu des symboles, et a un open source interprète appelé Q'Nial. K et J reposent principalement sur des symboles, mais ceux-ci sont retirés du jeu de caractères ASCII. Les mots peuvent être utilisés à la place des symboles dans ces langues, cependant, simplement en attribuant des définitions.

L'APL famille de langages de programmation ont été principalement propriétaires depuis la première apparition de la VAE comme un produit d'IBM en 1964. Propriétaire de la matrice de langues semblent avoir plus de soutien et plus rapide évolution de nouvelles fonctionnalités de l'open source solutions de rechange à cette époque. Je ne suis pas sûr de savoir comment tous les concurrents de la pile les uns contre les autres, mais Dyalog APL a certainement travaillé activement à promouvoir la mise en œuvre de la langue comme de la technologie actuelle. APL2000 propose des produits pour Unix, Linux et Windows, y compris VisualAPL pour .Net. MicroAPL Ltd offre APLX.

K est un langage spécialisé qui n'est plus vendu sur son propre. Kx Systèmes est à la place de marketing de la Kdb+ base de données et son Q (question) de la langue, qui sont tous deux écrits en K. C'est un puissant outil spécialisé, conçu pour le traitement à haute vitesse de transfert de données. Elle s'écarte sensiblement de l'original de l'APL approche. Kx Systèmes produits sont chers et de leurs utilisateurs, pour la plupart, travaillent dans la finance.

L'APL a été imaginé et conçu principalement par Ken Iverson. Après une carrière complète de l'application et de l'affinage de l'APL dans les applications commerciales, il se tourna vers la création d'une "rationalisé" de révision, qui a corrigé les aspects de la langue qu'il avait trouvé lui-même insatisfait au fil des ans. Cette nouvelle prise sur le thème est appelé J. Les différences entre J et APL sont décrits dans un document sur la J Logiciel wiki. Un changement notable est l'élimination de tableau d'indexation de la syntaxe. La plus grande caractéristique, cependant, est tacite, dans lequel les programmes sont écrits par composition de fonctions, sans référence à leurs arguments. Tacite J est étroitement liée à "point-gratuit" style trouvé dans les langages de programmation fonctionnelle, mais en diffère en ce que cette forme est fondamentale pour le J de la langue. Le code ASCII des symboles utilisés dans le cadre de J peut être plus difficile à lire que le plus distinctif de l'APL caractères.

Pour une personne qui souhaite apprendre un tableau de la langue, mon conseil est de choisir parmi Dyalog APL, APLX, J et Q'Nial. Dyalog APL (esp. pour Windows) ou APLX (esp. pour Linux) sont probablement mieux pour quelqu'un qui veut utiliser la base symbolisme qui est si caractéristique de l'APL, et qui veut un lien fort avec l'APL de la communauté dans son ensemble. J peut être le mieux pour ceux qui veulent créer des applications web, ou de se concentrer sur les mathématiques (comme le Projet Euler,) et surtout ceux qui sont fascinés par le style de tacite, il met l'accent sur. Q'Nial est ce que je choisirais si ma priorité était sur de l'open source, mais seulement si la priorité n'est pas aussi signifier attendre d'un soutien actif de l'OS de la communauté.

Mise à JOUR: J 7.01 a été publié avec le code open source sous la licence GPL 3. En outre, il est de Kona, une variante sur K. Ces accroître les options pour open-source matrice de langues.

14voto

Yike Lu Points 502

Pour ajouter un peu plus d'informations...

Il existe une version open source de K appelés Kona https://github.com/kevinlawler/kona

Pour q/kdb+, il y a une version d'essai. http://kx.com/trialsoftware.php

Les principales limitations sont de 2 heures délai d'attente, 32 bits de la mémoire, de 3 mois à l'expiration de la licence et de la licence elle-même. Ceux-ci ne devraient pas être trop gênant si vous voulez juste jouer et d'apprendre quelque chose.

Personnellement, j'ai trouvé q pour être le plus convivial depuis KX traduit la monadique (un seul argument) les verbes d' K dans les mots anglais et il ya une bonne quantité de documentation @ http://code.kx.com. En outre, le système de base de données est extrêmement bien pensé et flexible.

3voto

Matthew Brand Points 11

J est un Exécutable Notation Mathématique qui est entrée et l'affiche à l'aide de caractères ascii.

Il est également membre à part entière et Fonctionnelle, Orientée Objet, le Langage de Programmation.

Le JSoftware mise en œuvre de J (je ne sais pas du tout les autres) n'est pas open source, mais il est libre d'utilisation.

Bien que le moteur n'est pas open source, il est un utilisateur actif de la bibliothèque de code J à laquelle les gens peuvent contribuer.

J est vaste et concise de la documentation http://www.jsoftware.com/help.htm et les membres du forum et heureux de répondre rapidement à des questions ou des problèmes et sont prêts à aider les nouveaux utilisateurs à s'orienter ainsi que les plus avancés des problèmes.

Sur la question de la Source par le chemin, la documentation (spécifications) pour J est vaste et tout le monde pourrait en théorie de créer un projet open source pour essayer de mettre en œuvre J s'ils le voulaient.

3voto

Brad Ackerman Points 956

Tout en Un+ semble (malheureusement) être un projet mort, il y a un open-source APL interprète: GNU APL.

2voto

Michael Burr Points 181287

Je reste aussi embrouillé (APL a toujours confondu moi - heureusement, cela fait plus de 20 ans ou plus depuis la dernière fois que j'ai tenté quelque chose avec elle), mais un peu de recherche a trouvé Un+, une version open-source de:

Je n'ai aucune idée de ce qu'il va répondre à votre (ou de quiconque) des besoins.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X