Val Town Blog 10月02日
从用户编程到程序员编程的转变
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

文章探讨了从用户编程到程序员编程的转变。作者认为,实现完全的用户编程(让所有人都能控制计算机)是一个遥远的目标,而先实现程序员编程(让程序员能控制自己使用的软件)是更现实的第一步。文章指出,程序员在工作中能控制软件,但在生活中使用大公司软件时却失去了这种控制权。实现程序员编程的关键在于获得对已部署的运行环境的访问权限,即所谓的“自由软件”。文章以Hacker News的mini-app HN Follow和Val Town平台为例,展示了如何通过小型的个人软件和集成来实现这一目标,并认为这是通往完全用户编程的重要一步。

🔍 文章首先指出,实现完全的用户编程(让所有人都能控制计算机)是一个遥远的目标,而先实现程序员编程(让程序员能控制自己使用的软件)是更现实的第一步。

👨‍💻 作者强调,程序员在工作中能控制软件,但在生活中使用大公司软件时却失去了这种控制权,这导致了不平等的现象。

📦 实现程序员编程的关键在于获得对已部署的运行环境的访问权限,即所谓的“自由软件”。自由软件允许程序员修改和分发他们使用的软件。

🌐 文章以Hacker News的mini-app HN Follow和Val Town平台为例,展示了如何通过小型的个人软件和集成来实现程序员编程。这些工具让程序员能够控制他们使用的软件,并根据自己的需求进行定制。

🚀 文章认为,通过实现程序员编程,我们可以解决一些通往完全用户编程时需要解决的问题,并为最终实现用户编程奠定基础。

End-programmer Programming

on

The dream of “end-user programming” is still too far away. Let’s set our sightson “end-programmer programming” first.

There is a dream, almost an ancient prophecy, about computers that is as old ascomputers themselves. Like a siren song, the dream has lured thousands of us tochase it. It shimmers like a mirage, tantalizingly just over the horizon, yetremains as elusive now as it ever has been. The road to the dream is litteredwith so many dead prototypes of brilliant minds that many have given up on thedream entirely. Yet in some hearts the dream liveson.

The dream is that the full power of computers be accessible to all, that ourdigital worlds will be as moldable as clay in our hands, shaped fluidly andcontinuously to serve each of our unique and particular needs. The dream is thatthe full expressivity of programming will be accessible to all people, not justthe ~1% who spends years learning to code. The dream is the nothing short ofthe real computer revolution.The dream is end-user programming.

[End-user programming is] a vision for empowered computing pursued bybright-eyed computer science visionaries. Its rich history reaches back to the1960s with programming environments like Smalltalk and Logo. Notable successessince then include Unix, the spreadsheet, Hypercard, and HTML. And today,newcomers like Zapier, Coda, and Siri Shortcuts are trying their ownapproaches to automation and dynamic modeling.

The gulf between end-user software and end-user programming is filled with anocean of thorny problems:

    Understanding basic programming concepts (boolean logic, statements, state,loops, functions)Using formal syntaxSetting up a development environmentRenderingDeployment, hosting, logging, monitoringVersion controlPersistence (databases)

There are many amazing products and research prototypes that solve some of theseproblems. There’s visual programming to make programming concepts moreintuitive, structured editors to help prevent syntax errors, auto-install onlinecoding environments, WYSIWYG rendering tools, and more! (Check out theWhole Code Catalog for a selected list.)

Trying to tackle all of these problems at once is like trying to boil the ocean.Yet only focusing on a sliver of the problem doesn’t come anywhere close to theoriginal dream. The wary dreamer must somehow chart a path from here, the worldof today, that can bring us ever close to the whole dream.

We can shift the audience. Instead of trying to achieve end-user programming,let’s start with end-programmer programming. Today not even professionalprogrammers can control their own software! How can we expect to get from hereto end-user programming, without first achieving end-programmer programming?

