Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I have the feeling Swift is more complex than it needs to be, too, but can new high-level languages really be simple? Nowadays, you need a memory model, async, generics, value and reference types, move semantics, concurrency, full Unicode support, etc.

Go tries to solve that, but gets criticized for its simplicity.

Also, I suspect part of the friction writing Swift isn’t language complexity but tooling issues. to what effect that’s true is hard to say of course. For example, compilation slowness introduces friction, but I wouldn’t know whether that’s inherent or solvable.

There also are a lot of “the compiler could be smarter” things that do not change the vision of the language, but do affect its ease of use. Such warts make the language harder to write than necessary. If those issues can be fixed, the language can become easier to write. An example is https://github.com/apple/swift-evolution/blob/main/proposals....

As to that if, I wouldn’t know whether that holds. For example, https://github.com/apple/swift-evolution/blob/main/proposals... begot https://github.com/apple/swift-evolution/blob/main/proposals.... Both were implemented in 5.7, but I wouldn’t know whether those left any rarer warts or even introduced new ones, or if that process ever will stop.

If that process cannot stop, I think it’s better to leave a few warts that programmers will soon encounter and learn about than many very rare ones that, when encountered, will make programmers pull all their hairs out because googling them only produces “I changed Foo and the compilation error went away” results or StackOverflow pages without answers.



> Go tries to solve that, but gets criticized for its simplicity.

There’s definitely a space between Go and Swift. Go is to C as Swift is to C++. That analogy is not necessarily a compliment for either.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: