为什么有些项目会使用多种编程语言?

合集 · 直观理解计算机技术【CoreDumped】 (68)

  1. 11:03
    代码中指定变量类型为何如此重要?
  2. 13:46
    栈为何如此之快?
  3. 17:53
    堆为何如此之慢?
  4. 19:56
    动态数组的内部机制(ArrayList VS LinkedList)
  5. 15:37
    探索计算机并发与多任务处理的历史
  6. 12:54
    晶体管是如何运行代码的?
  7. 16:12
    晶体管是如何记忆数据的?
  8. 18:47
    制作一个CPU来运行程序
  9. 11:23
    计算机如何将字符串转换为数字
  10. 17:18
    动态随机存取存储器(DRAM)的工作原理
  11. 16:05
    计算机处理器是如何运行条件和循环的?
  12. 6:51
    一个程序不是一个进程
  13. 14:52
    深入理解进程,如何进行上下文切换?计算机科学中最深刻和最成功的想法之一。
  14. 20:20
    处理器内部的单个位如何保护操作系统的完整性?
  15. 13:14
    计算的心跳:时钟如何推动 CPU 前进?
  16. 14:22
    英语原声版-计算的心跳:时钟如何推动 CPU 前进?
  17. 14:15
    (英语原声)进程间通信:共享内存或发送消息
  18. 12:29
    (中文配音)进程间通信:共享内存或发送消息
  19. 14:59
    (中文配音)为什么单核处理器需要线程?
  20. 16:07
    (英语原声)为什么单核处理器需要线程?
  21. 9:26
    (中文配音)多核系统上的线程
  22. 11:27
    (英语原声)多核系统上的线程
  23. 11:52
    (中文配音)为什么应用程序是特定于操作系统的?
  24. 13:09
    (英语原声)为什么应用程序是特定于操作系统的?
  25. 13:15
    (英语原声)硬件如何在多任务处理中协助软件?
  26. 11:29
    (中文配音)硬件如何在多任务处理中协助软件?
  27. 20:34
    链表的一个实际应用
  28. 45:02
    让你的电脑运行更流畅的奇妙算法
  29. 43:38
    (流畅中文配音)让你的电脑运行更流畅的奇妙算法
  30. 19:41
    (原声双语字幕)当程序调用 sleep() 时会发生什么?
  31. 17:57
    (流畅中文配音)当程序调用 sleep() 时会发生什么?
  32. 20:40
    这个简单算法驱动了真正的解释器:Pratt Parsing
  33. 18:19
    (双语字幕)编程中最难以捉摸的Bug:竞态条件
  34. 19:23
    (流畅中文配音)编程中最难以捉摸的Bug:竞态条件
  35. 16:02
    (中文配音)阻止内存攻击的底层电路
  36. 14:51
    (英语原声)阻止内存攻击的底层电路
  37. 18:04
    为什么有些项目会使用多种编程语言?
  38. 19:32
    为什么有些项目会使用多种编程语言?
  39. 17:15
    别再杀进程了!让 Ctrl+C 变成“喵”……(用信号实现)
  40. 19:23
    别再杀进程了!让 Ctrl+C 变成“喵”...(用信号实现)
  41. 19:05
    80 年代避免竞态条件的算法(以及它为何失败)
  42. 19:43
    80 年代避免竞态条件的算法(以及它为何失败)
  43. 22:10
    CPU如何与众多不同设备交互?
  44. 23:52
    (中文配音)CPU如何与众多不同设备交互?
  45. 14:04
    (中文配音)你每天都在用的奇特CPU操作
  46. 13:04
    你每天都在用的奇特CPU操作
  47. 18:04
    (中文配音)历史如何塑造了我们今天仍在使用的编程术语?
  48. 17:42
    (英语原声)历史如何塑造了我们今天仍在使用的编程术语?
  49. 16:41
    为什么有些底层项目里会充满这种奇怪的代码?
  50. 16:39
    (中文配音)为什么有些底层项目里会充满这种奇怪的代码?
  51. 21:35
    编译与解释代码如何共处同一程序中?
  52. 21:30
    (英语原声)编译与解释代码如何共处同一程序中?
  53. 17:09
    【双语字幕】Core Dumped 常见问题的集中回答
  54. 13:36
    【双语字幕】90年代的设计决策阻碍了Python并行化
  55. 12:01
    【中文配音】90年代的设计决策阻碍了Python并行化
  56. 17:51
    Linux创建进程的奇怪方式
  57. 18:14
    【中文配音】Linux创建进程的奇怪方式
  58. 19:49
    CPU如何运行函数?
  59. 19:38
    【中文配音】CPU如何运行函数?
  60. 17:15
    没有人解释的问题:内核的边界在哪里?
  61. 19:36
    【英语原声】没有人解释的问题:内核的边界在哪里?
  62. 35:49
    硬件如何让线程问题不再那么棘手?
  63. 19:47
    为什么在macOS、Windows和Linux上安装应用程序如此不同?
  64. 24:00
    游戏公司真的能破坏你的电脑吗?
  65. 10:43
    一个视频说透“架构”:为什么你的程序换个CPU就可能跑不了?
  66. 14:45
    CPU如何执行有符号和无符号运算?
  67. 19:11
    简单指令, 奇妙算法
  68. 9:26
    当CPU遇到它不认识的指令,会发生什么?😱【底层原理】
