Live data from Hacker News

Objective-S: architecture-oriented language based on Smalltalk and Objective-C

objective.st

111–120 of 130 posts

Re: Objective-S: architecture-oriented language based on Smalltalk and Objective-C

#111
post #26

Earlier quoted context omitted.

Maybe it appears so to people who have never heard of Lisp and or used it.

Lisp's core is eval/apply.

Yes and? EVAL isn’t call/return, it’s a mathematical function from type S-expression to type S-expression modulo some details. At least it was to start, Lisp now has side effects which considerably opens up the domain of easily expressed programs.

Perhaps you’re confused because you’ve never done anything nontrivial in a modern Lisp and the word function is so heavily overloaded?

Here[1] is an example of the Actor model expressed in Common Lisp. It shows a paradigm that is very much not call and return expressed cleanly and directly.

[1] https://github.com/naveensundarg/Common-Lisp-Actors

Re: Objective-S: architecture-oriented language based on Smalltalk and Objective-C

#112

Earlier quoted context omitted.

Hmm...not sure what you find gobbledygooky or jargon-y about this...it is about as clear as I can make it. I mean it is definitely a surprising even somewhat baffling insight , but once it is there it seems pretty clear. I gave a longer explanation here: https://2020.programming-conference.org/details/salon-2020-p... (That paper is also linked from the publications page: http://objective.st/Publications/ ) Short summ…

Let's put your claim that Objective-S can be used to implement different architectural styles to the test: implement Prolog or some other logic programming language as an architecture! I think the other architectures you've listed there aren't different enough from the typical call/return style of algorithm-centered languages, but logic programming certainly is.

Forth is another good example. There’s no call and return, but it can be used to implement any algorithm.

Re: Objective-S: architecture-oriented language based on Smalltalk and Objective-C

#113

Earlier quoted context omitted.

> What makes Objective-S more general than other languages? They describe that on the site. The notion is that most of our modern languages are more geared towards expressing algorithms and data structures, and not so great for expressing programs better suited to different architectural styles that don't necessarily follow a strict call/return type of semantics. That's not entirely wrong. You can build a library/eDS…

Thank you for getting it and expressing it so clearly. > You can build a library/eDSL in a call/return language that will implement other architectures, but it will still look and behave like a call/return abstraction EXACTLY! We can build, but we cannot express . So it will look like a weird/complicated call/return abstraction, because it isn't "native". So you get a tradeoff between architecture and simplicity, a t…

You don't seem to know prolog well if you consider more "algorithmic" or "procedural" than, say, smalltalk. Sure, it's not 100% declarative, because even prolog is bound by such down-to-earth concerns as performance and termination. But there is no such thing as a "function call" in prolog.

I for one would like to see you put your claims to the test and implement a prolog in objective-S, indeed. Half of it is backtracking; the other half is unification as the main connector. Good luck.

Re: Objective-S: architecture-oriented language based on Smalltalk and Objective-C

#114
post #113

Earlier quoted context omitted.

Thank you for getting it and expressing it so clearly. > You can build a library/eDSL in a call/return language that will implement other architectures, but it will still look and behave like a call/return abstraction EXACTLY! We can build, but we cannot express . So it will look like a weird/complicated call/return abstraction, because it isn't "native". So you get a tradeoff between architecture and simplicity, a t…

You don't seem to know prolog well if you consider more "algorithmic" or "procedural" than, say, smalltalk. Sure, it's not 100% declarative, because even prolog is bound by such down-to-earth concerns as performance and termination. But there is no such thing as a "function call" in prolog. I for one would like to see you put your claims to the test and implement a prolog in objective-S, indeed. Half of it is backtra…

> You don't seem to know prolog well if you consider more "algorithmic" or "procedural" than, say, smalltalk.

Actually: I do. Which is why I gave the precise reasons for what I wrote, which in turn your critique does not touch on at all.

So again: Prolog is very much a system that computes answers to questions. If you have a Prolog-based system that does not, please point it out to me and I will be happy to have a look.

Cheers.

