瞎扯淡 本社区有从 PHP 转过来的吗?

匿名 · 2012年05月08日 · 最后由 jialezhang 回复于 2012年07月28日 · 10561 次阅读

有没从 PHP 转过来的 RoRer?

@zw963 在考虑有没有必要学下 Python,我倒是觉得有必要看下 PHP

Rails 是把 SQL 语句用 ORM 映射掉了,久而久之,连怎么写 SQL 都会忘掉,用用 PHP 或许有助于了解 Web 开发一些基础性的知识(不用框架)

而且目前国内的大环境下,如果说自己要做个小东西,或者给别人做个小玩意,RoR 似乎不是那么玩得动,部署环境没 PHP 那么容易弄,毕竟支持 PHP 的空间到处都是

个人愚见,希望有 PHPer 可以指点一下 :)

我就是从 PHP 转过来的(PHP 菜鸟),我比较赞同楼主的观点,特别是"用用 PHP 或许有助于了解 Web 开发一些基础性的知识(不用框架)",如果是新手刚接触 Web 开发,个人认为先学 PHP 打基础比较好。 Ps:以上纯属个人观点

最近一直在看 Web 开发,不过还真没看 PHP, 主要是觉得实在是没必要,而且为了使用 rails 而学习 php, 觉得有点得不偿失!

最近主要看的书包括

  • Head First Rails.
  • Head First HTML & CSS
  • Head First SQL
  • Head First Ajax
  • Head First HTML5, 不过没看完。有空再看完。
  • JavaScript 语言精粹,这本书薄薄的 100 多页,不过绝对是 JS 的经典,这本书只讲 JS 的精华,并且指出了很多 Js 编程中容易踏入的误区,不过要提及的是,这本书讲的是纯粹的 JavaScript, 貌似不太适合初学者,对了,本书作者同时也是大名鼎鼎的 JSON 的作者。

事实上,没看上面那些书之前,Agile3 以及 4 的购物车示例我已经完整的实践了一遍,但是因为很多基本概念糊涂,总是看起来不爽,总觉得别扭,现在再看 agile, 舒服多了。

