使用哪些编程语言来制作中型软件?
请原谅我的愚蠢问题。
诸如 Adobe After Effects、Apple Final Cut、Pro 工具、Photoshop 之类的东西。 另外,像 Windows 媒体播放器、真实播放器之类的东西
是用什么编程语言来构建的?
我真的很想知道,谢谢
please excuse the stupidity of my question..
Things like Adobe After Effects, Apple final cut, Pro tools, photoshop..
also, things like Windows media player, real player
What programming languages are used to build those?
I'm really interested in knowing, Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
如果您在维基百科中查找许多主要应用程序,它们将有一个侧框提供包括开发语言(如果已知)的信息。
应用程序是使用与相关领域相关的任何语言构建的。然而,由于 C 和 C++ 无处不在的性质、最短的运行时间、通用适用性、高性能、通过库的可扩展性以及从业者的庞大规模,C 和 C++ 很流行。
在 Windows 上,对于大型商业应用程序,C++ 可能比 C 更常用,部分原因是随着 1990 年代初期 Visual C++ 和 MFC 的发布,Microsoft 使其成为 Windows 的首选开发语言。然而,随着 .NET 框架的发布,首选的开发语言不再是问题,可以使用 C#、VB.NET、C++/CLI 和其他 .NET 语言,但我所知道的主要消费应用程序还很少使用 .NET(例如,如果您将优秀但缓慢的 Paint.NET 与 PhotoShop Elements 的性能进行比较,您可能会明白原因!),但它在定制应用程序开发中被广泛使用(例如银行业,其中客户端界面性能不是什么问题)。
C 在 Linux 应用程序中仍然常用。 Linux本身是用C编写的,其主要API是C接口。然而,有大量基于 C++ 的应用程序接口和库,特别是 GUI 接口,例如 KDE、WxWidgets 和 Qt。
OSX 和 iOS 应用程序通常用 Objective-C 编写,因为这是 Apple 的首选开发语言和操作系统 API。
Android 应用程序通常用 Java 编写,因为 Google Android API 是一个 Java 库。但这些通常不是“真正的大型软件”[原文如此]
If you look up many major applications in Wikipedia, they will have a side-box providing information including the development language (where known).
Applications are built using whatever language is relevant to the domain in question. However due to their ubiquitous nature, minimal run-time, general purpose applicability, high performance, extensibility via libraries, and the sheer body of practitioners, C, and C++ are prevalent.
On Windows C++ is likely to be used more often than C for large scale commercial applications, in part due to the fact that with the release of Visual C++ and MFC in the early 1990's, Microsoft made it their preferred development language for Windows. With the release of the .NET framework however, the preferred development language is less of an issue, and C#, VB.NET, C++/CLI and other .NET languages may be used, but few major consumer applications that I am aware of yet use .NET (and if you compare the performance of say the excellent but slow Paint.NET with PhotoShop Elements for example, you can probably see why!), it is used extensively however in bespoke application development (banking sector for example, where the client interface performance is less of an issue).
C is still commonly used on Linux applications. Linux itself is written in C, and its primary API is a C interface. There are plenty of C++ based application interfaces and libraries however, especially for GUI interfaces such as KDE, WxWidgets, and Qt.
OSX and iOS applications are commonly written in Objective-C since that is Apple's preferred development language and OS API.
Android applications are typically written in Java, because the Google Android API is a Java library. But these are not typically "really large softwares"[sic]
您列出的程序主要是用 C 和 C++ 编写的(在 Mac 端使用了一些 Objective-C)。其他程序可能是用其他语言编写的。 ;)
The ones you've listed are primarily written in C and C++ (with some use of Objective-C on the Mac side.) Other programs may be written in other languages. ;)
C、C++、Objective C,像往常一样。您不需要神奇的编程语言来开发大型项目。这更多的是管理和基础设施的问题。
C, C++, Objective C, as usual. You don't need a magical programming language to develop large projects. It is more a matter of management and infrastructure.
由于对高性能的需求,许多这些“较大”应用程序都是使用编程语言编写的,这些语言允许访问系统资源(内存、CPU 等),而无需太多抽象,以便实现性能优化。允许此类访问的语言包括 C 和 C++,并且在某些情况下,程序的某些部分可能包括低级汇编语言。
由于包含机器资源访问抽象,不适合高性能(实时或近实时)编程任务的语言包括 Java、C# 和 Visual Basic。
Due to a need for high performance, many of these "larger" applications are written using programming languages that allow access to system resources (memory, cpu, etc.) without many abstractions in the way, in order to allow performance optimizations. Languages that allow such access include C and C++ and in some cases, or some parts of the program may include low-level assembly language.
Languages not suited for high-performance (real or near-realtime) programming tasks due to the inclusion of machine resource access abstractions include Java, C# and Visual Basic.
这些不是非常“大”的应用程序,企业应用程序有时非常庞大(我更喜欢用 JAVA 构建它们:))。例如,电信运营商使用的流量分析应用程序。无论如何,我知道VLC是一个相当“大型的软件”,它是使用C++和qt制作的。
Those aren't very "big" applications, Enterprise applications are sometimes mammoth ( I prefer building them in JAVA :) ). For instance an application for traffic analysis used by your telecoms operator. Anyways I know VLC is quite a "large software" and it was made using C++ and qt.
查看 Joel 的文章 http://www.joelonsoftware.com/articles/FiveWorlds.html 那里描述的不同世界在编程语言方面有不同的偏好。
正如其他人所说,Shrinkwrap 软件现在主要是用 C++ 或 C 编写的,对于(商业)游戏也是如此。我怀疑您不会认为一次性软件非常大,也许这同样适用于嵌入式软件(但不要低估一个软件的源代码库的大小)现代导航系统)。
内部软件系统有时可能会大得多。有不同的首选编程语言,例如,金融业务领域存在用 COBOL 编写的大规模系统。其他业务部门更喜欢 Java 环境或 Microsoft 编程世界(VB6、VBA、VB.NET、C#)。高速数值计算仍然使用(有时是大规模)Fortran 程序来完成。
Joel 还提到了Web 应用程序。此类软件系统通常针对系统的不同层使用不同的编程语言来构建。例如,浏览器中的 Java Script 或 Flash/Actionscript,Web 应用程序服务器上的 Ruby、Perl、Python 或 PHP 等脚本语言,以及后端的内部类别中提到的一些其他语言程序。
缺少的世界是智能手机/应用程序市场(2002 年 Joel 撰写文章时,该市场还不存在)。由于市场仅发展了几年,因此大多数现有应用程序目前都不是非常“大”。
Have a look into Joel's article http://www.joelonsoftware.com/articles/FiveWorlds.html Those different worlds described there have different preferences when it comes to programming languages.
As others have stated, Shrinkwrap software is mostly written in C++ or C nowadays, same is correct for (commercial) Games. I suspect you won't consider throwaway software as really large, and perhaps the same applies for embedded software (but don't underestimate the size of the source code base of a modern navigational system).
Internal software systems may be sometimes much larger. There are different preferred programming languages, for example, there exist really large scale systems in the financial business sector written in COBOL. Other business sectors prefer either the Java environment or the Microsoft programming world (VB6, VBA, VB.NET, C#). And high speed numeric computations are still done with (sometimes large scale) Fortran programs.
Joel mentioned also Web application programms. Such software systems are often build using different programming languages for the different layers of the system. For example, Java Script or Flash/Actionscript in the browser, scripting languages like Ruby, Perl, Python or PHP on the Web application server, and some of the other languages mentioned in the Internal category for the backend programs.
The world which is missing is the smartphone/App market (which did not exist 2002 when Joel wrote his article). Most of those existing applications are not very "big" today due to the fact the market has only evolved for a few years.