9 ms·
I Don't Know Swift
- Geekette 12y agoGood reminder of how new Swift is, given that I've recently seen a couple of LinkedIn profiles already declaring their owners as Swift experts, despite the language being released only ~1.5 months ago.
- Zaheer 12y agolol Reminded me of a joke when it first came out: Recruiters will be on the prowl for Swift devs with 5+ years of experience!
- Geekette 12y agoOh, I'm sure a few corresponding job ads can be found floating around too, including on LinkedIn.
- Argorak 12y agoGiven how generic they are, thats probably true. I recently had someone asking for three years of experience in AESON (for the uninitiated: thats a JSON parser...).
- bshimmin 12y agoI once had a recruiter send me over a job spec asking for experience with ActionScript 4. This was back in about 2009, when Flash and ActionScript were still relevant, and ActionScript 3 was the current (and last) version of the language. When I quizzed the recruiter about this, and sent him a Wikipedia link, he told me that was what he'd been given in an email by his client and that he was furious with them for making him look like a fool. See, they're not all bad (or perhaps he just told me what I wanted to hear...).
- Argorak 12y agoI know some recruiters and what you say is true: it's not necessarily the recruiter but the client that is clueless. I did some hiring for some companies and saw some of this at work (e.g. the CFO writing the job offer, never passing it by us and then sending around something like this). Considering the volume that recruiters have to handle, they also cannot check everything for validity, so they are probably the wrong persons to rant about.
- megablast 12y agoChicken or the egg?
- jfoster 12y agoI wonder if such ads could be being used as a honey-pot. Useful for determining who not to hire. (and possibly not in compliance with employment laws at the same time, if no job exists)
- danielweber 12y agoIf there is anything the software developer industry doesn't need, it's more tests to automatically reject people.
- Argorak 12y agoWell, if one has 2 months of experience and everyone else has zero...
- panzi 12y agoMaybe they aren't Apple Swift experts: http://swift-lang.org/ http://swift-lang.org/
- Zaheer 12y agoI'd have to agree that it's not fully baked but as someone learning it currently, I have to say that it's a pretty awesome language. It fixes a lot of the annoyances I have about other languages and wraps it all together. Things like multiple returns, closures, etc are super handy features that I've wanted in other languages. Shameless Plug: Check out www.LearnSwift.tips if you're trying to learn. It was born out of my desire to learn Swift and is just a simple curation of resources, tutorials, code samples, etc to learn Swift.
- panzi 12y ago> multiple returns, closures, etc What other new(ish) language in this day and age does not support this? You have closures in e.g. Haskell, Java, C#, Rust, C++, JavaScript, Python and Ruby. You have destructuring/unpacking support for tuples/lists or something similar that can be used for multiple return values in e.g. Haskell, Rust, Python and Ruby. I think there will be destructuring in future JavaScript standards and I don't know about C#. I think a new language that doesn't support these things would be disappointing.
- dfkf 12y agoC# can pass parameters by reference, which is often used to return multiple values from a function. In new C# 6 it will look like this: if (int.TryParse("1234", out int result)) { /* do stuff */ }
- panzi 12y agoIf you count that than so can C/C++/Objective C (via pointers/references). But I like to use tuples and destructuring of tuples more (syntax wise).
- rectangletangle 12y agoWhen you say multiple returns do you mean something like generator functions, functions that return some form of tuple like construct, functions with variable return types, or something else? I haven't looked into Swift much at all, so I'm curious.
- sergiotapia 12y agoSo here's a question for you mobile devs guys. I'm a software developer with experience in C#, Ruby and enough Go to be dangerous, where do I start learning Swift? I imagine it's a twofer, learning Swift AND learning the iOS bits. I don't mind paying money for a solid learning resource. Thank you.
- TheBiv 12y agoThe resources Apple provided have been awesome: (IBook related to learning the language) https://itunes.apple.com/us/book/the-swift-programming-language/id881256329?mt=11&ls=1 https://itunes.apple.com/us/book/the-swift-programming-langu... (Further resources) https://developer.apple.com/swift/resources/ https://developer.apple.com/swift/resources/
- austinz 12y agoMy recommendation is: - Download the ebook that describes how to use the language. You can get it as an iBook or a PDF, or just view the documentation on the developer site. The ebook is really approachable and will show you how to do most things in the language. - Learn a little bit about Foundation and UIKit so you can use the Cocoa APIs. You can build command-line applications in Swift without touching any of the Foundation stuff, but without it you won't be able to do that much. - Go to Github and look at some of the projects people are doing. Check out their code for ideas as to what to do/what not to do, or how to solve problems that aren't discussed in the book.
- Zaheer 12y agoMy process so far (I'm still learning): - Learn the basics of Swift the language https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/GuidedTour.html# https://developer.apple.com/library/prerelease/ios/documenta... - Watch the Stanford iOS Intro videos to become acquainted with the iOS way of doing things http://online.stanford.edu/course/developing-ios7-apps-fall-2013 http://online.stanford.edu/course/developing-ios7-apps-fall-... - Start coding some projects and just learn as you go. It seems as if you know enough programming fundamentals to jump right into it with some basic intro material. Do check out my site www.LearnSwift.tips as well.
- archagon 12y agoI'm currently building an imitation of Apple's keyboard in Swift (https://github.com/archagon/tasty-imitation-keyboard https://github.com/archagon/tasty-imitation-keyboard). Learning process has been pretty easy so far: a few hours with the documentation and the rest picked up along the way. Playground was great for getting up to speed. It's pretty fun to be on the vanguard of a new, evolving language and have it actually be capable of production use. Also very frustrating: there are a number of design decisions that drive me crazy (lack of auto casting between CGFloat/Float/Double/Int... usually), and the latest Xcode and compiler betas have a bunch of bizarre non-deterministic bugs, performance issues, and error messages that have nothing to do with my code and require workarounds. I'm a little too lazy to file Radar bugs for them — Apple is not paying me to write bug reports, and they'll surely get discovered by others — but I'm really looking forward to writing a brief postmortem when I'm done. (PS the code is super messy right now. I'm in the "hack away" phase, cleanup will come later.)
- m4x 12y ago> Apple is not paying me to write bug reports, and they'll surely get discovered by others So you are happy to write a long comment here in exchange for karma, and are excited to blog later in exchange for eyeballs, but won't submit radars to improve your tools because Apple isn't paying you?
- archagon 12y agoThese are bugs that will be found, unlike most other Apple bugs. Also, I'm busy and bug reports take forever to write and reproduce, especially for the kinds of eisenbugs that I'm seeing. Why so judgey, friend?
- gdubs 12y agoFWIW, duplicates are really important to getting bugs fixed.
- archagon 12y agoIf they're not fixed in a few betas, I might file them.
- austinz 12y agoThe linked Twitter post does bring up a good point: I wish Apple would make it easier for third parties to build tooling for the iOS/OS X development environment. Stuff like alternative IDEs, Xcode plug-ins, tools for instrumentation/debugging, alternative simulators. Some of this already exists out there (e.g. AppCode), but most of it is really dependent upon the often-buggy first-party tooling. Better support for third-party tooling would ameliorate the pain developers feel when Xcode doesn't work well. I don't even see any downsides. A thriving third-party tooling ecosystem would only serve to lure more developers, resulting in more applications and increased hardware and software revenue. It's not like Apple currently makes money selling its development software to developers.
- rgbrgb 12y agoDefinitely take a look at the Alcatraz package manager fro XCode[1]. I discovered it recently and it's heavily improved my experience! [1]: http://alcatraz.io/ http://alcatraz.io/
- jfoster 12y agoCould lost desktop & laptop sales be a downside? I think it's easy to under-estimate how many developers have purchased a Macbook Pro or Mac Mini primarily so that they could develop for iOS.
- blisterpeanuts 12y agoI would say yes. I just bought a Mini and an Air, just for iOS development :) Well, I also got the Air because it's such a fantastic laptop, after years of using corporate Dell bricks.
- ghshephard 12y agoI think we can be reasonably certain that Apple will not support, and, wherever possible, will actively discourage the development of third party primary development environments. They learned their lesson with CodeWarrior, and aren't going to let third parties take a leadership role in their development environment.
- jimmcslim 12y agoIn the wake of the Swift announcement, it feels like some 'incumbent' iOS developers are saying 'sure learn Swift but if you want to do iOS dev you still need to know Obj-C' (as opposed to 'sure learn Swift but if you to want to do iOS dev you still need to know UIKit' which I agree is obvious) as a strategy to protect their turf. Or perhaps it is just words from the wise?
- cmelbye 12y agoI read those comments as "it's not going to happen overnight." There's a lot of code written in Obj-C that will stay in Obj-C for a while. Many people don't even have time to learn Swift right now, and don't need to.
- Osmium 12y agoIf for no other reason, the sheer amount of Objective-C example code out there is reason enough why having Objective-C literacy is a emphatically a Good Thing. I've found a fun exercise while learning Swift is to re-write Objective-C examples line by line and see how much terser you can make them. The end result is usually worth it, and when it breaks it's always insightful.
- threeseed 12y agoI think you might be confused. Most professional and experienced iOS developers are working for established startups or enterprises. As such they are dealing with existing Objective-C codebases that they continually add new features to. It's nothing to do with protecting their turf just the realities of working in the industry. So if you are planning on making iOS development a "career" then learn Objective-C first. If you are creating your own startup or playing around then learn Swift first.
- myko 12y agoWell, I think it is wise at this point to learn some ObjC if you're just starting out with iOS development. If you plan to interface with (and therefore potentially debug) any 3rd party code it will be pretty important to know. Also many (most) iOS examples will be written in ObjC. The bridging between Swift and ObjC will remain important for awhile I'm sure. So, in my opinion it is words from the wise - I'd still recommended focusing on Swift for experienced developers jumping into iOS development, but understanding the ObjC underlying just about everything one will do in Swift is important.
- pohl 12y agoIf you had to estimate how long it would take for the community to start producing code exemplifying whatever "idiomatic swift" turns out to be, how long do you reckon it will take?
- wiremine 12y agoGreat article. Swift is one of those rare opportunities where the barriers to entry are reset, and any dev willing to put in the effort can be rewarded. Feels like Java felt 17/18 years ago, but only much more accelerated. The big, BIG difference is you need to commit to a single platform, whereas Java ran/runs on Windows, Mac, Linux, etc. Swift isn't a language that opens your mind like Lisp or Haskell, but it seems like it is a language that can reset a career.
- webwielder 12y agoYou mean "Java ran/runs poorly on Windows, Mac, Linux, etc.", right?
- _pmf_ 12y agoHaha, a snide jab at Java. How intriguingly novel!
- 72deluxe 12y agoYeah, but I remember in 1995 and afterwards where Java products popped up and applets appeared in every webpage, and it was truly slow, particularly for paupers still languishing with small amounts of RAM. Anyone remember JBuilder? Things have probably changed significantly from then, but I do remember it being slow. Compared to today's generation who get frustrated when a webpage doesn't appear within about 3 seconds, they would lose their mind if they were transported back to 1995 (with the general speed of everything being slower).
- interpol_p 12y agoI've been developing a mid-sized project in Swift since its release. And while the language feels new and interesting, the only thing that matters (and has remained largely the same) is the Cocoa touch API. One's career is built more on knowing the ins and outs of the significant collection of frameworks provided by Apple, not the language. The language can be used to explore new design patterns and implementations, but it's really the API that makes it capable. I think Swift is as much a barrier to entry as Objective-C (i.e., not a very big barrier). The hard part is knowing the APIs available, when to use them, how to use them, and how not to use them. That has not been reset with the release of Swift; in my experience with the language so far.
- amtab 12y agoI think this post makes a valid point, and I also think it's important to remember that Objective-C has also been changing incredibly fast during the Apple's meteoric rise and the accompanying developer interest. Swift did not come out as fully baked as some might like, but Apple made the right move releasing it sooner rather than later. Forcing developers to use a language with as much baggage as ObjC couldn't continue, particularly when compared to the much preferred web languages. ARC and Storyboards were big changes but with the amount of headaches developers have suffered dealing with the App Store, they needed something exceptional to keep old talent and bring in new I believe. I'm excited to see how fast Swift can be baked, but just judging from HN / Reddit it is earning Apple a lot more developer love than any time in recent memory.
- msoad 12y agoI'm learning Objective-C and want to learn Swift when it become 1.0. I don't care how small share of Apple from software cake will be, I love working with this highly polished platform.
- ynniv 12y agoApple once told us that the best way to write applications for the iPhone was using web pages. Caveat emptor.
- legulere 12y agoA counterpoint: Swift is actually quite conservative and only uses features that have been proven useful in other programming languages before.
- alexthomas 12y agoSince I started with my online business I earn $58 every 15 minutes. It sounds unbelievable but you wont forgive yourself if you don't check it out. ▂ ▄ ▅ ▇ LIFETIME OPPORTUNITY ▇ ▅ ▄ ▂ ▁ >>>>>>>>>➜➜➜➜➜➜➜ ➜➜➜➜➜➜➜➜➜➜➜➜➜➜ WWW.PAYRAP.cℴm
- ninjakeyboard 12y agoLooks like scala to me - not so half baked.
- Alex-Galapagos 12y agoSwift isn't stable yet.. You can't do big projects in it.. We did some stuff in Swift..but it's not something that can be scaled as of right now
- r00fus 12y agoWhat were your scaling issues in particular?
- Alex-Galapagos 12y agoWe learned Swift right after it came out , then we realized that it's just not mature enough and stopped our project
- Derbasti 12y agoIt is incredibly risky to release this unto the world without having tryed it internally. I hope they can iterate quickly enough to iron out the most glaring problems before the language is ossified by the amount of code already written in it. Otherwise, we might just get stuck with something half-baked that never had a chance of growing up before widespread adoption.
- serge2k 12y agoThen in 20 years people will convert everything under the sun to run in it and claim it's the new assembly.
- acqq 12y agoThe article actually states that all the API's are the old ones. And not so long ago most of the posts here were that Swift is "too conservative." I claim that Swift is very good selection of more modern stuff on the tried and tested base. It doesn't even depend in GC and VM. It's great in its conservativeness.
- interpol_p 12y agoIt seems to have been used internally for some time. The public WWDC app was written in Swift, and many Apple engineers had moved to using Swift entirely by the time it was announced. The most glaring problems exist in the IDE support for the language, not the language itself. There is minuscule risk of Swift not gaining widespread adoption amongst iOS and OS X developers.
- gomesnayagam 12y agoit is premature baby
- markcrazyhorse 12y agoHere is a good resource to learn: http://ios-blog.co.uk/swift-tutorials/ http://ios-blog.co.uk/swift-tutorials/
- Aardwolf 12y ago"I Don't Know Swift" So? Neither do I, and since it's a language for one specific platform, chances I will are not that high. What's the big deal with it, that there are so many articles about it?
- mushishi 12y ago"If you’re reading my blog, there’s a decent chance that I know more about Objective-C than you do. I have opinions about it. You should take them seriously even if you disagree." That's a weird way to start an article. I was hesitant to read the rest. And the rest of it was a mixed set of odd arguments, e.g. "I predict with great confidence that Swift will be TIOBE’s language of the year." I have no idea why would I be interested on your prediction on a not-very-useful index. I don't even understand his argument: he is complaining that normally languages are evolved in small circles before publishing, and says that Swift has come naked, half-baked, to the world but then also remembers to say it isn't even released (!)
- jug6ernaut 12y agoAgreed. I came away from this thinking "wtf did i just read?" 1/2 of it seems like him saying how Swift should have been reviewed more before release then him saying he expects greatness. With no real grounds for the latter, except that he has a lot of experience with Obj-C. Not that I have an opinion either way, i have not personally looked into Swift(and know very little of Obj-C). Just seems like he didn't even know where he was going with this article.
- peteretep 12y agoDid you just read the first half of the article? The rest of it is the main point. Given that it's likely to be very very popular, and nobody can claim to be an expert, you can be one of the most knowledgeable people in the world about it by getting in now. Want to be the author of a very popular framework in a very popular language? Write a framework now in Swift.
- mattgreenrocks 12y agoThese are exceedingly poor motives. Write a framework in Swift if the abstractions it introduces are considerably better and more conceptually complete than the existing tools. Otherwise you're not really improving things, just piling on more crap for people to learn.
- 12y ago
- blisterpeanuts 12y agoAs a mostly-Java, Android and web apps type of developer who's only recently gotten into ObjectiveC iOS app development, I have two questions for the community: 1. Will Swift be cross-platform or is it going to be strictly for MacOS X and iOS app development? 2. Will Swift apps run on older versions of OS X and iOS? I've seen differing opinions (e.g., http://stackoverflow.com/questions/24001778/do-swift-based-applications-work-on-os-x-10-9-ios-7-and-lower http://stackoverflow.com/questions/24001778/do-swift-based-a...)
- jamieomatthews 12y agoPersonally I think Swift could really change things for apple if it could be used for server side scripting. An integration with core data, and you could easily share Models on the client and server side. It would make it a no brainer language to use for a mobile app, because you could kill two birds with one stone. To date however, apple has made no comment about cross platform development
- Touche 12y agoBut you'd have to use Mac servers, right?
- jamieomatthews 12y agoUnless they open source it, yes. Knowing apple, I feel that they would have an off the shelf solution that you could just push code to. Almost like a parse type solution, integrated through Xcode.
- rsynnott 12y ago1) Possibly. It seems likely that it'll be open-sourced sooner or later, like Clang was. Everything said by Apple people has been cautiously positive on this front. However, it doesn't have much of a standard library as part of the language itself at the moment, being heavily dependent on Cocoa stuff. GNUStep/Cocotron could presumably be used. 2) Yes; Swift apps run on iOS 7 and up, and MacOS 10.9 and up. There currently seem to be some bugs which turn up on iOS7 but not 8 or vice versa, but Swift is quite buggy in general at the moment, and this will probably be cleaned up.
- iwaffles 12y agoThe article starts off by setting a negative tone. "If you’re reading my blog, there’s a decent chance that I know more about Objective-C than you do. I have opinions about it. You should take them seriously even if you disagree. " It's confusing when trying to understand his point and in all fairness I don't think it added to it. Even the title is a bit self-serving after reading the opening paragraph, "I don't know swift" can be loosely translated into, "I don't know it so it must be new." He makes a good point that we can help grow swift into a better "fully-baked" language by contributing. I think the article would have been much better without the first paragraph. I think there would be less confusion amongst readers and would have set a lighter tone.
- 59nadir 12y agoI think the sentiment of this piece is very sound, but I don't know why I would ever expect anything out of Apple to be up to me to change. I've never known them to listen to anyone about anything and I don't know why this is an exception, even if listening would make sense. Most likely a lot of people have already told them that Swift being limited to one platform is a massive mistake and if they're not listening to that I'd rather just give up on them now.