Python, C ++, R Trinité! version blockbuster Julia 1.0

Ji-won nouvelle recommandation

Source: AI avant (ID: ai-avant)

Compiler: Debra Montage: Vincent

[Introduction de nouveaux Zhi Yuan Ces dernières années, Julia est devenue la nouvelle coqueluche de la communauté de langage de programmation. La porte a été développé par le MIT CSAIL Lab combine la vitesse du langage de programmation en langage C, flexible et polyvalent Python Ruby, ainsi que d'autres avantages de différentes langues en un seul, et avec l'open-source, facile à saisir les caractéristiques d'un grand potentiel être remplacé par le suivant langage Python.

8, Julia a officiellement publié la version 1.0. équipe Julia, a déclaré: « la version 1.0 Julia est que nous construisons un nouveau sommet depuis plusieurs décennies la langue de travail pour les résultats des programmeurs qui ont faim. » La question est donc, Julia vraiment si Dieu? Vous faire apprendre une nouvelle langue de programmation encore prêt?

Pourquoi devriez-vous apprendre Julia?

De 2012 à maintenant, Julia 1.0 dans la communauté de programmation a joué son « petit monde ». A il y a le temps de presse, Julia sur Github a reçu 12293 étoiles, la liste des langues de programmation mois TOIBE8 a rapidement grimpé à la 50ème place.

Julia était si populaire que ses ingénieurs ont résolu un des problèmes « père pit » liés à: une autre langue ingénieurs afin d'obtenir la vitesse et la facilité d'utilisation dans l'analyse des données, devait d'abord avec un code de langue, réécrire, ou « problèmes de double langage » beaucoup de la population.

Par rapport à d'autres langues, Julia est facile à utiliser et réduit de manière significative le nombre de lignes de code nécessaires à l'écriture, et peut être facilement déployé dans le conteneur de nuages, plus des boîtes à outils et les bibliothèques, et combine les avantages du multilinguisme. Selon la publicité Julia Computing, Sur la base de l'algorithme de test de sept, Julia Python 20 fois plus rapide que, 100 fois plus rapide que R, Matlab 93 fois plus rapide que .

Julia est actuellement très large gamme d'applications et peut être utilisé pour l'analyse d'images astronomiques, les véhicules autonomes, les robots et les imprimantes 3D, la précision médicale, renforcée sur le terrain de la réalité, la génomique et la gestion des risques.

Il y a deux ans, l'économiste lauréat du prix Nobel Thomas Sargent et professeur d'économie à John Stachurski de l'Université nationale australienne, une recommandation commune à la Federal Reserve Bank de New York pour la prévision des tendances du marché et l'analyse des politiques de « modèle d'équilibre général dynamique et stochastique (DSGE) » aller à la plate-forme de langue Julia. Après la première phase du projet, ils ont trouvé, Julia le temps de fonctionnement du modèle réduit à un dixième à trois quarts du code Matlab d'origine.

En plus des avantages de la langue elle-même, Julia a également un écosystème très puissant, utilisé principalement dans la visualisation de données, l'informatique en général, la science des données, l'apprentissage de la machine, la science, six domaine de l'informatique parallèle.

Julia étude approfondie dans le domaine de l'apprentissage de la machine à grande échelle, l'apprentissage automatique et AI fournit un outil puissant (Flux et Knet). syntaxe mathématique Julia il est un moyen idéal d'algorithmes exprimant, peuvent soutenir la construction d'un modèle de formation avec des différences automatiques, en charge l'accélération GPU et la manipulation du nombre de To de données. la richesse de l'écosystème Julia d'apprentissage de la machine fournit également des algorithmes d'apprentissage supervisé, des algorithmes d'apprentissage sans supervision (comme la régression, arbres de décision) (tels que le regroupement), les réseaux bayésiens et chaînes de Markov sacs de Monte Carlo.

Julia actuellement de téléchargements a atteint 2000000 , Julia a développé sur la communauté Plus de 1900 Expansion Pack . Ces extensions comprennent divers package de bibliothèque de mathématiques, des outils mathématiques et bibliothèques pour l'informatique à usage général. De plus, la langue Julia peut facilement utiliser Python, R, C / C ++ et les bibliothèques Java, qui étend considérablement l'utilisation de la langue de Julia.

Ainsi, Julia feu vers le haut non sans raison, et la dernière version de la version 1.0 a ajouté de nombreuses nouvelles fonctionnalités.

Routinière, pour fixer de nouvelles versions Liens connexes:

Julia 1.0 version d'essai lien:

https://julialang.org/downloads/

Adresse GitHub: https: //github.com/JuliaLang/julia

Julia est actuellement pris en charge les plates-formes:

Julia à la fin est de savoir comment une langue?

Julia premier lancement public reflète une partie de la forte demande de la communauté pour la langue:

Nous voulons un avoir une licence libre langage open source. Nous voulons qu'il ait la vitesse et la flexibilité de Ruby C. Il est plus facile à comprendre, comme vraiment le soutien de Lisp, mais aussi le même évident que Matlab, symboles mathématiques familiers. Il peut également être utilisé en général comme la programmation Python, aussi facile que les statistiques de R, qui peut naturellement être utilisé comme traitement de chaîne Perl, Matlab aussi bonne que l'algèbre linéaire, aussi bon que le programme shell liés ensemble. Bref, à la fois pour être facile à apprendre, mais aussi de faire le plus grave heureux hacker. Nous voulons tous les deux que ce soit interactif, mais aussi voulons qu'il soit compilé.

Maintenant, une dynamique et florissante communauté autour de la langue de plus en plus, les gens de partout dans le monde continuent à affiner et redessiner Julia dans la poursuite de cet objectif. Plus de 700 personnes ont contribué à Julia, il y a beaucoup de gens qui font des milliers de logiciels open source Julia incroyable.

Dans l'ensemble, nous avons établi la langue:

  • rapide: Julia est conçu pour la haute performance. Julia compilées dans le programme par la pluralité de plates-formes LLVM code natif efficace.

  • GM: Il utilise une pluralité de planification à titre d'exemple, le rendant facile à la fonction et l'expression d'un grand nombre modèle de programmation orientée objet. Il est la bibliothèque standard fournit des E / S, le contrôle de processus asynchrone, l'enregistrement, le profilage, le gestionnaire de paquets et ainsi de suite.

  • dynamique: Julia est typé dynamiquement, comme un langage de script, et un bon support pour une utilisation interactive.

  • technologie: Il excelle dans numérique, la syntaxe mathématique est très approprié pour de nombreux types de données numériques pris en charge, de la boîte et ayant un parallélisme. Julia multiple calendrier est idéal pour les types numériques et tableau de types de données.

  • (Facultatif), tapez: Julia a une riche type de données de langage descriptif, déclaration de type peut être utilisée pour clarifier et consolider le programme.

  • Il peut être combiné: Julia package peut bien travailler ensemble. Nombre de matrice unités, et l'argent peuvent être des tableaux de données couleur, et une bonne performance.

Si vous voulez Julia 0.6 ou plus tôt, le code de mise à niveau, nous vous recommandons d'utiliser d'abord la version intermédiaire 0.7, qui comprend des avertissements de guide pour les programmes obsolètes vous aider à travers la mise à niveau. Si votre code sans avertissement, vous pouvez passer à 1,0 sans aucune modification de la fonctionnalité. packages enregistrés utilisent cette version intermédiaire 1.0 mises à jour compatibles.

Mise à jour 1.0 Quelles sont les caractéristiques?

Bien sûr, Julia 1.0 la plus importante nouveauté est un engagement à la stabilité de l'API de langue: Le code que vous écrivez pour Julia 1.0 peut continuer à fonctionner Julia 1.1,1.2 et d'autres versions. La langue est « déjà parfait », les développeurs de langue de base et des collectivités à utiliser à partir de cette version du package, des outils et de nouvelles fonctionnalités.

Mais Julia 1.0 mise à jour non seulement la stabilité, il présente également un certain nombre de fonctionnalités puissantes et linguistiques innovantes. Depuis la version 0.6, certaines des caractéristiques de la nouvelle version sont les suivantes:

  • La nouvelle performance de gestion intégrée dans le paquet peut être amélioré de façon significative que le package d'installation et de ses éléments de dépendances n'a jamais été aussi facile. Il prend également en charge l'environnement paquet chaque élément et enregistrer l'état exact du travail de l'application à partager avec les autres et vous-même. Enfin, le nouveau design présente également un soutien sans faille pour les packages privés et dépôt de paquets. Vous pouvez utiliser les mêmes outils pour les écosystèmes packages open source pour installer et gérer un logiciel propriétaire. JuliaCon montre le détail de la conception des nouvelles fonctionnalités:

https://www.youtube.com/watch?v=GBi__3nF-rM

  • Julia a une nouvelle représentation canonique des valeurs manquantes (https://julialang.org/blog/2018/06/missing). Capable de représenter et de traiter les données manquantes est la base des données statistiques et scientifiques. Conformément au style de Julian, cette nouvelle solution est polyvalent, peut être combiné et de la performance. Tous les types de collections génériques sont disponibles à travers l'élément pour contenir des valeurs prédéfinies manquantes pour soutenir efficacement les valeurs manquantes. Dans les versions précédentes de Julia, la performance « de type union » de cette collection sera lente, mais les améliorations du compilateur faire maintenant Julia peut suivre la vitesse des autres systèmes sur mesure de représentation ++ C ou C des données manquantes, mais aussi plus polyvalent et flexible.

  • Intégré type String peut maintenant enregistrer toutes les données en toute sécurité. Vos heures de programme ou même des jours de travail ne sont plus à cause d'un octet incorrect Unicode désordre échec. Conservez toutes les données de chaîne, alors que la marque qui sont des caractères valides ou invalides, vous pouvez rendre vos applications sûr et pratique pour gérer des données réelles a inévitablement des défauts.

  • La syntaxe est simple, diffusion (Broadcasting) sont devenus les caractéristiques linguistiques de base, qui sont maintenant plus puissants que jamais fonction. Dans Julia 1.0, le type de diffusion et étendre au calcul d'optimisation efficace personnalisé plus facile dans le GPU matériel et d'autres vecteurs, ouvrant la voie à l'amélioration de la performance future.

  • Nommés tuples sont une nouvelle fonctionnalité de la langue, qui permet l'accès aux données par la représentation de nom et deviennent rapides et efficaces. Par exemple, vous pouvez ligne de données est représentée par la ligne = (name = « Julia », version = v « 1.0.0 », presse = 8), et la colonne de version que l'accès row.version, ses performances ne sont pas rangée très efficace la même chose.

  • opérateur de surcharge peut maintenant le point, pour ainsi obtenir le type utilisé syntaxe obj.property et la structure est prévue à l'extérieur signifie le terrain. Ceci est plus facilement en utilisant le langage Python et les classes Java interopérabilité sont de bonnes nouvelles. Propriété accesseur surcharge permet d'obtenir un tuple de données pour correspondre à la syntaxe de la syntaxe de nommage: Vous pouvez écrire table.version pour accéder à la colonne de version de la table, comme une version du même accès row.version sur le terrain une seule ligne.

  • Julia optimiseur plus intelligent que nous l'avons mentionné ici à bien des égards, mais il y a des taches lumineuses de mentionner la valeur. L'optimiseur peut maintenant appeler la constante de propagation par la fonction, vous pouvez faire une meilleure élimination de code mort et l'évaluation statistique. De plus, le compilateur à court terme pour éviter l'allocation wrapper autour d'une longue durée de vie d'un objet devrait également être beaucoup mieux, ce qui rend les programmeurs peuvent utiliser un coût des abstractions de haut niveau pratique sans compromettre les performances.

  • Maintenant, utilisez la même instruction de syntaxe constructeur de type de paramètre d'appel. Ceci élimine l'ambiguïté et la confusion syntaxe dans la langue locale.

  • accord Iteration a été entièrement repensé pour le rendre plus facile d'obtenir une variété d'itérations. Maintenant, un ou deux paramètres pour définir une méthode, plutôt que de définir trois méthodes de fonction génériques distinctes --start, à côté, et fait. Cela rend généralement l'utilisation d'un état de démarrage unique défini ayant une valeur par défaut peut être plus pratique pour définir itération. Plus important encore, une fois que nous avons trouvé qu'il est impossible de générer de la valeur peut itérateurs déployer. Le iterator E / S, les réseaux et modèle producteur / consommateur partout, Julia peut maintenant être moyen simple d'exprimer ces itérateurs.

  • Simplifier la portée des règles. Que ce soit le nom global de liaison ou non existe déjà, l'introduction d'une gamme de construction locale sont maintenant les mêmes. Cela permet d'éliminer le « hard / soft » et la différence entre la pré-existante et des moyens que maintenant Julia peut toujours statiquement variable déterminée est locale ou globale.

  • Langue elle-même est très simplifiée, de nombreux composants sont divisés en paquet « Standard Library », ces forfaits offrent ensemble avec Julia, mais n'est pas une langue « de base ». Si vous en avez besoin, il peut vous donner la commodité (pas besoin d'installer), mais ne sera pas imposé sur vous. À l'avenir, cela permettra aussi la bibliothèque standard indépendante de contrôle de version et se mettre à niveau à Julia, leur permettant un développement plus rapide et des améliorations.

  • Nous avons tous API Julia examinées attentivement afin d'améliorer la cohérence et la disponibilité. Beaucoup nom d'héritage ambigu et le mode de programmation inefficace a été renommé ou reconfiguré pour fonction plus élégante correspondance de Julia. Cela a incité une collection de plus cohérente et cohérente afin d'assurer que les paramètres suivent une norme cohérente dans le genre de langage, et au moment approprié (maintenant plus rapide) incorporée dans le paramètre clé API utilisée.

  • Autour de Julia 1.0 nouvelles fonctionnalités nouveau package extérieur est en cours de construction. Par exemple:

  • Nous améliorons le traitement et la manipulation des données des écosystèmes, afin de tirer profit du manque de soutien pour les nouveaux

  • Cassette.jl (https://github.com/jrevels/Cassette.jl) fournit un puissant mécanisme de transcodage Julia injecté peut passer compilateur, réalisant ainsi l'analyse post-mortem, et d'étendre le code existant. En plus de l'analyse et des outils de débogage pour les programmeurs en dehors, et même peut distinguer automatiquement les tâches d'apprentissage de la machine.

  • supports d'architecture hétérogène a été grandement améliorée, et la séparation plus la configuration interne du compilateur Julia. Intel KNL seulement travailler avec Julia. GPU Nvidia en utilisant CUDANative.jl (https://github.com/JuliaGPU/CUDAnative.jl) programme de logiciel, les ports Google TPU sont en cours d'élaboration.

  • En outre, il existe de nombreuses autres grandes et petites améliorations Julia 1.0. Pour une liste complète des modifications, consultez le fichier: https: //docs.julialang.org/en/release-0.7/NEWS/.

Dans l'article 2012, « Pourquoi nous créons Julia » dans ce blog (https://julialang.org/blog/2012/02/why-we-created-julia), nous avons écrit:

Il n'est pas complète, mais il est temps de la version 1.0 - la langue que nous créons est appelée Julia.

Maintenant, nous sommes en avance de frapper la version 1.0 de la détente, mais le moment où il a été libéré déjà venu. Sincèrement fiers de personnes au fil des ans ont contribué à cette porte un langage de programmation moderne.

Lien original:

https://julialang.org/blog/2018/08/one-point-zero

(Cet article est reproduit avec la permission de l'avant AI, ID:. Ai-avant, afin de cliquer pour lire le texte original)

New Ji-won AI MONDE 2018 Assemblée de billets Early Bird []

En solde!

New Ji-won aura lieu le 20 Septembre AI Conférence mondiale des 2018 à Beijing National Convention Center, a invité l'apprentissage machine parrain, en mettant l'accent sur le professeur de l'intelligence artificielle à la CMU Tom Mitchell, Maike Mark Si-Tiger, Zhou Zhihua, un grand Cheng Tao, Chen Yiran AI et d'autres dirigeants et le destin de l'humanité.

Le site officiel de l'Assemblée générale:

Maintenant jusqu'au 19 Août New Ji-won nombre limité de billets Early Bird à la vente, la communication étroite avec le leader mondial de l'IA, l'intelligence artificielle, témoin de l'industrie mondiale à pas de géant.

  • Billets de ligne active lien:

  • billet de ligne active de code à deux dimensions:

Temple Ville pour mener à bien « les gens de service d'action en bonne santé » une grande clinique gratuite
Précédent
La Chine va jouer la piste la majeure partie de la ville, se est avéré être ici
Prochain
Comment une tasse de mains parler faire du café?
La nouvelle année, chaque rêveur causer!
Si vous avez un monde de conte de fées, il doit être à Disney!
coupe Musk son bras droit! Tesla SVP ingénierie tracée à partir, rejoint les véhicules sans pilote d'Apple
Qui est le plus chinois | anniversaire personne
Électricité statique passagers Nissan Jin, 100000 petits VUS Showstopper est l'atterrissage?
Okinawa rencontrer le plus beau moment en été
Le comportement de conduite arrogante plus endémique, ce qui vous le plus amer
« Nips 2018 défaut majeur » divulgation de l'information d'examen, plus de 1000 conférence universitaire examen en double aveugle impliqué
billets d'avion à bas prix, de la beauté et coexiste cuisine Ceylan qui vous attend!
JAC joint-venture de Volkswagen semble être des pertes de trading?
« 92 anniversaire de la naissance de Marvin Minsky » pionnier AI vie légendaire, a personnellement dirigé « AI hiver »