不同的编程语言都有哪些优势? [关闭]
Posted
技术标签:
【中文标题】不同的编程语言都有哪些优势? [关闭]【英文标题】:What are some advantages to the different programming languages? [closed]不同的编程语言有哪些优势? [关闭] 【发布时间】:2011-05-02 03:19:17 【问题描述】:我一直对编码很感兴趣,不久前开始学习 C#。因为我只是把它作为一种爱好,所以我学习它的速度很慢,还不太了解,但是当我开始阅读 C++ 以及它如何更接近操作系统时,我开始怀疑我是否应该开始而是学习 C++。我非常了解 html 和 javascript,对我来说,C# 似乎有点类似于 js,所以并不难。我刚刚下载了 C++ Express,发现它的风格与我以前的风格截然不同。我想知道我应该坚持使用 c# 还是尝试 c++(特别是如果我想在未来某个时候开始使用 Arduino)。两者都有哪些优点/缺点?
【问题讨论】:
如果您对嵌入式设备感兴趣,您绝对应该学习一些 C 和 C++。在你对标准 C++ 有很好的理解之前,不要乱用 C++ for .NET (C++/CLI) 的 Visual C++ Express 风格。 【参考方案1】:作为一个专业地学习过所有这些语言的人,我想说 C# 可能是最容易学习的,同时仍然非常强大。从库的角度和社区的角度来看,.NET 平台都有很多帮助。除非您真的想对一门语言感到沮丧和肮脏,否则请坚持使用 C#。
然而,更大的答案是“视情况而定”。如果您想为了学习而学习一门语言,那么 C# 是您的最佳选择。但是,如果您正在考虑可能在工作环境中使用这项新技能,请寻找您想要的工作类型并从那里决定。如果您希望为自己和您的朋友构建应用程序,请坚持使用 C#。您可以在大约五分钟内构建一个 Winforms 应用程序,然后您可以轻松地扩展到更大、更专业的应用程序。 C++ 将更难做到这一点。
【讨论】:
【参考方案2】:来自 Javascript,如果您不想沉迷于细节,我可能会建议您继续使用 C#。它将处理内存管理和 C++ 让您手动处理的其他几个低级问题,因此从 Javascript 或 Python 或 Ruby 等解释性脚本语言到 C# 并不那么令人震惊。它们和 C++ 之间有点半途而废。
也就是说,如果您想更多地了解编程语言和计算机的一般工作原理,请选择 C++。它比 C# 更复杂,但是学习 C++ 可以让你学习任何语言变得容易。此外,使用 C++,您可以做的事情几乎没有限制(C# 施加了一些限制),并且您几乎可以拥有整台计算机,所有其速度和资源可供您使用。
也就是说,在 C++ 中做同样的事情通常需要更长的时间。例如,创建一个带有 GUI 的 Windows 应用程序,在 C++ 中一切都需要相当长的时间,但在 C# 中是琐碎的。这是你必须处理的权衡,但就像我说的,如果你先学习 C++,C# 就是小菜一碟。反之亦然。
如果您想使用 Arduino,请选择 C++(从未使用过 Arduino,但代码 sn-ps 看起来像 C 所以......)。 C++ 与 C 非常相似,大多数 C 只需很少修改即可编译为 C++。
【讨论】:
我同意大部分内容,但不是全部。 C++ 不会让你手动处理内存管理;它从一开始就支持 RAII,并且 boost::shared_ptr 现在必须至少 12 岁!也许你想到的是 C,它与 C++ 非常不同...... 不,我在考虑纯 C++。 boost::shared_ptr 只是一个为你做的库,所以 C++ 让 someone 进行手动内存管理,而在 C# 中它是语言的一部分。而且我认为 RAII 不会像你认为的那样做。 shared_ptr 最近才添加到 C++ 中,但 std::auto_ptr 一直是 C++ 的一部分(根据定义,C++ 语言包括标准库;这与 C# 不同)。因此,C++ 从未让 任何人进行手动内存管理。在使用 C++ 工作了十多年后,我总是惊讶于有多少人用 C++ 编写 C 代码...... “语言的一部分”是指内置的东西,而不是任何库的一部分。 GC 内置于大多数解释语言中,不是作为库,而是作为核心语言的一部分。以上是关于不同的编程语言都有哪些优势? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章