Does Swift really replace Objective-C?
Does Swift really replace Objective-C?
Lets say around XCode version 10 gets released.
Swift is targeted at the largest user base of the Obj-C language, the iOS developers. Obj-C will be around for a long time both for legacy purposes and because Swift doesn't interop with K&R C (unless that code has an Obj-C wrapper, like CoreFoundation), and C++ code. Since both Swift and Obj-C support using Cocoa libraries, any API added to Cocoa will be usable by both, but Cocoa is only one of many libraries in the Macintosh ecosystem.
Swift will become a replacement for the development the vast majority of people do, but that doesn't mean that Obj-C is going away. Apple has done nothing to indicate so; they've really been stressing the point that Swift is intended as a new tool to work along side your old one (Obj-C).
From my point of view, many will jump to Swift if given the chance.
https://developer.apple.com/library/prerelease/ios/documenta...
Additionally, this is just version 1.0. So nothing rules out that if Apple sees the language being widely adopted, other improvements in the FFI area aren't made.
The only Java apps of the era that I remember used non-native UIs, and were painful.
Whereas I'd be shocked if Swift wasn't adopted wholesale by iOS developers.
Rather back when Mac OS X 10.0 was being released and Apple was unsure if developers would be willing to write Objective-C code.
They created their own JVM, with Objective-C runtime support (JavaBridge) and let the developers choose.
At the same time, Apple representatives did sessions at UNIX heavy user groups, like CERN, where they sold Mac OS X as a better BSD, and Java as first class language was part of the feature list.
As they saw developers were comfortable adopting Objective-C in their toolchains, the JavaBridge was dropped.
BSD is implemented in C, so it's not left around, it's the foundation of the system. The syscalls at the base level (read(), write(), socket(), fork(), etc,) are implemented in C and so are the tools that are used by virtually every programming language at some level. C is the standard upon which several abstractions are made, not just another programming language.
UNIX and C are symbiotic, so any UNIX system requires C, there is no way around it.
However everything else outside what POSIX requires can be done, and should be, in a more secure and productive language.