为什么python不适合开发网站

2023-01-10 22:15:55 发布:网友投稿 作者:网友投稿
热度:40

很多人讲python因为性能问题不适合web开发,其实把问题归结到性能上,也只能说明学习的不够深入。

许多后端业务都是用Python编写的,每个基本微服务至少有数万行代码。 每一个项目并没有增加到几百万行或至少几十万行。 现在基本上,Java、GO、Python都有。

有些同事讨厌动态的语言,觉得很累。 先前的学术研究专门计算了github上不同语言项的错误率,并得出结论,静态语言确实不容易出错,并且更易于维护。 动态语言需要良好的工程实践来控制,但灵活性和表达能力更强。 如果它真的是一个非常大的单一项目,静态语言确实是更好的选择,支持统计。

脚本语言只是在互联网时代才逐渐流行,而互联网公司很少使用单一的体系结构,大量的服务代码用于项目的维护、开发、部署,网上都是灾难,很多是微服务体系结构。 许多语言都能胜任微服务体系结构,几乎所有语言都有成功的业务项目,甚至许多动态语言都具有快速原型化的优势,即使它们在未来遇到瓶颈重构服务也不太困难。

下面是一些众所周知的Python项目代码统计,目前最大的Python项目应该是开放堆栈,达到了一百万行,但大多数大型项目高达几十万行。 如果是一个商业项目,目前不可能有一百万行。 目前,国内很多Python公司或中小企业,可能只有大型服务、大型网站,不太可能出现超大型的单个项目。 如果项目团队不被排除在编写Python之外,Python可以在许多项目中使用。 Python在爬虫、网站、数据分析等领域有成熟的解决方案。 一开始就不需要太纠结于技术选择。 也许工程控制,代码质量更重要。

易于使用,灵活和高效,编程语言只能有两个项目在同一时间。

易于使用包括:

灵活性包括:

效率包括:

还有一些未列出的特性。 仔细想想,以上特点并不缺乏相互对立,如何实现平衡,完全取决于应用环境。 这些特征将与设计哲学相互作用,并最终决定编程语言的写作风格和使用。

但最终,编程语言的设计主要是在成本最小化的基础上尽可能地解决问题。

此外,没有从体系结构的角度考虑开发和操作、维护和用户操作之间的关系,生成的内容必然会被删减,并且难以维持。 不要轻视编程语言随便。 它必须是有用的,如果它被发明了。 正确的语言在正确的时间内解决正确的问题更为重要。

写Python几年,写CPP几年,写CS几年,Python做一个大项目是没有问题的,不比其他主流语言差,项目的可控大小,主要取决于人,当然不是语言——语言,有区别,但不是大量宣传。 至于开发工具,高级开发人员根本不依赖开发工具。 Python本身并不是一种依赖代码完成和其他功能的技术。 习惯的组合是Emacs + IPython + Python模式,它使用DOCTREST作为TDD并且是高效的。 最近,很多崇高的文本被使用,没有任何感觉,我不能离开习惯的环境。

至于运行时的错误,这取决于自动化测试的级别。 Python项目的bug将不会高于CPP或Java的bug。

如果使用不当,一切都是不好的语言。 这是一种相当廉价的态度。

用Boost进行实际开发?那些没有被编译器抓到的人是快乐的。

你能用STD:C做风格的轮子吗?没有被STD感染的人:串效率问题是快乐的。

Python超过1K行是灾难?这些语法正确性完全取决于由提示提示写入的1K行代码。 最好的软件工程工具是语言无关的:单元测试,按合同设计。 除了非常少的特殊语言(Eiffel,AspectJ),它基本上是由图书馆和程序员手工完成的。

公司可以招聘像谷歌这样的人,他们可以使用任何语言。 如果没有,尽早放弃C++,修复新来的坑,并帮助古庙。

至于性能问题…没有谷歌的规模,性能问题就不需要从全球角度来解决。 找到一个热点并用适当的工具替换它。 这是一个可行的项目。 此外,Python是一种易于用C语言扩展的语言。

Perl,Python,Go,甚至Java。 这些语言的问题在于它们从未被取代。 它们都解决非常特定的问题,所以当新语言在当前语言框架之外解决新的特定问题时,旧语言会失去许多用户。 GO的协同程序,Python的语法简单明了,Perl的字符串处理效率和准备运行,Java的库和GC,从左到右就是回溯波和前向波之间的关系。 用正确的工具解决正确的问题是每个程序员和架构师都应该做的。

1是性能重要吗?

目前,由于语言速度缓慢,似乎没有出现很多软件问题,除了超级大的互联网公司需要静态语言来节省电力之外。 此外,缓慢的程序可能不会在未来缓慢。 但是程序员的速度很难提高。 没有子弹。

2在程序规模增加之后,是否真的需要编译静态检查来调试它?

无论考试多么严格,它都不能阻止程序员写垃圾。 C检验弱于C++,但高于TIOBE。 里奇相信程序员可以做自己的事情,所以他不会做出太多的假设。 C++似乎严格遵循许多编程范例,但是它太复杂了。 直到现在,C++编译器还不能显式地解决其最复杂的内存泄漏问题。 这张支票是否等于。

没有静态编译扩展到大型项目中。 请看PHP。 请看ROR。 更不用说,Paul Graham曾经与Lisp公司合作生产过世界一流的大型软件。 这是一个比其他任何东西都好的好例子。 动态语言似乎抛弃了静态类型检查,但获得了灵活的类型机制,有利有弊,这似乎是一个好趋势。 使用动态语言,回头看一些静态类型的语言,看到更多流血的眼睛,书写更多的流血的手。

3种语言依赖于开发工具吗?

我不知道真正的语言开发工具是什么。 事实上,除了PHP,现在主要的脚本语言开发工具只有六种,Python仍然是增长最快的。 认为良好的语言不应依赖于技术体系,麻省理工学院仍然使用LISP和Emacs作为朝圣。 Emacs是一种很好的故障排除方法吗?Emacs部署非常方便吗?Emacs对性能基准测试非常方便吗?这会影响LISP的语言吗?

C++有什么工具?这样做会更好吗?工具实际上是第二,一切都会好起来。

每种语言的设计都有它的折衷。 事实上,它是设计师的视觉。 事实上,我很难理解像我这样的低能手。 但是如果它给学生第一印象,那就是一门很棒的语言。

两个闭合数字:

好奇公司的250万行代码大部分是用Python生成C的方式编写的。 我想知道这是否是一个有10多万行的项目?

麻省理工学院的第一门计算机课程已经教了两件事:计算机程序是写给人们看的,只是运行。 软件设计实际上是对抽象复杂性的控制。 这两个概念完全独立于性能、静态检查和开发工具。 这门课是按计划教了很多年的,在前两年突然变成了Python。

下一篇:恋爱中的人梦见亲戚家狗死了
上一篇:做生意的人梦见亲戚怀孕了(做生意的人梦见自己怀孕是什么意思)