• 最好的Julia语言


    做大数据/机器学习方面的工作多年. 最为熟悉 C++, Matlab/R/Python/Java/Scala 都用过.但每种语言的体验总觉得有缺憾.


    一个理念: 如果不是语言专家, 那么编程语言, 仅是实现想法的工具. 更为重要的事情如何快速准确地实现功能和想法, 而不是消耗在工具本身. 

    1. C++

        与 C 语言一样, 计算性能是公认的, 没有多少语言比它们更快了. 但正由于其离机器原理更近, 细微的计算资源控制(尤其是内存管理,指针等)等原因, 使得其开发和维护成本很高. 要快速实现想法C++ 肯定不是最好的选择. 

    2. Matlab/R

        读博期间, 很多人都会选择 Matlab 做实验, 因为功能强大, 有你所想, 而 R 语言则是开源的解决方案.  但其收费和臃肿的环境, 总是让人心里有疙瘩. 而且性能真的不行.  对于那些基于很多或很大数据做训练学习的算法, 简直无法忍受

    3. Python

      python 的简洁和强大的第三方功能支持, 使得实现起来, 高效很多. 确实是验证想法的好环境. 但在用其实现一个分布式系统, 并部署生产的过程中发现, 其在很多地方都会有不明所以的坑. 而且其全局锁让追求高并发的系统很无奈, 尤其是计算密集的系统.

    还有一个极度不认可的就是, 那个一定要对齐的格式要求.

    4.  Scala

    Scala 的使用是经常需要开发分布式的大数据算法, 而 Spark 经常是首选, 在 Spark 的接口中, Scala 更为全面, 而且逻辑与 spark 的设计实现更为贴近, 所以倾向于 SCala.

    但 Scala 的语法简直是外星语, 纷繁芜杂的符合和设计方式, 简直让人头大. 

    这是个万花筒, 但对于需要标准化和可维护性的工业生产环境, 选择 Scala 也许是个错误的选择.

    总结:

    最近, 在了解 Lua 的过程中, 竟然发现了一种专门为"并行"数值计算设计的语言, Julia

    在了解和试用之后, 发现这才是适合我的最好的语言.

    1. 可调用 C/Python 库, 聪明的做法, 可以更好的继承现有的成果

    2. 类似 matlab 和 python 的语法, 更换语言的学习成本低, 而且实现起来天生就像python那样高效

    3. 接近于 C++ 的性能, 在很多情况下已经足够了

    4.  开源的做法, 使得语言具有强大的 Package后备力量, 在生态上已经初具规模

    5. 天生的并发和分布式支持, 省很多事情了

  • 相关阅读:
    SQL Server逻辑读、预读和物理读
    SQL Server 视图
    SQL Server存储机制
    SQLServer
    数据库配置问题整理贴
    分析存储过程重编译的起因以及避免
    存储过程重编译的优点、缺点、确定引发语句
    查询反模式
    查询反模式
    状压DP的总结
  • 原文地址:https://www.cnblogs.com/kekexuanxaun/p/9459361.html
Copyright © 2020-2023  润新知