Re: Objective-S: architecture-oriented language based on Smalltalk and Objective-C

#115
post #110

Earlier quoted context omitted.

Let's try that again. ALGOL. The ALGOrithmic Language. https://en.wikipedia.org/wiki/ALGOL Which is the ancestor of C (via never-completed CPL, subset to BCPL, B, then C). Which part of this are you disputing? 1. That the inventors of ALGOL knew their language well enough to choose a correct name (or knew what an algorithm is) or 2. That C is a descendant of ALGOL? You might also want to check out "The use of sub-rou…

I didn’t respond regarding Algol because you said nothing of immediate relevance requiring a response. I’m familiar with the history of Algol 60. I’m not interested in regurgitating wikipedia with you. Here[1] is a good primary source on the history of programming and significance of Algol in context for you to read. Note that call/return is nowhere mentioned. Stop chasing tangents and address your core misunderstand…

OK, thanks for clarifying that you did not understand what I wrote in the least bit and have no intention of learning, not even so far as looking at the relevant information on Wikipedia, which would help clear up your misunderstandings.

Once again: ALGOL is the ALGOrithmic Language. It might have something to do with algorithms. Now please tell me what the main structuring mechanism for code is in Algol (and C, for that matter).

Do you at least understand that any language derived from C is therefore also derived from ALGOL?

And nobody claimed that Algorithms "are" call/return. They are just intricately related in both history and current practice, particularly once we stopped treating "primitive" operations separately and instead started understanding them as functions/procedures as well. (In C, something like multiplication is considered an operation (via the * operator), whereas most current languages treat multiplication is considered a function that the compiler understands and will directly emit machine code for).

So please stop chasing tangents that have nothing to do with what I wrote and what I've done and address your core misunderstanding(s).

Have a good one.

Re: Objective-S: architecture-oriented language based on Smalltalk and Objective-C

#116
post #111

Earlier quoted context omitted.

Lisp's core is eval/apply.

Yes and? EVAL isn’t call/return, it’s a mathematical function from type S-expression to type S-expression modulo some details. At least it was to start, Lisp now has side effects which considerably opens up the domain of easily expressed programs. Perhaps you’re confused because you’ve never done anything nontrivial in a modern Lisp and the word function is so heavily overloaded? Here[1] is an example of the Actor mo…

Interesting.

> EVAL isn't call/return, it's a mathematical function

Hmm...a "function" you say. What do you do with a function in a computer system? I mean, for it to actually do something?

Look at it?

Digest it?

Sing it?

Or maybe...call it?

And when that function is done, after you called it what does it do?

Dissolve?

Perambulate?

Or maybe: return?

Of course, a function that you call and that then returns has absolutely nothing to do with the call/return architectural style. Sorry, my bad, what was I thinking?

And no, your example does not invalidate what I wrote, as it doesn't implement it "cleanly and directly", at least not to my standards. Maybe to yours, but not to mine. The problem with Lisp DSLs is that the result always just look like Lisp, and Lisp is eval/apply.

So

     (send my-actor message_args)
very much looks like a Lisp function call. It seems to be the function "send" with arguments "my-actor" and "message_args". (Of course the Actor model is close enough that it might not matter). Which is exactly the problem we have in other languages.

At the very least, it would have to be

     my-actor async messge_args 
For it to qualify as resembling an actual send and not just another function call.

I can also write:

     source.connect( target );
And to you that would apparently mean that I have implemented pipes and filters "cleanly and directly" in, say, C++ and Java. And it would be just as wrong.

Re: Objective-S: architecture-oriented language based on Smalltalk and Objective-C

#117
post #112

Earlier quoted context omitted.

Let's put your claim that Objective-S can be used to implement different architectural styles to the test: implement Prolog or some other logic programming language as an architecture! I think the other architectures you've listed there aren't different enough from the typical call/return style of algorithm-centered languages, but logic programming certainly is.

Forth is another good example. There’s no call and return, but it can be used to implement any algorithm.

> Forth is another good example. There’s no call and return

Huh? Could have fooled...well, everyone, including Chuck Moore.

