paint-brush
2023 年 7 种最难学的编程语言by@itsfurqanaziz
24,528
24,528

2023 年 7 种最难学的编程语言

Furqan Aziz8m2023/11/30
Read on Terminal Reader
Read this story w/o Javascript

如果您是一个寻求刺激并愿意接受挑战的人,那么您很幸运,因为我在这里为您提供最令人费解的编程语言的概要。

People Mentioned

Mention Thumbnail
featured image - 2023 年 7 种最难学的编程语言
Furqan Aziz HackerNoon profile picture


如果您正在寻找真正的挑战,编程语言的世界就是您的最佳选择。当然,您可以谨慎行事并坚持使用 Python 或 JavaScript 之类的语言,但是这样做的乐趣在哪里呢?如果您是一个寻求刺激并愿意接受挑战的人,那么您很幸运,因为我在这里为您提供最令人费解的编程语言的概要。


但请记住,学习这些语言不适合胆小的人。您需要准备好进行一些大脑锻炼!

目录

学习世界上最难的编程语言在某些方面类似于艺术。您从空白画布和基本原材料开始。通过将科学、艺术和工艺结合起来,你可以决定如何处理它们。


您绘制总体形状,绘制背景,然后填充细节。你不断地后退一步,用批判的眼光审视自己所做的事情。但随后,您将扔掉画布并重新开始。


简而言之,最难学习的编程语言会让你的大脑陷入顽固的节点和复杂的代码中。


然而,学习任何编程语言,无论多么基础或复杂,都需要时间和精力。因此,有必要进行大量研究并选择适合所需职业路线的编程语言。


此外,编程语言的市场价值和实用性与其复杂性或便利性无关。您的最终决定应取决于语言的可用性。使用查询语言和串行语句做出逻辑决策的能力类似于计算机编程语言,这是一个优势。

最难的编码语言是什么?

当我们谈论 C、C++、Java、Python 和其他编程语言时,有些语言对大多数软件工程师来说不仅难以理解,而且完全无法理解。它们已经赢得了深奥编程语言(或 esolang)的声誉。


以下是 2023 年最难学习的编程语言的详细列表:


最难的编程语言


  • C++

Bjarne Stroustrup 开发了C++ ,一种通用编程语言,作为 C 计算语言的扩展。开发团队经常在游戏内和在线开发以及机器学习和数据挖掘应用程序中使用它。


然而,近年来,Python、Java 和 JavaScript 等高级语言的流行度和使用量似乎已经超过了 C++。这让开发者想知道:C++难学吗?


快速回答是肯定的!


由于其多范式性质和更复杂的语法,C++ 很难掌握。虽然众所周知,它对新手来说特别困难,但对于没有低级语言专业知识的程序员来说同样具有挑战性。


  • 马尔博格

Malbolge 编程语言夺走了许多开发人员内心的平静,使其在最难学习的编程语言列表中根深蒂固。 Ben Olmstead 在 1998 年发明了这种语言,第一个程序花了近两年的时间来构建,以便您可以体会到这种语言的复杂性。


Malbolge 的复杂性主要源于 (a) 受限指令,(b) 执行后的指令替换,以及 (c) 可加载数据限制。


为此,用这种语言编写的代码似乎是垃圾或出现故障。事实上,许多人认为 Ben Olmstead 从未用这种语言开发过任何程序。然而,Hisashi Lizawa 通过在 Malbolge 中提供编程指南提出了软件保护中的混淆。


例如,不可读的程序无法更改。假设爱丽丝希望将程序(或二进制代码)传输给鲍勃,鲍勃将运行该应用程序。即使它是加密代码,鲍勃也需要授权才能解密它才能执行。结果,鲍勃有机会改变它。


然而,用最难学的编程语言编写的不可读的程序会将代码和函数分层为加密数据。现在,这是一个显着的优势。


同样重要的是,该语言因但丁《地狱篇》中的第八圈地狱而得名,即为那些犯有欺诈罪的人保留的。换句话说,Malbolge 是“一种来自地狱的编程语言”。


  • 哈斯克尔

在最终掌握这门最难的编程语言之前,你至少需要学习 3 到 4 次才能掌握它。但不用说,它会毁掉你的其他编程语言!


Haskell 是一种功能齐全的编程语言。在命令式语言中,您通过将任务分配给计算机来完成任务,然后由计算机执行这些任务。执行它们时它可能会改变状态。


然而,它很懒。除非有明确的不同指示,否则 Haskell 不会执行函数或计算任何内容,除非被迫向您提供结果。这与引用透明性是一致的,因为它允许您将程序视为一系列数据转换。


  • 英特卡尔

Jim Lyon 和 Don Woods 于 1972 年创建了 INTERCAL,这是最难学的编码语言之一,作为对多种计算机语言的讽刺。 “没有可发音的缩写词的编译器语言。”是它的第一个绰号。


