I'd like us to create something like a taxonomy of...
# thinking-together
d
I'd like us to create something like a taxonomy of our different approaches here and elsewhere. For example: • Scratch-like • FRP-based • Dataflow, boxes and arrows • if this then that • spreadsheet-like • ... This should inspire discussion of their merits and costs, which doesn't seem to happen much here. And also we could do the same for our common goals with our projects: • end user liberation, empowerment • better IDE UX • discover the pure essence of what programming is • ...
👍 6
c
Creating metrics is incredible important. I would like to see that happen for a variety of complexities
d
I started categorizing some projects @Duncan Cragg in https://github.com/pel-daniel/mind-bicycles. It’s just a start I’m sure I’m missing many more
d
Looks good. I'll dig into that later today 👍
j
The most useful categorization is in terms of target: what kind of programming, and what kind of programmers?
@jonathoda - not sure I'm fully grasping your point .. could you give examples?
n
I believe Jonathan means systems programming vs application programming, and career programmers vs end users (scientists, moms and dads...)
d
I’ve only read a very little of @jonathoda’s blog, but it seems like he’s looking to end career programming as phenomenon. While there will always be specialists for special areas, in his vision there won’t be “programming generalists”, and certainly nothing like a “full stack developer”. (Am I reading that right, Jonathan?). I think, in this future world, the kind of person who makes a good programmer today would be something more like mathematician then, and most of the lousy programmers would find some other work, as the people who actually know the specialize in the domain could get on without them.
j
@duncan @Nick Smith Yes System vs application and professional vs amateur is a rough distinction. I think we could get a little more granular than that: big diff between OS and ML, and between artists and businessmen. The point is that you have to identify the target to hit it.
@Daniel Hines I think we will always need professional programmers for the hard stuff. It just shouldn’t be so hard to build a stupid website or CRUD app. There are many different kinds of software and there should be room for many different kinds of programmer.
d
Yeah, that makes sense.
And that's kind of what I meant. Something like making a fast algorithm will always be relegated to the people who study how to make fast algorithms, and as long as we need those, we'll need programmers. But in my experience, the useful apps are just tools to collect and view information, and we shouldn't need millions of programmers making thousands of ad-hoc apps that all do about the same thing and with no interoperability.
💯 1
c
Counterpoint: the actual programming is the easiest part and the hard part is figuring out details in business process and how those details form the mesh of a larger system. In my experience working with the non-technical people adjacent to programming this skill will always be in broad demand and "normal people" just won't do it. Remember: we think CRUD apps are stupid and simple, but how many people, even bright and talented business people today could translate their human-level desires into software-level details even if the implementation is something as simple as a CRUD app?
We have machines that turn high level requirements into working software today--they're called programming generalists and they are A) in extremely high demand, B) on the right side of the human talent bell curve, C) take ~5-7 years to train. Why do we think we can create software to do something that by all accounts is extremely hard to do?
d
The argument is that most of the toil and expertise required is for solving the purely incidental problems of software - the ones that have no bearing at all on the business, but are merely implementation details.
👍🏼 1
c
I agree the incidental implementation details can be reduced, but you can never reduce-to-zero the act of translating human problems into technical details. And many of these implementation details are actually important and well beyond the "I care about this" level of normal people. For instance, how does localization work when a normal business person is doing the development? Do they know or care about how their site renders in Arabic? Do they know or care about the translation or do we accept Google Translate's output? How do they fine-tune things when their page looks goofy in German? These are edge case details that require real expertise only a profession can provide.
d
… For now. At my last job, a savvy group of young, non-technical, fresh-out-of-college folks googled their way through administrating a Dynamics CRM deployment, and were able to create quite an amazing, custom-fit system, with no previous IT experience and very little help from the IT department. That wouldn’t have been possible 15 years ago, and I imagine even more will be possible in the future.
Now, it was very poorly factored, and didn’t follow even the first best-practice for database design… but it had little to no bugs.