x经问题: Why choose Ruby or Python over PHP for web development?
昨天整了一天的环境,想学习下django or sinatra.
结果整到最后,我问自己为什么要这样做? php不也挺好的?
框架要开发效率, 我会laravel啊.
有人说laravel的代码很乱,搞了半天,愣是没弄懂它那个facade是啥回事... 在图书馆里看了一整年的j2ee的我,倒是觉得laravel很熟悉. 于是,我抛弃掉20多年历史的MVC, 借助namespace弄个package, 各种services, validators, repositories,events,etc,.全部分开来, 注册ServiceProvider,通过ioc注入实例,再搞搞phpunit. 看着自己的代码, 觉得好有成就感. 这才是高聚合低耦合! 就是操作起来比较麻烦, 要创建很多文件, 貌似这样就不算是效率了...
还有, laravel这东西本身就是一个个包组成的. 比如我用自己的前端替代wordpress前端时,就是只用他的router和database.
框架要性能, 我可以搞phalcon. 这个没用过就不扯了.
包管理,有composer. 多亏了FIG这个非官方小组, 出了psr标准! 我觉得composer算是php的一个里程碑吧. 只有一个问题, 国内的速度........
php本身很慢!! 前有hhvm, 后有hippyvm, 官方又要搞个PHPNG. 哦, 5.5还自带了个opcache.
需要non-blocking? reactphp
......
为什么startup,尤其国外, 会选择python或ruby作为开发语言呢? 我个人觉得就是因为php太流行, 程序员良莠不齐. php命名不规范,我反而觉得,不是个多大的问题.
你们的想法呢?
我左思右想, 如果给我一个理由放弃php, 而以python或ruby为生, 那就是php程序员工资低......
开放性问题,靠谱都会给赞.
回复内容:
昨天整了一天的环境,想学习下django or sinatra.
结果整到最后,我问自己为什么要这样做? php不也挺好的?
框架要开发效率, 我会laravel啊.
有人说laravel的代码很乱,搞了半天,愣是没弄懂它那个facade是啥回事... 在图书馆里看了一整年的j2ee的我,倒是觉得laravel很熟悉. 于是,我抛弃掉20多年历史的MVC, 借助namespace弄个package, 各种services, validators, repositories,events,etc,.全部分开来, 注册ServiceProvider,通过ioc注入实例,再搞搞phpunit. 看着自己的代码, 觉得好有成就感. 这才是高聚合低耦合! 就是操作起来比较麻烦, 要创建很多文件, 貌似这样就不算是效率了...
还有, laravel这东西本身就是一个个包组成的. 比如我用自己的前端替代wordpress前端时,就是只用他的router和database.
框架要性能, 我可以搞phalcon. 这个没用过就不扯了.
包管理,有composer. 多亏了FIG这个非官方小组, 出了psr标准! 我觉得composer算是php的一个里程碑吧. 只有一个问题, 国内的速度........
php本身很慢!! 前有hhvm, 后有hippyvm, 官方又要搞个PHPNG. 哦, 5.5还自带了个opcache.
需要non-blocking? reactphp
......
为什么startup,尤其国外, 会选择python或ruby作为开发语言呢? 我个人觉得就是因为php太流行, 程序员良莠不齐. php命名不规范,我反而觉得,不是个多大的问题.
你们的想法呢?
我左思右想, 如果给我一个理由放弃php, 而以python或ruby为生, 那就是php程序员工资低......
开放性问题,靠谱都会给赞.
初创公司需要快速做出可用的产品,ROR在速度上有绝对的优势。
仅此而已。
如果现在这个时间点来选,个人觉得Ruby和Python不是一个好选择。既不如PHP使用广泛,也不如GO/NodeJS革新。顺便说句,我们拍卖的PHP程序员工资可一点都不低……
如果搞web,继续php吧。从不觉得php性能是个问题,以后更不会。
写了两个月的laravel,发现很强大。。。入门比较高。。搞起来还是不错得。。
诚然php有好的代码,但是Rails更鼓励人们写好的代码,php不是。拍黄片这个名字不是白叫。
首先:
任何一个做web开发3年以上的人员,都可以轻松将php替换为如下:python,ruby,go,node...
其次:
如果学习过其它语言,会发现php这门语言很混乱,不光是表面的函数调用,而且内部机制没有一个明显的对象模型,无法给人一种:"我只要了解了这个语言的对象模型,任何代码都能看得懂",这种自信的感觉,没错,我说的就是js或者ruby的对象模型...
最后:
写php真的不会想写出好代码,而ror的DRY原则,则是最基本的提醒,有总比没有好,更不用说写单元测试了
喜欢python不喜欢ruby,学了挺长时间的python 3,后来学了一点框架,webpy,django,tornado都入门了,然后后来发现国内好多公司用的都是python 2.× ,但是我想写2.x的代码,所以后来决定学了nodejs。。。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

