![]() | objective.st | ||||||||||
| About Objective-SObjective-S is an architecture-oriented programming language based loosely on Smalltalk and Objective-C. It currently runs on macOS, iOS and Linux, the latter using GNUstep. By allowing general architectures, Objective-S is the first general purpose programming language. What we currently call general purpose languages are actually domain specific languages for the domain of algorithms. Objective-S includes an Objective-C compatible runtime model, but using a much simpler and consistent Smalltalk-based syntax. Unlike Smalltalk, Objective-S has syntax for defining classes and so can be file-based and is "vi-hackable". Why Objective-S?Software development is too hard. As Alan Kay put it: code seems "large" and "complicated" for what it does. Much of this difficulty is due to architectural-mismatch: although we know some good architectural styles for software, those architectural are difficult to use, because they clash with the call/return architectural style imposed by our programming languages. This mismatch means that although we can build good architectures, we cannot express them directly in code. And as this inability is caused by our abstraction mechanisms, our usual technique of adding one abstraction layer does not actually help, but just adds layers of indirection. Software ArchitectureThe theoretical foundation for Objective-S is Mary Shaw's Procedure Calls Are the Assembly Language of Software Interconnection: Connectors Deserve First-Class Status. Objective-S makes available mechanisms to define architectural styles via connector and component definitions, and comes with a library of such styles, supported by syntax that makes it possible to directly express systems in those styles. The styles currently supported are:
These styles interact with each other synergistically and are provided to increase expressive power and ease construction. Conformance to specific styles is not enforced by restrictions, but encouraged by providing useful libraries. Objective-C without the CObjective-S is built on top of the Objective-C runtime, as a peer to Objective-C and other languages. It uses the host platform's C ABI. It dose not require a VM. Where Objective-C is C with Smalltalk extensions, Objective-S is Why not Swift?While Swift fixes some of Objective-C's most obvious flaws that were due to it being constructed by crashing two existing languages into each other, it discards the good with the bad. With a vengeance. Objective-S also discards the bad, while enhancing the good and taking it to an entirely new level. | ||||||||||
Copyright (c) 2012-2020 Marcel Weiher (st) |