julia 编程语言
A bird’s eye view of Julia as a Programming language, it’s capabilities and shortcomings
鸟瞰Julia作为一种编程语言,它的功能和缺点
“Julia”, which got the limelight in the recent years is considered as the Programming Language of the future. Although we have awesome languages in market such as R, Spark, C++, etc., Julia was able to create such impact.There are a bunch of reasons for it. We shall discuss few main points among them.
近年来引起人们关注的“ Julia”被认为是未来的编程语言。 尽管市场上有R,Spark,C ++ 等出色的语言, 但 Julia能够创造这样的影响力,原因有很多。 我们将在其中讨论几个要点。
About me … What can you expect from this article?
关于我……您对本文有什么期望?
I’m an Analyst at a start-up, where we use various Statistical, Machine Learning Techniques to leverage the Client performance by empowering them in decision making. From the inception of my journey in analytics domain, I am curious about learning the concepts of Statistics and Machine Learning Algorithms and implement them in platforms such as R, Python. My team extensively works on Python to build the Base ML framework. After a considerable exposure to Python, I was amazed with the ease of coding & numerous libraries available out there in Python. But when we wanted to run high scale jobs , we had to approach Spark. As part of exploring the alternatives out there, we found some solutions such as using Parallel processing, exploiting GPUs for better performance, etc., Interestingly, we got to know that this problem is called the “Two Language Problem” & there’s a language “JULIA”, designed to solve this very problem.I’ll give a detailed explanation of this “Two language Problem” in the later sections.
我是一家初创公司的分析师,在该公司中,我们使用各种统计,机器学习技术来增强客户的决策能力,从而发挥客户的绩效。 从我开始从事分析领域的旅程开始,我很好奇要学习统计和机器学习算法的概念并将其实现在R,Python等平台中。 我的团队广泛使用Python来构建Base ML框架。 在大量接触Python之后,我对Python的易编码性和众多可用库感到惊讶。 但是,当我们想进行大规模的工作时,我们不得不联系Spark。 作为探索替代方案的一部分,我们找到了一些解决方案,例如使用并行处理,利用GPU以获得更好的性能等。有趣的是,我们知道此问题称为“ 两种语言问题 ”,并且存在一种语言“ “ JULIA”,旨在解决这个问题。我将在后面的部分中详细介绍此“两种语言问题”。
I started exploring Julia out of my curiosity and found fascinating similarities between Julia & Python.When you complete this article, you’ll be knowing the virtues of Julia, it’s capabilities in multiple domains and the shortcomings of it. Most of the info in this article is available in the official website of Julia. They have released it’s new stable 1.5.1 version recently. From this blog, you can expect to get a bird’s eye view of Julia, it’s purpose, perks and shortcomings, apart from certain interesting facts that may trigger you to begin programming in Julia.
我出于好奇而开始探索Julia,并发现Julia和Python之间令人着迷的相似之处。当您完成本文时,您将了解Julia的优点,它在多个领域的功能以及它的缺点。 本文的大多数信息都可以在Julia的官方网站上找到。 他们最近发布了新的稳定的1.5.1版本。 从这个博客中,您可以期望获得Julia的鸟瞰图,目的,特权和缺点,以及某些有趣的事实,这些事实可能会触发您开始使用Julia编程。
WHAT ’s Julia?
Julia是什么?
Julia is an open source, high-level dynamic programming language. You can write and deploy codes easily using Julia. Julia started its development in 2009 and released its 1.0 version in 2012
Julia是一种开源的高级动态编程语言。 您可以使用Julia轻松编写和部署代码。 Julia于2009年开始开发,并于2012年发布了1.0版本
The Purpose:
目的:
Back in 2012, there was a conception that a programming language can be either fast or productive, but not both. This requires us to approach multiple languages due to lack of some important features in one language. For example, writing the original code in Python and later scaling it to Bigdata platforms like Spark, etc., This problem in programming world is called as the “TWO LANGUAGE PROBLEM”. Julia was designed to overcome this problem by providing a platform that can not only perform all the functions but can also scale it to Higher Dimensional data.
早在2012年,就有一种观念认为编程语言可以是快速的,也可以是生产力的,但不能兼而有之。 由于一种语言缺乏某些重要功能,这就要求我们使用多种语言。 例如,用Python编写原始代码,然后将其缩放到Spark等Bigdata平台。在编程世界中,此问题称为“两个语言问题” 。 Julia旨在通过提供一个不仅可以执行所有功能而且还可以将其缩放为高维数据的平台来克服此问题。
Julia’s Tagline summarizes the virtues of Julia in crisp way:
Julia的标语以清晰的方式总结了Julia的优点:
Looks like Python, feels like Lisp, runs like C (Fortran)
看起来像Python,感觉像Lisp,运行像C(Fortran)
It implies that an amalgamation of the best of all worlds has been achieved through Julia. Also, the creators of Julia, Jeff Bezanson, Stefan Karpinski, Viral B. Shah, Alan Edelman , being experts in MATLAB, Lisp, Python, Ruby and Perl have tried to create a solution that brings out the best features of these platforms and also addresses the shortcomings of them. They were working in areas such as Scientific Computing, Machine Learning, Data Mining, Large-Scale Linear Algebra, Distributed and Parallel Compu