# Apple's Swift 2 is now open-source



## sidetone (Dec 4, 2015)

Apple's Swift programming language has been open-sourced.
Opps! Apple's big news was accidentally leaked hours early, and no one was ready for the response - Business Insider

Apple's GitHub repository

swift.org


----------



## drhowarddrfine (Dec 4, 2015)

This is good to know. You still need a Mac to submit to Apple but it's a good way to learn the language.


----------



## sidetone (Dec 4, 2015)

I was hoping that submitting it to Apple's store wasn't a requirement, after it now appears to have an Apache license. I was thinking of it as a C++, and Objective C replacement for graphical BSD uses. If it needs differences away from it's objective of moving results to Apple's store, then that's what it takes to be practical with BSD without Apple store. That's if all other applicable licenses permit. If it's a requirement to use it with Apple store, then I'm not interested in it.


----------



## obsigna (Dec 4, 2015)

See: https://github.com/apple/swift#system-requirements


> System Requirements: OS X, Ubuntu Linux LTS, and the latest Ubuntu Linux release are the current supported host development operating systems. ...



See: https://swift.org/about/


> ... Swift is intended as a replacement for C-based languages (C, C++, and Objective-C). ...



See: https://swift.org/contributing/


> Everyone is welcome to contribute to Swift. Contributing doesn’t just mean submitting pull requests—there are many different ways for you to get involved, including answering questions on the mailing lists, reporting or triaging bugs, and participating in the Swift evolution process. ...





drhowarddrfine said:


> ... need a Mac to submit to Apple ...


Reading large parts of the Swift documentation partly linked above, I do not even remotely understand what drhowarddrfine wants to tell us. Are you talking about applications built with Swift for Mac and/or iOS to be submitted to the respective App Store? Of course you need a Mac for this, because the Cocoa Frameworks are of course not part of the language tools. This is pretty much the same why STL, Boost, Qt are not coming together with g++. You may use Swift without Cocoa as you may use C++ without Boost or Qt.


----------



## sidetone (Dec 4, 2015)

Swift requires... Only because Ubuntu ported it. It would only have to be ported for it to be used here.



obsigna said:


> "... Swift is intended as a replacement for C-based languages (C, C++, and Objective-C)"



That's different than what I said? My only point was seamless or practical use of Swift, or a (descriptively) drop-in replacement for C++ or Objective-C without needing Apple roadblocks or it's store.

I understood drhowarddrfine to be referring to the Apple Store.


----------



## obsigna (Dec 4, 2015)

For GUI apps you want to explore GNUstep which has been promised by one of its main maintainers (Gregory Casamento) to fully support Swift in the foreseeable future:

http://heronsperch.blogspot.com.br/2014/06/gnusteps-position-on-swift.html

One of the other main maintainers (David Chisnall, maintainer of the GNUstep port, contributer to LLVM and clang) wrote a GNUstep based user environment Étoilé, which among other things gives GNUstep applications a clean and beautiful appearance.

I write GUI applications in Objective-C for Mac (Cocoa) and for Windows (Cocotron). For FreeBSD I do non-GUI development only. If I ever felt the need to do some GUI work on Unix, then I would use GNUstep+Étoilé. Swift will definitely stay on my radar, perhaps I switch from Objective-C to Swift, once the bindings for GNUstep are ready. With some coding discipline, I am able to build and run my code with only a small number of #ifdefs against Cocoa, Cocotron, and GNUstep on different platforms.


----------



## drhowarddrfine (Dec 4, 2015)

obsigna said:


> Are you talking about applications built with Swift for Mac and/or iOS to be submitted to the respective App Store?


Yes. 

I don't know any more about the language other than a brief encounter earlier this year when I had to write an iOS app and was debating whether I should learn Swift or stick with Objective-C. Other than for Apple products, I don't have a need to learn Swift cause we already know other languages for our purposes.


----------



## Crivens (Dec 5, 2015)

obsigna, last time I tried to get Étoilé to work it failed - do you know the current status? I really like the concept, but if it failes to work and only takes time...

Other than that, I would like to see more about swift before I form a final opinion - if such a thing exists. Opening it up like apple did is a good idea, and as long as they keep the commit gate, the language and tools should be usable and not drift into Linux-only land.


----------