At work, the programmer is a magician. She is just keystrokes away from anythingshe can dream up. But at home, using apps made by big companies, programmers aredisenfranchised serfs, just like everyone else.

The task of end-programmer programming is empowering programmers to actuallycontrol the software they use in their lives; not just the software they writefor work.

We already have free & open-source software. So what is stopping us programmersfrom achieving the dream of end-programmer programming?

Imagine if you wanted to change how GitHub works. If you had the source, allyou would need to do would be to reproduce GitHub’s entire infrastructure inyour basement, make your changes, and convince all of your friends to use theresult. Or you could somehow get GitHub to allow you to make the change. Thelatter is generally easier, and points out another failing in the fourfreedoms [offree software]. Freedom 3 isthe right to distribute modified versions to others, but, in this world, it’snot necessarily access to the source that enables this freedom. Instead, it’saccess to the runtime environment.

End-programmers need access to the deployed runtime environment, what Robert“r0ml” Lefkowitz calls “liberal software”.

Liberal software is also a pre-requisite to end-user programming! And that’s thepoint of end-programmer programming: it’s a pit stop that allows us to solvesome of the same problems we’ll have to solve for end-user programming, butwithout having to deal with non-programmers at the same time.

The problems of liberal software are a tarball all on their own:

    Mapping between different data schemas between versions of code(Cambria)Managing code sharing between a Cambrian explosion of branchesPermissions for which users get to control what

We can limit the scope yet again: eschew whole, multiplayer apps in favor ofsmall, personal, folk software,little integrations, and mini-apps, likeSpotify Rediscover,Alert HN, HN Replies, andSmall World.

Because of excellent, free APIs and a sparse core interface, Hacker News hasspawned a whole ecosystem of mini-apps from readers to push-notifiers. Inspiredby our friend Kartik’s use-case, we decided tocontribute our own mini-app to the fray, built in the end-programmer style.

Our mini-app is called HN Follow (hnfollow.com) and itallows you to “follow” authors on Hacker News and get email notificationswhenever they post. Our “app” really isn’t even an app at all: it just walks youthrough creating the scripts to set up this query poll job.

Screen Shot 2022-11-08 at 2.23.32 PM.png

Once setup, you can customize any of the JavaScript: write your own query,choose a different schedule, filter results, format the email alert differently,etc. You can even use the basic polling & email architecture to query any sourcevia its API, not just Hacker News.

Importantly, all this code is hosted and run for you. This is what makes itliberal software: you have access to deploy to the same runtime the code waswritten in.

When you sign up for HN Follow, we create an account for you onVal Town (👋 disclaimer: this is my new startup, acollaborative cloud scripting environment) and install the scripts there.

Val Town is a place to write and run code online. You canthink of it as a “runnable Github Gists” or a “user-friendly AWS Lambda”. Itmakes it incredibly easy to email yourself, persist small pieces of data, exposefunctions and API endpoints, and create recurring jobs.

https://www.loom.com/share/878294970d8e48919c819f35d0cd0da4

It’s a JavaScript editor and runtime built for the cloud: collaborative,persistent, and (eventually)connected to APIs.Use it to keep tabs on Hacker News or your other favorite watering holes,reserve a table at a hot new restaurant, or shuffle data between one SaaS appand another.

But the dream of Val Town is nothing short of end-user programming, with alittle detour through end-programmer programming. Come join as we inch alongtowards the dream!

🙏 Thanks Kartik Agaram, Sam Arbesman, Geoffrey Litt, Dan Levine, Rodrigo Tello,and André Terron for your contributions to this piece, HN Follow, and Val Town!

The easiest way to subscribe to Val Town is to sign up for an account onval.town, and then opting in to receive our newsletteras your set your username. You can also sign upvia this link.

Edit this page

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

用户编程 程序员编程 自由软件 自由软件的四大自由 运行时环境 小应用 集成 Val Town HN Follow
相关文章