Home / Companies / Luciq / Blog / October 2015

October 2015 Summaries

2 posts from Luciq

Filter
Month: Year:
Post Summaries Back to Blog
The text discusses the differences between static and dynamic code in Objective-C, a programming language used for developing iOS and macOS applications. The standard introduction to Objective-C mentions its Smalltalk heritage along with its strict C dependence, but it is actually a dynamically-typed language that allows for object orientation, dynamic typing, messaging, protocols, introspection, etc. through the use of a runtime system. This runtime system acts as an operating system for the language, making decisions at runtime rather than compile time or link time. The text highlights various benefits of using dynamic code in Objective-C, including writing less code, creating SOLID code, implementing design patterns more easily, having more fun, and improving safety and readability. However, it also notes that dynamic code can have a performance overhead and may not be as self-documenting as static code. The text concludes by explaining how the Objective-C runtime system enables dynamism in the language and provides examples of how to use this feature to improve software design.
Oct 12, 2015 1,317 words in the original blog post.
Objective-C, a language known for its Smalltalk heritage and reliance on C, achieves dynamic capabilities through its runtime system, enabling features like dynamic typing, messaging, and introspection. This dynamism allows developers to write less boilerplate code, implement design patterns more easily, and create more flexible and maintainable software by deferring decisions from compile-time to runtime. While dynamic coding can enhance developer productivity and code quality, it also introduces challenges such as runtime performance overhead, fewer compiler checks, and potential safety issues. The article explores various scenarios demonstrating the advantages of dynamic coding in Objective-C, such as handling UI events, parsing JSON APIs, and implementing multiple inheritance-like features, advocating for a paradigm shift towards embracing the language's runtime capabilities for more elegant and efficient software design.
Oct 12, 2015 1,349 words in the original blog post.