主要说第五节吧
原文 Under a Creative Commons license by-nc-nd 4.0
5. Julia in machine learning: Open issues
5.1. Overview
5.2. A developing language
Although Julia has developed rapidly, its influence is far less than that of other popular programming languages. After several versions of updates, Julia has become relatively stable, but there are still several problems to be solved.
Julia’s grammar has changed considerably, and although these changes are for the sake of performance or ease of expression, these differences also make it difficult for different programs to work together.
One of Julia’s obvious advantages is its satisfactory efficiency; but to write efficient code, one needs to transform the method of thinking in programming and not just copy code into Julia. For people who have just come into contact with Julia, the ease of use can also cause them to ignore this problem and ultimately lead to unsatisfactory code efficiency.
可能是我没怎么用过老版的 julia,有了 1.0 后,当然是直接用最新的稳定版或 LTS 啦。
坚持用老版就是给自己找坑。
编程范式的问题,我感觉 julia 没带来太多新概念,一般来说直接写就好了,写完了再性能测试一下,照着性能建议去改,熟练了就能直接写出高效的代码。因为 julia 的 for 很给力,所以一般不会发生 matlab 不向量化就很慢的情况。
5.3. Lack of stable development tools
Currently, the commonly used editors and IDEs for the Julia language include (1) Juno (Atom Plugin), (2) Visual Studio Code (VS Code Extension), (3) Jupyter (Jupyter kernel), and (4) Jet Brains (IntelliJ IDEA Plugin). According to [137], Juno is currently the most popular editor.
These editors and IDEs are extensions based on third-party platforms, which can quickly build development environments for Julia in its early stages of development, but in the long run, this is not a wise approach. Users need to configure Julia initially, but the final experience is not satisfactory.
Programming languages such as MATLAB, Python and C/C++ each have their own IDE, which integrates the functions of code writing, analysis, compilation and debugging. Although editors and IDEs have achieved many excellent functions, it is very important to have a complete and Julia-specific IDE.
作者觉得有自己的 IDE 很重要,如果有个像 spyder / RStudio 那样的的确很不错。
不过重要的还是完善的功能,VSCode 的插件好好完善一下我感觉就行了。
想要真正的 IDE 只能看 JetBrains 有没有兴趣,或者是等 Julia Computing 赚了大钱烧一个出来。
5.4. Interfacing with other languages
Currently, PyCall and Call are used in Julia to invoke these existing libraries, but Julia still needs a more concise and general invocation method. More important is finding a method to ensure that the parts of these calls can maintain the original execution efficiency or the execution efficiency of the native Julia language.
At the same time, it is also very important to embed Julia’s code in other languages, which would not only popularize the use of Julia more quickly but also combine the characteristics of Julia to enable researchers to accomplish tasks more quickly.
首先一个笔误,是 ccall
。
其次有了 C 的接口这个就已经非常通用了,还要“更简洁、更通用”那估计只能内联汇编了。
Julia 嵌入其他语言应该能改进的地方还是很多的。脚本语言很多都有嵌入式的形态,julia 也可以有一个 mJulia。
5.5. Limited number of third-party packages
这个是生态问题,急不得。