首页 程序笔记 为什么强大的C++编程语言的流行程度不及Java和Python?

为什么强大的C++编程语言的流行程度不及Java和Python?

摘要

因为编译和运行都非常接近CPU,C++是非常强大的编程语言,C++使您的代码非常快,但您必须编写大量代码来实现。尤其是用C++进行多线程或异步编程,是最可怕的噩梦,很难使用。然而,现在使用的很多操作系统都是用C++编写的,计算机上几乎大量的驱动程序也都是用C++编写的。所以,C++的确是非常强大的编程语言。

为什么?

C++曾经是世界上最受欢迎的语言之一

  • 俗话说,当你只看到钉子时,所有问题都可以用锤子解决。就在20到30年前,几乎所有问题都是钉子。大多数软件不是数据库,财务,游戏或文字处理器。它们是操作系统,BIOS,驱动程序,而当您的应用程序运行时,这几乎是当时唯一的运行方式。制作文字处理器时,必须为所有打印机制作驱动程序。人们确实选择了您的软件,因为他们支持自己的图形卡和打印机,而您必须自己编写所有软件。
  • 然而现在,所有事情都变了,CPU已普遍是多核,如今您可以在1个cpu上拥有12个核,但是每个核的运行速度都比早期型号慢。因此,为了获得更好的性能,必须编写多线程代码。这就是为什么C++如今不那么流行的原因之一。
  • 另一个原因是现在的程序员比二三十年前多得多。人们不再需要大量的程序员制作操作系统和驱动程序,而是制作网站,卡路里计数器,星图,游戏,拼图,数据库,财务应用程序等等。这些应用程序不必运行很快,因为它们99%的时间都是在等待用户输入,而且现在的计算机运行速度非常快。您不必从头开始编写C++程序。
  • 如今,有一些框架可以使C++看起来像普通的编程语言,可以执行普通的应用程序。您可以编写任何应用程序而无需执行单个指针链接列表或进行任何按位操作,但如果需要,可以在其中进行。
  • C++功能强大,因为您可以在任何级别输入它。您可以是一个完整的初学者,也可以是具有40年编程经验的astro物理学家,而C++正是您所追求的。在某些情况下,新的语言和工具可以用更少的时间更好地解决您的问题。您所有的问题都不再是钉子,因此请选择合适的工具或适合您工作的工具。但是请知道,您今天用于制作应用程序和解决方案的大多数工具都是C++构建的。

结论

综上所述,C++为什么流行程度不及Java、Python,甚至是C#,主要还是C++更偏向于更底层的开发,而如今,操作系统,驱动程序都非常完备,并且也不需要那么多程序员去编写。更多的程序员编写的是比较顶层的应用程序,编写更简单,很多东西拿来就用,像搭积木一样就把应用开发完成了。所以,C++当然就无法那么流行了。

站心网

摘要 因为编译和运行都非常接近CPU,C++是非常强大的编程语言,C++使您的代码非常快,但您必须编写大量代码..

为您推荐

让别人舒服的程度,决定你的人生高度

1.李嘉诚的平易近人有人说,真正的牛人都是非常平易近人的。李嘉诚就是这样一个人。无论面对高官巨贾,还是普通众人,他都表现出平易近人的态度,不端架子,照顾每个人的情绪,让对方感到和风般的舒服。地产行业大佬..

语言之争与读书有感

移动互联网无处不在的今天,不同的学习方式让我们受益颇多。有人喜欢通过手机阅读各类技术专家的公众号分享;有人喜欢通过逛逛不同的博客,来了解当前时下的技术;也有人喜欢通过社区的形式,跟优秀的导师们一起梳理..

写给那些想要自学成才的java程序员

自学java没那么难一:个人经历我的大学:第一年泡在图书馆看杂七杂八的书,跟学习毫无关系。第二年疯狂打LOL,从白银打到黄铜(黄铜守门员)。第三年上半年,被某人点醒,学习了整套C#知识体系,某马。下半年又决定..

跳槽!Java面试经验总结

0.前言笔者在不足两年经验的时候从成都一家金融科技中厂跳槽到杭州阿里淘天集团,又于今年5月份从杭州淘天跳槽到成都字节。自认为自己在面试这方面有一点心得,处于记录和分享的目的便有了此文,此文纯主观,也许对3..

Java中String类常见的方法

以下介绍字符串常见的几个方法。介绍String类在 Java 中,String类是一个代表字符串的类,具有以下特性:不可变性:String对象一旦被创建就是不可变的,即它们的值在创建后不能被更改。任何对String对象的修改操作实..

.NET 主程序的.dll.config文件有什么用?

.dll.config 文件通常是在开发过程中自动生成的,它的主要作用是为某个类库(.dll 文件)提供一个独立的配置文件,以便开发者可以为该类库单独定义或测试配置项。以下是生成 .dll.config 文件的原因和机制:1. 配置..

