另外,你怎么看待向 Python 这种弱化对符号的运用,转而使用英语单词来作为程序的主要组成部分,例如
yield from
a if b else c
if key in myset:
if var is False
with Abc as abc:
for k,v in itervalue.iteritems()
等。
LZ 的观点是非常喜爱,最近挺流行的 semantic-ui 也是使用了大量非常英语化的词汇。
1
blacktulip 2015-08-12 19:43:08 +08:00
ObjC 是典型范例不?
|
2
DaCong 2015-08-12 19:46:36 +08:00
对于我这种因为noip而从pascal->C的人来说,总感觉用这么多词汇写东西有点不舒服,也许习惯了会好用吧
|
3
JamesRuan 2015-08-12 19:48:35 +08:00 via Android
不看好,因为英语是自然语言。人工语言长得像自然语言会让人产生在用自然语言的错觉。 除了在减低入门门槛上有好处,其他方面则没有什么好处。
比R里面有in 又搞出了个%in%,有&,又搞出了个&&,实际上缺反应了类型推导系统很弱。 |
5
sunyang 2015-08-12 19:52:08 +08:00
奇点到来以后会成为主流,现在还是幼生期
|
6
JamesRuan 2015-08-12 19:55:51 +08:00
@bismarck 反例很容易举出来啊,去看看haskell的代码,几乎没有符号(很多还是自己造的运算符,比如>>=这种),可读性很高吗?反之,很多情况下,简洁的符号就可以提高可读性(支持运算符重载的一个作用)。
|
7
bismarck 2015-08-12 20:00:33 +08:00
@JamesRuan 我觉得racket的代码就很好读,我没有说需要累赘的代码,简洁,直接的代码最好。我很欣赏对命名讲究的语言设计。
|
8
pepsin 2015-08-12 20:22:23 +08:00
Ruby 爱好者们据说已经下了这座山啦
|
9
Feiox OP @bismarck 除了 racket 还有那些你觉得符合语法(或语言倡导)层面符合自然语言写法的编程语言呢?你对它们是如何评价的呢?
|
10
ffffwh 2015-08-12 20:25:40 +08:00
反过来还差不多,以编程的方式来写作
|
11
bismarck 2015-08-12 20:41:39 +08:00
@Feiox 我觉得Python,Ruby, Scala, F#等等也不错的,这些不一定是以“文学编程”为未来标准,但都显得很友好和很大程度顺应人的直觉。当然了,关键是在编程的时候,把实现写正确,遵循最佳实践。我的观点只是倾向于应尽力写出有表达力的代码和“笨”代码,减少注释成本和以后的维护成本。(并不绝对,视场景而定
|
12
imn1 2015-08-12 20:44:50 +08:00
COBOL语言?
|
13
msg7086 2015-08-12 21:27:32 +08:00
不同符号混着用多了本来就会产生反效果。
PS: a if b else c 其实可读性并不好。 Ruby里可以用one line if,像 x if a,也可以用one line else,像 if a then x else y end,比上述更不容易读错。 |
14
SoloCompany 2015-08-12 21:39:46 +08:00
AppleScript 笑而不语
|
15
oska874 2015-08-12 22:05:44 +08:00
自然语言要变成编程语言,最基本的是去掉二义性
|
17
qw7692336 2015-08-12 23:20:28 +08:00
coffee script怎么看
|
18
notcome 2015-08-13 03:19:58 +08:00 via iPhone
文学编程是这个意思吗?天啦……
文学编程是指把文档和代码写在一起,用不同的编译器选项输出文档和源代码。链接里讲的很清楚。 至于文学编程的应用……估计是死光了,目前比较主流的是像 Haskell 或者 Agda 之类的那样,发论文写书用。 |
20
notcome 2015-08-13 04:30:18 +08:00 via iPhone
@sinxccc 我估计是题主干的,他说的跟文学编程没关系。
不对,为什么是「题主」,逃) 我不太清楚 TeX,但似乎只有核心部分是文学编程整的吧,XeTeX LuaTeX 什么的也是用那个 WEB 写的吗? 而且我觉得这种东西吧,其实是与现代的模块化理论背道而行的,所以估计没什么前途。 |
21
aivier 2015-08-13 09:13:44 +08:00
其实看到文章开头代码的第一眼,我还以为那是乱码....
|
22
cbsw 2015-08-13 09:26:48 +08:00
http://orgmode.org/features.html#sec-8 早就说过 Emacs 是最强大的编辑器,org-mode 8.3.1 前几天已经出来了
|
23
CodingMonkey 2015-08-13 09:32:13 +08:00
我觉得没有符号一点都不酷
|
24
justjavac 2015-08-13 09:40:34 +08:00
难道楼主没有听说过 perl 吗?
#!/usr/bin/perl listen(please,please); open yourself,wide; join(you,me), connect(us,together), tell me. do something if distressed; @dawn,dance; @evening,sing; read(books,$poems,stories) until peaceful; study if able; write me if-you-please; sort your feelings,reset goals,seek(friends,family,anyone); do*not*die(like this) if sin abounds; keys (hidden),open(locks,doors),tell secrets; do not, I-beg-you, close them,yet. accept(yourself,changes), bind(grief,despair); require truth,goodness if-you-will,each moment; select(always),length(of-days) |
25
tcdw 2015-08-13 10:24:45 +08:00 via Android
我并不是非常喜欢。
反复的使用一堆英语单词,在编程过程中实在是啰嗦又麻烦,而且至少源代码会消耗大量磁盘空间。 我认为掌握那些符号的使用更实在。 |
26
banri 2015-08-13 10:54:39 +08:00
喜欢,毕竟文科狗
|
27
Agromania 2015-08-13 11:05:15 +08:00
我更喜欢 a ? b : c
|
28
robertlyc 2015-08-13 15:26:48 +08:00
我猜楼主一定不知道DSL
|
29
Feiox OP |
31
Tomilay 2015-08-13 16:16:18 +08:00
我觉得写Perl的时候才是爽歪歪~~
|
32
shawngao 2015-08-13 16:20:57 +08:00
你们咋没人提到Apple Script
|
34
Feiox OP |
35
notcome 2015-08-13 19:29:41 +08:00 via iPhone
@Feiox TeX 是反语义化的代表?哈哈哈兄弟率直我喜欢。我觉得世界上最搞笑的一件事,就是 TeX 的宏系统没有对命令和文本有什么明显的区分,TeX 用户却经常标榜自己是样式与内容分离的典范,哈哈哈。我最喜欢黑 TeX了。
不过可悲的是竟然没有比 TeX 好很多的产品可以用。 |
36
notcome 2015-08-13 19:40:23 +08:00 via iPhone
@JamesRuan
> 反例很容易举出来啊,去看看haskell的代码,几乎没有符号(很多还是自己造的运算符,比如>>=这种),可读性很高吗?反之,很多情况下,简洁的符号就可以提高可读性(支持运算符重载的一个作用)。 你能解释一下为什么你说 Haskell 没有符号,却同时说 Haskell 有很多自造的运算符吗?很多常用的代码里(又在黑 parser,逃)我看到的就是 Applicative Monad Arrow 满天飞啊,什么 a *> b <* c 看到萌死掉了。 可读性这个问题其实跟采取哪种方式没有关联,更主要还是看库的设计。就比如 Haskell 吧,它确实符号满天飞,很多初学者看到 Applicative 那套,肯定疯了,觉得故意炫技,不适合工程。可同时我们必须意识到,Haskell 的抽象概念比别的语言要多那么一点,符号虽然多了,但定义的很好,熟悉起来用着一样飞快。 类似的,用自然语言也是一个样子,库本身很重要。要是你遇到个风格自相矛盾的库,肯定会骂人。至于多打几个字,我真不觉得是大问题。 |
37
qqqppp9998 2015-08-13 20:37:09 +08:00
个人挺喜欢
|
38
RqPS6rhmP3Nyn3Tm 2015-08-13 21:24:37 +08:00 via iPad
各位不知道莎士比亚语言吗?
The Infamous Hello World Program. Romeo, a young man with a remarkable patience. Juliet, a likewise young woman of remarkable grace. Ophelia, a remarkable woman much in dispute with Hamlet. Hamlet, the flatterer of Andersen Insulting A/S. Act I: Hamlet's insults and flattery. Scene I: The insulting of Romeo. [Enter Hamlet and Romeo] Hamlet: You lying stupidfatherless big smelly half-witted coward! You are as stupidas the difference between a handsome rich brave hero and thyself!Speak your mind! You are as braveas the sum of your fat little stuffed misused dusty old rotten codpiece and a beautiful fair warm peaceful sunny summer's day. You are ashealthy as the difference between the sum of the sweetest reddestrose and my father and yourself! Speak your mind! You are ascowardly as the sum of yourself and the difference between a bigmighty proud kingdom and a horse. Speak your mind. Speak your mind! [Exit Romeo] Scene II: The praising of Juliet. [Enter Juliet] Hamlet: Thou art as sweetas the sum of the sum of Romeo and his horse and his black cat! Speakthy mind! [Exit Juliet] Scene III: The praising of Ophelia. [Enter Ophelia] Hamlet: Thou art as lovelyas the product of a large rural town and my amazing bottomless embroidered purse. Speak thy mind! Thou art as lovingas the product of the bluest clearest sweetest sky and the sum of asquirrel and a white horse. Thou art as beautiful as the difference between Juliet and thyself. Speak thy mind! [Exeunt Ophelia and Hamlet] Act II: Behind Hamlet's back. Scene I: Romeo and Juliet's conversation. [Enter Romeo and Juliet] Romeo: Speak your mind.You are as worried as the sum of yourself and the difference betweenmy small smooth hamster and my nose. Speak your mind! Juliet: Speak YOUR mind!You are as bad as Hamlet! You are as small as the difference between the square of the difference between my little pony and your big hairyhound and the cube of your sorry little codpiece. Speakyour mind! [Exit Romeo] Scene II: Juliet and Ophelia's conversation. [Enter Ophelia] Juliet: Thou art as goodas the quotient between Romeo and the sum of a small furry animal and aleech. Speak your mind! Ophelia: Thou art asdisgusting as the quotient between Romeo and twice the difference betweena mistletoe and an oozing infected blister! Speak your mind! [Exeunt] 此段代码的作用是打印"Hello World!" |
39
endrollex 2015-08-13 22:49:27 +08:00
还是用符号把逻辑和变量分开比较可读
符号的特点就比文字更抽象简洁,而且数学符号很难弃用 |