我说学 Python 并不是为了真学 Python, 最近也在看`Python 核心编程', 只是我觉得对比 Ruby 来学习 Python, 例如将书本中的 Python 代码全部用 Ruby 的实现一遍,反而更可以加深对 Ruby 的印象。

#3 楼 @zw963 WEB 开发要学的东西真的太多了。。。呃!!!你真努力学习,我太惭愧了。。。

#1 楼 @xenon #3 楼 @zw963 #4 楼 @Juanito 基本都 at 了一遍,: ) web 的东西真的不少~我自己这几年跟 web 的交集一点都木有,不过还是想转到 web 方向上来. python 我觉得必要学下,当然还有 java,技术选型这块儿我并不是很懂,从网上别人的观点来看,ruby 在复杂逻辑运算方面比 python 要逊色一点点,参见此文最后一段 http://robbin.iteye.com/blog/444015 前提是把 ruby 学好了,不然几门语言同时开工,恐怕哪门也难精通.python 和 ruby 有一定的相似度,学好 ruby 之后,再学习一下 python,偶是这么计划的。

php 源码真的太多,框架也多 ,之前也下过几个源码看了下,不过看得相当费力,比如 ecshop 和 shopex 这些源码看得真蛋疼. PS: @Juanito 的帖子写的很好,赞一个,偶也开始没多久,一起加油哦 : )

#3 楼 @zw963 #4 楼 @Juanito #1 楼 @xenon 对了,要是有精力,可以看下 FP(haskell,scheme,lisp,scala 中任意一个),不止忘有多精,能学一下思想也好。计算机程序的构造和解释(英文版)这书就是用 scheme 写的,地址http://www.doc88.com/p-7040169817.html

另外,@Juanito 之前应该在研究 lisp 吧:)

#4 楼 @Juanito

见笑了~~ 我心里知道,你比我牛多了。XD~

#5 楼 @Crabby

我不是几门语言同时开工。事实上,我是觉得自己 Ruby 还算可以,才考虑粗浅的了解下跟 Ruby 相似的其他语言,例如 JavaScript 或 Python, 别的目的不说,在语言基础层面的实现上,Ruby 和 Python 如出一辙,我觉得看看有好处。Lisp 我是懂一点的,因为我用 Emacs. scala 还真有本书,Scala编程, 糊里糊涂买下了,不知道猴年马月才有机会看 (或者说才用得到看).

一起努力吧。我感觉现在已经入门了,很快就可以找到一份 rails 相关的工作啦~

之前一直在做 php,还是觉得用 php 比较顺手 呵呵 可能是习惯问题吧 还是要努力改改套路用 ruby

匿名 #10 2012年05月09日

#3 楼 @zw963 中间几层楼歪得厉害,主席带头歪楼呀

如果说是因为 Python 和 Ruby 共通才觉得有必要看下 Python,那方向可就错了

本楼回帖的应该都会个C或C++,那照这样的观点,是不是有必要把Java和C#都过一遍呢?这几种语言可都是共通的呀

如果说只是因为 Python 类库全,想找个万能的工具箱,那 Python 确实是最佳选择,但如果说专攻 Web 的话,Python 的的确确差 Ruby 太多,@huacnlee 应该也有同感

Rails 不适合初学者,也就是因为它封装得太厉害了,直接上手就用这个框架将很难深入进去,容易停留在只知其然,不知其所以然的层面

事实上 PHP 很简单,无需刻意去学,有 C 基础就上手了,函数之类的直接查手册,所以我想是不是可以借此了解下 Web 开发的基础,对于 Rails 的学习而言,绝对是有益无害

不知对否?

概念被混淆了:PHP 是语言,Rails 是框架,框架自然会把一些东西封装起来,不必考虑较为底层的东西。想了解底层的东西,用 Ruby 写 CGI 脚本就是了,再加上 erb,这货跟 PHP 差不多。

这贴一定会火起来

#10 楼 @ruchee 反正我用 Python 做 Web 开发比 Ruby 差远了。 当然我也是很喜欢 Python 的

匿名 #14 2012年05月09日

#12 楼 @huacnlee 我可不想它火,真要火了,我可就是众矢之的啊,受不起

@huacnlee 发现一 bug,目前是 12 点 12 分,可从 9 楼我的回复开始都显示 1 分钟前 我至少是 1 小时前回复的了 不知道大家是不是也这样?

匿名 #16 2012年05月09日

#15 楼 @young4u_amy @huacnlee 我这也一样,后面的楼层都显示成了“不到一分钟前”,确实有 Bug 啊

匿名 #17 2012年05月09日

其他的帖子貌似也都 1 分钟了。。

一直是 php 程序员,近期北上发展,玩 rails!

#10 楼 @ruchee

我纯粹瞎扯~ 参考意见应该听@huacnlee的。他才严重有资格评论呀!

这样说吧,如果考虑未来 web 开发,JS 越来越重要的情况下,JavaScript 作为唯一的前端语言,我想不用是不行的吧,我现在都搞糊涂了,为什么要把 JS 算作前端?

要说 Python, 只能算是个人兴趣,看其他书烦的时候,与其去看动画片或电影,有时候看看这些感兴趣的东西,也是一种消遣,打发时间而已。

java -> php -> rails 过来的,觉得没必要。感觉你只是想了解下 sql,或者 web 开发的一些基础。了解 sql 你可以直接数据库写 sql 练习不就得了。web 开发的基础你去 w3c school 左侧提纲列的比较清楚,浏览下,了解下就可以了。

匿名 #21 2012年05月09日

#20 楼 @wikimo 多谢指教,我这想法确实有点绕弯子了

#10 楼 @ruchee

我觉得从 ORM 学习 SQL 比较靠谱。直接看 ORM 输出的 SQL,不就很快能学会了。

没有多少 Web 是单纯的 Web。事实上,对于很一般的 Web 应用,除了 Python,找不到更合适的语言了。

PHP 真的很难。我从来就没学会用 PHP 写点东西出来。

匿名 #23 2012年05月09日

#22 楼 @bhuztez 关于 ORM 的说法有一定的参考价值,但对于 Python 和 PHP 的言论不敢苟同

#23 楼 @ruchee 那你举一个比 Python 更适合折腾一般 Web 应用的语言出来。

匿名 #25 2012年05月09日

#24 楼 @bhuztez 本帖的主人公语言是谁?还用得着我举例吗?拒绝与你这么无谓地争论,只希望本帖能尽快沉下去

@ruchee 或者你可以等你有需要的时候再回头去看,需要什么看什么,而不是上来就是系统的看。等过一段时间一定积累后,再回头系统地看下。

别争啦。我发现我是出了名的瞎扯,歪楼。

@bhuztez ,@ruchee SQL 是 ORM 的基础,ORM 是 rails 框架的基础。在应用上,ORM 当然好懂,也感性的多。不过,你不熟悉 SQL, 怎么设计表?你甚至不知道每一个迁移后面执行的什么 SQL 操作,怎么可能用好 rails.

说起 PHP, 我没有任何经验,不过我可以肯定一点,PHP 应该不是使用 web 编程的基础,准确地说,PHP 绝对不是学 rails 的基础 (就像 SQL 是 ORM 的基础那样), 就算应该学学 PHP, 也是在通过 PHP 来熟悉 html, css, js, sql 等等,但是如果打算用 rails, 先学 php, 应该没啥意义。因为就算你用 php, 想提高,到头来,你还是得看我在 3 楼写的那些书,对不?有看 php 的时间,不如多看看 Ruby.

我也算一个了,不过 js 现在不是有 node.js 了吗。

#26 楼 @wikimo

我觉得这想法没错。我实在是没有实践的机会,另外自己照书做了`购物车'网站,感觉有些地方糊涂,别扭,所以才打算系统的看下。

