10 ms·
This was a great write up. My hunch is that older binaries will stay Objective-C forever, until the app is completely replaced. It will linger around, similar
by ardit33 5y ago
This was a great write up.
My hunch is that older binaries will stay Objective-C forever, until the app is completely replaced. It will linger around, similar to C and C++. There is no major win to just write something in a different language, but using he same frameworks/ui system. Swift is used in brand new apps, and eventually will take over.
Swift UI is just too immature, and it is still doesn't provide some of the more advanced components. Great for a toy app, but not for a production level. I hope Apple keeps improving on it, and it doesn't return another niche like IB (Interface Builder), which is used only for small apps, and larger corps just don't use it.
-----
Out of all the binaries in iOS 15:
89% are using Objective-C
17% are using C++
13% are using Swift
8% are entirely written in C
2% are using SwiftUI
If Swift was a better designed language, it would have taken over by now. The fact that after 7.5 years, Objective-C still persist, means Swift has soured many devs by its complexity, and sheer amount of shortcuts, (like Scala), and it is not necessary loved or is that much more productive, or gets people exited for. *but used a necessary tool as it is the way most community will move forward.
- novok 5y agoSwift / objc interop is very natural, so if it ain’t broke, why fix it wrt to swift rewrites.
- simondotau 5y agoEven if you imagined a world where Swift existed and ObjC didn’t, it would still make sense for ObjC to be invented. In fact it would be an utterly inspired way to build a glue layer between Swift and the masses of C (and C-compatible) libraries out there.
- dev_tty01 5y ago> If Swift was a better designed language, it would have taken over by now. So, a company that is selling over two hundred million devices per year that depend on a stable software stack, should have thrown away millions of lines of working code just to port it all over to a language that was still undergoing massive evolution over that 7.5 year period. Really? Sorry, but that would have been a disaster.
- ardit33 5y agoJava 1.1 was released in 97, and by 2001 java was a defacto language for web services. (php and python where the other two). Then by 2002 starting taking over mobile (J2ME). It even forced MSFT to create .NET. That's the hallmarks of a good/revolutionary language for the time. It got adoption even in places that wasn't meant to. Swift has failed in the web, and in AI/ML. That's the hallmarks of a mediocre language, that people have to use it because the platform. It doesn't stand on its own.
- pjmlp 5y agoThe MSFT story is a bit different, they already had Java with J++, with several extensions like the C# P/Invoke and events that you know and love. Sun made a lawsuit against them and won, thus .NET was born and there was even J# as transition period to port J++ code into .NET. In fact most Java devs could code in C# 1.0 almost without bothering to read any manual, just by changing the capitalization. Ironically, Microsoft is now an OpenJDK contributor and owns a Java distribution (after buying jClarity), whereas Google is cheered for creating their Android Java coffee flavour.
- halayli 5y agoWith your logic most languages would have been dead by now. Python was created in 1991, Ruby in 1995, Erlang in 1986 and opened sourced in 1998. Just a few examples to consider. They took a lot more than 7 years until they peaked and gathered wide adoption.
- ardit33 5y agoJava 1.1. (JDK 1.1) (the first true full featured java) was released in 97. It was meant for applications such as midlets, but it was such a good language that took over in the web, and forced the hand of MSFT to create .Net. By 2001, in just 5-6 years Java became the de-facto language of the Web Services (php, and python were relegated to smaller web pages). What has Swift realized in 7 years? It failed in the web, and also in AI/ML framework. It is being used because you have to use it. While both Java and Python flourished everywhere because people wanted to use them as they were good languages.
- halayli 5y agoIn 2001 Java was far off from being "de-facto language of the Web Services". cgi was the dominant setup back then and php, and particularly perl was on the top list. Amazon ran on perl back then. More importantly, your statements are clearly a selection bias to confirm your subjective conclusion. You're picking 1 language out of thousands to reassert your statements instead of taking a step back and rethink your conclusion.
- andrewjl 5y ago> If Swift was a better designed language, it would have taken over by now. 7.5 years might seem like a long time but it isn't possible to rewrite a stack like Apples in under a decade or two. I also suspect that Swifts lack of interoperability with C++, which is required for audio, video, and math-heavy libraries such as Accelerate, means a layer of Objective-C is still needed to make use of those APIs.
- ardit33 5y agoThe fact that Swift is not being used in anything than apple's econsystem, tells you that is a mediocre language. Java, JDK 1.1. was released in 97. It was the first fully featured version of the language. Java was not initially meant for the web (but for midlets, and such), but by 2001 it took over all web services. Then mobile (with J2ME). It even forced MSFT to create its copycat, .NET. Python has survived and thrived in many places that people 'don't have to use it by force'. That's the hallmarks of good languages and people like using. Swift failed outside the iOS/MacOs ecosystem. it is a mediocre/overcomplicated language. It is like Scala, which introduced lots of concepts, but went overboard with them and made the language too complex to use.
- andrewjl 5y ago> Java, JDK 1.1. was released in 97. Things were very different 24 years ago, the language ecosystem was not as competitive as it is today. There are more people writing code today and a greater variety of use cases when it comes to web services. Python is even older than Java (1991). A language being developed today must pass a higher bar. For example Rust has nowhere near the same level of adoption as Java did back then, but it is by no means a mediocre/overcomplicated language for systems programmers. Same with Go for web services and many others. > It is like Scala, which introduced lots of concepts, but went overboard with them and made the language too complex to use. What concepts are you referring to here? I'm not deeply familiar with Scala.
- dangus 5y agoYou could replace Swift with C# or .NET in your argument, but I'd guess you aren't about to say that C# is a mediocre language. Sure, .NET and C# are technically cross-platform, but in reality they're almost exclusively used by Windows-based developers. Especially in the case of .NET Core, it was only released as a cross-platform framework because Linux servers have been replacing Windows Servers in data centers ever since the Web 2.0 era. Microsoft knows that Windows Server is not the future of the company, Azure is. That's why they happily make tools like VSCode, PowerShell, and .NET Core for Mac and Linux. Swift is used in Apple's ecosystem because it was designed for Apple's ecosystem. That business decision has nothing to do with the merits or demerits of its language design.
- viktorcode 5y ago> If Swift was a better designed language, it would have taken over by now. If you look closely at the most used languages in different domains right now it'll become clear that the design is not what led to their wider adoption.