Live data from Hacker News

Alan Kay and OO Programming

ovid.github.io

121–130 of 141 posts

Re: Alan Kay and OO Programming

#121

Earlier quoted context omitted.

> I'm curious if you can imagine a single programming language which you /would/ prefer for all of the different kinds of programs you've written. Not that it does exist, but could it? Nope. Granted, I may work on a greater breadth of software than the average programmer. But, at the very least, I have implemented language VMs and garbage collectors where I needed to work at the level of raw bytes and manual memory m…

I find Objective-C to have that range. I have used it for implementing everything from kernel drivers (DriverKit, yay!) to programming languages to server apps and GUI apps. Not perfect at the entire range, but it does have it. And having used it and seen what worked well and what didn't, I have some ideas as to how to make it better. I think it could be improved by having the Smalltalk-side be the default and then a…

I always liked the way Objective-C added the message passing syntax in a way which fit in well with C. The [squareBrackets means: "we're in SmallTalk land"] looks nice to me. The @ (at sign) sigils I don't appreciate as much.

> I think it could be improved by having the Smalltalk-side be the default

It does kind of seem like you'd want the higher level language on the outside and only dive into the lower language when you need it, but I could go either way for that.

Re: Alan Kay and OO Programming

#122

>> 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…

> It's a shame to see the new generation of developers moving back to statically typed languages (e.g. TypeScript)

Equating TypeScript to Pascal, C++, and Java, or even newer languages like Scala, Kotlin, and Rust is a poor comparison.

TypeScript's type system is extremely flexible and even optional.

It lets you choose your own point on the spectrum of dynamic and static types, and move that fluidly over time if that changes.

Re: Alan Kay and OO Programming

#123
post #18

>, he realized that while software routinely has trouble scaling, cells can easily coordinate and scale by a factor of over a trillion, creating some of the most fantastically complex things in existence, capable of correcting their own errors. By comparison, the most sophisticated computer software programs are slow, tiny, bugfests. Kay's conception of OOP starts with a single question: how can we get our software t…

> Here's my pet theory on why Kay's vision for OOP didn't win in the marketplace of ideas: The software industry achieves "extreme late-binding" via network protocols like TCPIP/HTTP instead of a single programming language's "message bus".

Sounds precisely like his vision.

https://youtu.be/oKg1hTOQXoY

In this video he refers to how the notion of treating each object as a complete computer, with its own URL.

Re: Alan Kay and OO Programming

#124
post #18

>, he realized that while software routinely has trouble scaling, cells can easily coordinate and scale by a factor of over a trillion, creating some of the most fantastically complex things in existence, capable of correcting their own errors. By comparison, the most sophisticated computer software programs are slow, tiny, bugfests. Kay's conception of OOP starts with a single question: how can we get our software t…

> Here's my pet theory on why Kay's vision for OOP didn't win in the marketplace of ideas: The software industry achieves "extreme late-binding" via network protocols like TCPIP/HTTP instead of a single programming language's "message bus". Sounds precisely like his vision. https://youtu.be/oKg1hTOQXoY In this video he refers to how the notion of treating each object as a complete computer, with its own URL.

[deleted]

Re: Alan Kay and OO Programming

#125
post #114

Earlier quoted context omitted.

>I'm curious if you can imagine a single programming language which you /would/ prefer for all of the different kinds of programs you've written. Not that it does exist, but could it? >However, if the one true language already existed, The one true language can't exist because we want to use a finite set of characters to express convenient programming syntax. (A previous comment about this.[0]) It might be possible t…

> So, if we attempt to create a Frankenstein language that combine concepts of bash and C, which set of programmers do we inconvenience with the noisier syntax? I won't speak for others, but I can make that choice for myself, and I'm willing to give the C-like language the upper hand. If bash like things were high enough priority, I might change the name "system" to "run" so it was just a bit more concise, perhaps ta…

Have you ever considered what a VR programming language could look like? A language doesn't have to be black and white text. C and Bash don't have to directly overlap if technology creates simple syntax that expands beyond how keyboards type.

