Years of programming language research have finally eliminated the need for semicolons!
I find this ultra-weak compared to, say, Mozilla's efforts with Rust.
Wanted: Swift developers. Minimum 3 years experience.
Having looked up Rust... they're not really solving the same problems. It looks like Swift is to Objective-C as Ruby or Python is to C; built on the same foundation, but easier, safer, faster in terms of development time. Only since nobody really uses Objective-C outside of Apple's ecosystem, it's not likely to have much of an effect industry-wide.
Rust, OTOH, is intended as a general-purpose system language, so you can build your services using it. Much broader reach.
It just irks me that apple refers to "the latest research on programming languages" and it means what, you don't have to use include files because there's a module system, memory is managed for you (doesn't say how), and there's some form of type inference? Welcome to the early 80s! The (admittedly quite limited) stuff I've read about it thus far suggests that it's yet another language designed by people who actually don't know much at all about programming language theory. Which is not the case with Rust.
Also, fuck the new programming language. The really important announcements were a) Swype! finally! and b) intents (or whatever Apple's calling them to pretend like they didn't rip off the concept from Android).
I have no idea what your b) is referring to.
On Android (and now in iOS 8), apps can register with the OS that they're capable of handling certain actions. So if you install a third-party browser or maps app or photo-sharing app, when you click on a link or an address or a photo, the OS will open that app rather than the default. It makes moving information from one app to another much easier than it currently is in iOS (and also means you're less locked in to the choices Apple has made for you).
So Yelp could potentially be configured to open Google Maps instead of Apple Maps? Because that would be nice, in a zeroth world problems kind of way.
Ah, yes, that is a big deal, and was one of the worst things about iOS. I think they're calling the inter-app stuff "extensions."
11: Well, that's the idea. Who knows how it'll work in practice.
Apple needs a (slightly more) modern development language, it does not care about Rust, and it is not about to cede control of anything to anyone else ever again.
It seems that we're at a point where programming languages themselves are shiny new toys, and Apple needed to give one to its developers. (Which is not to say that Obj-C didn't, objectively, if I may, need updating.)
Haven't we always already been at that point? I remember people bitching (quite justifiably) about having to develop in Pascal on early Macs, and this kind of thing happens all the time in Windows, if you can squint and ignore all the goofy backwards compatibility.
There's an official book up at https://itunes.apple.com/book/swift-programming-language/id881256329. Having skimmed it, I'd say 6 is correct. Apple might be calling Swift a new language because that makes it more of a toy, but it seems to have been designed mostly as a shorthand for developers who are used to thinking in Objective-C. So it's in line with all the other conveniences they've been trying to shove into their C compiler the last few rounds (array and dictionary literals, automatic reference counting, block syntax). That trend just got to the point where it couldn't maintain compatibility with C of any sort.
My guess is that a lot of apps will end up using Swift for prototyping and/or boilerplate portions, and will fall back to Obj-C for more complex or customized stuff. What I haven't seen is much explanation of how Swift interacts with Obj-C and its Babel of existing libraries - how much of a pain it's going to be to pass objects back and forth, and so on. That's going to be a big part of making it useful.
I understand that Swift is a bit like Go, and I've been meaning to learn Go, which seems pretty cool. Its a terse, powerful language that compiles into a nice, small binary. The only drawback is that Go it comes out of the Google Borg.
But, it seems to me, the play that Apple is running against Google with Swift is the same one that Microsoft ran against Sun in the early 2000s, except the languages in question at that time were C# and Java.
Also, I wonder if Apple will get sued by the developers of the existing Swift programming language.
The makers of that one seem to be the US government.
Update: I may have been too hard on Swift.
As a person who actually doesn't know much at all about programming language theory, I aim to someday create a new language called "Sluggish".
I can see overlooking some little open source thing on GitHub, but ripping off the name of an active government project is an affront to the American people. Why does Apple hate our troops?
It is sort of cool, in that it is sort of a stake in the ground. A useful one, no doubt. But modest.
I don't know how to disabiguate this. Java actually was fresh and cool. It turned to shit. This is a slightly interesting turn on C, at best a new version of Apple. Which is great, and fine.
Yes, how dare they defile the proud and noble institution of the government copyright, the plucky little ⓖ.
Wait. Which one is mythical, the g spot or the clitoris?
I'm going to create a programming language that's just like an existing language, except every executable line will start with the phrase "Simon Says:". All other lines will be treated as comments.
Maybe you should use your new programming language to build Moby an interactive map to the clitoris.
7 is how I feel whenever I hear about any new language. I am curmudgeonly.
But if it's Objective-C with some nice conveniences built on it, I suppose I can't complain. It has needed an overhaul.
and for a weak attempt at defending Java: it gets a bit better every year (yay lambdas), and the JVM is a nice platform.
I learned something from this thread. But I know nothing about programming or programming language theory. I've been meaning to learn R just because it's way cooler than STATA and open source, but I haven't even made time for that. Even in STATA I have a terrible habit of cleaning & analyzing my data from the command line with the history saved rather than from elegant little programlets.
So Yelp could potentially be configured to open Google Maps instead of Apple Maps? Because that would be nice, in a zeroth world problems kind of way.
As I understand it (from reading summaries and a really quick skim of the Apple developer documentation) you still can't change default behaviours on an OS-wide basis, apart from for keyboards. You (ie a dev) write an extension for your app (eg a file viewer, Google Maps). That extension has to plug into one of a limited number of "extension points" (eg share, photo editing, notification centre widgets). If a given third party app makes use of those extension points (eg by having a share button), then your extension is among the list of options for them to choose from. I assume devs of the "host" apps are free to allow users to configure defaults, but as far as I know you can't tell iOS to, for instance, always open images in a particular non-Apple photo editor.
You can't get this sweet IMSI catcher detector app for iOS: https://github.com/SecUpwN/Android-IMSI-Catcher-Detector/releases
I like Java well enough, and I like the JVM, but there is something to be said for languages that don't require the installation and maintenance of a big-ass virtual machine and/or language implementation. I suspect thats the direction things will be going for a while, especially as there is a shift from running on servers or powerful desktops to much more resource-constrained environments, like mobile phones and progrmmable toaster ovens.
33: That doesn't sound very bad, at least for small projects.
Like; Moby; I; like; semicolons.
Having not used Objective C and never programmed for iOS (I wrote a few things for the old MacOs way back in the day), I have no dog in this fight.
I like Java and can tolerate things like Ruby and Python that are derived from it.
Once you've learned a bunch of programming languages, one more, unless it's really different (lookin' at you, Haskell), doesn't get the blood racing.
And I agree with Spike about the JVM, but the alternative is just to load a bunch of library stuff, so "eh."
I do adore read-eval-print loops.
I like Java and can tolerate things like Ruby and Python that are derived from it.
??
39: I also thought that was mysterious, especially since Python predates Java.
Maybe it's java in the sense of "coffee". Maybe Guido van Rossum was drinking coffee at the time.
I really should google Python someday and see what it is.
Huh, apparently Ruby and Java were basically contemporaneously launched. I would have figured Ruby was a few years later.
Python is derived from Java in as much as it does that thing with the bytecode. It would seem a lot more like Java if it hadn't succumbed to the evil machinations of the Whitespace Mafia.
What's the thing with the bytecode? UCSD Pascal had bytecode. Smalltalk had bytecode.
It's always kind of surprising how old Ruby is. (It was a language nerd language that I heard Perl people mention occasionally until DHH wrote Rails and a million bros started writing moronic DSLs.)
Well, its actually more accurate to say that Java and Python were both largely inspired by Smalltalk than it is to say that Python was derived from Java.
The installation issue is a good point; Oracle has done a horrible job shepherding the JVM. Particularly so with the switchover from Apple to Oracle management for Java on OS X.
Haskell is pretty similar to the MLs and other functional languages; there's some minor syntactic differences (just different enough to trip you up, of course), but if anything it's closer to imperative languages than them.
By the way, I've finally built the Python distribution I have been wanting. Basically, its all the Scientific Python goodies running under Python 3.4, with all of it running inside a Docker container, accessed through the IPython Notebook web-based IDE.
You will need to install Docker if you want to try it out. You should be running Docker anyway, because containerization platforms are the future.
Maybe it's the narcissism of small difference, but I really don't see how Python is very much like Java, aside from being languages with classes and not-very-terse syntax. A particular distinction---it's superficial but makes a big difference---is that Python doesn't encourage you to make every damn thing an object. (Also: the types.)
I guess I should point out that Haskell is lazy and really infatuated with its Monad library, but as Yawnoc said, small differences.
I agree that Python is not very Java-like; the static-vs-dynamic typing is a pretty big difference. The semantically meaningful whitespace isn't a big difference from a language design perspective, but it gives it a difference feel. And didn't it start out less object-oriented than it is now?
Man, I'd love to go to Dockercon, but I'm stuck here in the Caribbean.
"Docker" still makes me think of pants for old people.
I actually hardly ever use the object-orientedness of Python, mostly because I cannot bring myself to type the word "self" inside of a function declaration.
The monads and do-notation are the only things that give Haskell, with no notion of benign effects, a more operative feel than ML and descendants, so I find dalriata's remarks confusing!
57: That's all I meant, but they're a pretty big thing.
Whenever I read "Monads" I think "Gonads." Because I am 14 years old.
...and I said above that they're "small differences". I'm being perfectly consistent today. So, to dig myself out of a hole: those are small differences (well, not really the no notion of benign effects part..), but qualitatively they lead to programming in Haskell feeling very different than an ML.
59: Little known fact, but most of Leibniz's philosophical work was written while giggling.
Upon first receiving a copy of Newton's Principia he is reputed to have exclaimed "they killed the Giggler!"
For we experience in ourselves a condition in which we remember nothing and have no distinguishable perception; as when we fall into a swoon or when we are overcome with a profound dreamless sleep. In this state the soul does not perceptibly differ from a bare gonad; but as this state is not lasting, and the soul comes out of it, the soul is something more than a bare gonad.
There's a kind of cookie my wife buys called "Leibniz," and both my kids, independently, asked if they were in the shape of monads
Liberal Arts!
64: Choco-Leibnitz, isn't it? I like putting those on a plate with Fig Newtons, and watching them fight.
Mmm, Choco Leibniz. I have some in the fridge right now.
65: That's a great idea! I'll have to bring a plate or two of them in to work on Pi Approximation Day. And conveniently it doesn't require any skill, like baking a pie does.
Obviously, not my joke originally.
65 - Bring some Seinfeld-style black and white cookies too and claim that your plate is a tribute to integration.
39: "??"
What I should have said written is that Python looks very similar to Java (modulo the semicolon thing). When I typed "Ruby" I mis-remembered "Groovy," which I have used a reasonable amount: it's the language SoapUI uses for scripting. Ruby doesn't look as much like Java, though it shares a resemblance. Ruby didn't really get popular until Ruby on Rails came out, right?*
And yes, there is nothing new under the sun in programming languages. Haskell is a functional language that has a lot of ideas from Lambda Calculus and/or Lisp (among others). It looks pretty different, and I've found it harder to wrap my head around it because I hardly ever use it.
* Sounds like a rock band and album, doesn't it?
I haven't used SoapUI in a long time, but I recall it was pretty awesome. There aren't many tools I feel that way about.