Earlier quoted context omitted.
I'm a fresh graduate from uni so I'd say that I don't have that much experience. My last years working on the side of studies using Python really made me prefer strongly typed languages like Haskell, Rust, Elm etc. My experience is that the compiler almost always finds my small errors and would-be-bugs which Python exposes at runtime (crashes with e.g. None-type errors). What would you say the benefits are with dynam…
Python IS strongly typed. ie: 1 == '1' is FALSE, and 2 + '2' raises an exception.
Alan Kay and OO Programming
91–100 of 141 posts
Re: Alan Kay and OO Programming
#92Earlier quoted context omitted.
Have successfully completed tasks call home to mama. No call no work. Easy. Alan Kay and fellow minded et al. are looking at Biology and to an extent Physics as the successful approach to pervasive computation at large . It is the desirable feature set of the biological organism that informs that perspective: self-healing, self-regulating, regenerative systems operating in an open-ended operational context. So that i…
Biological systems do that because they evolve. Interactions between independent systems happen due to chance changes in some of them. But the nature of the interaction is not something controlled. Switch one bit of a genetic code and a whole bunch of behaviors change (the ultimate in side effects). This is the anti-Dijkstra; a system that cannot be fully reasoned about. What we're seeing in "successful" biological s…
Re: Alan Kay and OO Programming
#93>> Extreme late-binding is important because Kay argues that it permits you to not commit too early to the "one true way" of solving an issue (and thus makes it easier to change those decisions), but can also allow you to build systems that you can change while they are still running! >> Binding can also refer to binding a variable type to data. As someone who has over 15 years of experience going back and forth betw…
> As someone who has over 15 years of experience going back and forth between statically typed and dynamically typed programming languages I have >20, in a mix of dynamic and statically typed languages. I've even designed a few of both including some that straddle the line. > It's a shame to see the new generation of developers moving back to statically typed languages It's only a shame if you presume to know better…
There's very little you can prove, other than "less code gives you fewer errors/bugs". Arguably, this is primarily due to specification gaps being opaque and less logic to hold state. You can't file a bug or raise an issue about a choice that was already made by a dynamic language.
> It's only a shame if you presume to know better than all of those developers.
Statistically, someone is going to be right. The "right tool for the job" trope does not extend to every facet of every choice. The totality of developers are not experts in every set of practices (while it still may apply to some cases). Less code is better and until there's a study to say something more, I'm not interested in the hand waving.
> > Many of the people who came up with or promoted the idea of dynamically typed languages
> Most of the designers of the initial statically typed languages came from that same era
This isn't an argument about better, but precisely the point you turn around and make. It's not worse. Less code is better, for sure.
> Without something like Smalltalk's "open a code editor when an error occurs" live debugging/editing experience, you'll never get the real benefits of dynamic typing.
Debuggers allow this. You generally don't want the user to have this power.
There is a shocking lack of science in the industry. Re: The Quorum Programming Language made some attempts at advancement. It's been decades and I still see the same squabbles and continue doing 10x more with dynamic languages than when I am forced back to something like Java. At some point, I have to assume that I'm special or one of those language choices are crippling.
Re: Alan Kay and OO Programming
#94I have a ton of respect for Alan Kay and think he's a genius. But why does it seem like every time he talks about OO it's always painting an apocalyptic picture like we're in some kind of twilight zone alternate nightmare reality of broken patterns and models? Surely our concept of objects and OOD can't be that bad, but his apparently contrary outlook is just so persistent...
All of the signs of general failure are starting to show: the great successes of recent computer attacks against the United States, against both public and private institutions, and the regular drum beat of data leaks.
Imagine having the level of education and knowledge that Alan Kay does and seeing a contemporary code base (I don't imagine that my work would be treated kindly by Mr. Kay)? I imagine that his view of whatever is coming is far worse than mine.
Re: Alan Kay and OO Programming
#95Earlier quoted context omitted.
JavaScript is functional and oh boy!
What does "functional" mean to you? If "OO" has a hundred different meanings, then "functional" must have at least a thousand. To me, JavaScript is definitely not functional - it lacks a notion of purity, and its meaning is the evaluation of statements, not the construction of expressions.
Re: Alan Kay and OO Programming
#96Earlier quoted context omitted.
What does "functional" mean to you? If "OO" has a hundred different meanings, then "functional" must have at least a thousand. To me, JavaScript is definitely not functional - it lacks a notion of purity, and its meaning is the evaluation of statements, not the construction of expressions.
My point was popular languages attract masses of developers and the resulting quality of code is poor on average.
Re: Alan Kay and OO Programming
#97>> Extreme late-binding is important because Kay argues that it permits you to not commit too early to the "one true way" of solving an issue (and thus makes it easier to change those decisions), but can also allow you to build systems that you can change while they are still running! >> Binding can also refer to binding a variable type to data. As someone who has over 15 years of experience going back and forth betw…
> As someone who has over 15 years of experience going back and forth between statically typed and dynamically typed programming languages I have >20, in a mix of dynamic and statically typed languages. I've even designed a few of both including some that straddle the line. > It's a shame to see the new generation of developers moving back to statically typed languages It's only a shame if you presume to know better…
Thank you for that analogy. It is hilarious, and i will definitely be slipping that into some of my work conversations this week.
Re: Alan Kay and OO Programming
#98Earlier quoted context omitted.
I really don't agree with your point. The analogy Kay uses with biology is very telling : Cells (co-)evolved for billions of years, they were not "designed" to accomplish certain tasks. Just survival and reproduction. And still, even with those billion of years, we still have cancer (as in bug in the reproduction process). We design software. We evolve software. Software doesn't build itself, or decide for itself wha…
> Dynamic languages let you think a problem you haven't thought of at design time will somehow solve itself magically at runtime, using components designed weeks before, with knowledge of that time. I don't think most people who program in dynamically typed languages believe that. However there are people in the extreme that believe that static typing will save you from errors. Sometimes I worry that the cognitive ov…
Re: Alan Kay and OO Programming
#99Earlier quoted context omitted.
> As someone who has over 15 years of experience going back and forth between statically typed and dynamically typed programming languages I have >20, in a mix of dynamic and statically typed languages. I've even designed a few of both including some that straddle the line. > It's a shame to see the new generation of developers moving back to statically typed languages It's only a shame if you presume to know better…
> https://vimeo.com/9270320 There's very little you can prove, other than "less code gives you fewer errors/bugs". Arguably, this is primarily due to specification gaps being opaque and less logic to hold state. You can't file a bug or raise an issue about a choice that was already made by a dynamic language. > It's only a shame if you presume to know better than all of those developers. Statistically, someone is goi…
Yes. If you ask 100 people what the answer to "3 + 5" is, you'll mostly get "8". But that's because you're asking them all for the right answer to the same problem.
If you ask 80 of them the answer to "3 + 5" and 20 the answer to "3 + 2", the right answer isn't 8 and the people who answered 5 for the latter aren't wrong. They are solving different problems.
Given the breadth of computing today, it seems very unlikely to me that all programmers are solving the same problem, and thus that there is a single objective right answer for what language or language paradigm is best. It certainly doesn't align with my own personal experience, where I can't point to a single language that I would prefer for all of the different kinds of programs I've written.
> Debuggers allow this.
Yes, with limitations. A SmallTalker will tell you that debuggers are a pale imitation of the full experience. (I don't have much first-hand experience with it myself, but I know people who get misty-eyed when you ask them about it, despite being very familiar with "modern" debuggers.)
> You generally don't want the user to have this power.
I don't disagree with you personally, but there's a counter-argument that forcibly separating people into "developers" and "users" is itself a moral failing akin to welding the hood shut on a car.
> There is a shocking lack of science in the industry.
I'd like more science too, but I don't find its absence that shocking. PL is very hard and expensive to study scientifically. Doing controlled experiments is very difficult when step one is "Design an entire programming language, implement it and all of its tools and ecosystem, and then get people to spend a long amount of time learning it to proficiency."
That's a lot more difficult than "Take a sip of two sodas and tell me which one you like more", and even that simple experiment turned out to be famously flawed.
Re: Alan Kay and OO Programming
#100Earlier quoted context omitted.
That is not the point. The point is having the ability to fully control how to react to a message. Sometimes just ignoring certain messages is fine: You might slot in an object as a sink to log certain messages and not care about others. Other times you want to be able to do things like delegate certain subsets of messages to other objects without having to know the precise set of messages in the sender or ultimate r…
That sounds great for a quick & dirty prototype, or for debugging and testing. But it would be an absolute nightmare for building and maintaining large-scale projects.