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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

The Need for Stable Foundations in Software Development

70 点作者 kennethfriedman超过 4 年前

11 条评论

tuatoru超过 4 年前
&gt; In software and hardware design, the things that we should be the most wary about breaking, are the interfaces that people rely on.<p>And yet the big boys just can&#x27;t help themselves. I&#x27;ve been doing a bit of work with Google Sheets the last few months, and even in that time the user interface has changed a few times. Only in small ways, will be the offered excuse.<p>People are not just playing with this software, they&#x27;re trying to use it. Usually as a minor component of some workflow where other things occupy working memory and attention.
dgellow超过 4 年前
&gt; There is probably some truth to the idea that many newcomers will go for the latest features. However, on the flip side, I’ve been wondering if there can’t be a competitive edge in designing a language that is minimalistic, stable and slow to evolve by design.<p>That&#x27;s exactly how I see Go, and why I personally use it, even though it has clear limitations and can be frustrating at time. And the language get quite a lot of hate because of these choices and their consequences. Minimalistic often means that you have to implement your own solution for some common problems, and&#x2F;or write a good amount of boilerplate. Stable means that you don&#x27;t change things that much over time, even if trends are shifting and new patterns&#x2F;paradigms are developed, so you&#x27;re potentially losing people and&#x2F;or powerful technics (you also avoid the ones that haven&#x27;t been proven yet and will potentially be seen as harmful in the future).<p>On the other hand you have the real benefits of having something small that you can easily keep in your mind, a tool that won&#x27;t impact your maintenance budget, you can learn it once and then can be good for years without feeling the need to catch up all the time with newest changes and ideas. That&#x27;s quite relaxing IMHO.
评论 #24587809 未加载
评论 #24588858 未加载
评论 #24591657 未加载
评论 #24592537 未加载
fergie超过 4 年前
&quot;you can charge [a MacBook Pro] using any of the 4 USB-C ports, but you really should only ever charge it from the right side.&quot;<p>...wait what?
评论 #24586945 未加载
评论 #24588060 未加载
评论 #24591201 未加载
tannhaeuser超过 4 年前
I don&#x27;t think the rant about Ubuntu Unity is fair. If anything, Ubuntu 18.04&#x2F;20.04 LTS releases based on Gnome shell are serious regressions in so many ways (FF not opening new windows on top, std menu missing wtf, etc etc) that I&#x27;m considering something KDE-based next.
评论 #24587246 未加载
评论 #24587865 未加载
评论 #24588801 未加载
评论 #24588726 未加载
评论 #24587402 未加载
zokier超过 4 年前
Does anyone have experience using one of the more formal method oriented languages (e.g. Idris, Agda, F* etc) as their &quot;daily driver&quot; language, i.e. using them for general purpose programming, for any extended period?<p>I&#x27;m dreaming that by focusing on correctness one could reduce the maintenance churn that then can lead to various other spurious changes. But I don&#x27;t know if any of those languages are really suitable to &quot;real world&quot; use, nor if they really provide such dramatic reduction of bugs that one would hope for.
评论 #24587190 未加载
评论 #24587352 未加载
baylessj超过 4 年前
A minor nit, the author references MX Linux as being the most popular Linux distribution currently when that is not truly the case. Yes, MX Linux receives the most page views on DistroWatch [1], but that does not directly correlate to actual users or downloads. I&#x27;m still looking for a clear set of data showing the market share of various Linux distributions, but everything I have found so far points to Ubuntu still being the most popular distro. MX Linux is growing in popularity, sure, but it&#x27;s certainly not a runaway winner in the market.<p>1 - <a href="https:&#x2F;&#x2F;distrowatch.com&#x2F;table.php?distribution=mx" rel="nofollow">https:&#x2F;&#x2F;distrowatch.com&#x2F;table.php?distribution=mx</a>
megameter超过 4 年前
Here are the three principles I currently all believe mesh together in discussing stable foundations.<p>1. Sustainability<p>2. Chaos<p>3. Reorganization<p>Programming in the large has a natural ecosystems quality to it. It resists standardization and falls into patchworks easily. So I have come around to the idea that one should embrace the change and discover points of stability by accident. The sustainable part happens when the system survives chaos and is sufficiently flexible to be reorganized - i.e. there is a benchmark for passing the test.<p>Long story short, it doesn&#x27;t come easily by design. Designing small and designing to retarget your output are good ideas, because that reduces two forms of change cost. But we trip over the problem of having immediate solutions at the cost of complexity and single-use implementation. Designing for extension turns your system into a platform, which gives it a definite kind of lifespan and ability to address new problems.<p>I worked with Go for a while and gradually got fed up with the accumulation of little issues. I have come to the conclusion that Haxe - and most transpiled languages - do the job of sustainability better than Wirthian languages, actually, because being retargetable allows your code some insulation from platform changes. The intent is preserved, and the bulk of breaking changes occur outside the compiler tooling. A cost is paid in having to debug multiple times and often at a distance from the original source, and in having imperfect access to platform features, but this is a much smaller thing than having a codebase with hidden dependencies, which is a thing that constantly sneaks into native code systems, and a thing that makes VM language runtimes grow over time.
lmm超过 4 年前
Software development just isn&#x27;t mature enough yet. A bug-free, stable version of an IDE from 10 years ago would be much less pleasant to work with than the flaky version with all the features that have been invented in the intervening years.
评论 #24588767 未加载
评论 #24586729 未加载
评论 #24588775 未加载
mark_l_watson超过 4 年前
In 2005 I wrote a little rant about ancient software [1]. The idea is that far in the future there would be very stable software that had not seen changes in centuries.<p>[1] <a href="https:&#x2F;&#x2F;markwatson.com&#x2F;blog&#x2F;2005&#x2F;08&#x2F;04&#x2F;ancient-software.html" rel="nofollow">https:&#x2F;&#x2F;markwatson.com&#x2F;blog&#x2F;2005&#x2F;08&#x2F;04&#x2F;ancient-software.html</a>
评论 #24588919 未加载
pjmlp超过 4 年前
Programming languages are software products like everything else in the industry, they either stagnate or evolve.
评论 #24587824 未加载
评论 #24588802 未加载
评论 #24588095 未加载
评论 #24588789 未加载
orestis超过 4 年前
Obligatory Clojure plug :)<p>Most, if not all, code from 5 years ago runs with no changes whatsoever.<p>The stewards of Clojure heavily advocate and practice “stable” development where backwards compatibility is a requirement. Combined with the famous JVM compatibility means that the whole enterprise is a very stable foundation for building stuff.