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

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

有没从 PHP 转过来的 RoRer?

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

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

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

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

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

php 菜鸟

最近一直在看 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 入门到这里来的

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