Reactions To Apple's Plans To Open Source Swift
itwbennett writes: At Apple's WWDC 2015 event yesterday, Craig Federighi, Apple's senior vice president of software engineering, announced that the company planned to open source the Swift language. Reaction to this announcement so far has sounded more or less like this: Deafening applause with undertones of "we'll see." As a commenter on this Ars Technica story points out, "Their [Apple's] previous open-source efforts (Darwin, WebKit, etc) have generally tended to be far more towards the Google style of closed development followed by a public source dump." Simon Phipps, the former director of OSI, also expressed some reservations, saying, "While every additional piece of open source software extends the opportunities for software freedom, the critical question for a programming language is less whether it is itself open source and more whether it's feasible to make open source software with it. Programming languages are glue for SDKs, APIs and libraries. The real value of Swift will be whether it can realistically be used anywhere but Apple's walled garden."
Whenever a company open sources its code, it's a good thing. Even if no one wants to use it, it still sets a precedent. It wasn't long ago, no one was open-sourcing their code. Now, even Microsoft does some of it.
This strengthens that trend.
"First they came for the slanderers and i said nothing."
Why would they choose to highlight Darwin and WebKit when they already have a project that Chris Lattner and his team developed at Apple - clang.
If swiftc follows even close to the same model as clang, then we'll see a very nicely managed BSD licensed project.
I seem to remember that during the presentation they explicitly stated that would be releasing a Linux version of the runtime libraries for Swift. At least that should give you the basics for a console/text user interface.
I doubt Apple is going to be making any GUI binding other than for Cocoa. I also doubt that the bindings for Cocoa will be included in the open source packages. It will be interesting to see how accepting they will be of community contributions.
How does it compare to others like Go or Java then? Pleas do correct me if I am wrong. Go is controlled mainly by Google, and Java is Oracle's foster child. And like Swift will have, Java has some components that are open source.
> the critical question for a programming language is less whether it is itself open source and more whether it's feasible to make open source software with it.
I have to disagree - a language which only has one single implementation which is closed source means that the developers using it is locked in and completely at the mercy of the owners of this implementation. Just like with VB6.
I would never consider a closed language for anything else than small, short-lifetime hacks which I do not intend to maintain.
Funny, I was just the other day thinking, "what the world really needs right now, is another programming language".
The tiny number of choices in programming languages is the main thing holding back the industry, so it is great to finally see a new one. It's far too common that I think, "I've got this great idea for a new program... if only I had a viable language to program it in".
... It's a lot more appropriate to compare the open sourcing of Swift to the LLVM/Clang projects than to Darwin. LLVM is by any measure a thriving open source project with lots of contributers, both individuals and from many large organisations (Intel/AMD/ARM/Google/Microsoft, etc. etc.). I also follow Webkit development to some degree and it's far from "the Google style of closed development followed by a public source dump", a fact that should be clear to anyone who takes a minute to look at the webkit-dev mailing list.
The interactive way to Go -- http://www.playgo.to/iwtg/en/
Apple has always been very careful to keep important elements (e.g. the GUI of OSX) proprietary code. That is were they perceive their competitive edge and how they can assure an excellent revenue flow and enormous profits.
So, ease up.
A large part of a language's value is the API and framework it works against. It's no good just throwing out a compiler and a barebones set of APIs and thinking it's going to catch on. Unless Swift comes with a set of high level APIs that allow people to build applications / apps on non-Apple platforms then I don't see what the attraction to it will be.
yes, no safety net. Yes, highly complex. Yes, salespeople fuck up badly using it. Comparing C to coke is... not really sane. As are your other analogies. I do understand your point, but you misunderstand mine. All these safety nets, come at a price. In my expirience, no amount of safety nets will make people write bugless code. Not in algol, not in fortran, not in C, and definitely not in Rust. You cannot pave over the incompetence with a garbage collector and a factory factory factory pattern, get it? All the syntactic sugar in the multiverse won't reduce amount of exploitable bugs in the code, since it makes _exploitable-by-design_ more likely instead. My point is, damned if you do, damned if you dont.
the idea that you need hand holding, while programming... and that you think that Oracle Systems Engineer title means anything at all... hah, nice bonus.
http://elementscompiler.com/el...
RemObjects has developed an implementation of Swift in a product called "Silver" that, per their website, claims:
"With Silver, you can use Swift to write code directly against the .NET, Java, Android and Cocoa APIs. And you can also share a lot of non-UI code between platforms."
Their implementation isn't open source...but, the tool and their implementation are free.
Does open source Swift mean we finally don't have to buy a mac machine just to run XCode to develop iOS apps? Does Apple have plans to release an open source iOS simulator, so we can simulate iOS apps on Windows/Linux etc?
I do not think your argument holds water. If highly experienced R&D software engineers at these large computer/software corporations make these low-level, C-style bugs which lead to entire OS kernels being exploitable (e.g HP-UX "Ping of Death"), then we should use any additional security measure we can deploy.
"Yes, highly complex."
The Sappeur compiler is just about 10k Code. It does generate memory safe C++ code, though. No binary code generation. And yeah, it is currently just a proof of concept. Rust and Swift are more far ahead. Generally speaking, there is not reason why memory-safety is "highly complex".
"Yes, salespeople fuck up badly using it"
Now show me the salespeople writing ANY non-trivial software code.
"All these safety nets, come at a price"
You make it look as if they were not affordable. The runtime overhead is in the order of 10 to 30%. Now, can businesses pay this cost if they get more security for that ? Would Sony have rather spent 30% more on CPUs rather than being pwned ? Would Lockheed Martin have rather spent 30% more on CPUs than being pwned by some Chinese Long Range Recon unit ?
I do think this is a very reasonable price to pay for seriously better security.
Also, good compilers can safely remove bounds checking code (which typically created most of the additional CPU load) in most use cases. Then the Rust, Swift or Sappeur code can be as efficient as C++ code.
"In my expirience, no amount of safety nets will make people write bugless code"
That's a strawman argument. My point is that we can reduce the number of Exploitable Bugs. A clean, determinstic, immediate and debuggable crash is much better than the latest F119 turbine metallurgy documentation being silently sucked off to Chengdu aircraft works. Because a C/C++ based Lockheed Martin PC has been silently hacked and is being commandeered by a guy in Shanghai.
"Oracle Systems Engineer"
I don't know what that is. I was referring to the Oracle R&D engineers who wrote the Oracle Listener, for example.
Apple has a much longer history of releasing open source or opening standards than most people like to give them credit for.
"Only one thing is impossible for God: To find any sense in any copyright law on the planet." - Mark Twain
Comment removed based on user account deletion
the critical question for a programming language is... whether it's feasible to make open source software with it
I don't see any clear reason to think that it wouldn't be feasible to make open source software. They're releasing some kind of development kit for Linux, claiming that the released materials will be open sourced under a permissive license. Now they could by lying, or they might have a crazy idea about what constitutes a "permissive license", but otherwise, how could it not be feasible to make open source software with it? Even if their tools are somehow geared toward developing Mac apps, if they're open sourced, those tools can be rewritten.
It seems to me that the question that's more critical is, "Will the open source community want to use this language?" I don't know the answer to that.
So what.
People who are heavily invested in Apple and Apple development are going to be ecstatic because they think it will mean a groundswell of openings for Swift.
I remember the creation of mono and the open sourcing of ,Net which were supposed to do the same for .Net programming. Did that happen? A bit not nowhere near wht they were hoping for.
In the end Swift will be another niche language, which just a slightly bigger niche.
"We're going to the standards bodies, starting tomorrow, and we're going to make FaceTime an open industry standard." - Steve Jobs, WWDC 2010
But Apple never followed-up on that.
Get free satoshi (Bitcoin) and Dogecoins
I guess when I code something in C for an Atmel microcontroller I'm just glueing a bunch of nothingness together. But it still works! It's magic!
Get free satoshi (Bitcoin) and Dogecoins
What do you imagine is stopping people?
Swift's only been out a year, and it's already #14 on the Tiobe index. And has been voted StackOverflow users favourite language. Take up has been anything but slow.
And I'd expect it to accelerate now, even without the open sourcing, as plenty of people were treating the 1.x label is meaning not yet ready. Plenty of companies will be starting to use it now it's 2.x.
I have been reading through all these comments to date, with amusement. But also with a little de-ja-vu.
/IL or Java byte codes!) But then, who wants all the hassle of writing re-usable objects that sit between OS level objects, and your code? Even calling system libraries doesn't always yield the results you're after - and you start writing what I call code-gymnastics to get at what you're really after, in a form that's most easily consumable (tasty!). To that degree, you can see my point about needing to use well tested frameworks to take the donkey work out of that. I believe this is why Java has been so ubiquitous - because it successfully divorces concerns of the operating system in which it's hosting, from the code you want to execute, and thus, the write once, run anywhere approach seems to be tangibly real. But to that end, as we now want to scale across an ever greater range of devices, there are concerns about display orientation, size, aspect ratios, etc, and so along with web development, we now have the likes of Xamarin, and their Forms technology. Claims of 90% code re-usability etc.
You see, I know someone who got an iPad when they first came out, along with their iPhone, and they were telling all about how wonderful "face time" is, and how you can see and talk to people all over the world! But the point here, is they talk about these ideas like it's something new, and more importantly, Apple gave it to the world, and now we're all better for it. Hoorah!
So when I politely explain that I've been using microphones and talking with "team members" since the late 1990's, and even had web cams in the days where you stuck them on top of your CRT based monitor! Oh, and it was all for free. To which the look of puzzlement and surprise went across their face. Because in their mind, and that of so many of the public, Apple brings these things to the world, and not just their own flavour of it.
My point here, is that all the same promises are made by Java, and C#, where your code is running in a safe sand-box, and the languages encourage better more reliable code by use of well tested frameworks. So I'm really not jumping up and down with excitement here. Those languages are still heavily in demand, and have massive support. I realise we're talking about machine-level code, here, which is fine. But you don't get the benefits of a sandbox, without having a sandbox. A compiler can only do so much checking. Most needs to happen at runtime, as I'm sure you already know - and if your code isn't performing those checks explicitly, then you might want to think again. I'm sure that with Java, as you can with C#, you don't have to use any proprietary frameworks, and your code can compile down to an executable. (I don't mean MSIL
I'm sure this has been a boring recap of the state of things, but I'm going to have to side with the C / C++ guys here, simply because many of the arguments raised that I see so far could be successfully unit tested (code allowing!) and so I think we could see more robust code, it's just that the code base of so many libraries are so old, but equally so well tested, that we're not likely to see a re-write to enable unit testing, in an effort to find bugs in code that has long past been accepted as fit for purpose. I seriously doubt anything is going to remove the OS development crown from C and C++, simply because the future will only ever hold nightmares of a need to know the flavour of the month language, as well as C / C++ in order to either migrate or maintain that code base.
Don't get me wrong, I do believe there are more elegant languages that could be adopted for OS development, such as Java and C# in their raw forms, but if it hasn't happened for those languages, I can't see why Apple would succeed in this space, where the same frustrations surface from time to time, and still the world goes on. Good luck with that one, Apple!
Holy moly! You're Turkish? You're putting most English speaking people's written ability to shame! That being said, wouldn't you have your head cut off for talking like this about someone else in Turkey? I'm sure Apply could have it arranged. ( Make sure you lock your door tonight :-) )
They reject Flash,
If you're complaining about that, then I know you're an idiot.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
Why would they bite off on the hassle of supporting their dev environment running on a bunch of incompatible Linux distributions? (not to mention Windows).
You know that, right?
Yes a programming language specifically designed like a walled garden or more like a labor camp.
Only an insensitive dickhead like you, with no idea of what a real "labor camp" is would make such a ridiculous analogy.
Go read some history before you throw around the term "labor camp". It is deeply insulting to those who had family members who actually lived (and usually died) in labor camps.
Well, technically C and C++ are AT&T company languages. Java is a Sun company language. Perl is a Unisys company language. Python is a CWI company language. I'm not judging the merits of Swift, but just because it's a company language doesn't (necessarily) doom it to failure.
Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws-Plato
The real value of Swift will be whether it can realistically be used anywhere but Apple's walled garden.
This could by answered with an emphatic "no".
Amazing that you can be so sure of that; considering that the Open Source version of Swift is still months away.
Or did you get your hands on the Beta of WatchOS 2 and travel to the future to check it out?
Swift is a company language, and people will perceive it that way for a long time. Even if it finally jumps over the fence of Apple's walled garden, it will be only incidentally done. Look at Lua, originally a company language for PetroBras. It never became mainstream.
And exactly whose fault was that?
+ created by USG.
That should be news to Mssrs. K & R. Didn't they work for Bell Labs at the time, and wasn't C simply supposed to be an internal language for the development of "The Phone Company" system-code?
So when I politely explain that I've been using microphones and talking with "team members" since the late 1990's, and even had web cams in the days where you stuck them on top of your CRT based monitor! Oh, and it was all for free. To which the look of puzzlement and surprise went across their face. Because in their mind, and that of so many of the public, Apple brings these things to the world, and not just their own flavour of it.
That skips a whole bunch of tears on the part of most of the people who tried to get that actually working back then.
What Apple did with Facetime was make all that drop-dead-simple; so that Everyperson(tm) could make it happen without having to traverse a nightmare of setup.
So, your condescending "polite explanation" was nothing more than the thinly-veiled conceit of the "Computer Priesthood"; which neatly ignored the accomplishments of some pretty-damned-hardworking Developers at Apple, who made the whole "videoconferencing" process be Zeroconf and utterly Drop-Dead-Simple. And even better, they did it in a bandwidth that even greedy AT&T agreed to COMPLETELY IGNORE for data-usage-purposes.
If you think that isn't a notable accomplishment, then try it yourself. And no, getting it working in one specific instance after a week's worth of fiddling, like you were "explaining", doesn't count.
It will be open source to the point where someone tries to use it in competition with Apple. At which point, the lawyers will come in and kill the project with cease and desist letters regarding APIs, copyrighted names, etc.
Oh, come off it!
If Apple Open Sources the Language, then they wouldn't last past the first Motion To Dismiss in Court. As long as the usage doesn't violate the terms of the whatever Open Source License Apple releases Swift 2 under, then they have no actionable claims, period.
And of course, the "competitor" can clearly see the terms of the License LONG before that would be an issue.
Not to mention the credibility Apple would lose in the entire F/OSS Community if they tried that kind of bait-and-switch tactic.
Lua is the most used language for the purpose it was intended - for adding custom scripting to applications. It's a huge success.
who were the owners of bell labs ?
Um, AT&T, which had been a publicly-held company for many decades before the first commercially-available computer was even sold.
Look at Lua, originally a company language for PetroBras. It never became mainstream.
Well, unless you count video game scripting. "Lua has become an extremely popular programming language, so much so that it's achieved a critical mass of developers in the game industry, meaning Lua skills are transferable from company to company."
Of course news about a fake are Fake News.
The real value of Swift will be whether it can realistically be used anywhere but Apple's walled garden.
This could by answered with an emphatic "no".
Any question could be - that doesn't make it true.
Of course news about a fake are Fake News.
" The real value of [open sourcing] Swift will be whether it can realistically be used anywhere but Apple's walled garden."
It'll be interesting to see what language the Apple Music and the Switch to iOS Android apps are written in.
Of course news about a fake are Fake News.
Install Yahoo Messenger. (of the era?) which picked up the hardware such as microphone and webcam (yeah, that needed a driver disk, but what's the big deal, it's the 90's!)
.NET, the whole works - all opened up. That's what .NET Core has been about. But this is still central to some kind of sandbox, which gives it the safety features low level developers seemed to be getting hammered over.
Login, see someone online. Click on the Video-chat button (or what ever it was called). Problem solved. Low bandwidth, worked a dream on anything higher spec from a telephone modem! At the time, I was downloading at about 50k a second. Guess my upload wasn't much more than 10k a second? So yeah, jerky, juddery, but stay still, and I could see you!
Point is, it was possible even back then. Don't care about configuration issues people had, that was a long time ago, and if I could talk to one person across an ocean in this way, then my point is made clear. It was possible a long time before the priesthood of Apple made it so.
Certainly, I agree with you, that zero configuration is a nice feature, but to be honest, since the days of Vista onwards, I can't remember really needing a driver disk, as everything was USB, and Windows was good enough at finding a driver for you that worked. But this gets away from the central point. Skype was out there before facetime, and is just as easy, but better still, crosses platforms. Well supported, even before Microsoft came along to buy it. Got no arguments, and I think Millions of their users don't really have issue with it either.
As for data usage, I'm more impressed that Netflix came to the UK, and got our biggest provider (BT) to allow streaming of hours and hours of high quality content, without hitting your 20GB a month usage limit to be a lot more impressive. Personally, I stick with a provider that gives me truly unlimited usage, so I don't have those kinds of concerns, and I could stream what ever I like, from whom ever I want, and who doesn't love youTube?
But I digressed once again. The original discussion was about open sourcing Swift! So this has nothing to do with that, so to re-iterate, I've little interest in Swift personally. but watch to see what happens. I just see Microsoft all over again, as do others, as they made C# a standard, and open-sourced everything but the compiler (at the time). But now, the compiler, the source for
I think it's very hard to heal the wounds in a language like C, C++, or even objective C. There's only one common ground for all of them, and that's assembly language! But to re-invent abstraction from that level, to encompass safety first, means we'd be looking at very slow operating systems and services, which people complain about enough as it is.
I'm sure game developers would die if we pushed checking on everything as a pre-requisite for development. They'd laugh at the idea, because from their perspective, the critical time gains of just a couple of cycles in certain routines is more than just important to them, it's what makes game performance what it is. But they'd not argue with yet more compile time checks. But even developing certain routines with unit testing in mind would be counter to performance, so again, the same argument from their perspective, and another reason why C/C++ will remain king of development for them.
As I pointed out to my nephew, who works at Apple, once upon a time Java was declared to be Open Source. Then Oracle sued Google over the APIs used by Java. Making a language "Open Source" isn't true if you keep the APIs needed to use it proprietary.
Three of your four complaints are trivially avoided in C++ by proper use of vectors and strings instead of arrays and smart pointers instead of raw ones.
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
Hatebois gotta hate.
Swift's only been out a year, and it's already #14 on the Tiobe index.
Zealot alert, sign #4 - "All my friends are dead, but I'm the survivor!" - Swift @14 is below general purpose languages like Pascal and below niche languages like R, Matlab, etc. Even Perl, considered a dead language, is higher than #14.
And has been voted StackOverflow users favourite language. Take up has been anything but slow.
Zealot alert, sign #2 - "That's the only argument I've got so I'm gonna use it!" -
For future notes: "Not as fast as they predicted" is not the same as "slow".
And I'd expect it to accelerate now, even without the open sourcing, as plenty of people were treating the 1.x label is meaning not yet ready. Plenty of companies will be starting to use it now it's 2.x.
By "plenty of companies" did you mean "iPhone App Makers"? 'Cos objective-C itself was rarely used outside of iOS targets. Hell, I'm a firm WindowMaker/Gnustep user, have been for decades, and even I struggle to find apps written in objective-c.
I'm a minority race. Save your vitriol for white people.
Wrong, both Pascal and MATLAB are below it.
More significantly that other young contender, Ruby, is below it.
And yes of course I mean phone app developers. Some Mac developers, but mainly phone developers.
Wrong, both Pascal and MATLAB are below it.
Thank you - I looked at the index just now and it appears that Swift is ahead by 0.004% over MATLAB. Swift is still lower than the more obscure and outdated languages there - Object Pascal out ranks it. So does VB, R and Perl. At this point Swift is not even in the running; the languages it beats out are COBOL, Abap and Pascal. Other than Pascal, it is the lowest ranking general purpose language. Which leads me to wonder why you would even bother asking people to look at the tiobe index - it shows Swift t be much worse off than I thought.
More significantly that other young contender, Ruby, is below it.
Young? Ruby is over two decades old - you cannot compare Ruby to Swift as "young" languages. Ruby is old, and this is as popular is it is ever going to get. Swift still has a chance to climb up the rankings; if it ever gets as popular as objective-c did, it would rank at a quarter of the lead language, a third of the second leading language.
And yes of course I mean phone app developers. Some Mac developers, but mainly phone developers.
A burgeoning market I believe. Last I saw it was estimated $35m (all handsets included) in revenue. The total software market is estimated $400b. Swift can be #1 for developing iOS apps, but it is still insignificant against the overall software market which uses non-Apple languages. My point is even if Swift gets to #1 for iOS apps, its marketshare will be so small that it may as well be statistical noise. This is why I said that Apple may want a larger take-up of Swift on other platforms. It is more likely to survive if cross-platform.
I'm a minority race. Save your vitriol for white people.
A burgeoning market I believe. Last I saw it was estimated $35m (all handsets included) in revenue. The total software market is estimated $400b. Swift can be #1 for developing iOS apps, but it is still insignificant against the overall software market which uses non-Apple languages.
Phones are the most common computing devices these days, and people buy more software for them. Albeit at cheaper prices.
My point is even if Swift gets to #1 for iOS apps, its marketshare will be so small that it may as well be statistical noise.
Then your point is stupid. The very least that's going to happen is it's going to replace Obj-C in the ratings, and that's currently number 5.
My point is even if Swift gets to #1 for iOS apps, its marketshare will be so small that it may as well be statistical noise.
Then your point is stupid. The very least that's going to happen is it's going to replace Obj-C in the ratings, and that's currently number 5.
Way to go to prove my point for me - obj-c is what? Something like a quarter of the Java rating? A third of the C rating? You're basically measuring obj-c in fractions of what the mainstream languages rate. And you're using web-searches (tiobe uses web-searches) to determine a languages popularity.
I looked at the github stats some time back - objective-c is bottom of the popularity contest if you consider code committed to github, but top of the popularity contest when you look at registered watchers on github. IOW, there are more people looking at objective-c projects than there are people using it. This is also why I suspect it comes up higher on tiobe - more people search for it, fewer people use it.
I'm a minority race. Save your vitriol for white people.
There's something wrong with your brain if you can't see that #5 *IS* a mainstream language.