12 ms·
When I recently interviewed at Apple I was told my position would primarily be coding in Java, but the team would be open to other languages as the project prog
by valarauca1 10y ago
When I recently interviewed at Apple I was told my position would primarily be coding in Java, but the team would be open to other languages as the project progressed and needs changed. I asked if they would consider Swift. Then was told that Swift wasn't production ready in their eyes.
(I didn't get the job)
I guess every team is different, but this attitude to dog fooding isn't great.
- omni 10y ago> this attitude to dog fooding isn't great. Apple isn't telling people to go use Swift on the server, IBM is. Apple is telling people to write iOS apps in Swift, which they are also doing themselves.
- valarauca1 10y ago>Apple isn't telling people to go use Swift on the server, IBM is. I'm aware. This is the (humorous) point I'm attempting to make. IBM is adopting technologies faster then Apple. While Apple started it's life out as the Anti-IBM. Indeed it is still fulfilling this role. The (humorous) point being, their roles have in a way swapped.
- josho 10y agoYes, it is interesting how the companies have evolved. IBM lost the consumer space and is dominant in F100, while Apple won the consumer space and abandoned the enterprise. With both IBM & Apple behind Swift the language is being positioned for success in both enterprise and consumer markets. It will be interesting to see how things evolve.
- JustSomeNobody 10y agoI thought Apple was not one to usually adopt technologies quickly. That's been a (fair?) criticism of theirs for some time.
- azernik 10y agoOn the contrary - they've usually raced headfirst into abandoning old technologies for the hot new thing (early to have only CD and no floppy, early to get rid of CD drive altogether, early to go to USB-C, early to go to 802.11ac, etc.) They've used their weight to create a one-company network effect for up-and-coming standards and technology.
- ctdonath 10y agoEarly? All of those changes were made after long using old technologies. I wouldn't consider it "raced headfirst into abandoning", more like "everyone wanted to abandon those old technologies but couldn't survive being the first to, so Apple made the move and everyone soon followed".
- kbenson 10y agoI don't think you really contradicted anything the GP said, and in some cases you supported it. Apple raced headfirst into abandoning old technologies, which everyone wanted to do but couldn't easily, and was able to pull it off because of their market position and status. Others soon followed. So,"early" not as in before expected, but during the beginning of that time (i.e. more akin to "first").
- DigitalJack 10y agoUsing their weight, huh. Apple hit 10% market share with the Mac for the first time in 2012. I think it's something like 15% now.
- jdmichal 10y agoTheir "weight" extends beyond their market share. As an easy example: There are many people that don't own an iPhone 7, but who also know that the iPhone 7 tossed the headphone jack.
- AnAfrican 10y agowell yes. If the share was calculated by individual PC models and not by company, even in the PC business, there would be a bunch of Apple stuff ranking quite high. So they can scale on many aspects much better than their competition. (plus they still have margins)
- st3v3r 10y agoApple isn't doing anything. That team is. And at the end of the day, their job is to get shit done, not test new languages.
- optimuspaul 10y agoSwift 3 was just released, like 2 weeks ago. Unless you interviewed very recently then I don't see the problem with that statement. If they had said swift 2 wasn't production ready, then I'd be concerned.
- mattnewton 10y agoIt's more they are aware that there is still no stable abi and they know of breaking changes coming down the pipeline internally already.
- bluejekyll 10y agoPeople always demand a stable ABI, but I've seen very few use case on enterprise software delivered to the cloud where this is even necessary. Most people rebuild their software entirely prior to release, and deliver the entire package. Having a stable ABI doesn't do much to help this scenario. Linux doesn't have a stable ABI, hasn't hurt its success much.
- cyphar 10y ago> Linux doesn't have a stable ABI, hasn't hurt its success much. Linux does have a stable ABI. And GNU'e libc tries to have one but it breaks often enough to be a concern (even with symbol versioning). You're conflating GNU and Linux here.
- bluejekyll 10y agoYou are right. I should have explicitly called out glibc. I've not had to work about direct Linux ABI interactions.
- coldtea 10y ago>Then was told that Swift3 wasn't production ready in their eyes. Well, not ready for their purposes, which (guessing from Java) would be some App/iTunes store backend, etc. Other teams in Apple already use it for native app development from what I've read.
- pjmlp 10y agoYes, at WWDC they presented that launchd and the dock are now developed in Swift.
- mikeash 10y agoWorking on a big existing codebase is a different scenario too, since adding in Swift either means rewriting the whole thing, or convincing two very different languages to work together. And I imagine that's magnified for Apple's store code, which appears to have the unfortunate combination of receiving a metric buttload of traffic and being held together with baling twine and chewing gum. I'd speculate that "not production ready" is at least partly rationalization or cover for "we really can't afford to screw around with this codebase, even though this is the company's Big New Thing."
- mynegation 10y agoI am not saying that this is necessarily what happens at Apple (I know nothing about it), but mind you that in big corporations there is sometimes rivalry between departments. Technologies are sometimes both tools and collateral damage.
- potatosoup 10y agoMore context would have been useful here, such as if this was a server-side product (even though you probably understandably can't disclose.) Swift is great for client-side work, but I wouldn't use it on the server. Each tool good for a certain job. Our current stack is Swift on the client, Elixir on the server, and I haven't been happier.
- Razengan 10y ago> this attitude to dog fooding isn't great. The Dock and a few other components of macOS Sierra are written in 100% Swift, according to this year's WWDC.
- misterdata 10y agoThe Dock? Why would they completely rewrite the Dock?
- stepanhruda 10y agoMaybe it was a mess anyway, so they went with Swift when rewriting it?
- bluejekyll 10y agoApple may have wanted to prove out the language a distribution of core OS components in Swift. Choosing the Dock, it's probably one of the smaller end-to-end apps that makes use of many OS features. So they may have done it purely to prove our Swift for core apps. Now if only they'd have actually updated the UI...
- evilduck 10y agoTotal speculations on my part: It's probably a reasonably small codebase with well specified requirements, it's a standalone app already, and it's not likely to cause underlying OS performance or stability problems if it lost a little bit of performance migrating to Swift. I'm guessing it could be an experiment to see what parts of the OS are reasonably replaced with Swift? People have also complained for several yearly releases now that OSX isn't improving as an operating system. It's also been around in various incarnations for like 18 or more years and has likely accumulated some deficiencies that needed addressing. Maybe things need some rewriting now to be positioned to become better in the future and a Swift migration is a good excuse to do both. Enough people are also complaining Apple isn't dogfooding Swift enough internally, so there you go, macOS is starting to dogfood it. I'd also guess Apple probably has a reasonably hard time hiring for Objective-C positions to work with OS-level code (e.g. they've probably hired all of the existing, interested and qualified people willing to work in the Bay Area already), and the up and coming labor pool of people coming from iOS development is likely to be more interesting in or previously experienced with Swift. Modernizing your codebase where possible now seems like a reasonably way to hedge for the future hiring needs. Apple's been around long enough they likely have people retiring out of some critical positions.
- deleted 10y ago[deleted]
- cableshaft 10y agoI interviewed at IBM for a position making Enterprise template apps for iPad working directly with Apple, and the main reason they said they passed on me was while I had a good amount of Objective-C experience, I had only dabbled with Swift on my spare time and had difficulty answering a couple of the questions they grilled me on in Swift. They specifically said I should have had more professional Swift experience when they rejected me. Of course all the companies I worked for were being more conservative and hadn't yet made the leap to Swift yet, so getting that professional experience was pretty much impossible. But I guess if anyone can afford to be picky, it's IBM on a project working directly with Apple. So yeah, IBM is definitely gung-ho about Swift. Apple itself, possibly less so.
- xenihn 10y agoJust curious, what were some of the Swift questions?
- cableshaft 10y agoI don't remember most of the questions. I do remember being asked about basic things regarding optionals, about how it handles exceptions (Swift 2 had been announced like a week before the interview and changed how it did exceptions entirely to try-catch blocks, and I answered that, but then they were like "okay, how about in Swift 1", and I blanked, even though I put them into the toy app I was doing). Another was something like "In Swift, what are higher-order functions?", which I somehow only heard that term a couple of times before and didn't have fresh in my head, despite using higher-order functions in plenty of programming languages (C#, Python, Ruby, even in Objective-C). That one was a case of knowing the concept but not the term. I believe those two questions were the main ones that lead to the rejection, because I stumbled and didn't come across as confident there, but was otherwise pretty calm and answered the other questions well. I was in and out of there in 45 minutes, talked to one person who quizzed me on the names of UI objects on a given screen, and then the pop-quiz-style interview with two other people. I also stupidly didn't show them the app I had partially built in Swift, even though I brought an iPad with me. I think I even mentioned it, and they're like "You have it here?" and I said "It's not finished..." and they just started asking me more questions. It was a working puzzle game, but some of the logic for clearing matches was wonky at the time and was visibly broken so I was hesitant to show it.
- byebyetech 10y agoI interviewed with two different teams at Apple recently and they gave me the same answer. Most teams are using Objective-C and not even touching Swift. Which is pretty strange given they are shouting out of their lungs to other developers on adopting Swift.
- hota_mazi 10y agoI don't think you can draw any conclusions about Apple's attitude toward dogfooding. I'm sure Swift is being heavily dogfooded there, they were just telling you that it hadn't reached the point where it could be used in the project they had in mind for you (especially if it's back end, which seems to be the case since your project was in Java).
- jjtheblunt 10y agoI worked at Apple for severals years in engineering until 5 months ago leaving for a very small business which interested me more. Swift was being extensively used internally for a long time, including by me.