Emphasis mine.

https://web.archive.org/web/20060101073958/http://www.colorf...

"The Data stack holds parameters for and results of subroutine calls. This distinction between control and data minimizes the cost of subroutine calls.

https://en.wikipedia.org/wiki/Forth_(programming_language)

"Forth is a procedural, stack-oriented programming language..."

"...where the user interacts via subroutines called words. "

"First a number (1 or 8) is pushed onto the stack, FLOOR5 is called,..."

"This is the same as what a processor's call/return instructions do."

https://www.forth.com/resources/forth-programming-language/

"The benefit of having a stack reserved for return addresses was that the other stack could be used freely for parameter passing, without having to be “balanced” before and after calls"

...

Re: Objective-S: architecture-oriented language based on Smalltalk and Objective-C

#118
post #110

Earlier quoted context omitted.

I didn’t respond regarding Algol because you said nothing of immediate relevance requiring a response. I’m familiar with the history of Algol 60. I’m not interested in regurgitating wikipedia with you. Here[1] is a good primary source on the history of programming and significance of Algol in context for you to read. Note that call/return is nowhere mentioned. Stop chasing tangents and address your core misunderstand…

OK, thanks for clarifying that you did not understand what I wrote in the least bit and have no intention of learning, not even so far as looking at the relevant information on Wikipedia, which would help clear up your misunderstandings. Once again: ALGOL is the ALGOrithmic Language. It might have something to do with algorithms. Now please tell me what the main structuring mechanism for code is in Algol (and C, for…

No post body was provided.

Re: Objective-S: architecture-oriented language based on Smalltalk and Objective-C

#119
post #113

Earlier quoted context omitted.

You don't seem to know prolog well if you consider more "algorithmic" or "procedural" than, say, smalltalk. Sure, it's not 100% declarative, because even prolog is bound by such down-to-earth concerns as performance and termination. But there is no such thing as a "function call" in prolog. I for one would like to see you put your claims to the test and implement a prolog in objective-S, indeed. Half of it is backtra…

> You don't seem to know prolog well if you consider more "algorithmic" or "procedural" than, say, smalltalk. Actually: I do. Which is why I gave the precise reasons for what I wrote, which in turn your critique does not touch on at all. So again: Prolog is very much a system that computes answers to questions. If you have a Prolog-based system that does not, please point it out to me and I will be happy to have a lo…

"computes answers to questions" applies to any system with a REPL. That's really not a technical term at all.

If you want to be more precise, you could say prolog tries to satisfy the goal it's passed (via unification and resolution). That's not the same as the call/return paradigm. The only unifying concept (heh) for these two is, well, "computes something".

Anyway, for me, that confirms that your statements are not grounded in anything but vague terms you throw around, like "algorithmic". If you want to convince people that your flavor of smalltalk is actually, qualitatively _more expressive_ than all the hundreds of other languages, you're going to have to define a precise notion of expressiveness and show that only your system matches it. Since you've recognized that it's just about being more expressive, since you can write anything in any language; you probably also need to have cold numbers on how much more expressive objective-S is.

Re: Objective-S: architecture-oriented language based on Smalltalk and Objective-C

#120
post #111

Earlier quoted context omitted.

Yes and? EVAL isn’t call/return, it’s a mathematical function from type S-expression to type S-expression modulo some details. At least it was to start, Lisp now has side effects which considerably opens up the domain of easily expressed programs. Perhaps you’re confused because you’ve never done anything nontrivial in a modern Lisp and the word function is so heavily overloaded? Here[1] is an example of the Actor mo…

Interesting. > EVAL isn't call/return, it's a mathematical function Hmm...a "function" you say. What do you do with a function in a computer system? I mean, for it to actually do something? Look at it? Digest it? Sing it? Or maybe... call it? And when that function is done, after you called it what does it do? Dissolve? Perambulate? Or maybe: return ? Of course, a function that you call and that then returns has abso…

I can’t even imagine being so dimwitted as to not be able to differentiate between a funcall and a special form.
Post reply on HN