Patterns are signs of weakness in programming languages?

cber 2006-10-16 10:14:25
这话不是我说的,是某大佬从牛人Peter Norvig的话中推出来的^_^,Peter Norvig的原话是:
"Patterns" that are used recurringly in one language may be invisible or trivial in a different language.

现在我们可以理直气壮(?)地对那些Javaer的Patterns表示不屑了:D 不过好像首先我们必须能掌握N门编程语言:$

相关URL:
http://newbabe.pobox.com/~mjd/blog/prog/design-patterns.html
http://newbabe.pobox.com/~mjd/blog/prog/johnson.html
http://www.cincomsmalltalk.com/userblogs/ralph/blogView?entry=3335803396
...全文
838 37 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
wingfiring 2007-02-01
  • 打赏
  • 举报
回复
唉,这个星期,分到一个bug,我已经n进n出若干代码,快成废人一个了,还没搞定。
真想把某些人揪出来tjjtds!
cber 2007-02-01
  • 打赏
  • 举报
回复
唉,我现在彻底被那个framework给搞趴了
Wolf0403 2007-01-31
  • 打赏
  • 举报
回复
秃子大仙今天也没事了?
wingfiring 2007-01-31
  • 打赏
  • 举报
回复
顺便慰问一下,cber被framework折磨得怎样了?
wingfiring 2007-01-31
  • 打赏
  • 举报
回复
这一次无条件支持cber!
我现在被一些Patterners的Patterns搞得快神经了.
ReverseEngineering 2006-12-24
  • 打赏
  • 举报
回复
算法是核心,当然也离不开硬件设计。所有软件做的,硬件都能做的更快。软件只是为里更灵活。
DrawText 2006-12-22
  • 打赏
  • 举报
回复
语言并不是那么重要。
LiChenYue 2006-11-20
  • 打赏
  • 举报
回复
蹭点分!
sjjf 2006-11-18
  • 打赏
  • 举报
回复
我们的祖先如此聪明,以至发明了一种类似汇编一样可以描述万物的语言,
如汉语,英语,以及其它的古语种。
在很多的领域,他们并不是很方便,使用它们有可能就像使用汇编开发商务应用软件一样。
所以衍生出了很多专业术语以及描述方式,这些术语可能基于以前的语言,但是提供了更高一层面的描述语言。新的语言的描述点可能包括了旧语言的一个过程,计算机语言的发展历史也类似。过程语言的产生,oo语言的产生,脚本语言的产生....每一种语言都是描述问题域中的模式的,离开模式也就没有语言。离开语言,也就没有模式。

fixopen的迭代的例子举的相当好。
每一种“语言”有相似的例子,是因为他们的问题域包含了这种模式。
所以提供的描述工具里面,皆有控制变量初始值,出口,步长,循环过程等。
离开具体的语言,就没有办法谈模式了,
我在表达控制变量初始值,出口,步长,循环过程的时候用的是汉语这种语言,它和

Do While boolExpr
。。。。
Loop

没有什么差别(这里汉语的do while循环的描述不是太恰当,懒得改了)
如果没有语言,就无法描述模式了。同样的如果没有模式,语言也就没办法创造出来。

总之,个人认为,
你试图描述的你的问题的时候,你就是试图创造一种语言,
但也许你创造的语言已经被被人创造出来了。

在我跑去做销售的时候,也发现了这个现象,比如他们用几个简单的术语就能够很清晰的
描述了一个商务流程,例如 铺货,销货,冲货等。




sjjf 2006-11-18
  • 打赏
  • 举报
回复
知我者,莫过fixopen也。

但如果两年前有人这么跟我说,我也会朝他扔鸡蛋的。

模式即语言,这里所谓的语言即可能是是狭义中的语言如c,java甚至人类语言等等,但也可能不是,(偶的思维并没有问题)
所谓语言就是你试图描述一个问题集的时候的工具,
它由两部分组成类似图的定义,一个是点的集合(词法),一个是关系的集合(文法)。
简单的说,语言由描述点和描述规则组成。
万物的存在皆有模式,问题域是对事物的划分,语言就是描述他们的。
当你掌握一门语言的时候实际上你掌握的是一种模式。

模式有坏的,有好的,坏的模式经不起时间的考验就烟飞灰灭了。
好的模式能够保持自我。

我们常常说的设计模式,实际上是gof总结出来的,
在一定范围能够保持自我的有生气的能够保持自我的好的模式。




nule 2006-11-16
  • 打赏
  • 举报
回复
先去研究下设计模式再来讨论这个问题,最好有些大项目经验,否则是会觉得设计模式过于繁复,没有意义,事实上设计模式只是一些常见的处理特定类问题的良好做法,Gof的23种只是他们的一个总结,还可以有许多中设计模式,一个模式的结构有其针对的特定问题,只关注少部分内容,但是实际的项目是千变万化的,需要综合运用各种模式,要用的好用的巧,这就是水平。

模式跟语言是不太相关的,我建议初学模式的同志可以看看<Java与模式>这本书,讲的深入浅出,比那本翻译的巨烂无比的《设计模式》要好懂的多的多。
fixopen 2006-11-13
  • 打赏
  • 举报
回复
语言是对系统边界接口的操作抽象化,通用化的结果。

语言即接口。

从前面的论述中可以看到,模式即结构,这可以看作是实现层面的东西。

但是,接口就一定跟实现是不同的吗?

我举个例子。

Do While boolExpr
。。。。
Loop

这是一个标准的语言构造,你说它不是模式?它是什么?就是迭代模式嘛。
fixopen 2006-11-13
  • 打赏
  • 举报
回复
如果说是分开的,那么请问:语言是什么?
lei001 2006-11-07
  • 打赏
  • 举报
回复
up:语言和模式是分开的
jixingzhong 2006-11-07
  • 打赏
  • 举报
回复
patterns 作为一种思想、逻辑,
语言的依赖型还是很小的 ...
Kvci 2006-11-07
  • 打赏
  • 举报
回复
主题名称应该翻过来吧?
模式在语言中的作用?
语言在模式中的作用?
sandrowjw 2006-11-06
  • 打赏
  • 举报
回复
说层次有点误导,粒度大概更加确切。
sandrowjw 2006-11-06
  • 打赏
  • 举报
回复
模式相对来说是低层次的抽象,高层次的好像应该叫paradigm吧。
fixopen 2006-10-23
  • 打赏
  • 举报
回复
模式即语言

呵呵,颇有维特根斯坦的遗风。

我更倾向于把模式看作语言中的惯用法。
飞哥 2006-10-21
  • 打赏
  • 举报
回复
呵呵,理解万岁!

JF
加载更多回复(17)

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