at work yeah, we all naturally want a very defensive, safe, territory. we dont want volatility & risk in our running, cash making systems.
it might be helpful to reflect on thr lifecycles of software development. Pioneers, settlers, & town planners comes to mind as a useful model, of the changing approaches as software established itself over time.
i'm really really warmed to hear that you were able to put yourself in the shoes of those who came before, those who were charged with building something out of nothing. most of us join fairly established entities, and we do not see the drive-to-make through the strong, powerful point of view of those trying to get create, those trying to get started.
when Alan Kay &all talk about personal computing, to me, it is much more a domain of will & creation & whimsy than the controlled, regularized, predictable processes we aim for when we professionals are building & elaborating our paid, industrial computing work.
An interesting dynamic here is that, having read Yeggie's article years back, I regarded Smalltalk as being somewhere towards the conservative end of the axis (at least, in comparison to other dynamic languages.) E.g.: variables declared before use, no truthiness, very few automatic type conversions. It results in a system with a high degree of internal consistency.
And yet, the goal of the language is to enable activity at the liberal end of the axis.
So maybe there's a more subtle goal: you have to enable someone to make a mess, but also equip them to get out of that mess into something more structured, as and when that becomes useful.
As a counter example, spreadsheets are wonderful for making a messy solution to certain kinds of problems - but how do you then it them into a spreadsheet that isn't a mess? I don't know that I've ever seen that happen - it seems like the right means of abstraction and combination to enable that to happen just don't exist in spreadsheet-land.
Fun comment! What are some things you think that Smalltalk does have or does do that embody the liberal sides of the axis? I want to agree, but trying to describe the image based environment, or how being more messages helps, is challenging for me to elaborate on.
Personally, I think we grade really hard on the small but visible differences like "do I have to declare 'MyFoo foo' or is there inference typing &c about", but it's much harder to assess from a big picture what behaviors & differences there are, harder to understand how each language & runtime is going to help us make sense of things.
Spreadsheets are an interesting place to turn to next. I'd be interested to see spreadsheets that can also visualize the dependencies of cells, that show how values flow across the sheet. Having that positional sense is interesting, versus, say, a debugger where you can see maybe what lexical scope a value is from, or less interestingly the address on the heap where a value happens to be. There's still, in both spreadsheet & debugging, dependencies, which power the processing that is now underway. I feel like both environments could be much better at helping explore this.
at work yeah, we all naturally want a very defensive, safe, territory. we dont want volatility & risk in our running, cash making systems.
it might be helpful to reflect on thr lifecycles of software development. Pioneers, settlers, & town planners comes to mind as a useful model, of the changing approaches as software established itself over time.
https://mobile.twitter.com/swardley/status/10875115450918993...
i'm really really warmed to hear that you were able to put yourself in the shoes of those who came before, those who were charged with building something out of nothing. most of us join fairly established entities, and we do not see the drive-to-make through the strong, powerful point of view of those trying to get create, those trying to get started.
when Alan Kay &all talk about personal computing, to me, it is much more a domain of will & creation & whimsy than the controlled, regularized, predictable processes we aim for when we professionals are building & elaborating our paid, industrial computing work.