语言在成熟时会变得更加冗长吗?感觉每个新版本的VB.net都获得了更多的语法.是否有可能像关键词"昏暗"一样削减一些脂肪?从版本1开始,C#也感觉它的语法越来越多.
这就是VB的习语.所有语言都有成语,有很多可用于详细和拼写.谢谢你的幸运星,你不是WRITING IN COBOL
.
C#演变出的类似C语言,并且在C传统简洁和简洁的价值,因此,拉条,&&
并且||
,int
不integer
区分大小写小写码.在VB习惯用法中,长不言自明的关键词是好的,简洁的关键词或神秘的符号是坏的,因此MustInherit
,Dim blah as Integer
并且不区分大小写,但倾向于大写你的关键词.基本上,坚持使用你正在使用的语言的成语.如果你使用(或必须使用)VB,那么习惯于冗长 - 这是故意的.
C#肯定获得了更多的语法,但其方式使其不那么冗长.
实际上,C#3.0中的每个功能都允许您使用更少的代码执行更多操作.
冗长并没有什么不妥,事实上它往往是一件非常好的事情.
我假设你有有意义的变量名?描述性的方法名称?那么为什么键入'end if'而不是'}'会出现问题.它真的不是一个问题,如果有的话,C#的简洁性更多的是试图尽可能多地融入尽可能少的角色 - 这意味着它更难阅读,而不是更容易.
好吧......承认这让人感到尴尬,但我喜欢在VB.NET中使用Dim.是的,它没有服务于以后使用"As"无法推断的任何特定用途......但对我来说,有一些绝对"击败你的头脑"显然有关于声明语句从Dim开始.这意味着当有人在查看代码时,他们甚至不必考虑这些语句的含义,即使只是微秒.像C#这样的语言有足够明显的声明,但如果你只是浏览它,你可能需要考虑一下(即使是最短暂的时刻).
在某些类型的语句的开头有一个特殊的关键字,这是"特别明显的".在VB.NET中,赋值以"Dim"开头,并且调用方法(可以)以"Call"开头,给它们一种"左侧均匀性",即If,For和其他构造已经具有:你得到最基本的要点通过查看它的开头就看到了那条线.使用这些几乎可以给你相当于一个左栏,你可以非常快速地浏览,并获得在某种基本水平上发生的事情的要点("好的,我们在这里宣布......我们是在这里打电话给其他事情......").
对某些人来说,这似乎是不合理的甚至是愚蠢的...但它确实使每个陈述的目的明确,以至于浏览时感觉更快(至少对我而言)...尤其是在浏览其他人编写的不熟悉的代码时.
我想,最后,它归结为"不同人的不同笔画".我不介意为显而易见的目的输入额外的三个字符.
VB.NET很棒,它带来了更清晰的代码.
例如,我喜欢你如何描述你的结局.
结束时vs}结束vs vs}结束if if}
因为智慧,打字时的冗长不是问题.
详细程度和可读性通常是齐头并进的.最近我开始担心"优雅"这个词,因为它通常会转化为"有趣但不易立即阅读"
当然,编写代码的人总是说"对我而言,它更具可读性,因为它更短/更优雅.
这是废话.阅读更加明确的内容总是比较容易,除非你阅读时遇到这么多麻烦,要花两个小时才能完成迪克和简小说.
请注意,我不是在谈论裁员,只是明确表达你的欲望.
作为一名程序员,写出优雅的表达方式会更有趣,但我发现自己会在一段时间内看到别人的"优雅",甚至是我自己的"优雅",我会把它改成更明确,更易读的东西.当我意识到尽管编写它很有趣时,我只花了更多的时间来阅读/调试它,而不是首先编写它.
另一方面,DIM只是愚蠢的:)
我在这里稍微偏离了我的深度.
我喜欢每个人都称之为冗长的东西.难道没有人想知道我们在任何自然语言中都没有多个嵌套的括号(例如英语)吗?实际上,嵌套的括号确实需要缩进的约定才能使其变得清晰.在自然语言中,我们使用详细子句和多个句子来避免或至少解释分层括号.
同样在某种意义上我不会说vb的语法比c#多得多.在某个代码块中,它并没有比c#更多的词法标记(是吗?).它具有与c#大致相同的语法,它只有更长的语法标记,例如'End Sub'而不是'}'.对于大多数语法管道而言,VB版本只是更多的打字(如果你宣誓掉了知识分子),与'End Sub'相比,'}'也是模棱两可的,因为它也意味着'End If'和其他东西的全部负载.这并没有使它在某种意义上更简洁,代码中仍然存在相同数量的标记,而是来自更简洁的标记标记的较小子集.但是C#中的不同标记具有不同的含义,具体取决于上下文,这需要你在阅读代码时仍然在脑海中有这样的嵌套级别,以便获得,例如,如果你失去了位置,你正在阅读什么样的代码块,即使代码块的末尾可能在查看您可能需要查找以查看代码块的开头.即使不是这样的情况,&&真的比AndAlso好吗?
Dim我认为是无用的,与c#相比是一个额外的词法令牌,但我想至少它与linq一致,vb不需要var命令.我想不出任何其他候选人的印章.也许我没有想象力.
我相信有人会来,告诉我我有多错误:)我最好猜测这与个人喜好无关.