【优雅】什么是优雅~(打造CSDN精品主题)

healer_kx 2006-09-15 12:37:29
什么是优雅呢?
打我学C++的时候,就听说C++号称优雅。
我有时候也觉得,C++很优雅,简洁:比如说

function<int(int, int)> f = _1 + _2;
int a = f(2, 3); //看起来很不错,是吗?

学Java的时候,朋友也告诉我,Java语法优雅。。。
try{
... ...
}catch(Exception) {
}

后来,我进了一个Python群,。里面的人都说Python优雅。。。 。。。


最近我自学Ruby,觉得也很不错。

return a if a > 5 //这样的语法很人性化啊。


突然我不禁要问,啥(tmd)是优雅啊?

...全文
5534 124 打赏 收藏 转发到动态 举报
写回复
用AI写文章
124 条回复
切换为时间正序
请发表友善的回复…
发表回复
iamcaicainiao 2007-02-27
  • 打赏
  • 举报
回复
我是来灌水的。。不要删我的回复啊。。。
lbaby 2007-02-06
  • 打赏
  • 举报
回复
帖子很久了啊
FingerStyle 2007-02-06
  • 打赏
  • 举报
回复
打我学C++的时候,就听说C++号称优雅。
我有时候也觉得,C++很优雅,简洁:比如说

function<int(int, int)> f = _1 + _2;
int a = f(2, 3); //看起来很不错,是吗?

强烈要求楼主,把上面的用法 讲解一下 学习... :)
icoding 2007-02-06
  • 打赏
  • 举报
回复

幽雅首先是褒义性的词,什么东西是幽雅的那这个东西就是好的,
然后幽雅不仅是好的,还带一点不食人间烟火的气质

好象mm,每个人都有自己喜欢的那一类型mm,也许一个很好看的mm
因为不具有你喜欢的那个特点,你就不太喜欢一样,我说一个mm幽雅,你就不同意
那语言也是一样,代码简洁,对于一类人说就是幽雅,另一类人却不这么看

但是不关你认为这个语言幽雅与否,这个语言要具有清晰描述问题的能力
为什么大家都说OO的语言比过程性的语言幽雅?因为OO更贴进生活,更容易抽象
所以能清晰描述问题的语言,编写的顺畅,阅读的明快..这些特征共同的组成了幽雅

但另一方面,幽雅也是人创造的,也许一种幽雅的语言到了不同的人的手里,有人可以把
它的幽雅发挥的淋漓尽致,而还有人写的一塌糊涂?
htqx 2007-02-01
  • 打赏
  • 举报
回复

优雅就是不废话,首先要干脆.
第二个,干脆之余,也要做得很圆满周全,不要耍帅的干脆.

用程序的标准来说就是恰到好处,没有副作用,简洁.
这是很难得的,并且恰到好处不是一成不变,一成不变的条条一般都是有问题的.
恰到好处是和当前的需求有关,比如vb做界面, 很优雅.
但是c++做算法,也很优雅.如果反过来那么副作用,不稳定,和艰难的代码就出来了.



wingfiring 2007-01-31
  • 打赏
  • 举报
回复
优雅,对我来说,就是不超过5行的代码,且不超过一个if,for,while的顺序结构,不超过两个变量,不超过3次赋值。

貌似空白最优雅了......
YoungBee611 2006-12-28
  • 打赏
  • 举报
回复
我觉得有个人喜好吧?就想大家喜欢不一样的MM(Or GG)类似.兵法曰:有精器而无精兵是谓徒费,有精兵而无精器是谓徒劳.运用之妙存乎一心.如果硬要说谁最优美,都有权来肯定呢.the point is wether your coding is graceful. 哈哈 灌水
cime63 2006-11-23
  • 打赏
  • 举报
回复
优雅的美女很多,兄弟们大概也只能得到一个(而且可能根本不优雅)

在程序语言这方面程序员兄弟们怎么就这么不专一呢?
kingcalf 2006-11-23
  • 打赏
  • 举报
回复
刚刚在《模式的乐趣》中看到的,引用Booch的话:
[优雅就是......]每个程序员都羡慕并努力追求的,无法用语言形容的那种难以捉摸的“酷”的品质。优雅的软件很简单,优雅的软件很聪明,而且不会晦涩艰深。优雅的软件会通过精彩而富有创造性的技巧来解决复杂的问题,这些技巧有足够丰富的语意,可以应用于其他的问题,甚至是完全不相关的问题。“优雅”意味着恰好找到正确的抽象。“优雅”意味着以全新的方式使用有限的资源。
Meuck 2006-11-21
  • 打赏
  • 举报
回复
优雅就是比需求多一点。
晨星 2006-11-15
  • 打赏
  • 举报
回复
一头大牛跟一头小牛的对话:

小牛:嗨,您亲自来找我,肯定有什么重要的事吧。
大牛:哦,我在这里参加一个会议,要做演讲,能不能借你一点现成的代码用一下?
小牛:哪方面的?
大牛:都行。
小牛:(在电脑上翻了半天)给,这个是我自己写的。
大牛:(转身就走,窃喜ing)终于有反面例子了。。。
小牛:(当场倒地,从此再没醒来。。。)

(以上情节基于事实,稍有润色。若无类同,纯属见鬼。。。)
nicknide 2006-11-14
  • 打赏
  • 举报
回复
不过有一点, 再优雅的代码, 只要不正确, 就是废物。

但是不可能有完全正确的代码, 因此所有的代码都是等待被发现的废物。
nicknide 2006-11-14
  • 打赏
  • 举报
回复
我以为我写的代码很优雅, 可惜很多人不懂欣赏....
morphymorphy 2006-10-30
  • 打赏
  • 举报
