Julia 入门到放弃

和Julia的一夜情结束了0.0 ,渣男茶茶白拥抱 SageMath咯

学完Python之后,觉得Python更像一个工具箱,啥都能干,但是我真的需要一个(轻量级)科学计算的工具,而不是像Matlab一样的付费巨无霸(我不想再用盗版软件了,学校正版Matlab 2020 20G吃不消!)而C/C++在科学计算中因为原生精度问题,又没有特别权威的高精度包,所以也不太行。我甚至有自己学着去开发一种新型语言来打破当前尴尬的局面,直到我知道了Julia ,已分手,理由:

有C快吗?没有!有Python方便吗?没有!安装个包就跟求它借100w一样(国内源安装不了)

免费是取代MATLAB,Mathematics的理由吗?不是,收费是一件好事!!!

学术界的高性能计算的人员,它们学校至少买了MATLAB或者Mathematics好吧!

非上述人员,真的需要高性能计算吗???再说了真的性能高吗?向量化计算竟然还没有循环快,我吐了好吧

我会的语言

我已经会写,C/C++,Matlab,Python了,接触过Java, Swift, Lua(现在全忘了)。又要新学一门语言其实我是抵触的,并且Julia的语法简直就像 没有分号的Matlab ,我是很不喜欢的,依然想着某天我也能设计一个仅用于科学计算和OI/ICPC 的语言!

  • 用C/C++ 写高效小巧的功能
  • 用Python处理日常小功能,计算器,模拟鼠标键盘控制,图片处理,视频处理,小游戏开发。
  • 用Julia 写复杂的科学计算用以取代Matlab。VSCode 一定要选择一个工作区文件夹
  • 用Matlab(学校版)做演示和交互,Wolfram Mathematics(网页版)做验算。

设计理念

Julia 设计理念竟然是传承各种语言的优势,丢弃各个语言的不足的一种动态编程语言,可是这不是既要马儿跑,又要马儿不吃草吗?它借助LLVM和JIT技术。

Julia有交互界面,现在语言感觉都能像Python,Matlab一样支持交互界面,REPL REPL : Read Eval Print Loop : 交互式解释器。

高精度,支持向量,矩阵,传值而非传引用,速度快是我向往的

Julia 入门

基本运算

太接近数学符号了!不亏是MIT出来的。

  • 支持非ASCII码当运算符我是接受不了的

  • typeof 查看类型

  • Bool 类型: true, false

  • 整数有Int8,16,32,64,128, 和U 版本(越界取模),还有高精度BigInt(都会自动向这个转化)

  • 浮点数有Int16,Int32,Int64,有Inf,-Inf,NaN,eps,还有高精度BigFloat(当然了不可能是精确值)

  • 有理数和复数自带(//表示有理数,im表示虚数i)

  • 从1开头索引,我有点接受不了

  • 整除: ÷ (或者用 div) 异或:(或者用 xor)

    div 向0近似,fld向 -inf近似,cld 向 +inf 近似

  • Base.operator_precedence 看运算符优先级,Base.operator_associativity 看是左结合还是右结合

  • math包内建

  • 养成运算符之间加空格的好习惯

  • 短路求值是个好东西

  • dot运算,竟然比for循环慢???搞笑?这玩什么

  • 好像要Python一样有Yield 目前没找到

  • !放在函数名后面表示输入参数会被改变(但是不一定要这么做)

  • Copy跟Python一样是浅Copy

包的国内镜像

装个包,人装傻了!

USTC的用不了,所以用ZJU的了

先把Registry.toml 文件下载下来,放在 C:\\Users\\Administrator\\.julia\\registries\\General\\

1
(v1.4) pkg> registry add https://mirrors.zju.edu.cn/julia/registries/General.git/
欧尼酱,人家想喝可乐!