You can watch Lattner's interview with Theprimeagen. It's a haphazardly designed language where pressure to ship from Apple as a whole overrides any design or development considerations.
That's why you end up with a compiler that barfs at even the simplest SwiftUI code because Swift's type system is overly complicated and undecidable. And makes the compiler dog slow.
That's why you end up with 200+ keywords [1] with more added each release.
That's how you end up with idiocy like `guard let self = self else { return }` (I think they "fixed" this with some syntax sugar) because making if statements understand nulls is beyond the capabilities of heroes apparently.
And this is just surface level that immediately came to mind.
Some anecdotal evidence of its terrible qualities are the major degradation of software quality in the Apple ecosystem.
In particular the rewrites or brand new softwares feel much worse than it used to be.
I feel like if it was a good language, it should make things better; of course there may be some other confounding factors but it's hard to not link the software quality problem to the Swift push.
I see what you mean, but I am not sure it's the arrows and not the archers.
While anyone working at Big N company is likely a far better dev than me, I must admit that on the surface, I have not been too impressed with the quality from any them in the past decade or so.
I am less inclined to blame the languages than I am to blame the perverse incentives of these large companies and some of the personality types they sometimes seek to hire. Though, I do understand there are a lot of great devs at those orgs. Just in my experience, greatness doesn't always strongly correlate with ability to call the shots.
Yes I definitely agree that a lot of the problem is rooted in the type of people (or even just management, who knows ?) that get hired there nowadays.
But my thinking is that the language maybe makes things worse ? If you hire people that already are not that competent and force them to use a language that is harder to master it cannot help.
Something I have noted is that many "OG" Mac indie devs have complained about the language and their software quality seems to have gone done a bit as well (but it may have to do with the framework churn as well...).
But yeah, clearly it's impossible to really know from an external observer point of view.
Oh, sick! Thank you for bring this to my attention. I didn't even know this interview existed. I watched Lattner's three interviews with Lex (though I'm not a indifferent about Lex). I do love Theprimeagen though -- he represents us neurodiverse devs well.
> a compiler that barfs at even the simplest SwiftUI code
I have never used Swift UI. I honestly have used Swift mainly for automating a lot of stuff I used to do with Applescript or little scripts for minor things. I have never actually used Swift for any GUI application development.
> That's why you end up with 200+ keywords [1] with more added each release.
Sure, like I previously said, no language is perfect. I am less concerned about the number of total keywords vs. the average number of keywords required to accomplish what I need. I do not feel like I honestly have had to use any more than what I commonly user in .NET/C#. In fact, I think C# might honestly be worse.
That's the thing though: it affects you even if you don't use it. E.g. Swift's type system was made more complex because SwiftUI needed opaque types, function builders etc. and that was shipped with little consideration or design.
> I am less concerned about the number of total keywords vs. the average number of keywords required to accomplish what I need
Onve again, they affect you even if you don't use them. Because the compiler and the libs and the systems etc. now have to aware of these, and use them extensively.
E.g.
--- start quote ---
The Compiler's semantic analysis simply looks for the raw source string "DispatchQueue.main", and adds the hidden @_unsafeMainActor attribute
C# is 25 years old, Swift is 11, and already basically on par with C#? ;)
Also, "this language could he worse" is not a good argument :)
BTW that chart is outdated. It shows C# 8 (it's 14 now) and Swift 5. Swift now has twice as many keywords as C# 8 :) And as many as the Visual Basic 2019 (at 207 keywords).
> I think you can do something like this as Swift 5 or 6
That's why you end up with a compiler that barfs at even the simplest SwiftUI code because Swift's type system is overly complicated and undecidable. And makes the compiler dog slow.
That's why you end up with 200+ keywords [1] with more added each release.
That's how you end up with idiocy like `guard let self = self else { return }` (I think they "fixed" this with some syntax sugar) because making if statements understand nulls is beyond the capabilities of heroes apparently.
And this is just surface level that immediately came to mind.
[1] It's not a typo: https://x.com/jacobtechtavern/status/1841251621004538183