Is Swift a good language for a beginner to learn?

yes. there would be no swift developers if it weren’t.

yes. not only is it possible to use swift on linux, in 2022 linux is probably the preferred platform for swift development. this was not true as recently as 1 or 2 years ago, when macOS was still better-supported than linux. but the macOS situation has deteriorated markedly since then.

the caveat is it’s still probably much easier to learn swift on macOS than on linux, especially learning the tooling because Apple does a better job with education and putting the tooling “in front” of people. but if you are someone who already knows which bricks in the wall to push, swift on linux is way easier than swift on macOS.

swift is one of the harder languages to learn, because it is very assumption-driven and requires a more “abstract” programming psychology. languages like C++ or Rust are easier for beginners to “see the matrix” in terms of how source code maps to compiled machine code. but the abstractness of swift makes it a more powerful language, and also offers a lot more optimization opportunities for the compiler.

no. swift and C exist to fill different niches. C is an interchange language, and without it swift would not be able to interface with other code written in Rust, Go, C++, Python, etc.

swift and C++ fill the same niche, and all swift developers believe swift is superior to C++ in nearly every way, otherwise we would be C++ developers. but C++ has institutional entrenchment, so it’s unlikely swift will ever meaningfully cut into its market share.

3 to 4 years, same as any programming language.

but i have been using swift for almost 7 years and i still learn something new about the language every day, so it’s not really a halting process.

swift is a very portable language and there will almost never be situations where something cannot be done because of a fundamental constraint of the language. usually when something cannot be done in swift, the blocker is not technical, it is social, political, or ecosystemic in nature.

if you learn swift for say, iOS development, you can switch to server-side, systems, or embedded development without having to pick up a completely new language. there are not a lot of languages that have as wide a gamut as swift does.

the lower bound of the language is GPU/TPU. swift cannot replace CUDA.
the upper bound of the language is scripting, but this is because of poor library support, not the design of the language itself. swift can replace python, it’s just not a very efficient workflow for now.

in the recruiting world, swift is a prestige language (like Rust). the assumption (true or not) is we can all write C++ or python or whatever commercial language they are using, we just choose not to. so swift developers are among the most highly paid specialists among major languages.

this is not how swift, or programming languages in general, are learned.

1 Like