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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

What Is Systems Programming, Really? (2018)

130 点作者 generichuman超过 5 年前

10 条评论

streetcat1超过 5 年前
If your domain of discourse is the computer itself or the functionality of the computer in the world (store&#x2F;compute&#x2F; communicate) than it is system programming. Else it is application programming.<p>It has nothing to do with the actual programming language.
评论 #21733270 未加载
评论 #21735390 未加载
lesserknowndan超过 5 年前
I think it would be a unfortunate for people to start redefining what &quot;Systems Programming&quot; means because it is vague enough now as it is - and we don&#x27;t have the luxury of being able to go back and update the term in the historic literature.<p>My understanding is that, in effect, &quot;Systems Programming&quot; is analogous to &quot;Operating Systems Programming&quot;, or rather you might say (given the increasing size of operating systems these days) that &quot;Systems Programming&quot; is a subset of &quot;Operating Systems Programming&quot; that deals with the direct manipulation of memory in order to provide a useful abstraction for &quot;user&quot; software - remembering that most hardware interaction is via memory. Obviously, in order to do &quot;Systems Programming&quot; you need a &quot;Systems Programming Language&quot; that allows such direct access to memory.<p>These days, &quot;Systems Programmers&quot; would be those working on the Linux kernel, or microkernels, or graphics drivers (basically those who have complete access to memory) though those developing services one layer up might also consider themselves to be such (especially micro-kernal-based operating systems).<p>It is probably worth emphasising that &quot;System&quot; is a generic term that is used in a lot of different contexts. I think &quot;Systems Programming&quot; is used in the context of a &quot;Computer System&quot;, while modern day cloud programming would be better described as &quot;Distributed Systems Programming&quot; as it is in the context of a &quot;Distributed System&quot; (though I&#x27;ve probably just annoyed a whole bunch of distributed systems researchers).<p>I think that what the author of the article is talking about is &quot;System Architecture&quot; (or perhaps &quot;Distributed Systems Architecture&quot;).<p>Should we talk about this as programming at all?
评论 #21735004 未加载
forrestthewoods超过 5 年前
I&#x27;ve primarily writing C++ for over 15 years. I don&#x27;t think I&#x27;d ever heard the term &quot;systems programming&quot; until the last few years when Rust talked about it. I don&#x27;t have a super formal CS education and most of my career has been in gamedev.<p>What is sytems programming? I don&#x27;t know. I don&#x27;t care either. It&#x27;s an arbitrary label that is rarely used and doesn&#x27;t affect anyone in any way.
aazaa超过 5 年前
&gt; To summarize, what we call “systems programming” I think should be called “low-level programming.” Computer systems design as a field is too important not to have its own name. Clearly separating these two ideas provides a greater conceptual clarity on the space of programming language design, and it also opens the door to sharing insights across the two spaces: how can we design the system around the machine, and vice versa?<p>Alternate definition whose source I can&#x27;t recall:<p>Systems programming is everything that isn&#x27;t application programming.<p>Maybe it&#x27;s time to update that with:<p>Systems programming is everything that isn&#x27;t application programming or low-level programming.
评论 #21734645 未加载
whateveracct超过 5 年前
Maybe not the thread to post this, but I&#x27;ve seen too often &quot;systems programming&quot; be intertwined with arrogance and gatekeeping. As if these skills are special and inherently more difficult to pick up by developers without them. But tbh all software engineers are programming abstract machines at various levels. Systems work is just a different abstract machine to grok.<p>My education is in relevant skills (CompE), but the attitude I keep running into in this domain has really started to disgust me, even if it isn&#x27;t everyone. When it&#x27;s people I&#x27;ve seen in leadership, that&#x27;s enough :&#x2F;
评论 #21734403 未加载
s1k3b8超过 5 年前
Systems programming concerns the code between hardware and the application programmer. So pretty much kernel programming.<p>Application programming concerns the code between kernel and the ordinary user.<p>Essentially, systems programmers write software that application programmers can interface with. Application programmers write software that ordinary users interface with.<p>It gets fuzzy at the edges like most definitions, but that&#x27;s how I think about it generally.
评论 #21734619 未加载
Taniwha超过 5 年前
It&#x27;s really (or was back in the day) simply short for &quot;operating systems programming&quot;
评论 #21734001 未加载
kartayyar超过 5 年前
One litmus test that a former coworker applied was &quot;how resource constrained is the application&quot;?<p>I think conceptually this is a better test, more so than say if you have access to a raw pointer - because more important parts of how to handle core issues like scheduling, storage management, concurrency, parallelism and distributed computation manifest themselves in many forms.<p>I started my career doing C programming in a OS &#x2F; kernel environment. In retrospect a lot of pieces of applications I&#x27;ve worked on are what I think of as systems, and many parts of kernels are more applications than systems.
评论 #21736097 未加载
dang超过 5 年前
Discussed at the time: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=17948265" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=17948265</a>
luord超过 5 年前
I was really liking this article, until the &quot;dynamic typing sucks&quot; and &quot;functional programming is the path to enlightenment&quot; stuff came up at the end.<p>Specially jarring because it&#x27;s out of nowhere. That conclusion does not follow from everything that comes before.