创意电子

标题: 在技术层面上,C#就是吊打PHP [打印本页]

作者: 自由践行    时间: 2021-8-19 09:15
标题: 在技术层面上,C#就是吊打PHP
写过几篇关于C#的文章,引来了不少讨论。
之前我不停偶然于各种编程语言的纷争,在我的认知里每种编程语言都有它的特点,适合不同的场景,选择一个满足用户需求的才是最明智的。
但是现在不同了,C#在Anders Hejlsberg的领导下,一路披荆斩棘,现在已经遥遥领先于各类语言,而且随着微软对跨平台的支持,VS这个世界第一的代码编辑器,我好像看到了秦国要统一六国的影子,优秀的语言淘汰掉队的语言,就像汗青选择一样,不也挺好吗?
先挑软柿子捏,PHP:)
我做码农20多年,用过不少语言,C#是用得最多的,也是现在的主要开辟语言。可以说现在的C#已不再是原来那个只能开辟windows应用程序的鸡肋了,于是我就说:PHP与C#根本就不是一个量级的。结果这句话,引起了PHPer们的剧烈不满:
◆呵呵,什么时候连net的也敢来说吊打php了。什么世道?
◆吊打php就算了吧,效率瓶颈更多不是语言本身,而是数据库,架构等影响的。facebook不也用php?除了微软自己,你再找一个大规模用net的来看看?
◆Php你会吗?
◆吊打?你不感觉脸红吗?你难道没有犯罪感吗?
◆起首应用场景不同,其次很少软件有什么屌炸天的功能必要优化到语言实行效率上,软件实行瓶颈在硬件设施上,最后学习成本上,php要低许多
◆胡说八道 php是web开辟王者,不是因为成本低,而是因为它就是为web而生
◆胡说八道 继续吹net
......
今天公平起见,我不比桌面应用,就以PHP最善于的Web项目来举例子,让那些PHPer们看看,PHP跟C#语言相比有多么严峻的缺陷。
之前做过一个微信现场摇一摇的项目,时间比较紧,所以就在网上找了一套现成的PHP代码,简单修修改改,匆忙上马。成本方面,不得不说PHP有非常大的优势,复制过来修修改改就能用,Apache、MySql都不用花钱。
结果没几天,用户反馈说摇一摇人少了正常,人一多服务器就崩了,100多人一起摇就不行了。
有问题肯定要解决嘛,于是查代码,发现了此中的逻辑:每个手机每摇一次,都要到后台数据库把计数加1。极端情况下,100多人1秒钟内就可以摇5下,数据库1秒钟就要写500次,而且还要做同步处理,这啥服务器能受得了啊?这TM是哪个垃圾程序员写的代码!
当时我想,原因找到了,解决还不简单吗?根本不必要每次都写数据库,只要做一个全局哈希表的缓存,每个人的计数都只在缓存中更新,游戏结束之后再批量更新到数据库,不就解决这个问题了吗?
然而想法是美好的,我用了PHP的全局变量,也记录了结果,但是不对啊,每个用户都只能访问自己的,汇总那里根本取不到值啊,百思不得其解。查资料一看懵逼了,PHP竟然没有所有效户共享的机制,所谓的全局变量只是针对当前用户的全局变量,而不是所有效户的全局变量,要想实现只能通过数据库、文件或memcached等外部方式来实现。数据库和文件肯定性能低,memcached我一看,这不就是再设置一个网站专门存储内存变量吗?这也叫解决方案?在C#中几行代码就能搞定的事情,在PHP中因为本身不支持,就得再配一个网站,简直超越了我对软件架构设计的想象,PHP不是世界上最好的语言吗?就这?我到此刻也终于理解那个程序员为什么每摇一次都写数据库了,这种性价比最高,小规模使用没问题,大规模有问题了你得回头找我来提供服务。
理解归理解,问题还是要解决。
既然无论怎样都要再配一个网站,我就索性用c#+asp.net写一个,毕竟这个是高频应用,脚本肯定没有编译好的二进制效率高。于是用C#写了一个缓存接口,在php中调用,以后这个项目2000人的摇一摇都没再出过问题。
从成本上说,PHP确实有优势,前提是项目简单要求不高,且有现成代码可以使用的基础上。
从技能上说,PHP相比C#没有任何优势,C#就是吊打PHP!PHP能做的,C#都能做;C#能做的,PHP许多做不了;C#与PHP都能做的,C#也有能力比PHP做的好。
欢迎PHPer们来喷,也欢迎C#er们来支持:)

                               
登录/注册后可看大图

