For your FoC work, which missing frameworks/platfo...
# thinking-together
s
For your FoC work, which missing frameworks/platforms/features/tools (that are not specific to the project) do you feel would most help you implement your project? (for example, have you had to take any significant detours from working on your project specific code to build such missing pieces?)
k
SSL. Oauth. Talking to APIs in general. Also crypto in general, since we're not supposed to roll our own.
πŸ‘ 1
c
Local, syncable storage from browser
☝️ 3
i
Reactive data flow, 3D renderer + camera, computable reals with bounded perf... all in the browser and with an emphasis on minimal code size
πŸ‘ 2
p
A portable assembly language with guaranteed tail calls, not the "we may optimize them if the planets align" sort from gcc and llvm. Explicitly having to label tail calls would be fine.
πŸ‘ 1
n
A programming language that natively supports declarative/reactive GUIs. Similar to Svelte, but less ad-hoc. But really, the hard part of The Future of Coding is discovering it, not implementing it.
🍰 2
k
A way to store code structures (like an ast tree). I want version control as a history of tree edits, including support for branching, diffing and merging. Essentially I want git but it works for non-text code tree structures. I know of other visual/structured editor projects that got bogged down in this too. I really don't want to have to reinvent version control but text files are terrible for what I'm doing.
☝🏻 1
☝️ 6
i
^ Yeah, I want that! But it's gotta work at 60fps for thousands of elements in the tree, and millions of tiny edits, with faster-than-linear-search access to random spots in the edit history, in the browser :$ (I am okay with this using GB of RAM)
😎 1
j
@Katie Bell Have you seen https://difftastic.wilfred.me.uk ?
k
I had not seen this @Jack Rusher! Thanks! πŸ™‚ It doesn’t solve the whole problem, but it could help with the tree diffing part of it.
πŸ‘ 2
s
@nick "But really, the hard part of The Future of Coding is discovering it, not implementing it." How do you know how hard it is to build if you don't know what it is? How do you know the right idea would be well recognized without first being constructed and experienced? How do you know the person with the right idea is also the person who can easily implement all the missing software layers to build it, or to convince others to do so? How do you know if the right idea is something that pops into one's head completely formed, or is instead discovered through an evolutionary process of building, testing, and seeing what feels right and where it leads them?
πŸ’― 1
j
@Katie Bell Totally! I don't mind if the on-disk format is text (vs in a DB or whatever else), so long as the tools on top can treat it like something richer, which is where things like this can be so helpful πŸ™‚
n
@Steve Dekorte Conversely, how can The Future of Coding (which I'm assuming takes the form of a "programming environment" of some kind) be hard to build if you know exactly what needs to be built? To "know" what to build is to know what code needs to be written. If you know what code needs to be written, you can simply press all of the correct letters on your keyboard, in the correct sequence, and then you're done. What I mean to say is: programming is entirely about figuring out what code needs to be written (or modified). That's what I was implying in my last message. As you say, oftentimes you have to experiment (many, many times) to figure out what code needs to be written. One hardly ever writes the right code on the first try. But writing code (which forces you to deliberate every little detail) is the last step in the design & discovery process.
s
@User Does knowing you'll need an operating system imply you know how to write one? Isn't all the tech we use to create with built on top of tech we are not experts in? Isn't it specialization that allows for advanced economies? If we are struggling to make headway into a new tech layer, could it be because we don't have sufficient precursor components/layers?
πŸ‘πŸ½ 1