说到 php, 我想到早年 php 社区的一位,id 是 axgle 吧,06 年国内 rails 风刚吹起,这位边学 ruby 边学 rails, 就几天就搞出一个帖吧的雏形来..........从此以后尝到甜头,php 社区就少见他了.......

我是 04 年折腾 php 的,那会儿能看的 php 教材就 3 本书,培生的 php4 开发手册,o'reilly 的 Programming php, 还有一本 php 内幕 (俗称黑皮书), 当时国内 php 折腾的人少,学院派清一色 java, 电商流铺天盖地的 asp, web 那圈子里 dvbbs 一统天下,php 空间卖得都挺少的,而且网络又不像现在这么发达,像我们这些搞 php 的很少有科班出身,基本就是摸石头过河,所谓的经验和基础扎实其实就是弯路走多了折腾出来的。搁现在很多混 ppc 之类的新人眼界未必有玩 ruby/python 的开阔

扯远了,其实我觉得,现在玩 web,要简结一点基础一点的,可以玩玩 bottle, sinatra......再回过头玩 php,确实有点便扭

匿名 #31 2012年05月09日

@bhuztez @wikimo @zw963 @clearJiang 我是超级菜鸟,今天受教啦

扯哪门语言好绝对是瞎扯淡,所以没必要,只有扯哪门语言更适合某个应用场景才有点意义

我是缺少实践,所以观点都有点自以为是,待悟出门道再向各位请教 :)

#27 楼 @zw963 Django 里面,默认数据库表是根据 model 里的定义生成的,migration 官方推荐用 South 来做,South 会根据你 model 定义的变化,有可能就自动生成 migration 脚本了。你就观察一下生成的 SQL,就已经能把基本的 SQL 学会了。Rails 官方不知道咋想的,就是不去集成这样的功能。

#32 楼 @bhuztez

嗯。

不过,我一直是倾向于先把最基础的搞尽量扎实一些,再去理解更加抽象的。这样的好处是:少走很多弯路。有时候看得懂英文单词,不见得看得懂某个英文单句,SQL 也同样的,不仅仅是语句问题,即使很基础的东西,也回包含很多感性的,需要理解的东西。

扯远点,这也是我强调应该先学 Ruby, 再用 Rails 的原因。就算你以前一直在做 web 开发,用 rails 上来就做个博客。你真的认为可以完全不懂 ruby, 而精通 rails 吗?

#33 楼 @zw963 基础是无底洞,为了学写程序先去学提纯硅?

匿名 #35 2012年05月09日