## obsigna (Dec 5, 2015)

Crivens said:


> obsigna, last time I tried to get Étoilé to work it failed - do you know the current status? I really like the concept, but if it failes to work and only takes time...



I have to admit that a few years passed by since I stopped my GUI efforts on FreeBSD. That time I installed GNUstep + Étoilé directly from the source, without the ports, and I used GCC for compiling everything. It well might be, that the switch to clang and another Objective-C-RTE broke some things. I can only tell, that my experience with GNUstep on FreeBSD was that promising, that I would try hard on fixing things before even considering another framework (than GNUstep+Étoilé/Cocotron/Cocoa) for GUI development.



Crivens said:


> Other than that, I would like to see more about swift before I form a final opinion - if such a thing exists. Opening it up like apple did is a good idea, and as long as they keep the commit gate, the language and tools should be usable and not drift into Linux-only land.



Perhaps, you mean something different with _"... I would like to see more about swift before I form a final opinion ..."_ – anyway, have a look at the book published by Apple – The Swift Programming Language (ePUB - 734 pages). This book would tell you everything you always wanted to know about *Swift*, but were afraid to ask Seriously, you need to search hard to find an equally well written description+reference of another language, and at the same time it comes with a free license, i.e.  CC BY 4.0.

If GNUstep really picks up (as promised by the chief maintainer Gregory Casamento – at least he created already a fork of Swift on GitHub), then we may see Swift as the replacement of Java in some future. Swift would produce way much faster applications, since it is a really compiled language (like Objective-C) and the code runs almost on the bare metal, utilizing only a tiny RTE for dynamically dispatching of objects.

For the time being, I comfortably stay with Objective-C.

PS: For those, who want to play with the language, IBM set up a Swift Sandbox, and you are able to work through the tutorial in the Swift-Book just using a browser, without needing Xcode on a Mac.

http://swiftlang.ng.bluemix.net/


----------



## drhowarddrfine (Dec 6, 2015)

obsigna said:


> Perhaps, you mean something different


I think he means *Think Different* 

The last client I had was creating an app for the iPad that was written in Objective-C. They hired a grad student, who was well versed in all that, and I asked him about the "Objective-C versus Swift" argument. He gave me an answer along the lines of "if you're doing serious work, you'll use objective-c".

Would you agree with that?


----------



## obsigna (Dec 6, 2015)

drhowarddrfine said:


> The last client I had was creating an app for the iPad that was written in Objective-C. They hired a grad student, who was well versed in all that, and I asked him about the "Objective-C versus Swift" argument. He gave me an answer along the lines of "if you're doing serious work, you'll use objective-c". Would you agree with that?



More or less alike you would agree with _Real Programmers Don't Use PASCAL_.

Recently, wblock@ answered to somebody: _I have heard that vague generalizations are often wrong in the details. ..._ This answer seem to fit very well to all kind of _Real Men Don't Eat Quiche_ elaborations, doesn't it?


----------



## drhowarddrfine (Dec 6, 2015)

Yes, I agree. Real men don't eat quiche.


----------



## Crivens (Dec 7, 2015)

Regardless of how it is called, all men want to ηβπ!

_ This one is to you, Sir Terry. _


----------



## Atsuri (Dec 31, 2015)

I think this is fantastic news (Apple open-sourcing Swift 2). Makes me want to go back to Window Maker to enjoy the GNUstep framework at least a bit. Even now the GUI adaption is innovative .

After polishing my Python skills I was hoping to jump to pure Java. However, since Swift is on the move, maybe I'll at least give it a try .


----------



## youngunix (Jan 1, 2016)

Apple can shove all their products up, open sourcing their garbage is a hook to steal the focus from the *TRUE* open source projects. We want developers and all types of contributers to focus on open source projects that everybody benefits from, i.e., BSD and Linux derivatives and all that is related and contained within.

_My two_motha_Cu29_cents._


----------



## sidetone (Jan 3, 2016)

youngunix said:


> Apple can ..., open sourcing their garbage is a hook to steal the focus from the *TRUE* open source projects._._



What do you think LLVM and CLANG are? Let's throw away FreeBSD's only compatible compiler, because it's from Apple.
How many companies do you think contribute to make FreeBSD's network drivers and base system stable?
Where do you think some opensource contributions to FreeBSD comes from?