INTERCAL 包含各种旨在让程序员感到沮丧的功能。例如,它使用诸如“PLEASE”之类的修饰语。如果代码中不经常使用“PLEASE”一词,编译器可能会拒绝它。该组织认为该计划“不够礼貌”。


另一方面,如果修饰符“PLEASE”使用太多次,编译器会因为“过于礼貌”而拒绝该代码。


  • 脑操

一位名叫 Urban Müller 的瑞士物理学学生于 1993 年开发了 Brainfuck,试图设计一种具有最小可行编译器的语言。


Müller 从 FALSE 中得到了 Brainfuck 的想法,FALSE 是一种“反常”编程语言,由目前在 Google 工作的荷兰软件开发人员 Wouter van Oortmerssen 在今年早些时候创建,目的是用最小的可行编译器生成一种令人困惑的图灵完备语言。


虽然像 C++ 这样的现代编程语言可能需要 2.6 Mb 的编译器,但 FALSE 的编译器只有 1,024 字节,或者说少了近 2,600 倍。


由于该语言极其简单,Brainfuck 的编译器最终比 FALSE 小一个数量级,只有 240 字节。 Brainfuck 仅包含八个命令:、>、+、-、[、] 和,。

尽管很简单,但由于运行基本程序需要大量代码,Brainfuck 词汇表是最令人困惑和最困难的编程语言之一。


例如,当程序员希望学习一门新语言时,他们通常自学用该语言创建的第一个程序就是打印单词“Hello,World!”在电脑屏幕上。使用 Python 等标准编程语言编写的该应用程序的代码如下所示:


然而,在 Brainfuck 中实现的相同程序可能看起来像这样:

++++++++++[>+++++++>++++++++++>+++>+<<<<-]

++.>+.++++++++..+++.>++.<<+++++++++++++++.>.+++.--- ---.--------.>+.>。


  • 奶牛

这个名字给了数百甚至数千个错误的印象。我们并不是在暗示一种可以帮助你与牛交谈的技术。我们也不打算制作一个谷歌翻译界面来揭示“MOO”的隐藏含义。


我们正在谈论 2023 年世界上最难学的 6 种编程语言之一,即 COW。它于 2013 年初诞生,但很少受到开发社区的关注。后来,它赢得了世界上最复杂的编程语言的声誉。

Brainfuck 对 COW 产生了不良影响,但开发人员开玩笑地以 Bovine 为基础构建了它。


Cow 包含 12 条指令,比 Brainfuck 多 4 条,并且是图灵完备的。所有 12 条指令都是“MOO”一词的变体。


最难的编程语言——COW语言

资料来源:牛命令


  • 空白

克里斯·莫里斯和埃德温·布雷迪在达勒姆大学创造了空白。该语言于 2003 年 4 月 1 日首次亮相,成为最难学习的编程语言之一。


术语“空白”来自于它只使用三个白色字符:空格、制表符和换行符。结果,用空白编写的程序的源代码变得不可见。


为了使代码可见,常用三个字符:S表示空格(Space),T表示制表(Tab),L表示换行(Line feed)。非空白字符会被空白解释器忽略,并被视为代码注释。


例如,一系列空格可能代表单个命令,而制表符后跟空格可能代表不同的命令。由于空白字符不像传统编程语言那样用于分隔关键字或标识符,因此用空白编写的源代码看起来就像纯文本,没有可区分的编程语言语法。

下面是一些显示“Hello, World!”的代码在空白处。


世界上最复杂的编程语言

想学习一些真正的编程吗?

主流编程需要用户以特定的方式思考。然而,esolangs 鼓励用户以无用且耗时的方式思考,但仍然足够逻辑来开发复杂的软件。


因此,我们建议在 2023 年早餐时跳过最难的编程语言来学习。


但如果您想在这个智能时代利用真正的编程来留住客户,请聘请 InvoZone 的专门开发人员来弥补公司人才库中的差距!

经常问的问题

C++ 是最难的编程语言吗?

很难说 C++ 是否是最难的编程语言,因为难度级别可能会因学习该语言的人和先前的编程经验而异。


然而,由于其复杂的语法和陡峭的学习曲线,C++ 通常被认为是比其他流行编程语言(例如 Python 或JavaScript )更难学习的语言。

C 和 C++ 哪个更难?

C 和 C++ 被认为是相对低级的系统级编程语言,并且都以难以学习而闻名。 C 被认为是一种相对简单和简约的语言。它通常用作编程和计算机科学的入门语言,并为您提供完成工作所需的内容。


另一方面,C++ 是一种更复杂、功能更丰富的语言,它的学习曲线比 C 更陡峭,并且添加了一些附加功能,例如面向对象编程 (OOP) 支持、模板和标准模板库 (STL) 。