Earlier quoted context omitted.
In the long run, Swift, IMO. It has all the advantages of Go but with a more expressive language, much better C interop and a platform that will create a community around it very quickly, the other day I saw somewhere that there are already more Swift books and courses than Go. Swift will also let you do everything Rust can, very low level stuff.
i think that as long as swift doesn't have a proper official concurrency model, we can't really know how good it will be as a go competitor on the server side.
Winding down the Swift 3 release
31–40 of 65 posts
Re: Winding down the Swift 3 release
#32Now, with swift 3 around the corner, I will ask some most experience fellow developers the following question. There is golang, swift, rust, dlang. If you will put some energy, what language will be, and why? :)
Re: Winding down the Swift 3 release
#33Earlier quoted context omitted.
Swift doesn't have a GC and you can use it to program like C with malloc and free via UnsafeMutablePointer . IIRC, Swift's runtime is like C++'s with v-table lookup for dispatch on functions that do not involve Objective-C objects.
Swift's GC is in the form of pervasive reference counting for reference types with no automatic cycle detection. Though as we're demonstrating, calling this GC is contentious, it would be better if people weren't too lazy to type out "pervasive reference counting for reference types with no automatic cycle detection". :P (For the record, I believe Chris Lattner is on the record as saying "yes, Swift has a runtime, le…
And the Swift runtime is pretty minimal, mostly used for storing dynamic type information, dispatching protocol methods, generating (unspecialised) generic types, checking conformances etc. It's mostly used by the compiler to add the dynamic features of the language; for example, the compiler observes the lifetimes of variables and inserts retain/release instructions, which are lowered down to a swift_retain or swift_release calls on the runtime instance. These functions are implemented in the runtime and do the manipulation of reference counts and deallocation.
Re: Winding down the Swift 3 release
#34I wonder what the implications for Linux of the removal of "Portability" from the Swift 3 evolution/Readme.md [1] are? [1] https://github.com/apple/swift-evolution/commit/06b69a6e51a7...
Re: Winding down the Swift 3 release
#35I wonder what the implications for Linux of the removal of "Portability" from the Swift 3 evolution/Readme.md [1] are? [1] https://github.com/apple/swift-evolution/commit/06b69a6e51a7...
It looks like Portability is not a core focus of the core team. It looks like IBM is doing a ton of the Linux compatibility work and has offloaded the core team. (BTW, shameless plug, I send a weekly Swift newsletter here: http://SwiftNews.co )
Most of the time im writing simple and small programms (on a windows machine) that manipulate data, interact with the web, or work with files.
I really liked Swift from the start. It has all the language features that I like. Sadly, with no Windows support, and Linux being only a second class citizen, I'm not motivated enough to spend a huge amount of time with Swift.
I also hope that they provide a documentation like Go. The Swift book is fine but the examples of the Go documentation in addition to the text, the easy navigation between packages/structs, and the aility to jump to the implementation helps a lot while learning the language.
Re: Winding down the Swift 3 release
#36Now, with swift 3 around the corner, I will ask some most experience fellow developers the following question. There is golang, swift, rust, dlang. If you will put some energy, what language will be, and why? :)
Might be worth considering C# here too. The open-source cross platform tooling is new and still immature, but it's getting serious resources lately, with new language features (including more null safety) coming, cross platform IDE from Jetbrains in development, Mac / Windows / Linux / Android / iOS support, good concurrency features for server side development, JIT and AOT compilers + runtime, development mostly on…
As for displacing Java - this is never going to happen - I prefer .NET but soo many companies have invested man-milenias probably in to Java deveopment - it might losr popularity, especially with Oracle at the helm.
Re: Winding down the Swift 3 release
#37Earlier quoted context omitted.
Swift for GUIs on OSX / iOS. Go for everything else. Haven't had much reason to play with Rust or D, but also haven't seen nearly as much of them in the wild...
Go for everything else? Swift is moving for everything too, with the cross platform support, IBM adoption, etc...
Re: Winding down the Swift 3 release
#38Now, with swift 3 around the corner, I will ask some most experience fellow developers the following question. There is golang, swift, rust, dlang. If you will put some energy, what language will be, and why? :)
This does not come from a Swift fanatic as I view Swift as my next Transact-SQL. A language I will do work in and become very proficient, but I'm not loving it.
Re: Winding down the Swift 3 release
#39Earlier quoted context omitted.
i think that as long as swift doesn't have a proper official concurrency model, we can't really know how good it will be as a go competitor on the server side.
Isn't that what libdispatch is though?
Re: Winding down the Swift 3 release
#40Earlier quoted context omitted.
Swift's GC is in the form of pervasive reference counting for reference types with no automatic cycle detection. Though as we're demonstrating, calling this GC is contentious, it would be better if people weren't too lazy to type out "pervasive reference counting for reference types with no automatic cycle detection". :P (For the record, I believe Chris Lattner is on the record as saying "yes, Swift has a runtime, le…
Does saying 'ARC' not work for you? :) And the Swift runtime is pretty minimal, mostly used for storing dynamic type information, dispatching protocol methods, generating (unspecialised) generic types, checking conformances etc. It's mostly used by the compiler to add the dynamic features of the language; for example, the compiler observes the lifetimes of variables and inserts retain/release instructions, which are…