#34 楼 @bhuztez 哈哈,这个有点扯了,现在社会分工越来越细,电脑就被分成了硬件和软件,软件领域又被各种技术拆成了大大小小的区间,学无止境啊

#34 楼 @bhuztez

这不是抬杠了不是?哈哈

能力强的人什么办法都可以的。像我这种能力一般的,稳扎稳打踏实一些。这也与性格有关。

#34 楼 @bhuztez

还有一点要提:如果你想把复杂问题简单化,唯一的办法就是了解更广一些,这样会越学越简单,如果反过来,你可能会走弯路,或者会把简单问题复杂化。典型的,你会把多个同样但相似的问题,当作不同的问题来处理,凭空增加很多烦恼,在这点上,Ruby 给我的体验相当深刻的。

#35 楼 @ruchee 所以能不学就尽量不学

#36 楼 @zw963 什么叫踏实。如果不断地降低抽象层次叫踏实,那么你的确应该去学怎么提纯硅啊。这么说有问题么?

而且,ORM 那个问题和要不要学底层的东西,也没任何关系。只是说,当你想学 SQL 的时候,从 ORM 出发去学,学习曲线会更加平滑一点。

同意@bhuztez 的说法,基础这东西真的是无底洞。 我自己的主力语言从 C C++ Delphi Java C# Ruby 一路过来,我觉得很多 C 时代的经验对 Ruby 也有用,很多 Foxbase 上的经验,对 MySQL 也有用。但是为了这些去学古老的东西,真的没必要。 历史的车轮会滚滚而来,把不前进的人,全部压扁。

5 年系统运维,现在也搞 rails,数据库之类的各种底层设施毫无压力,倒是觉得前端比较费劲 其实条条大路通罗马,只在于你是不是下功夫去钻。 担心因为 ORM 而不懂 SQL,那是杞人忧天了,SQL 远比 PHP 简单多了

上面说到表设计,这个和 sql 语言本身关系不大,orm 就能帮你做到表关系提炼,至于性能优化,多看书,多实践,勤思考即可。

我觉得既然已经在用 rails 了,没有必要去专门学 php,作为一个脚本语言,php 和 ruby 相比,顶多给你一些语言设计方面的感悟。

说到做小东西,lz 可以试试 sinatra,国外有些免费空间支持这种极简框架的。

匿名 #43 2012年05月10日

@kgen @suupic @tency 看来这贴发的还是有点价值,历史的车轮总是不断前进,技术也会成批成批地淘汰,技术选型不能仅看现在,而应该是着眼于未来,希望学 Ruby 的都能看看这些评论啊

#25 楼 @ruchee 你能举出啥例子来。Ruby 就是那个把 monkey patch 有 n 种写法叫 meta programming 的语言。

匿名 #45 2012年05月10日

#44 楼 @bhuztez 你还真是抬扛的,砸场子也没必要找我砸呀,你不喜欢 Ruby 的话还待这儿干嘛呢?

#45 楼 @ruchee 让大家果断放弃 Ruby 啊。Python/Ruby 这样的语言,已经没多少存在的意义了。而且 Ruby 起来得太晚,还有很多根本问题没有修正,在一起完蛋之前,也没啥希望超过 Python 了。

我以为几年之后主要会剩下三类语言 第一类,是能充分发挥机器运算能力的语言,其实可以近似认为是能编译成机器指令的语言,就像现在 C/Fortran/Haskell 这样的语言。 第二类,是帮你快速搞定一些琐碎的问题的语言,传统上是 bash+grep+sed+awk 等的组合。现在就是 Perl 了。 第三类,是适合开发长期运行的系统的语言。目前来看,能用的只有 Erlang。未来出现这样的语言,也一定要实现和 Erlang 那样的消息机制,以及 OTP。

Python/Ruby这样的语言,夹在2和3之间,用一行代码搞定问题的能力不如Perl,用来写长期运行的系统不够稳定,已经没有多少生存空间了,一定会完蛋的。

就算 Web 开发,Rails 和 Django 比,那也是 Rails 3 在向 Django 自 1.0 开始就一直在发展的方向靠拢。哪里是 Python 差 Ruby 太多。是 Ruby 差 Python 太多吧。

匿名 #47 2012年05月10日

