Hello friends, recently <@UJBAJNFLK> tweeted that ...
# thinking-together
s
Hello friends, recently @Konrad Hinsen tweeted that we should document our “deep goals” and that has me thinking about how to formulate such things. If any of you have formulated your “deep goals”, not just for your strategy or project, but the underlying motivating goal of your research, could you please share? Since we have overlap as well as divergence in what each of us is working towards, I think formulating the goals may help us see where we overlap and diverge? https://twitter.com/khinsen/status/1526075007050334208
k
As I replied on Twitter, my deep goal is creating computational media for research in physics and chemistry (plus possibly beyond). Media that encode observations, models, and their relations, relegating tools (code) to the background. In terms of "the classics", this is very close to Terry Winograd's ideas from "Beyond programming languages", specialized to a particular domain.
My idea of a deep goal is a goal expressed in terms of what people can do with computers. As opposed to technical goals, such as "getting rid of text files", or "making X faster".
💯 2
j
Being better at choosing, writing, and following rules.
k
One deep goal I often see here is to make programming easier, perhaps to non-programmers. Call this the "lower the floor" goal. A second deep goal I see here is to reduce the effort of programming. That can help either beginners or experts, but for contrast with the previous one, call it the "raise the ceiling" goal. My preferred deep goal is to make programs easier for anyone to look inside. "Lower the floor for reading." I'm less concerned about the writing experience. Obviously there's tons of overlap between these goals. But I'm starting to realize that that's a problem rather than a good thing. It makes it harder to see true potential collaborators. --- An orthogonal axis is means towards these goals. Some people build research projects, some people build commercial products for others to use. By the nature of my goal, I have to try to build finished (open source) products that people can use. They're stable, they last a long time, and oh if you eventually want to look inside them, hopefully that's easier than with most other products you use.
👍 1
❤️ 1
k
Making programming more accessible is definitely a worthy goal, but I think this goal requires more precision. In fact, I don't believe there is a universal abstract activity called "programming". You need to pick an audience and an application context, and maybe more. And as you note, reading and writing are not the same problem either.
k
More precision may help gain adoption, but it might shrink your tent too much if the goal is to find collaborators. The way I think about it is programming is a skill that can support any activity. Bending the computer to help with whatever you do. So while some tools are more specific, it seems reasonable to be general-purpose. I'm fairly flexible on the initial product. My plan has always been a small "empire" of little products. (It's been slow going but will hopefully be faster now.) If one product gets me an opportunity to collaborate I'd be happy to prioritize it.
j
I’m kind of surprised to see myself say this. But I don’t have a deep goal, or if I do, it is a deep meta goal. In programming and in my other hobby (philosophy). I’ve found that as I learn more, my tastes change, morph, and expand. What I see in philosophy that I think is wonderful is the incredible diversity of views and yet persistent dialogue going on between these views. Philosophy becomes this rich discussion of trade-offs, of clear conversations driving to find where the true disagreement lies. Programming on the other hand seems to lack this depth. So if I have a deep goal, it is a meta goal. To explore many different deep goals. To see many different approaches flourish. To push and understand. To find where real disagreement is rather than superficial. To find connections where others see difference. I think the things that make us different here are much less important than the things we have in common. What I think matters in those difference is to understand them and to find out the strengths in each approach and to find a way, not to combine them all into some multi-paradigm mess, but to see them all from their perspectives.
👍 1
❤️ 5
j
It'll take some effort to write this up the way I want, so it'll probably end up as a blog post rather than a Slack message.
👍🏽 1
👍 2
s
Thanks @Konrad Hinsen, what you wrote above and https://science-in-the-digital-era.khinsen.net/#Computational%20media is clear and certainly overlaps with stuff that interests me.
Being better at choosing, writing, and following rules.
@Jason Morris - could you elaborate a bit on how you think what you wrote overlaps with computing? Specifically what kinds of rules are we talking about?
@Jimmy Miller - loved your reply. I do agree that with programming we can’t say where the true disagreement lies. I mean “static types vs dynamic” and “functional vs OO” seem somewhat narrow and fuzzy debates that aren’t quite getting to something rich. Perhaps there are some key notions that could make these discussions feel more crisp? Often I feel I am in this boat as well.. “seeking perspectives” that connect and sever other ideas. What came to mind after reading your reply was
Not All Who Wander Are Lost
(I mean.. I know I am lost, but not all who wander are.) Perhaps it is useful to have both kinds of goals be explicit? The meta goals and well as the currently being explored perspective/goals.
@Kartik Agaram I do think your website paints a fairly clear picture around your goals and approaches. I got the idea about “lower the floor for reading” (but not by the usual readability) Finding useful collaboration (and avoiding unproductive colab) is one reason I’m thinking about this goals stuff. Another (ulterior) reason is just so I have ideas on how to formulate goals and approaches for myself. Say if each one of us in the community puts the answer to this question on our site.. it may make it easier to know even what one might want to read more of? Since there are many levels of goals, I’m also curious to see how people think about this.
👍 1
❤️ 1
k
A more structured webring? Random site from the same city/state/country/solar system.
k
@Kartik Agaram I agree that it is possible and in certain ways advantageous not to specialize too early on some application domain. But I doubt that any concrete project (real, working code) can aim to be general purpose. The people whose life we want to make easier come from various backgrounds and have widely different goals. Often those goals are defined by existing technology. And I doubt many people have the wish to "learn programming". It's nerds like us who have such strange ideas 😉
j
@shalabh my use case is "Rules as Code" which is an approach to policy development, public admin, regulatory drafting, and compliance. So laws, mostly. The tech is symbolic AI (specifically, stable model constraint answer set programming) applied to legal knowledge representation and reasoning, with a user-friendly interface. Combining "user-friendly" with "symbolic AI" is the FoC part.
👍🏽 1
t
I keep drafting a reply to this thread but keep giving up. I guess it's a good exercise. I think my overall goal is to shorten the development loop. Remove everything that is not strictly necessary, this included build tools, but also switching to reactive hot code reloading and other technologies that make iterating much faster. I build on Observable because it solved most of the main issues already, but I was thinking along these lines when I tried to develop a functional reactive animation system called Animaxe in 2016 https://github.com/tomlarkworthy/animaxe I see observable as the proper realizing of what Animaxe was ineffectively grasping at, so I just need to upgrade Observable to be able to program the things I am interested in i.e. backend programming, hence webcode.run
👍 2
j
@Tom Larkworthy Have you used any systems with faster feedback than hot-reloading?
t
v
I feel close to the answer of Konrad Hinsen. The programmers spend much time on things that should be easy. My 'deep goal' is to (searching for right words for a while) introduce a functional tool to build and maintain systems which serve as a backbone for the future of data handling and computation. Is that too much to ask for 😉 ?
❤️ 2
k
Thanks @Václav Blažej for thinking about computational infrastructure. We need it, of course, but I see i rarely mentioned when considering "the future".
1
j
A little late, but oh well. I think my deep goal is to make writing quality UI much easier. My thoughts are inherently visual, so I want all of my tools to be visual to help me think. That's only possible if the effort to write UI is greatly reduced, because I've only got so much time in a day. Interesting question. I hadn't thought about my goals in these terms before.
❤️ 1