作者: 荒之城    时间: 2021-8-19 11:39
大网站哪个用C井?
作者: lcyouyu    时间: 2021-8-19 12:31
看来你根本不了解php的进程模型,20多年了
作者: 大有—上吉    时间: 2021-8-19 13:04
靠,你的网站居然只有一台web服务器,当你为2台以上web服务器设计时,你就知道php 的好了。
作者: 天涯学馆    时间: 2021-8-19 18:46
创业公司php都是首选,面向数据编程,速度快!前后台一个都能搞,迭代快!成本低!用java慢慢搞 产品没出来公司就被拖死了。
作者: 比尔盖茨他爷爷    时间: 2021-8-19 18:58
html才是最好的编程语言[泪奔]我只会html
作者: 疯狂钢铁人    时间: 2021-8-19 19:05
楼主貌似不太懂如何用PHP高效开发摇一摇吧,没必要每摇一次存数据库,socket方案可以试下,这才是PHP开发摇一摇的主流方案。
作者: proudwolf2008    时间: 2021-8-19 19:26
马龙何必为难码农呢
作者: 自娱自c乐    时间: 2021-8-19 19:28
我就想知道,其他编程软件只需要最多500来m的空间就能配置好环境,c#是多少,而且,你能不能别占用c盘空间
作者: 元晓    时间: 2021-8-19 20:43
兄台,php有很多问题,但恰恰你文中这个却不是个问题。过几年再回来看,你会忍不住删了本帖。
作者: 顺势而动99    时间: 2021-8-19 21:22
php天生就是基于多进程模型开发的,但是他的多进程都已经集成到比如fpm上面了,如果是Apache,就是Apache2handler,为什么要如此设计而不是把多进程交给dev去管理,就是为了方便稳定,降低程序员门槛,如果在多进程中用全局变量必然设计到锁,并发等问题,这无疑不是php的初衷,况且现在用持久化存储软件是通用方法,你的业务更是如此,当然缺点就是牺牲掉了php的高性能
作者: 无语40916896    时间: 2021-8-19 22:46
仅就语言而言,C#非常完美。用过C#、Java、javascript做过服务端、手机端、前后端分离的项目,框架使用过mvc、vue……
作者: 关爱智障    时间: 2021-8-19 23:34
这种摇一摇需要并发的,用workerman或者swoole,这就是解决方案
作者: 居辰    时间: 2021-8-20 08:09
Php最大的好处是很容易发现问题、解决问题,部署简单,语法很容易理解,c#这样的高级语言,黑盒,语法糖太多。
作者: 阿兔福利社    时间: 2021-8-20 10:21
我是net开发者,我也认为可以吊打php,生态上却比不上php,有的程序到php8就跑不了,居然有的函数不兼容了,你说的访问问题那个只能是开发设计的问题,与语言无关,不过netcore的吞吐率确实高了不少
作者: 爱你de小鱼儿    时间: 2021-8-20 11:30
c#能写web程序吗?桌面我用delphi......web我用php
作者: RealAlexander    时间: 2021-8-20 14:23
c#是我使用过最好用的语言之二,基本上没有缺点,就是招不到人。
作者: 山焱123    时间: 2021-8-20 17:00
大项目我选择java.小项目php。不管是从团队技术储备还是项目进度上基本不会选择c#
作者: 带码攻城狮    时间: 2021-8-20 22:07
你根本就不知道php的运行模式,全局变量不通用就像是在说这个C语言真烂,类都不支持。想跟c#一样可以试试swoole的协程
作者: whowin1963    时间: 2021-8-21 00:17
C#居然已经沦落到去和PHP争高下的地步,可喜可贺。但是PHP既可以在Windows下运行,也可以在各种Linux发行版下运行,C#可以试着比一下这个方面。
作者: 深度影响力    时间: 2021-8-21 23:27
除了部署方便,C#完胜PHP。C#飘逸的语法,写起来行云流水,扩展方法、linq、事件、异步、注解 哪个不香?web方面,asp.net core的管道机制,为系统提供了无限的扩展可能。Razor语法、强类型的智能提示、编译时错误检查,还有Blazor。项目越大,越能体会出.net的优秀。有人说VS安装后会占用多少个G,我想说现在硬盘都已经白菜价了。




欢迎光临 创意电子 (https://wxcydz.cc/) Powered by Discuz! X3.4