#46 楼 @bhuztez 我没有任何兴趣反驳你如此肤浅的观点,浪费时间,还是直接呼叫 @huacnlee@zw963 来收拾你吧

#47 楼 @ruchee 哈哈 这难道就是传说中的通灵之术,直接把 2 位大神给召唤出来了。 ;)

#46 楼 @bhuztez 哈哈~ 恭喜你荣获本届 80 公斤级抬杠冠军~ 鼓掌~~ ;) 玩笑而已。

不与人争论 Ruby 的好坏,你不喜欢,那是你的问题。

#50 楼 @huacnlee

我也可以说,不与人争论 BrainFuck 的好坏,你不喜欢,那是你的问题。

所以,你这个说法不对,重新说过。

..........你们啊

#10 楼 @ruchee 说 PHP 简单的,你可以尝试用 PHP 去开发一些大型的应用,你就知道 PHP 其实是怎样的一种 T 型结构的语言了。 当然没有攻击的意思啊。PHP 用了很多年,做过不少不同类型的系统。到现在公司的开发还是用 PHP。在这些年的过程中,对 PHP 的看法也是逐渐改变。PHP 是那种典型的入门简单进阶痛苦的语言,如果有兴趣大家可以交流一下。我所认为的 PHP 难学的原因,并非语言本身,而是有这么两点

  1. PHP 很难单独完成某样工作,需要配合其他的语言或者工具,比如 Bash、比如 C++(想 07 年的时候,还折腾过一个叫 ICE 的 PHP 中间件,其中心酸,非一言可以道尽)
  2. 做 PHP 或多或少要了解其他很多东西,什么 Linux、MySQL、Bash 等乱七八糟的东西。那种纯粹的就是大杂烩。

#19 楼 @zw963 JS 我觉得把它当作前端,现在是 OK 的,但是逐渐就不是那么 OK 了。比如现在的 backbone.js 和 spinejs 等等,JS 已经可以作为一种类后台语言(之所以是类后台语言,是因为对于数据操作,还是需要借助 RESTful 接口来得到,否则 JS 无法直接获取数据。当然,使用 Node 是另一回事,与所谓的前端 JS 差别较大)来使用了。

#30 楼 @clearJiang 先向前辈致敬。话说我比较赞同你的观点,PHP 不可以说是 Ruby 的基础,两者语法思路等方面其实完全不同,大没有必要为了学习 Ruby 去学习 PHP。当然,去尝试其他语言的思路倒是不错的一种做法。

两年 php,现在做 ios

@zw963 可能还接触的少的关系吧,多联系,多思考,多学习,自然会有进步,有时间也可以记录下自己学习的历程,会更有成就感。就算是“购物车”那也是实践,比如也可以自己去写个 blog 之类的玩玩。

@ruchee 都是从菜鸟过来的,一样的,只是别人可能比你提前了几年做菜鸟。

匿名 #59 2012年05月11日

还真如华顺所言,本帖火了。。

感谢各位前辈的教导,就让本帖沉下去算了吧 :)

php 当你真迫不得已要用到时看看就行 (真的会有这种时候吗?),不用刻意浪费时间

rails 也可以很底层,看 rails 源代码就是底层了,不一定舍近求远去学 php,不过话说回来,国内来说 php 还是 web 开发的王者。

标记一下!

64 楼 已删除

N 年的 PHP,后来在一个项目中,被领导要求,迫不得已转向 ruby。 已经一发不可收拾。 现在我有点记不得 php 的一些常用函数了。

我觉得作为一个做前端的,ruby 真是不错哈。

#46 楼 @bhuztez 基本同意 @bhuztez 大神的意见。

只不过我觉得三种语言分别是:c / ruby / erlang 而已。(erlang 这一层最近涌现很多语言,只不过没有一种有 erlang 的基础设施这么完善,想达到也需要很久。

火了...我也是 php 菜鸟

CodeIgniter, Kohana, Yii 贡献者默默爬过……

我也是从 PHP 转来的,一直在用 CI,java 菜鸟,PHP 菜鸟,ROR 什么鸟都不是。哈

我是从 asp 转过来的...

我是 php 入门到这里来的

需要 登录 后方可回复, 如果你还没有账号请 注册新账号