I’m afraid the only way to realize the Transcript vision of end-user programming is to start a company. I did that once. After many years of toil and tears I was incredibly lucky to exit successfully and I swore then I would never put myself through that again. I would much prefer to have an open-source project delivering an excellent end-user experience while also continuing to research and innovate, working with interesting people on a humane schedule. As far as I can tell that has never happened.
Building a high-quality end-user product requires a lot of hard work that is not appealing to open-source contributors. They want to work on what they know and use – programming tools and libraries. Academic researchers want to play with cool new ideas. You need to pay professionals to do the hard design, engineering and support work required to deliver a product. You need to have revenue to pay those professionals. Unless I can find some benevolent sugar daddy I am afraid I may eventually need to start a company.
Does anyone know of open-source or academic projects that have built an innovative end-user product? Note: for end-users, not for programmers. Also note: innovative, not a clone of an existing commercial project. I’d love to see a successful example.
Hi,
I’m wondering, have you seen the work of Paul Chiusano? He seems more the engineer type, and he’s basically trying to solve the same problem as you. And he has a company. Maybe he could be of help, who knows 😉
His current project:
http://unisonweb.org/2015-05-07/about.html
A relevant blog post:
http://pchiusano.github.io/2013-05-22/future-of-software.html
Cheers,
Arthur
I have great respect for what Paul is doing. He is funding on Patreon. Hope it works out for him and he can scale up.
In a lot of cases, we have to go back pretty far in a software category to find software that wasn’t a clone of an existing program, either a proprietary one or one that was free software. Here’s a list of things that I think fit your criteria.
Web browsers?—?the CERN browser for NeXTStep, the line-mode browser, and lynx. BitTorrent. WordPress; although it wasn’t the first blogging software, it would be ridiculous to argue that it’s currently a clone of Movable Type or anything else that came before. Arduino and Proce55ing — although they turn their users into programmers, they’re aimed at non-programmers. IRC, although you could say it was a clone of ICB, which is free software. Pidgin?—?although it started as a clone of AIM, which was sort of a clone of IRC, it became something quite different once it added multi-protocol support. (And of course Adium is a more usable clone of Pidgin.) TeX. netrek. MOO, plus lots of other MUDs of that epoch. WikiWikiWeb. What is now called “heirloom mailx”. Spacewar. MAME. Nethack. Vipul’s Razor. DjVu. Electric Sheep. The whole collection of Usenet tools, from rn to trn and tin to bnews and INN. Fractint (although its license isn’t quite free software). POVRay (likewise). Cura, although you could say it’s a clone of slic3r (free software), which is a clone of Skeinforge (free software). OpenSCAD. BRL-CAD. Second Life. Context Free (the art program). Android, which was already shipping before iOS, even though later it evolved into a clone of it.
Your post paints a world where most of the advancement in “innovative end-user [software] products” happens through the introduction of proprietary software. But I don’t think that’s the world we live in. Much the contrary: the biggest changes in how people communicate over the last forty years have been the WWW, email, online chat, Wiki, blogging (now in the form of Facebook status updates), computer typesetting, video games, massively multiplayer online games, peer-to-peer software like TCP/IP and Usenet, and 3D printing, all of which have their origin and much of their development in free software. There have been very substantial advances that appeared as proprietary software products before they appeared as free software: hypertext (I can’t claim Augment or NLS were free software), the GUI, multitouch, and text search engines, multi-font WYSIWYG typesetting, most of the physical-layer stuff in networking (largely because it was tied to hardware). And there have been very substantial advances made by proprietary software in niches pioneered by free software: browsers, email, online chat, and blogging all advanced substantially that way. But the converse is also true.
I’m confused: Isn’t the point of CDG to promote innovation and development without the pressure of producing profits?
Peter
Research labs generally only take things to the prototype/demo stage sufficient to validate and communicate the idea. They leave it to industry to productize the idea. There are a lot of exceptions for infrastructure technologies, but very few for end-user tech. Maybe I’ll have to settle for building a prototype but I am feeling that to fully realize the idea I need to see it through to a product. It would be great if CDG wants to do that too but that’s a long shot.
I am not an expert! But a successful open source project and a successful startup are not mutual exclusive. On the contrary you can reach even more people!
That’s an interesting way to think about why open source projects are the way they are. The easiest-to-use open source project that comes to mind is Pidgin aka Gaim from back in the day when I used to use Linux, though I’m not sure it passes your filter for things that just copied other things.
They’re definitely sparse. Maybe Popcorn Time?
These projects come to mind:
http://clojure.org/
http://lighttable.com/
(was funded through KickStarter)
http://witheve.com/
Darn — just realized you said for “end users” but I think the last link is still relevant.
Your observation here matches my own experience. Quality end-user software is too much work for people to build “on the side”. I have worked on Firefox and then Brackets at Adobe and it’s certainly possible to get meaningful contribution from the community, but it’s hard to see it working without some amount of paid support.
LogicBlox, in particular the Modeler application (nothing in the website about it yet). It has some similarities with Eve, Tableau, etc. If you are interested in more details, we can chat.
Of course I realize now that I misread “open-source or academic” 😉
There are quite a few open-source games – they are not academic, but require just as many UI-polishing work as anything else customer oriented. Just an idea.
Good point, but maybe that just goes to prove the rule that open source only works for software that the programmers want to use themselves: tools or games. It takes professionals to build software for other people with other needs.
Berners-Lee’s WorldWideWeb. Google search. Harmonix controller-music games (e.g., Guitar Hero; they’re commercial, but the basics were there in the MIT media lab demos). Xerox Alto/Star. Kay’s Dynabook (let’s call it a demi-example: the concept was clearly realized decades before it became commercially practical to create).
I’m cheating here, of course. Most of these aren’t academic projects in one way or another– PhD projects, research lab projects, prototypes later refined commerically, etc. Which is, perhaps, enlightening to the matter at hand: the strictures of academia and freedom of OSS development both prevent the kind of development you’re looking for. Too much non-novel engineering/design for academia, too much focused-discipline for weekend warrior work. Instead, you have to find that entrepreneurial middle-ground more likely to be found in the plucky grad student or (industrial?) research lab.
There is a lot to do before you get to product. What are the models that could work? What are the principles behind their design? What changes in our thinking are needed to really succeed here? Looking at Eve, they went through a lot of experimentation with prototypes, failed many times (failing is good!), and seem to be homing in on something that works. That doesn’t really require professionals so much as passionate researchers and hackers who are willing to fail a lot. The engineers and designers who are used to creating polished products won’t be very useful until the other investigative work is done (well, we could say they might be useful, but I’ve found that many aren’t cut out of the failing and seat of the pants prototyping that invention involves).
People ask me why I haven’t gone and productized or open sourced my research yet. To be perfectly honest, I’ve made progress, but I still don’t think I’m anywhere near having the great ideas needed for a revolutionary product yet. In the same light, I think there are still a lot of ideas and story development that need to be pursued before Transcript as a “product” is apparent. I definitely would love to help out with that.
Academia has its own dysfunction, it is often pursuing an end goal of perverse incentives that is irrelevant to real progress. CDG breaks that mold, and seem to be a nice place to incubate radically different and potentially game changing ideas. One person, or a few people, can definitely do that work.
You’re totally right Sean. Got a lot more research to do first. But when I heard Dan Hicks had died this post leapt into my mind.
At some point, disrupting the world won’t seem important anymore. We aren’t there yet, however.
Oh and thanks for offering to help. I’m designing the “live programming” environment at the moment and could really benefit from your insights. My hypothesis is that by having simplified the data and programming semantics I can make a live programming experience that, unlike many of the experiments done so far, is complete: everything that can be done in the language can be experienced first-hand in the environment. I.e. not just live 2D graphics.
Scratch seems to be a good example: it’s an academic project. It is part of the MIT Media Lab, instead of a Computer Science department. HCI programs might be other places to look.
The challenge in academia is usually that success costs more without raising revenue, and so you end up pursuing grants with a similar dedication to how you’d pursue funding.
Open source projects for end users seem to be most successful when they are sponsored by and internally used by large companies. You might have luck selling the idea to some big, non-hip-tech-company that wanted its non-technical employees to use a product like yours. They get some hip cred from hosting an open source project, you get resources.
How about the Calibre e-book manager? Or maybe some of the open source photo and audio editors?
In my experience, the high turnover rate is the biggest obstacle to sustainable development in academia. A startup company that loses all but (maybe) one of their developers every few years and can only hire students would also struggle with big projects, even with heavy government subsidies.
i have a saying, “you get what you finance”. If you subsidize oil drilling with strong tax incentives, you get fracking all over the country. If you make strip malls highly incentivized, you get hundreds of thousands of those. Whatever you sponsor, you get more of. Academia has not to date, given anyone in their system, particular rewards for polishing a product to consumer standards. Isn’t that what the Walt Disney company does every day of the year? take an existing idea (Alice in wonderland for example), and then successively and successfully re-render that old story into ever more fantastical versions. Schools don’t mind licensing patents, that seems very proper, but making a commercially viable product that is popular (which invariably requires advertising and marketing which they absolutely hate doing) doesn’t seem like it belongs to their original purpose for existing. Open source projects can take advantage of people working in governments, large corporations, etc., who are more interested in side projects than their daily work. In that sense they tap into a huge pool of talent that would perhaps otherwise be playing video games or doing sudoku. They can and do accomplish a huge amount with this labor pool. But polishing a product to commercial standards invariably involves documentation and keeping all the versions and languages synchronized is a big effort. To do it in a timely manner is a task best given to commercial entities who have a strong incentive to keep their products up to date. I am not one of those IP fascists who think that because a software creation has no physical component that is must be free to all users. If we have that attitude, will it not impoverish writers, poets, composers, musicians, philosophers, etc? I don’t want my favorite musicians to stop creating new music, so I gladly pay for CD’s. But I am a dinosaur in that regard. The modern streaming services provide a very meager income to musicians, and if they continue their growth, it will damage the music economy. Programming tools used to be a vital industry; you had Microsoft selling their tools, Borland, all sorts of companies were alive. Now, it is almost all free, and primarily companies that have income streams from other areas are sponsoring tool development, most notably Google and Facebook. Luckily it does’t take nearly as much money as before to build tools, but nonetheless, it is a grim environment for tool companies. We want and need better tools in the industry. This is an awkward time in my opinion. Transcript is not a general purpose programming language. You couldn’t build a clock (see my blog at e-dejong.com for the specs for a 6 line program to build a clock); transcript is ducking the core issue of drawing on the screen precisely, managing events etc.; it basically has a fixed graphical and event implicit. This naturally reduces the application areas that it can nicely map to. That means to me, that the Transcript project would be much better off building a series of useful software products using the tool, but the programs be the target of the project. In a way Twitter did this; they started with a a hit application for mobile phones, and then sponsored a lot of development. I have only kind intentions here, i would for Mr. Edwards to succeed, and i think because of the specificity of his tool, he is better making products. If he can do things in 10 lines that take 1000 in other languages, what could his programs do in 1000 lines? that would be 100k lines in Javascript for example a huge project.
Indeed I wonder if open source isn’t part of the reason for the complexity death-spiral of programming. Where are the modern equivalents of Delphi and Visual Basic? No business model for them anymore, and the open source hackers have nothing but scorn for their audience of non-expert programmers.
I intend for Transcript to eventually be a full programming language, but one whose native environment is mobile. The native environment of most PLs is the command line with stdin and stdout (Hello world). And some add graphics like you ask for in your clock example. That stuff has been done to death so there isn’t much benefit to doing it again.
Looking forward to hearing more about your Beads project.