必威精装版官网下载必威手机版官方网站 必威精装版官网下载必威手机版官方网站
400-800-3688

  • 行业案例
  • 产品服务
  • 新闻&动态
  • 行业发展
  • betway 体育客户端动态
  • 公司动向
  • 技术前沿
  • 必威精装版官网下载党支部
  • 招贤纳士
  • 首页
  • 技术前沿
  • 新闻内容
  • 办公必威手机版官方网站定制开发语言及优缺点

    发布者:管理员 点击数:825 发布时间:2020-01-09
    摘要:办公必威手机版官方网站定制开发会用到哪些开发语言,他们的优缺点都有哪些

     办公必威手机版官方网站定制开发会用到哪些开发语言,他们的优缺点都有哪些,现在湖北必威精装版官网下载必威手机版官方网站定制开发为您详细介绍。

    C

    优点:

    所有主流操作系统的API都是C API。很多底层API也都是C接口的,比如OpenGL、CUDA。所以你必须通过C来掌控这一切(要么直接的,要么间接的)。

    语言比较轻量化,特性少,编译速度快。

    基本没有任何额外的运行时代价,执行效率几乎是最高的。

    可以不依赖runtime。

    各种编译器intrinsics基本都是C接口的,比如SIMD指令。

    缺点:

    没提供什么像样的建构能力,宏比较弱,不易于构建比较大的体系。

    本身没有任何运行时检查,有错误也未必立即死。

    各种未定义行为,不太利于新手。

    C++

    优点:

    由于在语言设计时尽量不引入运行时代价,执行效率实际上可以和C一样高。

    为数不多的既可以设计复杂系统,又保持极高运行效率的语言。

    由于语言几乎兼容C,可以使用C的几乎所有接口和编译器intrinsics。

    语言特性多样。

    缺点:

    由于坚持与C兼容

    有各种历史遗留问题。

    很多分明应当是语言特性的功能,非得用库实现。

    继承了C所有的缺点。同时由于语言复杂化,同样的缺点爆发的时候会更加复杂化。

    标准库在最近几年之前,一直是半残。现在标准库的字符串也依然是半残。结果各个架构都自己撸一套标准库。

    模板编译炸了会刷屏。

    由于语言特性太多:

    对于新手极其不友好。

    编译速度慢得丧心病狂。

    编译器非常难写。现在实质上就微软、GNU GCC、Clang、Intel ICC这几家像样的编译器。

    补充一下C++的语言特性。相比于C,主要引入的重要特性有:

    模板,这就是巨大一坨东西。

    最基本的用法,就是当做模板,用来写通用容器。

    有个特别鬼畜的特性:“模板匹配失败不是一个错误”,利用它来实现很多语言特性,比如查看某个类型是否具有某种性质(想办法弄成如果具有,就会匹配到某个模板上,如果不具有,就匹配到另一个模板上)。

    新的语言标准允许变长模板,于是越发鬼畜。

    作用域自动行为:非基本类型的对象,在退出作用域时,会自动调用析构函数。用这个实现自动释放的句柄类,是C++的一个重要的资源管理的方法。

    C++11引入了明确的右值引用、移动语义,用来擦一些恶心的沾满了屎的屁股。

    对了还没提到,C++明确区分对象、对象指针、对象引用这三种东西,因此才需要右值引用这张草纸来擦屁股。与之相比,绝大部分的托管语言里面的对象,实际上都是自动管理的对象引用。

    相比之下,类、继承、多重菱形继承、虚函数表什么的,简直就是纯洁无害的小白兔。

    Java

    优点:

    用的人多。

    包装完好,不那么容易出现难以调试的错误。

    在不少条件下,运行效率可以非常高。

    库多。

    扫描式垃圾回收,心智负担极小。

    缺点:

    扫描式垃圾回收,不能确定资源回收的时机,集中回收时可能拉低系统响应。

    需要runtime,用户未必有。

    Python

    作为胶水语言,用的人够多。

    numpy是标准库,scipy发展完善,有利于数据处理。

    数据可视化库比较易用。

    缺点:

    人在做,天在看,缩进分块留祸患。

    没有大括号作为作用域,with ... as ...非常粗鄙,控制能力不足。

    最通常的CPython实现,运行效率极其低下,线程是假的,是化学成分的,其实根本就没有多线程。

    Matlab

    优点:

    自带各种数学处理能力。

    由于历史积累,集成了极多的功能模块,比如我们经常会用滤波器及其设计器。更复杂的还有各种仿真、有限元工具,都是工业级的。

    数据可视化库比较易用。

    缺点:

    收费且相当昂贵。

    自身的运算效率并不算太好。

    数组的下标从1开始计数,而且内外顺序和大部分语言都是反的。。。

    通常来讲:

    Matlab:数学算法开发、原型。

    Python:逻辑原型,胶水语言,必威手机版官方网站工程自动化完成(实际上我会用Perl)。

    C:核心功能。

    C++:核心功能,或者干脆搭整个系统。

    实际上,复杂系统也可以用C、C++实现各个计算内核、机制,然后暴露脚本接口,用脚本语言组织业务逻辑(Lua用的最多,其次是Python和Javascript)。