1.PHP为什么说是最好的编程语言
2."GHC”代表什么?
3.文学编程文学编程工具
4.Finger Tree 的简单介绍和实现
PHP为什么说是最好的编程语言
尝试百度”PHP是最好的语言”,发现指向较多的是那个关于程序员的笑话。 但是如果这个梗来自于这个笑话的话,那么为什么在笑话里这个程序员不说C++/python/haskell或者别的什么语言是最好的而要说PHP是最好的呢?所以感觉似乎最早的出处不在于此。 有人知道吗?来看看知乎网友们是怎么看待这场语言之争的吧!
网友回答
网友A
「为什么在笑话里这个程序员不说 C++ / Python / Haskell 或者别的栏目源码什么语言是最好的而要说 PHP是最好的呢?」——因为说任何其他语言「最好」都并不好笑啊。
任何掌握超过两种以上非 PHP 编程语言且具有一定常识的程序员都会本能地意识到 PHP 的问题所在,曾经有一篇汇总性的文章在此: PHP: a fractal of bad design / fuzzy notepad (译文版可见:五大受损, 全面解析PHP的糟糕设计,但翻译得很烂),历陈 PHP 破败之处,激荡深远。如果你没时间去读那篇长文,那我告诉你一个简单的例子来说明 PHP 有多匪夷所思:PHP 的核心函数命名很不一致,有 「strptime」这样类 C 函数的名字,有「nl2br」这样的简写,却也有「htmlspecialchars」这样的长名。后来人们发现这种不一致并非偶然,而是当 PHP 还是只有不到一百个函数的小语言的时候,其作者决定用函数名的字符数量——来作为函数的 hash(!)。由于这个愚不可及的决定,PHP 的函数名长度要尽可能地长短有秩、均匀分布,影响一直延续至今。甚至有好事者将上述文中:
You pull out the hammer, but to your dismay, it has the claw part on both sides.这一句严肃对待,做了一把 PHP 锤子:
试想你走进五金从业者公会的啤酒馆,看到墙上挂着从钉子到电动螺丝刀的各式工具当作陈列品,而你在端详一阵之后指着其中的这样一把锤子,说「啊,多人博客源码这是最好的工具」,你觉得酒馆里的人会是什么反应呢?
网友B
因为php和最好的语言几乎没有关系。。一般用来讽刺一些没见过世面,把自己归属于某一种编程语言的语言教徒。
事实上每一门语言都有其设计的灵魂,有它的取舍。很难说什么是最好的。比起做个脑残粉总是鼓吹自己擅长的语言,不如多学几门语言,开阔视野。
我们都喜欢分享自己的价值观。希望被认可,希望有更多同伴。其实这也是在给身边的人洗脑,这很正常。但有时候自己在某一领域的付出会成为枷锁。
网友C
Windows 是最好的操作系统!
以上为纯吐槽。
我看楼上还有很多还在讨论PHP不是最好的语言,还好我不是程序员,只是稍微懂一点代码,我认为之所以说这个梗,是因为PHP最普及和最流行,大多数不管懂不懂程序都知道或听说过,所以才能引起共鸣。这就是我上面那句吐槽的含义。
如果上面那句吐槽改为:Ubuntu 是api网站搭建源码最好的操作系统!(围观群众:What?)
网友D
难道不是这么来的?某女:你能让这个论坛的人都吵起来,我今晚就跟你走.
某软件工程师:PHP是最好的语言!
某论坛炸锅了,各种吵架…
某女:服了你了,我们走吧 你想干啥都行.
某软件工程师:今天不行,我一定要说服他们,PHP必须是最好的语言
某女:…….
网友E
编程语言之争由来已久,
但是php和java确实是最受争议的。
自从web2.0热起来后,java逐渐淡出了。
究其原因并不在于语言本身,
而在于用语言的人。
因为php确实简单,门槛最低,
所以很多并不适合编程的人涌了进来,仅仅为了糊口罢了。
这些人的各种无敌言论自然让很多专业的人呲之以鼻。
天龙八部里有个星宿派,
虽然在施毒方面有些特长,但门下弟子总的来说武艺平平,
其实江湖武功低微的人多的是,低调便是了,谁又老是盯着你呢?
然而这个新宿派却偏偏跑出去招摇过市,胡吹本门派武功盖世,大有傲视天下之势,
那么其他门派的人会怎么看他们呢?
php就是语言江湖的星宿派。
网友F
对我来说PHP 就是最好的语言。它不是炫耀技巧、扯蛋概念的东西。完成任务才是程序员要做的事。没什么语言可以高效开发同时高效运行。
相关利益:写PHP年。
网友G
作为一个十多年老phper,看到这句话,spring源码分析书也会笑。虽然我也会c c++ java go ,并都做有相应产品。 世界上一半以上的网站是php, bat, fb,处处有它。但这些大公司在近些年,都在试图改造它。淘宝去php改java,百度重写扩展,fb搞xhp等等。但结局是搞了这么些,这几大公司却收效甚微。比之前的性能提升不了太多。在我理解看来,无非是想提高一下b格而已。
在php的初始阶段,php是连框架也没有的。直到今天,php创始人lerdorf仍然反对mvc,因为他觉得影响了性能。在那个年代,同样的一个应用,做java的待遇比php高一倍。因为php简单。如果跟你说一个人花了一个星期用php写了个论坛,跑得也还蛮好,名片赞商城源码你一点也不要惊讶,后来这个论坛还卖给了阿里。面向过程的php,成就了无数小的站点。
后来是一个框架辈出的阶段,phper们终于也有了跟java一样的mvc,待遇也慢慢接近于java了。大家明白了一件事,大项目,得有点高深的学术内涵才能忽悠的住。opp也更加规范了,你能找到的设计模式,php全都有,于是phper放言:你还敢说php不高级, 不入流? 而实际上,设计模式,真正能用到的就那么一两个。对于解析性语言,我只能,呵呵。
归结一下,php,我觉得更像屌丝逆袭。 然后,笑的人有两种,一种是屌丝的自嘲,另一种是高富帅的妒忌。
网友H
先说一下php的优点:
跟py相比,它不需要django之类的库,原生就支持web。小白们不需要配置什么东西,门槛就低了。而且php的语法是类C的,函数命名大部分也是类C的,大部分码农在学校或多或少都学过C/C++,接触php肯定要比py顺手。
跟java相比,支持php的主机显然更多。云主机兴起之前,是个虚拟主机都是lamp,都支持php。而虚拟主机是最便宜的解决方案,也就是说随便租个虚拟主机就能跑php的网站,成本就低了。
我个人认为没有什么最好的语言,只有最合适的语言。php之所以在web2.0的时代异军突起,击败了py,原因跟php坑不坑没有关系,跟契机有关系,跟他在那个环境下合不合适有关系。把php的流行归功于什么最好的语言简直是胡扯,也是没动脑子。
网友H
大部分敢于说自己是最好的语言的语言,至少有一部分人是真这么认为的。
比如说C语言最好的,最差最差也有一部分C语言核心开发者有信心这么说。
但是PHP语言是一个连开发者都不敢『声称是最好的语言』的语言。
这是不言自明的公设,不需要证明。
小圈子有个笑话。
会不会用PHP是有一个明确判断标准的:
只有觉得PHP是个烂语言,才有资格说「我会PHP」。
如果你连PHP有多烂都感觉不出来,请别说「我会PHP」「我会编程」。
网友J
因为php算不上一种语言。就好像说“射钉器是世界上最好的武器”一样。
"GHC”代表什么?
GHC,全称为 "Glasgow Haskell Compiler",中文简称为“格拉斯哥Haskell编译器”。这个缩写词在计算机科学领域中被广泛使用,尤其在软件开发中扮演着重要角色。GHC的英文原意是用于将Haskell编程语言编写的源代码转换为可执行程序的编译器,它的中文拼音是“gé lā sī gē biān yì qì”,在英文中的流行度达到了,表明其在开发者社区中具有较高的认知度。
作为Computing领域的一个缩写词,GHC主要应用于软件开发和Haskell语言的工具链中。它支持函数式编程,被广泛用于构建高效、并发和模块化的程序。例如,在构建大型Web应用、游戏引擎或者高性能计算任务时,GHC是不可或缺的工具之一,它能将Haskell代码编译成执行效率较高的机器码。
需要注意的是,GHC的信息来源于网络,主要用于学习和交流目的,版权归属于原作者。使用时请确保遵守相关法律法规,以确保合法性和安全性。
文学编程文学编程工具
文学编程的概念起源于年,当时高德纳为他的TeX排版系统开发了一种早期的环境,名为WEB。WEB以Pascal编程语言为基石,同时利用TeX进行文档格式化。这种结合使得编写文档和编程相辅相成,开创了文学编程的新篇章。 此后,noweb和FunnelWeb作为文学编程的进一步发展,它们的一大特点是源代码的独立性。这意味着开发者可以将文本内容和程序逻辑分离,提高了代码的可读性和维护性。noweb和FunnelWeb在文学编程的领域中各具特色,为用户提供了多样化的创作工具。 值得一提的是,Haskell编程语言在其设计之初就考虑到了文学编程的需求。虽然它受到了CWEB的启发,但Haskell的实现更为简洁,使得半文学编程更加直观和高效。Haskell的这种特性使得它在文学编程工具中占据了一席之地,成为了许多程序员和作家的首选。总结起来,文学编程工具的发展历程是多样且富有创新的,从WEB的Pascal和TeX组合,到noweb和FunnelWeb的独立源代码设计,再到Haskell对半文学编程的原生支持,这些工具都在不断推动着文学和编程的边界,为创作者提供了独特的编程体验。
扩展资料
文学编程是由高德纳发明的编程方法,用以替代世纪年代提出的结构化编程范型。Finger Tree 的简单介绍和实现
Finger Tree 是一种高效的数据结构,主要用于处理各种序列操作。它在理论上的极限性能使其在需要快速访问头尾元素,同时保持随机访问效率的场景中颇为适用。这篇文章将深入介绍 Finger Tree 的设计理念、实现细节,以及它的应用场景。 要理解 Finger Tree,你需要对数据结构有所了解,特别是对它有一定的兴趣,但无需深入研究。基础的 Haskell 语法也是必不可少的,因为 Finger Tree 的示例和实现将在 Haskell 中进行。 Finger Tree 的核心思想源于二叉树,但通过转换为 2-3 树结构,解决了空树表示和深度限制问题。它使用嵌套的 Node 和 List(Digit)结构,每个 Node 嵌套 n 次意味着树的深度为 [公式]。通过限制 Digit 的大小在 1 到 4 之间,保证了操作效率。 文章中详细讲解了如何实现 Finger Tree 的插入和删除操作,这些操作的时间复杂度是均摊的。此外,还介绍了如何将两棵 Finger Tree 连接,以及如何通过 Monoid 结构扩展其功能,如优先队列和有序序列。 尽管使用 list 来实现 Digit 可能带来效率问题,但 Finger Tree 的设计使得可扩展性极强,只需定制合适的 Monoid 就能处理不同区间性质的问题。实现过程中涉及的代码复杂度较高,但通过 Strictness 和 Unpack 等优化技术,可以提高性能。 阅读完这篇文章,你将了解如何在 Haskell 中构建和操作 Finger Tree,以及其背后的理论基础。当然,如果在理解或实践中遇到问题,欢迎提出讨论。以下是相关参考资料供你深入学习:Finger Tree 的维基百科
Finger Tree 的 Hackage 源码
Finger Tree 的论文(强烈推荐)
Finger Tree 的部分复杂度证明
论文作者的 Paper 网站