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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

The problem with programming and how to fix it

74 点作者 ndh2将近 7 年前

13 条评论

dragonwriter将近 7 年前
&gt; What reason is there to believe we can improve programming technology to be vastly easier and more accessible? To start with, spreadsheets.<p>So many failed efforts to make programming vastly easier and more accessible have started with almost this exact line.<p>I think it&#x27;s possible that there is a seductive trap there. We see spreadsheets and we think, “programming that doesn&#x27;t have the downsides we associate with spreadsheets could be just as accessible”. But maybe the problems are intimately tied to what makes it accessible, and wheb you try to make programming that accessible you either fail or end up with something that doesn&#x27;t offer any advantage over the spreadsheets we have.<p>&gt; Unfortunately application programming got trampled in the internet gold rush.<p>No, it didn&#x27;t. Oh, sure, it&#x27;s not getting chased around by venture capital, but there&#x27;s plenty of it going on.<p>&gt; As a result the internet age has seen an exponential increase in the complexity of programming, as well as its exclusivity.<p>It really hasn&#x27;t; we may often be solving far more complex problems, but we do it with languages, frameworks, and platforms that allow casual programmers to do so more easily than at any time in the past. Programming is “more exclusive” only in that:<p>(1) in working environments, IT policies restrict programming (other than spreadsheets) to the high priesthood more completely than ever before, and<p>(2) lots of simple problems that would be solved by casual programming in the past now have end-user tools that allow them to be solved without anything we recognize as programming.
评论 #17651204 未加载
throwaway648将近 7 年前
Lemme use an analogy: Why is building a house not accessible to all? Surely house building could be more like building with legos.<p>Building a proper house is so much more that just piling rocks mixed with mortar. You have to take into account the ground composition, moisture, light, ventilation, red tape, usability, safety, etc. In other words: it takes a huge set of skill. You can use advanced tools, like a tractor shovel for digging the base but that requires even more skill.<p>We just have to accept that doing complex stuff requires lots of training to do it properly. The more advanced tools you use, the more specific training you need but the more complex stuff you can build in shorter time.<p>As for programming. Abstract thinking and clear, explicit communication of ideas is not trivial to automate. This is problem even between two persons (just think about trying to decipher what your sales person or customer actually wants), let alone between a human and a machine. It’s a form of art, not some mechanical process you automate using an array of boxes.
评论 #17651627 未加载
评论 #17651645 未加载
评论 #17652658 未加载
0xBA5ED将近 7 年前
Simplifying software is a fantastic goal, but blaming the situation on an &quot;isolated subculture of nerdy young men&quot; is the opposite of helpful. Also, I would seriously consider the fact that some things are simply complicated and there&#x27;s no conspiracy behind it. A lot of very smart people work very hard to find ways of taming this beast. It&#x27;s just hard.
评论 #17651250 未加载
Ace17将近 7 年前
&gt; Programming today is exactly what you’d expect to get by paying an isolated subculture of nerdy young men to entertain themselves for fifty years. You get a cross between Dungeons &amp; Dragons and Rubik’s Cube, elaborated a thousand-fold.<p>This is vague and insulting.<p>Many of us programmers spend a lot of energy to keep systems simple, to a point that one could mistakenly conclude that they were easy to write.<p>We don&#x27;t dream of having to maintain complex machineries reminding us of Rubik&#x27;s cubes. We consider maintainance nightmares and hard-to-understand systems as failures, not goals. We don&#x27;t love complexity, we hate it (but the less experienced of us haven&#x27;t got the chance to fully develop this hatred).
评论 #17651075 未加载
评论 #17651220 未加载
评论 #17651239 未加载
评论 #17651233 未加载
评论 #17653201 未加载
评论 #17651273 未加载
评论 #17651104 未加载
repsilat将近 7 年前
Hah, I was nodding along with the article and then got to this bit:<p>&gt; <i>What reason is there to believe we can improve programming technology to be vastly easier and more accessible? To start with, spreadsheets. Spreadsheets are by far the most popular programming tool, used by far more people than “real” programming. Surely it must be possible to carve out other domains like that of spreadsheets without taking on the full complexity of programming.</i><p>As someone writing a spreadsheet app with magical programming powers (<a href="https:&#x2F;&#x2F;6gu.nz" rel="nofollow">https:&#x2F;&#x2F;6gu.nz</a>) no wonder the author seemed to be sweet-talking me :-).<p>And yeah, I think we can do a lot better. Some low-hanging fruit: backslashes in strings, &quot;what is Unicode&quot;, &quot;what is a hash function and why do I care?&quot;. Etc.<p>There&#x27;s a crap-tonne of essential complexity in just about everything we do, but most tasks for which &quot;programming&quot; should be the right answer are not the sorts of things programmers actually do.<p>Part of the problem is, we have all the best tools because we are the tool makers. There isn&#x27;t good version control for Excel. Linting is mediocre. And the language itself sucks, because the programmers who work on it don&#x27;t think spreadsheets are programming, and don&#x27;t think the people using spreadsheets are programmers.<p>I do think the conclusions of the article are o ff-base, though. I have no faith in professional societies, and I don&#x27;t think the answer is &quot;institutions&quot;. The answer <i>is</i> business -- bringing programming to the masses is worth <i>trillions</i>. Programming is the biggest force-multiplier that exists. It&#x27;s what the FAANGs (widely disparate companies in different industries) have in common -- they (as companies) &quot;know how to program&quot;.<p>Maybe businesses are short-sighted, but the value here is so big it just has to happen. Magic of capitalism and all that.
评论 #17651060 未加载
评论 #17650901 未加载
评论 #17650989 未加载
cogs将近 7 年前
Programming for beginners is just as accessible as it has ever been, there are good languages (some specifically for beginners: Logo, and game making languages and so on) and good courses.<p>Where do I think programming has stalled is in the business environment. There, as the article correctly points out, it&#x27;s much harder to automate your job unless you work in an IT department.<p>Most business end-users do their work in Microsoft Office, and this is one area where I think the tools have stalled. Visual Basic and its object models are a painful hurdle for a smart non-programmer who is trying to get things done efficiently, or who wants to learn programming for its own sake.<p>There have been some attempts to wire up Excel with Python, but until Microsoft decides to bundle an easy tool with every user&#x27;s MS Office, programming is going to remain an arcane art.
评论 #17651260 未加载
评论 #17651094 未加载
评论 #17651241 未加载
评论 #17651192 未加载
mike_honcho将近 7 年前
I disagree. The world we have today couldn&#x27;t be built on simple tools like Spreadsheets and Visual Basic. The amount of complexity in programming is necessary, and the outcome has been tremendous and miraculous if you think about it.<p>And we don&#x27;t want to build a future where the masses should be programming! You want my mother to be programming? My sister? Why? I work as a software engineer and most of the time programming is the last thing I want to do when I get home!<p>Sure it can be overwhelming at times with all the new technologies coming out, but in the future technologies are going to be completely different, with AI and VR becoming more widespread, programming is going to have to change again. And good, because that is what will allow us to build the future!
评论 #17651324 未加载
评论 #17652690 未加载
评论 #17651289 未加载
评论 #17654319 未加载
sgillen将近 7 年前
&gt; There is something unique about software that exacerbates these problems. Unlike every other technology, software doesn’t wear out. The traditional cycle of replacement and renewal is halted; there is no evolution.<p>I do understand what he&#x27;s saying here, but saying that software has no evolution is just wrong. Like yes we still have C code kicking around everywhere but we also have new technologies languages (rust, go, etc etc), new philosophies on how to write code (TDD?), and new tools (jupyter notebook for interactive data munging for example).<p>Furthermore how many people have been through a rewrite? developers (try) to replace and renew all the time, although yes this is difficult.<p>also:<p>&gt; Unfortunately application programming got trampled in the internet gold rush<p>It seems to me like application programming is alive and well, although admittedly I am younger and am probably considered an application programmer myself (I.E. I don&#x27;t develop software as a profession, but I write code all the time to help with my work).
lifeisstillgood将近 7 年前
I believe that software is not a professional practise but a new form of literacy (in fact the book I am writing is all about this (Real Soon Now, thanks for asking))<p>And when you see software as literacy a lot of the stuff he moans about simply goes away.<p>Yes it is seen as exclusive and a priesthood - imagine what illiterate serfs thought of those who could write. It took years of practise.<p>No it&#x27;s not a good idea to make programming more accessible. We don&#x27;t have easy literature, we don&#x27;t think someone who reads and writes solely with fridge magnets (#) has mastered the language. It is a good idea to invest more in education and that is being done reasonably well, but as in all things more is needed.<p>Yes the results can be a car crash at times - my favourite analogy for this is our management structures.<p>Would we ever take a literate organisation like the Washington Post or Harper Collins and put a layer of senior management in place who were totally illiterate from birth? If we did do we think they would make sensible decisions, empower those organisations? No.<p>Yes there is a lot of shiny new thing, going on. But that&#x27;s because there are a lot of people doing software - and many of them select for being good at marketing too. The real big software projects tend to select for conservatism married to pragmatism- look at Linus on a mailing list or the PEP process, or Debian.<p>So yeah software needs to sort it self out - and professional bodies will start to solidify (personally I feel a lawyer like body, concerned with managing the course of OSS code used in government is the most beneficial), and until then don&#x27;t try and fix the world or boil the ocean - just focus on making your coding practises as good as possible, even if your boss is making crazy calls.<p>(#) Wanted: Better analogys - can you write pithy phrases that sizzle like ice cream on a griddle? Contact the author in complete confidence today.
评论 #17651191 未加载
评论 #17651339 未加载
评论 #17656425 未加载
评论 #17651106 未加载
a_imho将近 7 年前
After reading the article I don&#x27;t get the author&#x27;s problem or the proposed fix.
评论 #17651219 未加载
PurpleRamen将近 7 年前
&quot;Everything Should Be Made as Simple as Possible, But Not Simpler&quot;<p>Programming is always a tradeoff between ability and knowledge of the programmer, time he can invest, performance the product must deliver and the unpredictable future of the product. Nothing can be perfect because nothing is perfect.
kbouck将近 7 年前
Enterprises, with the best of intentions, routinely opt for what appear on-paper to be lowest-cost developers which end-up being the most expensive option when factoring in the resulting delays, faultiness and complexity of what is built.<p>Generally speaking, complexity of a software system is inversely proportional to the collective skill and experience the development team.<p>If I want quality products or services, in any field, I shouldn&#x27;t expect to get it from the lowest-cost option.
teknico将近 7 年前
&quot;When do we start throwing obsolete things away?&quot;<p>We started already: work is afoot to throw away C, C++ and JavaScript, the main culprits. Rust is a good stab at all three.