IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:语言设计

共 2 篇相关文章

IT 累计浏览 2,194

C#的设计缺陷(2):不能以void作为泛型参数

这篇文章从C#与Java泛型的对比切入,探讨了C#作为“真泛型”语言在语言设计层面的另一项限制:不允许将void作为泛型类型参数。作者指出,.NET的真泛型本是一大优势,但具体到C#编译器的实现与运行时约束,却衍生出这一设计缺口。 文章并未深入剖析其技术成因,而是将C#视为一个既成“产品”,着重分析了这一限制所带来的实际编程后果。它揭示了在试图用泛型统一处理值类型与引用类型(包括表示“无返回值”的void)时,开发者可能遇到的设计困境与代码冗余。 对于关注语言设计权衡与.NET生态实际特性的开发者而言,这提供了一个理解C#泛型边界与当前编程模型局限性的具体案例。

IT 累计浏览 5,099

编程语言的可读性

这篇讲的是编程语言设计中一个常被忽略却至关重要的维度:可读性。作者从“代码首先是写给人看,其次才是机器执行”这一基本共识出发,剖析了不同语言在可读性上的取舍。他对比了像 Java 那样语法严谨但可能冗长的语言,与像 Perl 或 Lisp 那样表达力强大但对新手不友好的“简洁”语言,指出可读性并非绝对,而是与目标受众和使用场景紧密相关。 文章具体讨论了缩进、命名约定、语法糖等特性如何影响代码的清晰度。作者强调,一个特性的可读性优劣,很大程度上取决于它所在的上下文——例如,同一个运算符在复杂的表达式中可能大大降低可读性,但在简单的脚本中却很清晰。他认为,过度追求语法简洁有时会牺牲可读性,导致代码维护成本攀升。 最终,作者将问题抛回给开发者和语言设计者:在创建和选择语言时,我们应当更自觉地将可读性作为一个明确的设计目标来权衡,而不仅仅是追求执行效率或表达式长度。