Live data from Hacker News

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

objective.st

91–100 of 130 posts

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

#91
post #28

Earlier quoted context omitted.

In that case would you please explain this apparent bafflegab? What we currently call general purpose languages are actually domain specific languages for the domain of algorithms.

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.

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

#92
I've watched Marcel's efforts with admiration for his commitment for a long time.

I looked at this and browsed some of the examples, and something clicked for me finally. I did a good solid 20 years of dedicated Smalltalk. When I started doing Objective-C, I was glad I could send messages, but noticed a number of differences. One of the things that you don't see just comparing syntax between Smalltalk and Objective-C is some of the deeper differences. Objective-S, like Objective-C, has type annotations. In ObjectiveC, there is a preference for void return types. Smalltalk, has no annotations, but all functions methods return. If you don't specifically return something from a method, self is the implicit return type. For any closure, it's always the last value of the expressions. It made cascading messages really easy, because methods tended to return the thing you wanted most of the time. When I started doing Objective-C, I commented on this lack of object return. I don't recall what the answers were, but it was clear that ship had sailed. :)

Since then, as I've sailed with Swift and Kotlin and Python, it's clear that that is the dominant pattern. Python, which doesn't have types, still returns None when nothing is specified. And then last year, I did some work on Erlang/Elixir. Like Smalltalk, all functions return something. You can return nil if you want, but you have to make the effort to do so. Otherwise, you just get the result of the last expression. And I loved it. It makes it so you can compose functional chains really easy and idiomatic.

It's led me to wonder why any language that wants to be more "functional" has a Void return type. And once again impressed that Smalltalk, for all of its OOness, is really quite functional in some ways. Functional programming, is of course, many things. But one of them is obviously the good old f(x) -> y thing we learn in high school. Functions take input, and return output. A function that returns nothing, isn't that useful. But we also have computerese "functions" that are more "subroutines". An imperative sequence of steps designed to produce a certain side effect. When one makes a Void function, it seems one is essentially saying "not interested in functional here, just want side effects." I'm not as opposed to side effect programming as some, but I guess I prefer the approach like Smalltalk and Elixir which strongly encourages returns of some value (even if ignored) so that one can be simultaneously functional and side-affecty.

I'm disappointed that Objective-S didn't embrace the no-such-thing-as-a-void-return philosophy of Smalltalk, even while lifting so much from Smalltalk.

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

#93

Earlier quoted context omitted.

If you think that function name length doesn't matter you haven't written enough ObjC yet. It matters. Source code shouldn't read like Tolstoy. ObjC itself is not responsible, it's NeXT and Apple's fault for perpetuating that abominable naming convention for much too long. As for localisation, only a tiny fraction of strings in a software program are user visible. I don't think we should be designing language syntax…

I'm sure I've written more than most other people currently alive. ObjC is one of the most readable languages around. That's mostly because of the param:value syntax, which is much better than C-like syntax because you can see the parameter names. But the long method names aren't a problem once you have autocompletion. They also make it clearer what the best name for a method is - if you call something fmt() you star…

I used to agree, but things like Jakt have an even better version:

https://github.com/SerenityOS/jakt

Notable differences:

1. param:value is used, but convention is param:value not the gratuitous Engrish verbingParamProposition:value ObjC inherited from Smalltalk.

2. param: is optional if the variable holding value in the calling function is named "param" at compile time. This pushes you to name your params "param" everywhere that makes sense.

Jakt's popularity is limited, obviously, but it's a compile-to-C++ language, so you could use it many places.

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

#94
post #51
post #2

Oh. Sorry, the website is currently not in a very good state. Feel free to ask any questions here. Note: very pleased that the box serving the site is pretty consistently at less than 1% CPU during the HN hug of death.

> Note: very pleased that the box serving the site is pretty consistently at less than 1% CPU during the HN hug of death. The connection has timed out Tempt not the fates, for they are cruel -- or, alternatively, the "hug" is not one thing --- https://github.com/mpw/Objective-Smalltalk#readme is the repo linked from the Download page in Wayback, for those into such things (but based on a recent commit, it's not Open…

Weird.

Just checked and it's still up, hasn't even restarted.

Not sure why you think the presence of copyright makes something open-source. All open-source licenses depend on copyright, otherwise the code would be in the public domain.

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

#95
post #58

We already have LISP. Every once in a while someone invents a new language to solve some old problem, and as the new language evolves, it becomes closer and closer to LISP.

The only thing lisp seems to have not figured out yet is this small thing we call "Syntax", which the PL community mostly figured out 50 years ago : you write terse notations and the compiler builds up the tree for you, you don't layout the syntax tree yourself.

Lisp also seems to have a shortage of knowledgeable advocates who understands other programming languages enough to know that not everything is or needs to be a lisp.

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

#97

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.

Incidentally implementing prolog in Common Lisp is, while not trivial, quite natural[1].

[1] https://github.com/norvig/paip-lisp/blob/main/lisp/prolog.li...

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

#98
post #28

Earlier quoted context omitted.

In that case would you please explain this apparent bafflegab? What we currently call general purpose languages are actually domain specific languages for the domain of algorithms.

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…

Historically programming languages were designed to transform some initial state of the machine to some other state having some specified desirable properties. An algorithm is simply an “effective procedure” for instructing the state machine on how to go about modifying itself to achieve that end. Computing functions can and has been a use case sure, but it’s never been the only one. Simulation for example has a long history in computing. In the simulation use case there is no defined end, you just let it run and observe.

Of course one can model each state transition as a function from machine state to machine state, but that’s just a mathematical way of talking about the machine and not a programming paradigm.

You can see the legacy of the above in C, where many problems are best expressed directly as state machines. There is some confusion here because C chose to conflate functions, procedures, and subroutines, so code organization encourages use of C functions. The void return type is a workaround. It would also be idiomatic C to, for example, dispense with functions and use labels and switch/goto to organize state transitions.

Your confusion is understandable since virtually every programming language in widespread use today is at least in some sense a spiritual successor to C in the sense of adopting many of its conventions.

By the way I think Objective-S is interesting and I am glad it’s being developed. So please consider impressing readers with what actually is impressive about it.

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

#99
post #51

Earlier quoted context omitted.

> Note: very pleased that the box serving the site is pretty consistently at less than 1% CPU during the HN hug of death. The connection has timed out Tempt not the fates, for they are cruel -- or, alternatively, the "hug" is not one thing --- https://github.com/mpw/Objective-Smalltalk#readme is the repo linked from the Download page in Wayback, for those into such things (but based on a recent commit, it's not Open…

Weird. Just checked and it's still up, hasn't even restarted. Not sure why you think the presence of copyright makes something open-source. All open-source licenses depend on copyright, otherwise the code would be in the public domain.

IANAL, but I thought the phrase "All Rights Reserved" was in direct opposition to "Some rights reserved, some rights released under the following conditions" upon which Open Source licenses are based

So, yes, AIUI all creative works ever have copyright, but only Open Source grants rights to others, such as folks who might want to contribute to your project

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

#100
post #34

Tip for making a programming language website: put some example code on the front page.

Tip for critiquing the front page of a programming language website: make sure you're actually looking at the front page. http://objective.st

Oops, didn’t realize the HN link pointed to /about. Thanks!
Post reply on HN