V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  aligo  ›  全部回复第 20 页 / 共 26 页
回复总数  516
1 ... 12  13  14  15  16  17  18  19  20  21 ... 26  
2011-03-12 12:07:05 +08:00
回复了 aligo 创建的主题 PHP 来造个php代码生成器吧,实在太难写了
@CupTools 我不想改变php啊。。。另外也不觉得php恶心,只是写起来有点麻烦,而且缺乏表现力难以理解

@vayn 没事,这事我也没干过,首先需要解析器和生成器,hiphop用的是Flex/Bison,不过我觉得用php写成的LIME更合适(http://sourceforge.net/projects/lime-php/),或者也可以用http://pear.php.net/package/PHP_ParserGenerator和http://pear.php.net/package/PHP_LexerGenerator
然后再写一个标准库是必须的,没必要把所有特性,一股脑的交给生成器
最后就是一些外围的工具,如make工具,和文档/单元测试工具的集成,编辑器的语法高亮等

不过最重要的还是搞一个让大家满意而且愿意用的语法,当然这个可以慢慢改进

有兴趣吗?
2011-03-12 11:42:10 +08:00
回复了 aligo 创建的主题 PHP 来造个php代码生成器吧,实在太难写了
对头,不是一种新的语言,最后生成的还是php代码,所以实施起来比较简单
这个初步设想的话,当然是山寨了各种语言的长处和各种实践经验,一切以好用方便为宗旨
我是真打算做这个东西,因为php实在太难写了
不知道有没有人想要一起来,让我自己做我很容易一条路走到黑然后坑掉
2011-03-12 11:37:19 +08:00
回复了 aligo 创建的主题 PHP 来造个php代码生成器吧,实在太难写了
@CupTools 这不是我一个人就能决定的事情
另外php的语言在不断改变中,从php4到php5就变了不少,接下来也还会接着变的
不过就现阶段考虑,我只能想到代码生成器这种土办法,我绝对不是在yy,例如java上的velocity就是把类似php的东西生成java代码
2011-03-12 11:27:29 +08:00
回复了 aligo 创建的主题 PHP 来造个php代码生成器吧,实在太难写了
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
用php的人还是很多很多很多的,不过似乎比以前少了一点,被c#超过了
然后静态类型不会带来什么灵活性问题吧,只是写代码的在某些地方多了声明类型的步骤,但同时与之相关的文档和测试工作可以省下更多
2011-03-12 11:20:14 +08:00
回复了 aligo 创建的主题 PHP 来造个php代码生成器吧,实在太难写了
@reorx 和那个有点不一样,并不是让php和其他语言一起工作

就像@rechtar 说的一样,一门新语言,然后还有一个以php为目标的代码生成器
2011-03-12 11:08:28 +08:00
回复了 aligo 创建的主题 PHP 来造个php代码生成器吧,实在太难写了
@vayn 没错,把逻辑代码分开,例如工厂方法之类显然不应该和类实例方法在一起
静态类型的话其实只是伪静态,因为最后生成的php依然肯定是动态的,而这里指静态只是代码生成器运行时候进行的检验
好处是在某些地方强调类型,可以避免很多不必要的错误,甚至安全问题,同时也可以少写很多注释和单元测试
因为php经常需要从url接收信息,并且通过SQL操作数据库,如果实现伪静态类型至少避免很多低级疏忽
2011-03-12 10:52:35 +08:00
回复了 aligo 创建的主题 PHP 来造个php代码生成器吧,实在太难写了
最主要的:
可以在object User中定义
...
protected def makeBaby(user_a,user_b){
...
new User(data)
}
在class User中
def makeLoveWith(user_b){
if (...) {User.makeBaby(this,user_b)}
}
使用上
baby = user1 makeLoveWith user2 || null //语法糖
这样外部是访问不到User的makeBaby方法,避免感应受孕之类的情况发生
2011-03-12 10:44:57 +08:00
回复了 aligo 创建的主题 PHP 来造个php代码生成器吧,实在太难写了
使用起来:
var user = User.getById(2012)
echo user.getName //其实这是多余的,完全可以用getter嘛- -
或者更酷的链式方法:
echo User.getById(2012).getName
2011-03-12 10:41:00 +08:00
回复了 aligo 创建的主题 PHP 来造个php代码生成器吧,实在太难写了
@vayn 就是受到hiphop的启发,它刚出来那会我很有兴致地玩过了
代码生成器当然也肯定就是为了偷懒而存在的,例如在接下来的php版本里肯定会变成str.replace之类的,只是我等不及了而已

伴生对象类似于javascript中对象定义方法,一经声明就已经存在,伴生对象特殊之处在于:
1、和类名同名,而且是大驼峰,永远不会和纯小写的对象变量混淆
2、单例或者说静态,至于是不是实例化是无关紧要的问题了
3、结合1和2,它对与他同名的类有平等互访权,所以可以用来做工厂方法

例如:
object User{
def getById(id){
...
new User(data)
}
}
class User(data){
def getName(){
data[name]
}
}
同意 @luofei
食人魔 -》 Ogre
2011-02-20 11:42:30 +08:00
回复了 icerunz 创建的主题 问与答 有人用{mustache}框架么?据说Twitter用的是?
那是在召唤batman
2011-02-20 09:12:48 +08:00
回复了 icerunz 创建的主题 问与答 有人用{mustache}框架么?据说Twitter用的是?
不是一个框架
你可以把它看成是一种js局部预制板
2011-02-20 09:11:54 +08:00
回复了 huahang 创建的主题 问与答 [MacRuby] 关于 rake, llvm_config 和 "prefix"
把llvm的bin目录加入到PATH里应该就可以了
2011-02-17 16:58:03 +08:00
回复了 aligo 创建的主题 Ruby on Rails jruby似乎还是不靠谱啊
再列一条罪状,jruby目前在处理乱码上的表现和YARV还是有很大差异,XD

倒是前面说的File.expand_path的问题,在最新版本:jruby 1.6.0.RC2 (2011-02-17 8f3eab6)中解决了,官方的RC2不行
2011-02-13 08:26:50 +08:00
回复了 crazycookie 创建的主题 问与答 大家的代码 都是用何种方式 发布到 生产环境的?
capistrano不是只用在rails上啊,php什么的也可以用

php也可以使用基于ant的phing了,相当好用,另外一个选择就是maven,不过它们比较麻烦是用xml做配置
2011-02-12 16:29:12 +08:00
回复了 irong 创建的主题 问与答 你怎么看待诺基亚和微软的合作?
2011-02-12 09:39:37 +08:00
回复了 irong 创建的主题 问与答 你怎么看待诺基亚和微软的合作?
QML很酷!
许愿希望类似的东西今后会越来越多
以上。
2011-01-15 09:39:23 +08:00
回复了 aligo 创建的主题 Python 推荐pythonbrew
ps:目前pythonbrew还是只能在2.6下安装,但是之后就可以切换版本了
1 ... 12  13  14  15  16  17  18  19  20  21 ... 26  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3331 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 26ms · UTC 04:56 · PVG 12:56 · LAX 20:56 · JFK 23:56
Developed with CodeLauncher
♥ Do have faith in what you're doing.