----------



## youngunix (Jan 4, 2016)

sidetone said:


> What do you think LLVM and CLANG are? Let's throw away FreeBSD's only compatible compiler, because it's from Apple.
> How many companies do you think contribute to make FreeBSD's network drivers and base system stable?
> Where do you think some opensource contributions to FreeBSD comes from?


You are saying that Apple made LLVM/CLANG from scratch (ahem, ahem, like everything they own)? Contributing is beneficial to the contributer, else they won't dump a single bit or cent in it.


----------



## sidetone (Jan 4, 2016)

They don't own LLVM or CLANG. They gave up contributions to it by volunteering it to opensource. It's less relevant that they benefited from it. FreeBSD would have been stuck if they didn't get that contribution. What you're describing as ideal is a characteristic GPL/GCC. BSD differs from what you described as what you wanted. You could criticize HTML5 too, but it's what Apple pushed for, rather than crappy Flash Player. The whole internet benefited off of that. I don't like Steve Jobs (and his nearly entire association with Apple), but that's irrelevant since Apple's contributions to LLVM, HTML5, CLANG, and Swift have been given to open-source domain.


----------



## Atsuri (Jan 4, 2016)

Therefore, I think it might be worth to consider porting Swift-related packages to FreeBSD. If Swift gains enough traction and succeeds in its goal (more efficient Objective-C), it would be advantageous to us as well, no doubt.

Many bad things can be said about Apple, though I try to stay positive and remember that Apple has the capacity to show that open-source standards matter in the world.


----------



## sidetone (Dec 8, 2016)

It's been ported, lang/swift.

Thanks to the maintainer and others who did that.

It looks like they need to update https://swift.org/about/#platform-support to show it is supported on FreeBSD. I mentioned that on their mailing list.


----------



## sidetone (Oct 8, 2021)

I bought this book a few years ago. I'll leave it in a book box/hut drop off in my neighborhood that anyone can pick up for keeping. Wanted to post images of it, before giving it away. This book became obsolete not long after it was published, because it was a rapidly evolving language. The image in the thumbnail is the copyright page to show the year of publication (2016). (limited pictures to the cover and copyright page, as to not infringe on the book itself)

Swift is for iOS and Mac specific applications. The first few pages mention how Xcode is required for much. This book also says, it assumes the reader has a Mac to make use of Swift and Xcode. Don't know how much has changed since then.

I'm not interested in the limited focus of the language.


----------



## Samuel Venable (Oct 8, 2021)

sidetone said:


> This book became obsolete not long after it was published, because it was a rapidly evolving language.



This is exactly why I find Objective C, C, and C++ superior to swift. They aren't constantly changing/breaking things for no reason. Objective C I only use for mac development working around the need for it is very tedious thanks to how apple intentionally set up the OS to need Apple's languages for any GUI application that doesn't use XQuartz. Objective C does change a lot as far as API's go, but the changes are subtle usually when they happen. Swift takes it a step further, which is annoying and adds to maintenance.


----------



## sidetone (Oct 9, 2021)

The book can still be of use, while Internet resources can make up for updates. For an early language, it's ok that it's changing and evolving.

It's not a general language, and is specific to Mac and iOS. What did I expect? For Apple, Swift seems to become the Objective C replacement. Swift would be good for those who have at least one Mac, and who want to develop on FreeBSD as a secondary desktop. In other words, it's central to Mac, where FreeBSD or Linux machines would be satellites for Swift development. It would help with licensing costs of each additional computer in a room or LAN.

C commonly uses Clang/llvm which is in C++, so I expect that C programmers will come up with something similar to C that takes strengths of Rust, Zig and other modern programming languages.

*Update:*



`convert 202110-image.jpg -resize 250x +repage bookhut.jpg
jhead -purejpg bookhut.jpg
identify -verbose bookhut.jpg | grep -i exif`
graphics/ImageMagick6-nox11
graphics/jhead

Apart from this, I learned that a local community college offers a course in Swift. It doesn't offer other more recent programming languages. I would take C as a non-credit course, and would be interested if Julia were offered to any local community college. Swift is MacOS centric, which isn't my interest.


Hopefully, someone makes good use of it, or gives it to someone who can.


----------