2025年编程语言需求排行榜

随着技术的不断进步和市场需求的变化,2025年,哪些编程语言将成为企业的首选?在全球,由于技术短缺、人口变化以及对新技能的需求,编程语言的选择和需求也在迅速变化。本文将为您揭示未来最受企业青睐的编程语言,..

CPU、GPU 和 TPU 之间有什么区别?

什么是 CPU、GPU 和 TPU?它们都是用于计算任务的处理器芯片。可以把你的大脑想象成一台计算机,能够完成诸如阅读书籍或解决数学问题的任务。每一项活动都类似于一个计算任务。例如,当你用手机拍照、发送短信或打开..

多语言网站数据库文章表设计

设计一个支持多语言的网站数据库时,应该确保内容能够方便地扩展和管理。以下是多语言数据库表设计的关键原则和示例:设计原则分离内容与语言:将与语言相关的内容独立存储,不直接硬编码到主要表中。每个支持多语言..

Tesseractjs 前端OCR识别提取图像文本字符工具 支持 100+ 种语言

Tesseract.js 简介Tesseract.js 是一个基于 Tesseract OCR 引擎的开源 JavaScript 库,用于在浏览器和 Node.js 环境中执行光学字符识别 (OCR)。它的特点是无需依赖服务器端支持,完全在客户端执行 OCR 操作。Tessera..

.NET9 F#有什么新特性?

F# 9 的新特性简介F# 9 是 .NET 9 的一部分,带来了多项增强功能,旨在提升开发效率和语言特性的一致性。这些改进不仅为现有的 F# 开发者提供了更强大的工具,也使新手更容易上手。以下是主要特性概览:1. 改进的类..

尤雨溪的VoidZero到底是什么?

尤雨溪创立的VoidZero是一家致力于打造下一代JavaScript工具链的公司,其核心目的是解决当前JavaScript开发工具在性能和效率上的痛点。这个工具链的目标包括提高速度、减少重复处理,并用统一的架构简化开发者的操作..

什么是.NET渐进式Web应用(PWA)

.NET 渐进式 Web 应用(PWA,Progressive Web Apps)是一种结合了 Web 应用的跨平台性和本地应用体验的应用程序。通过 PWA 技术,.NET 开发者可以使用 Blazor 和 WebAssembly 创建 Web 应用,支持在各种设备和操作系..

.NET9在ASP.NET MVC有什么更新?

在.NET 9 中,ASP.NET Core MVC 和其他 ASP.NET 功能进行了多项增强,以改善开发者的体验和应用性能:静态文件处理和缓存优化:ASP.NET Core MVC 现在支持静态文件的“指纹化”处理,发布时会生成包含唯一..

HTQL 提取和查询HTML和XML数据的轻量级查询语言

HTQL(Hyper-Text Query Language)是一种用于提取和查询HTML和XML数据的轻量级查询语言。HTQL提供类似SQL的语法,可以方便地从网页或其他基于标签的文档中提取结构化数据,而无需解析整个文档。这使得它在爬虫、数..

工作这么多年,你能向新人解释清到底什么是面向对象编程吗?

面向对象编程想必大家都耳熟能详,但是写了这么多代码你对面向对象有清晰的认识吗?来看看这几个问题:到底什么是面向对象编程?和面向过程编程有什么区别?什么又称为面向对象语言、面向过程语言?用面向对象语言写..

简单优雅的Java ORM

Java的ORM框架有很多,但由于Java语言的限制大部分都不够优雅也不够简单,所以作者只能另辟蹊径造轮子了。照旧先看示例代码了解个大概,然后再解释实现原理。一、ORM示例Insertpublic CompletableFuture<Void> inser..

技术实力的本质是什么?

背景今天,我们来讨论一个问题:技术实力的本质究竟是什么?在工作中,你可能会遇到,为什么他的实力不如我,他却可以晋升?在面试中,你可能会遇到,我把系统性能优化了10倍,为什么面试官还是看不上我?为什么?到..

轻量级 JavaScript 动画库 mo.js使用教程

mo.js 是一个强大的 JavaScript 动画库,专为在网页项目中创建复杂动画和运动图形而设计。它注重提供平滑、动态的动画效果,并通过简单、模块化和灵活的组件让开发更加便捷。mo.js官网地址:https://mojs.github.io/..

DrissionPage 基于Python的网页自动化工具

在数字化时代,网页自动化工具成为开发人员和数据分析师的得力助手。今天,我们将深入探索一款名为 DrissionPage 的全能网页自动化工具,它以其强大的功能和优雅的语法,成为 Python 程序员的新宠。什么是 DrissionP..

发表回复

返回顶部