AI可以帮助优化Composer的使用,具体方法包括:1.依赖管理优化:AI分析依赖关系,建议最佳版本组合,减少冲突。2.自动化代码生成:AI生成符合最佳实践的composer.json文件。3.代码质量提升:AI检测潜在问题,提供优化建议,提高代码质量。这些方法通过机器学习和自然语言处理技术实现,帮助开发者提高效率和代码质量。

session_start()iscucialinphpformanagingusersessions.1)ItInitiateSanewsessionifnoneexists,2)resumesanexistingsessions,and3)setsasesessionCookieforContinuityActinuityAccontinuityAcconActInityAcconActInityAcconAccRequests,EnablingApplicationsApplicationsLikeUseAppericationLikeUseAthenticationalticationaltication and PersersonalizedContentent。

HTML5带来了五个关键改进:1.语义化标签提升了代码清晰度和SEO效果;2.多媒体支持简化了视频和音频嵌入;3.表单增强简化了验证;4.离线与本地存储提高了用户体验;5.画布与图形功能增强了网页的可视化效果。

交易所内置量化工具包括:1. Binance(币安):提供Binance Futures量化模块,低手续费,支持AI辅助交易。2. OKX(欧易):支持多账户管理和智能订单路由,提供机构级风控。独立量化策略平台有:3. 3Commas:拖拽式策略生成器,适用于多平台对冲套利。4. Quadency:专业级算法策略库,支持自定义风险阈值。5. Pionex:内置16 预设策略,低交易手续费。垂直领域工具包括:6. Cryptohopper:云端量化平台,支持150 技术指标。7. Bitsgap:

MySQL函数可用于数据处理和计算。1.基本用法包括字符串处理、日期计算和数学运算。2.高级用法涉及结合多个函数实现复杂操作。3.性能优化需避免在WHERE子句中使用函数,并使用GROUPBY和临时表。

Composer是PHP的依赖管理工具,通过composer.json文件管理项目依赖。1)解析composer.json获取依赖信息;2)解析依赖关系形成依赖树;3)从Packagist下载并安装依赖到vendor目录;4)生成composer.lock文件锁定依赖版本,确保团队一致性和项目可维护性。

typetraits在C 中用于编译时类型检查和操作,提升代码的灵活性和类型安全性。1)通过std::is_integral和std::is_floating_point等进行类型判断,实现高效的类型检查和输出。2)使用std::is_trivially_copyable优化vector拷贝,根据类型选择不同的拷贝策略。3)注意编译时决策、类型安全、性能优化和代码复杂性,合理使用typetraits可以大大提升代码质量。

在MySQL中配置字符集和排序规则的方法包括:1.设置服务器级别的字符集和排序规则:SETNAMES'utf8';SETCHARACTERSETutf8;SETCOLLATION_CONNECTION='utf8_general_ci';2.创建使用特定字符集和排序规则的数据库:CREATEDATABASEexample_dbCHARACTERSETutf8COLLATEutf8_general_ci;3.创建表时指定字符集和排序规则:CREATETABLEexample_table(idINT