回复
简单的说,优雅就是自我陶醉的内在表现。。。
dodo4444 2006-10-29
  • 打赏
  • 举报
回复
我一直认为 如果一个人一直在说一些让别人听起来很有道理 却又没什么帮助的话
他就是在忽悠别人。我把这种语言成为“玄学”。和算命一样 说些放之于四海皆准的话。

我不是高手 但是看了上面很多人的言论,中国的玄学还是很盛行的。

下面说说我认为的优雅。
1 优雅不是语言决定的 每种语言存在都有它的意义 就是实用。优雅是在人们的使用过程中形成的一些共识。
2 优雅 包括 三个方面 :表面的优美 和 实际使用和理解的容易 及 功能强大。
表面的优美是板式的工整和符合多数人的规则。
实际的使用和理解 不用说 就是让人一看就明白,好用。比如 尽量把程序设计地有正交性,可以少用一点判断语句,一气呵成。
功能强大 可扩展 易复用。
3 优美是相对的 比如 少用 goto 语句是优雅的 但是当用到goto语句能大大提高性能,或则容易理解 等,我还是认为它是优雅的

所以我们需要从书写习惯 语言的特性 以及程序设计上面去不断追求,不断改进。这样才能达到代码的优雅。但是优雅的代码不是一天两天形成的 必须坚持。多看书 多看高手的代码。
CQZE 2006-10-22
  • 打赏
  • 举报
回复
template<template<template<template<template<template<template<template<typename>class>class>class>class>class>class>class>class a_class_template{};


谁说C++不优雅?全都遵循于简单的
template-declaration:
template<template-parameter-list> declaration

难道这不优雅么?
mmosquito 2006-10-19
  • 打赏
  • 举报
回复
优雅
优是优美,有美感,层次感,韵律感,图画感……都是美感。
雅是雅致,与俗相对,可以是字句斟酌,也可以是新颖高妙别致。

所以优雅是个审美的概念,是对作品的,而非语言的。
简洁是美感,浅白是优雅,反过来却不成立
汉字优雅么,那是到了李白杜甫手里
所以c++优雅么,是因为stl,boost这样的作品。
而其他语言我看没有这样优雅的作品。
所以你说c++很优雅,我也不表示反对:)
SainTown 2006-10-18
  • 打赏
  • 举报
回复
寒一个

优雅就是用“简单的办法”解决“复杂的问题”。

这包括两方面的内容。单纯的只是简单怎么可能称得上优雅?

如果只要简单就是优雅的话,那梨花诗就真的是诗了。

其实优雅的概念应该来源于数学,类似于数学中的美学观念。数学美通常描述为简单美,但这里的简单美不仅仅是简单而已,而是其通过简单的方式解决了不简单的问题。

比如sqrt(2)是个无理数的那个经典证明,绝对简单,小学生都看得懂。但是让不知道这个证明的普通人去证明这个问题,恐怕也很少有人能找到这样的证明,这就是简单美。

又比如梨花诗也很简单,简单到不但小学生都能看懂,而且幼儿园小朋友都能做出像模像样的梨花诗来,这个就不叫简单美,叫学术装B犯。


楼上有人提到Knuth,顺便拜拜牛人。
vdust 2006-10-15
  • 打赏
  • 举报
回复
如果说优雅就是简洁,我敢说C++绝对不优雅。
所有的缺乏类型推导的静态强类型语言都不优雅,因为,类型信息就是冗余信息。

那么,是不是动态类型语言就是优雅的呢?安装上面的标准?似乎也不是,它们大都有冗余信息,所以都不够优雅。

上面一段话是个引子,我想说的的是:优雅绝对不是简洁,不说废话,只说该说的。
============================================================================
说了半天,感觉不是在说什么是优雅,而是在说什么不是优雅?而说的方式又几乎是在罗列,世界上的事物是个天文数字,永远也罗列不完,所以永远也罗列不出来什么是优雅?

优雅是一种美,那种大众比较可以认可的美。美有什么用?或者说:优雅有什么用?
=============================================================================
谁是大众?全世界的人?程序员?中国人?还是其它什么?

很多人基于实用主义角度说优雅无用。实际上,他们忘记了一个基本的东西:程序是怎么写出来的?程序是对现实世界的抽象,保证其正确性的基本前提就是优雅。优雅是控制复杂性的基本武器,也是最终武器。如果一个人任意变换自己的抽象角度,变换自己的构造方式,我们怎么能保证其描述的模型是符合现实的?
=====================================================================================
保证正确性的前提就是优雅?大哥,这里是让你定义诠释优雅,不是让你使用。
优雅是控制复杂性的基本武器,也是最终武器。//听不懂?这个武器怎么使用?

另外,根据我上面的描述,也可以推断出,优雅是因人而异的。
==============================================================


不同人可以有不同的视角,可以构造不同的抽象,只要其思维没有混乱,都是说其成品基本可信,而如果其思维给人一种“确实如此,非如此不可”的感觉,就可以称其为优雅了。比如:爱因斯坦的相对论,让你觉得无可辩驳的优雅,就应该是那样的。写程序能写出来这样的感觉么?当然可以。不过比较难。估计Knuth的TeX做到这一点了:)
vdust 2006-10-15
  • 打赏
  • 举报
回复
事物总是有两面,正面和反面。

说一个事物优雅,还不如直接说,其它的东西不优雅。

有人说一个东西优雅,那是说他在排斥其它的东西。

就像我们在评价一个人的美丑一样,那几乎是在同时是说另外一些人的美丑。

评价语言的优雅就像评价水的冷热一样,因为没有标准,所以总是不能被认同,最后变得毫无意义。


加载更多回复(104)

3,882

社区成员

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

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