Description
https://www.youtube.com/watch?v=XJC5WB2Bwrc
本视频深入讲解了为什么一些项目会使用多种编程语言混合开发,并探讨了这些语言如何在系统层面协同工作:
引子:通常开发者无需考虑底层细节,但在系统级开发中就必须理解多语言的协作方式。
简单示例:Django 框架
后端使用 Python;
前端用 HTML、CSS、JavaScript;
两部分通过网络通信、属于两个不同进程,易于理解。
复杂示例:同一进程中多语言协作
某些项目要求不同语言的代码在同一个进程中运行;
涉及语言互操作性、编译链接过程、运行时环境等系统级知识。
深入讨论:为何不直接用一种语言?每种语言在效率、生态、硬件控制、跨平台等方面有其优势。
低层原理剖析:如 C/C++ 与 Python、Rust 等语言之间的互操作(如 FFI、动态链接库等)。

Comments

Perf_Sakuya 2025-07-26

有时候你会发现你擅长的语言是a,但是语言b有一个很好用的库可以实现你的项目需求,那就得来点胶水代码粘在一起(

♥ 1371 ↩ 39

永不消逝9500 2025-07-26

确实是解答了我的疑惑[doge]自从工作了接触了很多语言后(STL, C, Java, Python, php),我开始渐渐理解为啥要搞这么多语言了[笑哭]虽然说高级语言这一块有很多看起来挺累赘,但是确实都是针对不同的应用场景设计的,说到底就是打包和黑箱思想。不想重复造轮子,那就换一个语言调用轮子[doge]

♥ 835 ↩ 25

阿卡夏zero 2025-07-26

可以试试用c和Python这两个算是特性差别极大的语言开发,就能深刻体会到不同语言的差别有多大 虽然Python写不了底层,但是可以同时拿一个上层应用程序练手。同一个feature,比如文件传输,Python十行代码还支持断点续传ssl证书校验,c写个几百号才把最基础的功能做出来 工具真的很重要,该用什么就用什么,你不会开挖掘机,去重头学挖掘机也比你拿个铲子开山快

♥ 688 ↩ 29

Luxni 2025-07-26

全栈和全干的都沉默了。

♥ 429 ↩ 13

吔柠檬的滑稽 2025-07-26

我用啥语言是我能决定的吗?还不是看我缝的轮子是用啥写的。就比如用go开发个准考证发布系统,偏偏go的pdf库死活搞不定中文字体,那我咋办?只能让AI写个Python脚本然后调用了[doge]

♥ 151 ↩ 2

马云腾之父 2025-07-25

我不知道有没有人提出过,我有一个想法,只使用一种编程语言来编写程序,但是这种语言有不同的模式,比如c模式,Java模式,rust模式等等。 上面的模式不是说照抄,相当于一种特性,在一个文件中声明后,就可以在这个文件中写对应模式的代码,比如申明c模式,就可以使用指针,Java模式就不可以使用指针,但是无需手动回收内存。 这样的话,无论使用什么模式 代码能看懂大概,理解一个模式,比学个新语言好多了,毕竟基本的语法不会变

♥ 238 ↩ 75

南端世界-SouthCraft 2025-07-25

编译/解释语言混合那期烤好了厥我[doge]

♥ 118 ↩ 17

文剑丶水又二一 2025-07-25

这个问题确实像个刺一样困扰我,让我不理解为什么会有这么多编程语言,只有一个不就行了吗? 我暂时把不同语言理解成不同的软件,同样功能的软件千奇百怪,来类比理解这个问题。

♥ 139 ↩ 86

技术Flow 2025-07-25

中文配音白天有空再弄,今天电脑WIFI老是莫名其妙掉线,导致连接用于配音的远程服务器频繁中断。

♥ 135 ↩ 20

4吨皮皮蛙 2025-07-25

最终其实还是没解答问什么要用那么多编程语言,我想应该就是发挥各自优势吧

♥ 70 ↩ 6

是涛涛菌啊 2025-07-25

其实就很大一部分是生态的问题

♥ 58

奥丁马 2025-07-28

这是我听的最好的讲预编译,编译,汇编,链接这个过程的视频,这比大学里面那个本校自己东拼西凑甚至事例代码都是错的❌的书好的多的多的多,只能说编程这行业,还是老外的知识点更清晰易懂[doge][笑哭][笑哭] 最后一步的链接,还顺带解决了为啥一个项目能用很多种语言的终极疑问❓,最后大家都是机器码,就没有区别了,动态链接起来效率同样很高[doge] 不过跨语言调用也得遵循类似于tcp/ip这样的通信标准,毕竟汇编指令可能不同,api≈abi,还终于理解了c语言的extern这个关键字原来是给编译器看的,让这个函数遵守其他语言共同遵循的标准,只懂c,不懂go,rust等语言[笑哭][doge]

♥ 52 ↩ 2

祢尔今天画什么 2025-07-27

大二的课设就是要做人工智能大作业,做了个文本意图分类,但是当时只会前端vue后端spring,所以怎么把python里的模型给在java的后端调用就卡了我一周进度。最后死线前一天用flask紧急搓了个后端把作业交了。但这个问题还在困扰我,请问在python开发的模型如何在java后端中调用呢

♥ 51 ↩ 17

tonikroos_8 2025-07-26

反正有了copilot基本上语言边写边学就行

♥ 61 ↩ 10

cjgbd 2025-07-26

除了性能差距,最大的原因其实是现有库已经选择了什么技术栈,你为了集成就要选择它

♥ 47

不锈钢豆腐 2025-07-25

我现在做的tauri的项目涉及6种语言,js、java、rust、js、sql、kotlin、objective-c[滑稽]

♥ 57 ↩ 13

账号已注销 2025-07-26

我觉得主要是发挥各个的优势。 比如我有个2D游戏引擎项目,语言用了C、Python、Cython。 为什么不用纯C/CPP?因为我需要使用Python的生态,比如嵌入AI、爬虫等等。 那为什么不用纯Python?因为慢。 当然也可以在C里嵌入Python解释器,但说实话有些我没有自己实践,不敢操作。

♥ 56 ↩ 9

恐咖兵糖 2025-07-25

见过有些人会在leetcode题中用c嵌入汇编取得更高的性能。

♥ 50 ↩ 12

神圣的f2啊 2025-07-26

我感觉所谓的语言这么多年下来 我感觉比起语言所能做的更多的是语言背后的社区群体 就例如python的语法就注定了是弱化了编程的部分从而吧精力放在其他地方导致群体和背后的社区提供的仓库和其他语言就不一样 例如java也是因为各种规范性和业务导致背后的社区群体给予了各种专门搞业务的框架 一门语言能做什么更多的是在于背后的社区就例如python C# C++ java 有多少是纯原生的 还不是用背后社区提供的框架

♥ 43 ↩ 1