TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Programming Languages are the Least Usable, but Most Powerful User Interfaces

131 pointsby newgameabout 11 years ago

8 comments

AdrianRossouwabout 11 years ago
Yeah. I&#x27;ve come to realize that the hard way.<p>It is also what it comes down to w.r.t. code-over-config.<p>To make a system sufficiently configurable, you end up having to re-invent a turing complete language inside it&#x27;s configuration files, so it starts looking more like lisp.<p>This is due to the [1] Inner Platform effect.<p>The only interfaces I know of that&#x27;s expressive enough to drive a turing complete language is either flowcharts, or actual code.<p>This is kind of why I feel that systems like gulp are just superior to grunt, because ultimately the config format can never be expressive enough to solve all the problems, and there&#x27;s just so much less work to write-what-you-mean, the first time. properly.<p>This also relates my newly adopted philosophy w.r.t. software complexity. [2] Simple vs Easy.<p>[1] - <a href="http://en.wikipedia.org/wiki/Inner-platform_effect" rel="nofollow">http:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Inner-platform_effect</a><p>[2] - <a href="http://daemon.co.za/2014/03/simple-and-easy-vocabulary-to-describe-software-complexity" rel="nofollow">http:&#x2F;&#x2F;daemon.co.za&#x2F;2014&#x2F;03&#x2F;simple-and-easy-vocabulary-to-de...</a>
评论 #7547753 未加载
评论 #7547866 未加载
评论 #7552140 未加载
jasonwatkinspdxabout 11 years ago
I think it&#x27;s a massively fascinating question to ask &quot;Why didn&#x27;t something like hypercard become the web?&quot;<p>And please don&#x27;t knee jerk some story about some Apple decision making. That doesn&#x27;t matter. If the hypercard model had the value I think it does, someone else should have surfaced and gained momentum.<p>That didn&#x27;t happen, and while I don&#x27;t have the answer for why, I think it would shed some light on why &quot;code as a user interface&quot; for non coders has had only limited successes (Spreadsheets, SQL).
评论 #7548224 未加载
评论 #7548147 未加载
评论 #7548904 未加载
评论 #7549257 未加载
评论 #7548282 未加载
skywhopperabout 11 years ago
Obviously there&#x27;s lots of research to be done on the best ways to design programming languages and the best ways to teach them.<p>However, the headline presumes there can be some universal standard of measuring what we can &quot;usability&quot; that&#x27;s somehow separate from the practical &quot;usefulness&quot; of the tool itself. Tools that do fewer things can be made easier to use that tools that do many things. Turing-complete programming languages can be made to do anything the computer can do, which is a lot. And so there&#x27;s going to be a hard limit on how &quot;usable&quot; they can be. Not to say we&#x27;re even close to reaching that limit, but you&#x27;ll never make a programming language that&#x27;s as &quot;usable&quot; as a screwdriver, and that&#x27;s okay.
评论 #7551252 未加载
anon4about 11 years ago
Reminds me of the different ways the environment is set up in Windows and Linux. In Windows, when you want to edit your environment variables, there&#x27;s a simple configuration utility with a list of them, you click and edit and it all takes effect immediately. In Linux, there&#x27;s a chain of events where different shell scripts are ran in some way at different levels of the bootup process depending on strange and arcane factors, so when you edit ~&#x2F;.profile that only takes effect in your terminals and not in applications started by the DE, but also not in tmux, because it&#x27;s not sourced by ~&#x2F;.bashrc somehow. And once you puzzle out the chain of command and edit everything you have to log out and back in. And when you want to make changes to the global environment, there&#x27;s &#x2F;etc&#x2F;environment, &#x2F;etc&#x2F;profile and &#x2F;etc&#x2F;profile.d&#x2F;yourscripthere.sh. Only one of these is the right choice but only for a specific distro, DE and shell combination. Oh, and if somehow you manage to source a script twice your PATH gets duplicate entries in it. Not technically a problem, but it kind of irks me.
kingmanazabout 11 years ago
The &quot;glue-language&quot; philosophy underlying Tcl can strike an optimal balance between usability and power:<p><a href="http://www.yosefk.com/blog/i-cant-believe-im-praising-tcl.html" rel="nofollow">http:&#x2F;&#x2F;www.yosefk.com&#x2F;blog&#x2F;i-cant-believe-im-praising-tcl.ht...</a><p>Shells partition away sophistication.
评论 #7547634 未加载
评论 #7547610 未加载
joe_the_userabout 11 years ago
Wow, there are many ways to go with this...<p>I would claim that natural language is the most usable and the most powerful user interface. We humans have been relating with it for quite a while and there&#x27;s no sign of a let-up.<p>And most programming language either contain fragments of natural natural language or can be translated into such fragments. Yet, the author is right, programming languages are &quot;least usable&quot;. Indeed, consider SQL was created specifically to be usable like a natural language but it now considered more unusable than even an average programming language. What gives? (I have my suspicions but I wonder what people think).
评论 #7550893 未加载
评论 #7552559 未加载
nercuryabout 11 years ago
Turing-complete config files do not sound like proper config files :)
评论 #7547430 未加载
评论 #7547367 未加载
0xdeadbeefbabeabout 11 years ago
Yes, yes they are. I&#x27;m not a programmer, but a user with a refined taste for java--hah just kidding! Clojure isn&#x27;t so bad though. Java is an interesting interface or programming language because you need an autocomplete editor i.e. another interface to really enjoy it. Don&#x27;t forget maven and ant for libs and builds.<p>But some people are probably comforted by java ui maybe because it is so structured.<p>Edit: remember ant and maven.