Re: Alan Kay and OO Programming

#126
post #14

Earlier quoted context omitted.

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.

You mean like the internet?

The Internet as a whole [1] is not designed or maintained – it evolves.

[1] As opposed to its components (infrastructure, protocols, individual websites), which are designed and maintained, and which would in general be a nightmare to design and maintain if they followed the principles described by vidarh.

Re: Alan Kay and OO Programming

#127

Earlier quoted context omitted.

> So, if we attempt to create a Frankenstein language that combine concepts of bash and C, which set of programmers do we inconvenience with the noisier syntax? I won't speak for others, but I can make that choice for myself, and I'm willing to give the C-like language the upper hand. If bash like things were high enough priority, I might change the name "system" to "run" so it was just a bit more concise, perhaps ta…

Have you ever considered what a VR programming language could look like? A language doesn't have to be black and white text. C and Bash don't have to directly overlap if technology creates simple syntax that expands beyond how keyboards type.

> A language doesn't have to be black and white text

I agree. I'd like to be able to insert pictures to explain data structures and algorithms, or equations for the mathy bits. I'd like to be able to choose different font sizes for different parts of the code to indicate their relative importance. Instead of files in directories, I'd like to be able organize functions clustered 2D parts of a page. I'm not sure what you mean by VR (3D?), but I'd be curious to see it.

> C and Bash don't have to directly overlap if technology creates simple syntax that expands beyond how keyboards type.

I distinctly don't want a polyglot catch all set of languages. I mean you can almost do that in the .Net world where a project can use many languages. I don't have any idea what would be better than a keyboard or touch screen for entering the syntax.

Re: Alan Kay and OO Programming

#128
post #114

Earlier quoted context omitted.

> I can't point to a single language that I would prefer for all of the different kinds of programs I've written. I never liked the "pick the right tool for job" cliche in the context of programming languages. I'm curious if you can imagine a single programming language which you /would/ prefer for all of the different kinds of programs you've written. Not that it does exist, but could it? Other than size, weight, po…

>I'm curious if you can imagine a single programming language which you /would/ prefer for all of the different kinds of programs you've written. Not that it does exist, but could it? >However, if the one true language already existed, The one true language can't exist because we want to use a finite set of characters to express convenient programming syntax. (A previous comment about this.[0]) It might be possible t…

I've never used it, but based on what I have read about it, this language seems fairly radical (well, not completely - LISP could be considered a prototypical form?):

https://www.jetbrains.com/mps/

It is open-source, too:

https://github.com/JetBrains/MPS

It seems to have active development, and - interesting aside - it is written in Java.

But again - it purports to do what you seem to be explaining here, and a bit more: It's a system that lets the programmer define the programming language as they use that same language, for the specific purpose at hand (aka, DSL - Domain Specific Language).

As I've noted - I've not used this tool, but I've kept it in the back of my mind as the concept seems very fascinating to me (I don't know if it is practical, workable, or anything else - but I do think it's a "neat" idea).

Re: Alan Kay and OO Programming

#129
post #66

Earlier 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…

> However there are people in the extreme that believe that static typing will save you from errors.

Unless s/errors/all errors/ that isn't extreme at all.

Re: Alan Kay and OO Programming

#130
post #27

Earlier quoted context omitted.

In my experience silent failure leads to some of most difficult to debug systems that end up in a not quite right state. Fail as early as possible has always worked better for me, bugs are found much earlier.

Things are different in-the-small vs. in-the-large. You can't statically typecheck the internet. Oh, and no-one said the failure needs to be silent.

Totally agree failure should be announced for another object to observe and decide to do something about.

I didn't feel the author got the messaging part. 'You send some data to an object' kind of misses the point.

Going back to Kay's inspiration in cellular function the messaging is more a broadcast, though proximity matters as far as which other cell responds (Internet routing tables are a good approximation but you need something more dynamic to allow objects to be created and destroyed).

Post reply on HN