<https://futureofcoding.slack.com/archives/C5T9GPW...
# thinking-together
I'm mostly in agreement with Stefan that typical business models tend to lead to worse outcomes overall. I can think of a few reasons: * Much of the power of computing comes from the composition of different technologies but there are active disincentives to making your tools compose with the competition. Creating standards takes time and effort, reduces lockin and enables competitors, but it's also the basis for most of our fundamental improvements in technology. * For whatever reasons, businesses in the last few decades have a strong tendency towards short-term thinking whereas really fundamental improvements take a long time. Eg many languages in use today took 5-10 years to reach usability whereas a typical startup funding cycle wants to see serious attention in the first 2 years. * Complexity has a tragedy-of-the-commons effect where increasing the complexity of your own offering can help outshine the competition and win you customers, but when everyone increases the complexity of their tools the overall result is impossible to manage. * For startups in particular, there is a strong risk that they'll get acquired or shut down and their technology will disappear from the world. My own approach at the moment is to take advantage of how ridiculously overpaid programming is, where 1-2 months of unrelated consulting is enough to fund a year of working on my own projects. But it's also worth looking at how existing projects manage: * Zig is entirely funded by github sponsors and explicitly chose that option to retain the freedom to work on whatever they think is important. * Julia used to be funded mainly by public research grants but has also been working on enterprise support accompanied by a few proprietary tools. I haven't looked into how successful the latter is. * Clojure was funded mostly by consulting - not for work on the language itself but on the premise that the language made them better at other tasks. That's an interesting model because it forces you to very directly face any shortcomings in the language. * Rust, I think, doesn't have any central funding but several people are employed by companies that use it to work on the language full-time. * Sqlite sells paid support and also some proprietary tests/extensions that are mostly useful for high assurance domains eg putting sqlite on a plane. I particularly like this little note on the sqlite page:
Hwaci is a small company but it is also closely held and debt-free and has low fixed costs, which means that it is largely immune to buy-outs, take-overs, and market down-turns. Hwaci intends to continue operating in its current form, and at roughly its current size until at least the year 2050. We expect to be here when you need us, even if that need is many years in the future.
It's a reminder that these problems aren't inherent to businesses in general, but just to a particular set of ideas about how business should be run that seems to be in the water these days. It seems like small businesses that intend to stay small are better at resisting them. A more recent example is Sourcehut, which is funded by paid subscriptions but still releases all the code under AGPL and exposes simple apis and data exports for each individual service.
d
My plan is a mix of: • overpaid contract work followed by periods of working on Onex (I'm currently in one of those full-time Onex phases) • drawing on my pension pot 😮 • doing a Kickstarter to sell cheap OnexOS smartwatches - like Espruino, make money on hardware not software. This is an age-old problem: just think what progress the human race could make if there was a source of funding for innovations that didn't rely on (a) a business model or (b) an academic publishing model, just (c) a value-for-humanity model.
t
I'm not sure how comparable most 'future of programming' projects are to programming language projects. Like definitely, it's 5-10 years till languages are generally applicable but Rust, Zig, and Clojure were useful for basic experiments within the 1-2 year timeline (as far as I can grok from the informal histories)
The sort of future-of-programming vision quest things like dynamicland or, sort of, ink & switch, are longer bets and more likely to produce prototypes with no practical use before they potentially invent the future
j
Rust, Zig, and Clojure were useful for basic experiments within the 1-2 year timeline (as far as I can grok from the informal histories)
The language grew out of a personal project begun in 2006 by Mozilla employee Graydon Hoare,[16] who stated that the project was possibly named after the rust family of fungi.[35] Mozilla began sponsoring the project in 2009[16] and announced it in 2010.[36][37] The same year, work shifted from the initial compiler (written in OCaml) to the self-hosting compiler written in Rust.[38] Named rustc, it successfully compiled itself in 2011.[39] rustc uses LLVM as its back end.
The first numbered pre-alpha release of the Rust compiler occurred in January 2012.[40] Rust 1.0, the first stable release, was released on May 15, 2015.[41][42] Following 1.0, stable point releases are delivered every six weeks, while features are developed in nightly Rust and then tested with alpha and beta releases that last six weeks.[43]
I started using it in 2014 - at that point it clearly had promise but the compiler still regularly crashed and there were very few libraries. I think it still had gc and green threads as late as 2012, so at least 6 years to figure out the right combination of features to omit the runtime, becoming recognizably the language that it is today. I wouldn't have paid money for Rust in 2007. Zig is only 5 years old and is surprisingly usable (although I still crash the compiler). I think the timeline for Clojure was similar. But both are much simpler languages, sticking to fairly well understood design spaces. I suspect most foc projects are more like Rust in that they're tackling completely new areas of the design space and will need a lot of shaking out before it's clear whether or not they're going to work out.
j
We can’t ignore the history of widespread stagnation of science and technology in the last few decades. There’s a whole movement on “progress studies”. https://patrickcollison.com/progress
j
@jonathoda Was that intended for this thread?
d
@jonathoda Trouble is we don't have the time or energy within this community to fix that. So we have to work with what we've got. Which is evenings and weekends for most of us! 😄 It does come down to "marketing" even without a commercial product, and I for one am rubbish at that.
j
@jamii yes. We will all starve individually. We need to band together to build an institution that can attract funding outside of Big Science and SV. The time is ripe
d
"We will all starve.." "We need to band together", "The time is ripe" .. Stirring language .. but I suspect this forum isn't receptive to that
s
It’s interesting (and tragic) that we overall seem to mostly agree on many parts of a vision for a better future (of coding), and yet we all work on our own versions towards it. Yes, we share our findings and experiences, but it’s mostly random and at best enables some serendipity. If just a small group of us here would coordinate their efforts for some time, which doesn’t even mean to work on the same thing, just agreeing on a specific problem to solve and splitting work to explore a certain part of the solution space in a concerted effort, we could probably make significant progress. It looks like we have the corner stones for a great team right here: alignment on a vision + complementary skill sets. Even funding seems solvable, if we can demonstrate commitment of a dedicated team working towards a common goal.
1
d
Well, there's the rub: people come here for different reasons. There is a core few of us who have a novel approach and are unlikely to get much out of collaborating with others with significantly different approaches. Then there are the folk from commercial enterprises and those who want incremental improvements to IDEs and other tooling. I don't see them or their work as the subject of this thread, but I'm happy to be told otherwise. Anyway, there's only 5 of us on this thread, so maybe we should start by re-pinning to #C5T9GPWFL ..?
w
More than five. 😉
😄 1
j
All we need is to agree on a few challenge examples. Like https://github.com/gothinkster/realworld Then we run a workshop on solutions using our alternative programming technologies. Cross between a writers workshop and a bakeoff. Maybe award joke prizes (Least Likely to be Funded). This might be my next happening. DM me if you’re interested
😎 2
1
o
I agree it would be nice to have a significant collaborative effort emerging from this community. But I also agree it will be complicated! Maybe the first step is to find some common ground? What in our visions for Future of Coding Programming is common? I guess it is not that easy to answer either.
d
Future of Coding Programming
😅 Exactly!
o
And as for the question of the funding for developing new language/tools, until now I was on the spare time like model, which is really frustrating. So, first based on savings, I will try some time in full commitment (starting this summer!) to explore some ideas and hopefully produce something usable. In parallel there will be the tricky question of funding. If it is not solved, maybe I will go in a cycle à la @Duncan Cragg: some paid periods that fund the unpaid projects.
k
Some comments on moving towards getting things done (which I strongly support as a goal): 1. Remember McLuhan: the medium is the message. This community is organized around three stream-type media (see this essay for stream vs. garden): a podcast, a Slack, and a newsletter. These are media for exchanging information, not for collaborating. Garden-type media that support collaboration are, unfortunately, much less numerous. Basically we have Wikis and Git repositories. Someone needs to set up a garden and oversee its evolution. That's work, and unfortunately not highly valued nowadays. Ask Open Source maintainer for testimonials. I suspect this is the main obstacle to be solved. 2. What we all have in common is dissatisfaction with the present state of the tech world. That doesn't mean we have the same goals, nor the same ideas about reaching our goals. I doubt we could all productively collaborate. So we need to aim for "getting things done" communities (plural) that overlap with this one but which are not identical.
j
@Konrad Hinsen Working in isolation is a recipe for depression and failure. I've been trying to bring the "alternative programming" community together for years with various workshops. It is like herding cats. My latest idea is that if we could agree on a set of challenge problems, we could at least establish some basis for communication, comparison, and feedback.
3
k
@jonathoda I agree with all that. Challenge problems are one way to formulate common goals. My point is that discussing challenge problems here on Slack will just lead to another interesting discussion that will die out after a few days. Slack is even worse than other stream media in being optimized for short attention spans.
j
@Konrad Hinsen you're right. I'm increasingly avoiding slacks for that reason. At least on twitter you meet more people.