Objective-S is possibly the first general purpose programming language. It makes creating well-architected and efficient programs not only straightforward, but easy, fun and fast.
Yes, this sounds insane, programming languages we call "general purpose" number in at least the hundreds, starting with C, Java, Smalltalk, Ruby, Python etc.
However, these are actually DSLs for the domain of algorithms, and this architectural mismatch, the fact that we have to use algorithm DSLs for tasks that are not primarily algorithmic in nature lies at the heart of much of the pain we have in software development today.
The traditional hello world prints to stdout, and we can do that:
Objective-S is expression-oriented, so just typing the string will also print it in the REPL:
In a complete script, this looks as follows:
If you want to show Hello World in a UI, you can use a label:
This works with both UIKit and AppKit.
For the the web we can define a small server in code, with the GET method for the path /hello mapped to the our greeting string:
Alternatively, if we just have data, we can define a dictionary-based store and serve that:
Jun 20th , 2022
Now served via an ARM cloud instance.
August 13th, 2020
Site update: Publications, About.
August 1st, 2020
Esteban Maringolo suggested Objective-S as a better name, so giving that a try.
January 18th, 2019
Copy of objective.st website running dynamically on a Digital Ocean Droplet.
December 28th, 2018
Linux port (using GNUstep).
October 22nd, 2018
SQLite scheme handler (via property paths).
October 14th, 2018
Syntax for defining scheme handlers with property paths.
April 2nd, 2018
Filter definition syntax.
July 15th, 2017
Now have real class and method definition syntax.
May 15th, 2014
The Objective-Smalltalk REPL is now available as an embeddable NSTextView subclass, in addition to the Unix command line.
May 12th, 2014
More unicode support: in addition to symbols like π there is now also support for various operator-like constructs like ≠,≤ and ≥ extended (in-)equality tests, the arrows ⇦ and ← for assignment and ⇨, → for attaching connectors to ports.
March 24th, 2014
Auto-complete for local variables and messages in stsh. The algorithm takes into account both syntax and actual live objects for very accurate results.
February 19th, 2014
Cocoa Heads Berlin presentation.
February 7th, 2014
Simple live coding demo video driving Apple's Quartz API via MPWDrawingContext.
February 1st, 2014
Objective-Smalltalk presented at the FOSDEM Smalltalk DevRoom, video available
August 10th, 2013
|Copyright (c) 2012-2020 Marcel Weiher (st)|