TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

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

132 点作者 MaysonL将近 3 年前

17 条评论

aaaaaaaaaaab将近 3 年前
Marcel Weiher has been stubbornly treading his own path for more than a decade. As the iOS&#x2F;macOS world moves towards Swift, he goes back to Smalltalk principles. As Apple introduces SwiftUI to appease the webdev crowd raised on React, he builds his own small and efficient GUI story.<p>I&#x27;m quite convinced he&#x27;s onto something.
评论 #32446145 未加载
mpweiher将近 3 年前
Oh. Sorry, the website is currently not in a very good state. Feel free to ask any questions here.<p>Note: very pleased that the box serving the site is pretty consistently at less than 1% CPU during the HN hug of death.
评论 #32445776 未加载
评论 #32446580 未加载
评论 #32448159 未加载
评论 #32444522 未加载
bogwog将近 3 年前
How much of this is tied to Apple frameworks? I noticed that the Linux support requires GNUStep, so I&#x27;m assuming quite a bit? The impression I&#x27;m getting is that this requires a non-trivial, Apple-flavored runtime to be useful. GNUStep apps are pretty awful experiences today due to being based on outdated Nextstep UI concepts that do no adapt well to anything other than MacOS.<p>Is this meant to be used for creating GUI apps? Because if it is, relying on the ancient GNUStep for multiplatform support seems suspect. And if it&#x27;s primarily intended for Mac&#x2F;iOS development, then why should someone use this over Objective-C&#x2F;Swift?<p>(btw no hate for GNUStep here, I&#x27;ve played with it in the past and think it&#x27;s awesome, just not very relevant nowadays)
评论 #32447004 未加载
andrekandre将近 3 年前
<p><pre><code> &gt; It uses the host platform&#x27;s C ABI. It dose not require a VM. </code></pre> to me thats whats cool about obj-c, not the syntax or whatever, but the runtime<p>that you can construct classes and methods at runtime just like a &quot;vm&quot; but much simpler and lightweight... its amazing to me that apple never made a construct-the-app-while-its-running type of rapid development tool... the pieces were all there afaik
elviejo将近 3 年前
Alan Kay said: &quot;Current software is built like the pyramids... By the arduous labour of thousands of slaves.<p>That is because we still don&#x27;t have the equivalent of the Arch. That allows Notre Dame to have 3 times the volume of the keeps pyramid with a third of the mass.&quot;<p>Since it seems you are building such an arch I thing a good name could be:<p>NotreDameLang. ArchLang.
评论 #32465541 未加载
travisgriggs将近 3 年前
I&#x27;ve watched Marcel&#x27;s efforts with admiration for his commitment for a long time.<p>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&#x27;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&#x27;t specifically return something from a method, self is the implicit return type. For any closure, it&#x27;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&#x27;t recall what the answers were, but it was clear that ship had sailed. :)<p>Since then, as I&#x27;ve sailed with Swift and Kotlin and Python, it&#x27;s clear that that is the dominant pattern. Python, which doesn&#x27;t have types, still returns None when nothing is specified. And then last year, I did some work on Erlang&#x2F;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.<p>It&#x27;s led me to wonder why any language that wants to be more &quot;functional&quot; 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) -&gt; y thing we learn in high school. Functions take input, and return output. A function that returns nothing, isn&#x27;t that useful. But we also have computerese &quot;functions&quot; that are more &quot;subroutines&quot;. An imperative sequence of steps designed to produce a certain side effect. When one makes a Void function, it seems one is essentially saying &quot;not interested in functional here, just want side effects.&quot; I&#x27;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.<p>I&#x27;m disappointed that Objective-S didn&#x27;t embrace the no-such-thing-as-a-void-return philosophy of Smalltalk, even while lifting so much from Smalltalk.
评论 #32519530 未加载
dang将近 3 年前
Related:<p><i>Objective-S: architecture-oriented language based on Smalltalk and Objective-C</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=27100272" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=27100272</a> - May 2021 (54 comments)<p><i>Objective-Smalltalk: now serving its own web site</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=18964665" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=18964665</a> - Jan 2019 (26 comments)
sebastianconcpt将近 3 年前
This is hugely interesting!<p>So it creates a runtime directly on the silicon? no VM no GC?<p>How does free memory? Automatic reference counting?
anamax将近 3 年前
It&#x27;s not obvious how Objective-S handles unreliable resources.<p>I ask because every remote resource is unreliable on several levels, and it&#x27;s often both important and impossible to figure out which level is misbehaving. (Is AWS down, Comcast, my router? Or did I fat-finger some part of the URI?)
lastdong将近 3 年前
Found typo, in first Paragraph of “Objective-C without the C” section: “It dose not require a VM.”
lagrange77将近 3 年前
found a typo<p>&gt; [...]we know some good architectural styles for software, those <i>architectural</i> are difficult to use, because they clash[...]
评论 #32447663 未加载
fernly将近 3 年前
There are numerous typos. When I saw what I&#x27;m pretty sure is on in a code example I gave up.<p><pre><code> a := flag ifTrue: { 2. } ifFalse:{ 3 }. ^ ? </code></pre> if not a typo an odd inconsistency.
Xeoncross将近 3 年前
I still remember my horror when I saw the pain of something as simple as string concatenation in Objective-C. The community literally has to write special micros to make joining a string palatable [1]. I salute the brave souls who made OSX&#x2F;iOS apps before Swift.<p><pre><code> NSString *myString = @&quot;Hello&quot;; NSString *second = [myString stringByAppendingString:@&quot; World&quot;]; </code></pre> [1]: <a href="https:&#x2F;&#x2F;stackoverflow.com&#x2F;questions&#x2F;510269&#x2F;shortcuts-in-objective-c-to-concatenate-nsstrings&#x2F;16862414" rel="nofollow">https:&#x2F;&#x2F;stackoverflow.com&#x2F;questions&#x2F;510269&#x2F;shortcuts-in-obje...</a>
评论 #32444738 未加载
评论 #32445425 未加载
评论 #32444782 未加载
评论 #32444780 未加载
评论 #32448421 未加载
munchler将近 3 年前
&gt; By allowing general architectures, Objective-S is the first general purpose programming language.<p>Really? I stopped reading at this spot, since this claim is so ridiculous.<p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;General-purpose_programming_language" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;General-purpose_programming_la...</a>
评论 #32445389 未加载
评论 #32444995 未加载
评论 #32444722 未加载
jupp0r将近 3 年前
Tip for making a programming language website: put some example code on the front page.
评论 #32445335 未加载
评论 #32445352 未加载
brtknr将近 3 年前
My two pence: It’s not a very sexy name for a language compared to the competition.
评论 #32444868 未加载
评论 #32444732 未加载
madis将近 3 年前
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.
评论 #32446435 未加载
评论 #32447320 未加载
评论 #32450058 未加载