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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

The practice of programming, 18 years later

165 点作者 f2f超过 8 年前

7 条评论

gtrubetskoy超过 8 年前
People like Pike and Kernighan is the reason I've invested so much of my time in learning Go lately. To some this may seem completely irrational, because you should pick a language based on its merits (e.g. does it support generics, etc), but for me, the books they authored and the software they wrote (e.g. Ken Thompson's contribution to what we now know as unix) says a lot more than a seemingly objective review based on language features. I guess time will show whether I'm right.
评论 #13450823 未加载
评论 #13450735 未加载
NumberSix超过 8 年前
Programming has not changed much since the 1960&#x27;s and 1970&#x27;s when Unix and C were developed. Modern computer programming languages simply mix and match different features from the &quot;Cambrian explosion&quot; of experimental and production programming languages in the 1960&#x27;s. Hence it is not surprising that books on general programming concepts and principles are still relevant years later.<p>C is still in widespread use in operating system internals, embedded software development (think wearables and Internet of Things), complex algorithms like video compression, and miscellaneous other fields.<p>Version control dates back at least to SCCS in the 1970&#x27;s and has been in widespread use at least since RCS in the 1980&#x27;s. I mention this because I occasionally encounter people who seem to think version control either was invented with Git (not true) or rarely used before Git (not true).<p>Testing software is not new. Testing fanaticism is new.<p>Things that have improved in programming are:<p>Optimizing compilers have improved and all but eliminated low level loop optimizations by hand and similar &quot;micro&quot; optimizations by hand. This has also largely eliminated assembly programming.<p>Computers are much faster than in the 1960&#x27;s, not much faster than the late 1990&#x27;s, which means many things can be done with scripting languages that were once too slow. Compiled languages like C and C++ still dominate at the very high end of performance.<p>Scripting languages play fast and loose with variable types which makes it easier to write code quickly, but makes it harder to achieve the speed of a compiled executable from a relatively strongly typed language (compared to a scripting language -- how strongly typed is C really with its casts, pointers, and other unsafe but useful features?).<p>Compiler error and warning messages are much clearer than years ago.<p>There have been some incremental improvements in programming languages like using the plus sign (+) to concatenate strings that have made many new languages a bit easier to read and write. Compare strcat(blatz, &quot; and now&quot;) to blatz + &quot; and now&quot;<p>None of these, or other improvements in the last fifty years, are revolutionary advances that would obsolete an older book on general programming principles.<p>Computer programming remains labor intensive and often highly compensated because many of the problems and issues remain largely unchanged since the early days (1960&#x27;s&#x2F;1970&#x27;s).
评论 #13451424 未加载
ChuckMcM超过 8 年前
The debugging session has always been priceless. And its something that new programmers are especially challenged in because they are taught how to create programs not to fix them. I&#x27;ve helped people on IRC who just write a new program rather than try to figure out what is wrong with their existing code and that is so sad. <i>Understanding</i> why a program is broken is the key to understanding programming.
baguette超过 8 年前
&gt; If you think that you have found a bug in someone else&#x27;s program, the first step is to make absolutely sure it is a genuine bug, so you don&#x27;t waste the author&#x27;s time and lose your own credibility.<p>I am thinking we need to create an open-source &quot;10 commandments&quot; website and this should be on it.
ptero超过 8 年前
Kernighan and Pike (and other books of each author) is IMO almost as relevant today as then. It is short, clean, and even if examples seem obsolete they often contain useful nuggets of wisdom.<p>The blog post cites a few paragraphs, as examples. Read the book itself, it is a good one.
nickcw超过 8 年前
This site is blocked by my ISP&#x27;s porn filter!<p>SafeGuard You tried to view kjamistan.com<p>The account holder has activated SafeGuard and this page is blocked by the category pn_pornography.<p>The account holder is me - I have children hence the filter
评论 #13450653 未加载
petercooper超过 8 年前
I had similar experiences with <i>Programming Pearls</i> (1986) by Jon Bentley last year. Most of the principles are still there, although the scales have changed somewhat.