Not sure if this is the right place to post this a...
# thinking-together
j
Not sure if this is the right place to post this and whether this is interesting to this group, but I gave a short presentation last week about the future of programming systems and curious what you think about it. I wrote it down in a blog post here: https://blog.waleson.com/2024/09/the-future-of-programming-systems-four.html There are four thoughts that I think will shape the future: • Software development systems have a lot of vestigial parts (left-overs from the way it evolved) • Understanding is crucial to development, and with the right mediums we can understand the subject much faster • Most software platforms developed bottom-up, from the silicon, instead of focusing on the needs of the people • Software is truly different from other technologies in the freedom it gives us, so we can and should invent new abstractions that make things simpler than they are now This isn't in the post, but I think that in the future we'll see: • Great integration between design tools, version control, IDEs, databases, monitoring & logging systems. • High-level concepts as first class systems in the programming systems. Simple examples are an email or phone number type as a database primitive, instead of strings. • Better reasoning / business logic rules so that IDEs can give feedback on "you are not allowed to store PII in this database". This way all stakeholders can collaborate and the system can check correctness much better, and we require less discipline/in-depth knowledge from the team members. I suspect most of these ideas have come by in this community already, but still curious what you think!
k
I hope your predictions will become true! One obstacle I see is the widespread belief in "software" and "programming" as universal abstractions. Human-friendly environments will have to be domain-specific. As a researcher working on protein dynamics, I have no use for your "phone number" entity, but I have lots of others that even my colleagues in neighboring domains would have no use for. Domain-specific tools would necessarily need to a fragmentation of the software professions, and I suspect that is something many people don't want to happen.
j
Right, thanks for that! I'm a bit too focused on the web applications field so good to get other perspectives. So the best known programming tools have universal adoption and hence offer the lowest common denominator in terms of concepts. This makes sense, the most powerful systems I've seen were indeed focused on making one kind of application.
So maybe a programming system with pluggable concepts and rules could be a thing. But that smells like over-engineering 😉 Maybe best to start with a niche and just build an amazingly integrated system there, so that productivity can go 10x. After that we figure out how to offer something similar to other niches.
m
Will you give this presentation again or a similar presentation in Zeist? I live nearby (Doorn) and would love to join a presentation in real live if possible 😀
j
Hah, nice! Nothing planned, but if you find a place where this presentation is welcome let me know!
k
Plugin architecture or not, that's an implementation detail. If you want to be human-friendly, you have to start from how humans think and work, and develop tools that support them. Once you have done this for ten domains, you can look for shared aspects, a common infrastructure, and other low-level stuff. I see today's main problem in that we work the other way round: we start from tech stacks and have software specialists develop apps for users who are not expected to understand or modify these appls.