Objective-Smalltalk: now serving its own web site
Interesting project, but I have a couple of nitpicks about the examples page (<a href="http:&#x2F;&#x2F;www.objective.st&#x2F;Examples&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.objective.st&#x2F;Examples&#x2F;</a>):<p>&gt; A method that deletes a file and fades out the icon representing that file:<p><pre><code>  -&lt;void&gt;deleteFile:filename {
     thumbs := self thumbsView subviews.
     viewsToRemove := thumbs selectWhereValueForKey:&#x27;filename&#x27; isEqual:filename.
     aView := viewsToRemove firstObject.
  
     UIView animateWithDuration:0.4
            animations: { aView setAlpha: 0.0. }
            completion: { aView removeFromSuperview. 
                          UIView animateWithDuration: 0.2
                                 animations: { self thumbsView layoutSubviews. }
                                 completion: { 3 }. 
                        }.
     url := self urlForFile:aFilename.
     NSFileManager defaultManager removeItemAtURL:url  error:nil.
     self thumbsView afterDelay:0.4 | setNeedsLayout.
  }
</code></pre>
&gt; Blocks become significantly more readable with Smalltalk syntax.<p>I&#x27;m not really seeing this–the only thing you&#x27;re missing is the caret and a parameter list, which is strange because it now seems like you can&#x27;t name your parameters anymore? Are you forced to use the names that the headers suggest? What if there are none in the prototype? (Also, I&#x27;m assuming &#x27;|&#x27; is a separator to make up for the lack of brackets?)<p>&gt; As shown in some of the previous examples, Higher Order Messaging (HOM) is fully supported and helps make code more compact and readable. Take as an example the following code:<p><pre><code>  self view subviews do setNeedsDisplay.
</code></pre>
&gt; This code iterates the subviews of the view controllers view and sends each one the setNeedsDisplay message. In Objective-C the code would probably look as follows:<p><pre><code>  for ( NSView *aView in [[self view] subviews] ) {
      [aView setNeedsDisplay];
  }
</code></pre>
&gt; While the code is not that much longer, it obscures the central point of the code, the setNeedsDisplay message, with the machinery for iterating the subviews.<p>Objective-C has -[NSArray makeObjectsPerformSelector:]:<p><pre><code>  [self.view.subviews makeObjectsPerformSelector:@selector(setNeedsDisplay)]
</code></pre>
Finally, can I actually use this to write an app? From your code examples, it looks like you can interact with UIKit, but can I publish an app with Obejctive-Smalltalk in it to the App Store?