TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

CUPID – For Joyful Coding

69 点作者 dustinmoris大约 3 年前

6 条评论

vinceguidry大约 3 年前
An anti-example from my own coding life.<p>I work in a very iterative fashion, my favorite language is Ruby, which allows me to work as iteratively as my heart desires. Write one line of code, execute it, make sure it&#x27;s doing exactly what I want it to be doing, then write another line of code.<p>In order for an iterative coding workflow to be <i>fun</i>, I can&#x27;t be jumping all over the place, one line at a time only please. But golang refuses to make that fun for me. I can turn the linter off, but the compiler is constantly, noisily, judging me, and the core golang team absolutely refuses to let me turn inconsequential errors off.<p>So I&#x27;m constantly having to jump around the file to make the compiler happy with it&#x27;s incessant complaints. I&#x27;m not using this variable, I don&#x27;t have any new variables declared, so I gotta remove the &#x27;:&#x27; until it&#x27;s time to add it back. Shut the heck up compiler! These are linting concerns!<p>I wish desperately for language makers to start caring about workflow. It always seems to never even bother rating any kind of concern at all. I wish I could just stop using languages that don&#x27;t respect coders.
throw10920大约 3 年前
Most of these are fine, but U is a massive mistake.<p>The Unix philosophy is fine for <i>tiny</i> systems, but absolutely terrible for building any nontrivial system, because it causes the complexity of the system to grow super-linearly with the number of features - O(n^2), in big-O notation, where n is the <i>intrinsic</i> complexity of the application (roughly, the features you want) and the big-O measures the <i>total</i> complexity of the application.<p>Why? Super quick breakdown: code has to be broken up into modules in order to prevent human brains from exploding, if the modules are too small then inter-module communication complexity dominates (because you then need a large number of modules to implement your features), if the modules are too large than intra-module implementation complexity dominates, and the Unix philosophy <i>requires</i> erring on the size of too-small modules.<p>For empirical evidence: none of the non-trivial applications you use daily (bash, firefox, chrome, windows, linux, macos, blender, krita, gcc, cargo, llvm, npm, node, vim, emacs, vscode, sublime - whatever you want) are composed of a collection of Unix utilities, or the equivalent (flat program hierarchy consisting of thousands of call sites to hundreds of tiny functions).<p>The evidence is very clear: the Unix philosophy <i>does not work</i> for anything but small systems.
评论 #30352160 未加载
评论 #30352644 未加载
评论 #30358384 未加载
评论 #30357288 未加载
评论 #30356249 未加载
eternityforest大约 3 年前
I don&#x27;t think I&#x27;d feel a lot of joy if all apps were like like this.<p>My personal set of properties might be more like:<p>Correctness Just-works Robustness Standards-compliance Performance Encapsulation
评论 #30352350 未加载
dlojudice大约 3 年前
Great article! The properties described are definitely something I look for in the software I create. Also, I can see a lot of these properties in our open-source project, especially Domain-based. The work we are doing goes a lot in this direction of closing the gap between the code, the developers and also the non-technical stakeholders.<p>As the creator of BDD, I have great respect for Dan North&#x27;s work.
splittingTimes大约 3 年前
I like the idea of aligning on properties. Does not exclude to value certain principles as well.<p>However, like with all abstract &quot;code quality&quot; properties (modularity, predictability, robustness, encapsulation, etc) how can you quantify&#x2F;measure how modular an application or how predictable a code base is?<p>It often comes down to a subjective &quot;feeling&quot;.
spand大约 3 年前
Has anyone tried the D in a multi module jvm setup ? I attempted this[1] in Kotlin with Gradle but breaks in IDEA which is pretty much a dealbreaker.<p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;spand&#x2F;KotlinCUPID" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;spand&#x2F;KotlinCUPID</a>