SWIFT or OBJECTIVE-C? the epic question
Ever since its introduction to the world, SWIFT has been a buzzword all around. It is supposedly, as mentioned repeatedly, a better platform for development as compared to long-time rival Objective-C and is meant to replace it in due course of time. Since the introduction of Swift in 2014, developers across the world have a been debating and discussing the worthiness of Swift compared to Objective-C. There are teams who stand with their decade long relationship with Objective-C and still trust it as their ‘dependable’ platform for developing IOS apps. On the other hand, there is the breed of developers who are as excited about Swift as Apple itself.
Let us try and look into this aspect and compare both of them to the best of the knowledge available. Objective-C is fundamentally a superset of ‘C’ with added object-oriented features and dynamic runtime. Swift on the other hand is built ground up and Swift is described as “Objective-C without the C”. Swift despite not being a direct derivative of ‘C’ still possesses the features of both ‘C’ and Objective-C.
The Pros over Objective-C
1. Swift is supported byIBM
Apple and IBM have joined hands and are investing together into Swift program. To date, IBM has produced 100+ enterprise applications using Swift. IBM is providing full suite Swift tools ‘Kitura Web Framework’, ‘IBM Swift Package Catalog’, ‘IBM Cloud Tools’ and many more. Also IBM has ‘Swift Sandbox’ - an interactive website allowing the developers to write Swift code and execute it in server environment.
At the end of the day, we want to empower the developers. Levelling up skills, delivering great experiences; that’s what it’s all about. We’re going to see more tooling, more integration, more packages—this is a really exciting time. With Swift now being end-to-end, and this concept of your application being end-to-end, you can really take your skills to new levels, and we’re going to make it so that you can use these skills to deliver great applications.
2. Swift is ‘Readable’, ‘Familiar’ and ‘Easy to Learn’
Swift is, we think, the primary programming language that developers should be taught programming in, actually.
3. Swift is ‘Less Code’
Swift brings down the ‘Amount’ of code required to achieve similar functionality considerably. Within ‘C’ developers are required to maintain 2 set of files and the same fundamental is carried over to Objective-C. With Swift, this is no longer needed as both the header file (.h) and implementation file (.m) are combined into single Swift file.
4. Swift is ‘Maintainable’
With the intuitive design using single code files, Swift makes developers maintain single set of files. This makes Swift code LESSER and CLEANER making it easier for the developers to write code, find bugs and make reusable components. Effectively this means LESS work for developers without limiting their possibilities.
Swift is the first industrial-quality systems programming language that is as expressive and enjoyable as a scripting language.
5. Swift is ‘Fast’
LLVM is the compiler that Swift works on for its simpler yet efficient performance. This is the same compiler that’s used by languages like C#, Scala, Ruby and Python. The LLVM is faster and smarter than previous C compilers, so more workload is transferred from the programmer to XCode and the compiler.
Swift's performance is almost as that of C++, which is considered the fastest algorithm calculation arithmetic. In December 2014 Primate Labs published a report on Swift and C++ performance. Objective-C is slower because it contains C API legacy.Apple is determined to improve the speed of Swift and is constantly working towards it with each XCode revision adding a bit to it.
Swift is a fast and efficient language that provides real-time feedback and can be seamlessly incorporated into existing Objective-C code.
6. Swift is ‘Safer’
Swift's is focused on security. Its syntax and language constructions exclude the several types of mistakes potentially possible in Objective-C (usage of POINTERS being one of them). This stability results into fewer crashes and cases of unexpected or problematic behaviour. It does not prevent developers from writing bad code, but rather protects the developer from making unwanted mistakes. Its Swift's way of putting a “quality control” in a way. With Swift, developers can compile, and fix the errors while writing the code, which is not possible with Objective-C.
7. Swift is ‘Interactive’ and ‘Approachable’
For making it smother for developer community to learn Swift, Apple has come up with a lot of resources. These resources help developers get the grip faster. Swift Playgrounds are virtual playgrounds offered by Apple to the developers. Playgrounds enables testing of code algorithms without the need of creating a complete new app. With Data Visualization within Playgrounds, programmers can quickly check and correct everything reducing feedback loop. Test your ideas and get instant feedback.
8. Swift is ‘Open Source’
Swift became open-source in 2015. Being an open source, gives Swift the opportunity to be used across a variety of platforms and for backend infrastructure. This also helps Apple Community to substantially increase is size enabling Swift to evolve much faster. Independent Developer communities can now contribute to success of the language.
We saw open sourcing as a critical element to make Swift reach its potential to be the language, the major language for the next 20 years of programming in our industry.
Apple’s Open Source Community includes:
- Swift.org – a site dedicated to the open source Swift community
- Public source code repositories at github.com/apple
IBM was extremely fascinated by Swift being an Open Source.
By opening up Swift they are enabling a bigger community to get really innovative with it and I think what we saw which made us enter the partnership was that today innovative experiences are powered by the network effect… We saw the opportunity opening up for people to create more powerful digital experiences.
9. Swift is ‘Enterprise Ready’
Swift supports ‘Dynamic Libraries’. Dynamic libraries are executable pieces of code that can be linked to an app. This feature allows current Swift apps to link against newer versions of the Swift language as it evolves over time. Dynamic libraries in Swift are directly uploaded to the memory, cutting down on the initial size of the app and ultimately increasing app performance. Developers could take our recently developed Swift framework for interacting with RESTful web services “TRON” as an example. It is not locked to Apple's frameworks, supports building for Linux and has been added to IBM’s‘Swift Package Catalog’.
Apple is smartly creating great digital experiences and I think they know that great digital experiences mean unleashing tons of innovation from the community overall.
10. Swift is ‘Apple’s commitment’
Apple has a clear roadmap and has a strategic initiative associated with it. The speed at which new versions are coming up and the way the serious brands like LinkedIn, Facebook and many more are going the Swift way, there is a clear assurance that Swift is here to stay. Swift was introduced in 2014 and we already have a full released V4.
11. Swift is ‘Future Ready’
Originally designed for Apple platforms, Swift is gradually expanding to build on Linux. There are already solutions, that allow writing backends on Swift. Swift code will be more portable to other platforms than Objective-C could ever be.
Work is also being done to make Swift Android-compatible. The pull request has already been created and approved by the author of Swift 'Chris Lattner'. This will open new avenues with Swift being the language of future both for IOS and Android.
The Cons compared to Objective-C
1. Swift is still a New Kid
Swift was introduced to the world in 2014. It has just been 3 years. Despite of the fact that it has set a trend among its users, the fact that it is just 3 years into the market cannot be ignored. It will still take time till the language is mature enough.
2. Swift is evolving
The biggest challenge in making full stack applications in Swift is that the language itself is new and is still evolving. This means that there might be needs to adjust to the new versions or formulations as and when introduced by Apple.
Although Apple provides XCode tools that is meant to make this transition towards newer versions to be smooth but it does not always work. Sometimes between versions, complete code sections are to be re-written. This can be expensive and risky considering developer cost and project timelines.
3. Reverse Interoperability
The code written in Objective-C can be used within Swift but the case other way round, is not possible. Code written is Swift cannot work in Objective-C. So there a little limitation there and any application design needs to take that into account.