Swift 1 or Swift 2?

Discussion in 'iOS Programming' started by Gildarts, Jul 8, 2015.

  1. Gildarts, Jul 8, 2015
    Last edited: Jul 8, 2015

    Gildarts macrumors regular

    Joined:
    Oct 20, 2014
    #1
    Hi everyone,

    I've taken it upon myself to learn iOS programming this summer. I have 0 knowledge about it and my math sucks. Nevertheless I'm committed to make it work.

    Apple has so kindly made documentation available via iBooks. There's the original Swift book and there's a new one called "Swift 2 Prerelease".

    Should I start with the original and then read Swift 2 or should I just start at Swift 2?

    I've looked at them both and there are some slight differences (in the first few pages). I'm not clear on whether Swift 2 is an update or an entirely new release.

    I greatly appreciate any help.


    Update: I should add that I've been playing around with the examples in Swift 1 and downloaded Xcode 6.4 from the Appstore.

    Apple's developer page seems to suggest that Swift 2 is only available with Xcode 7.

    I don't know if I'm reading that right but that's the impression I'm getting see: https://developer.apple.com/swift/resources/https://developer.apple.com/swift/resources/

    So....? Stick with Swift 1?
     
  2. larswik macrumors 68000

    Joined:
    Sep 8, 2006
    #2
    IMO don't start with Swift. It's a less wordy language which is nice but it is so new it will change a lot. While you are learning you want stability. When I took a intro to programming class they were teaching a dead language called Pascal. The basic concepts that you will learn will transfer to all other languages, its those core skills you need. I would start with C or Python and make command line programs till you get the basics down. Then move to an object oriented language and get your feet wet there. I spent 1 year working with C and objective C before I ever bothered to write a GUI app.

    If you suck at math (like me) work slow. Forget about making an iPhone app (if that is your plan) for now and learn the basics. Took me a year to move past the basics and start my first app, may take you less time or longer then me. I have been there, I know.

    I read the book "Learn C on the Mac" and used this forum to ask questions. After took a class at my city college.

    Just my 2 cents, good luck.
     
  3. Gildarts thread starter macrumors regular

    Joined:
    Oct 20, 2014
    #3
    First of all thanks for the tips. My apologies for getting back to you so late.

    I'm gonna keep going with Wwift but I will add some other languages to my curriculum (c, objective c). What you said is probably true. And it won't hurt to know more than just 1 language. It will probably increase my value if I ever would want to go full time with it.
     
  4. Ne0the1 macrumors member

    Joined:
    Jan 5, 2013
    #4
    Hi i'm having the same issue. Did you find out, if swift 2 is a completely refined language, or if it's just a few adjustments to swift 1.

    Also, is it best to learn swift 1 before 2? or just go straight for 2?
     
  5. Gildarts thread starter macrumors regular

    Joined:
    Oct 20, 2014
    #5
    I found out that Swift 2 can only be used with the newest version of Xcode (which is a newer one than you can download from the app store). So I've decided to stick with Swift 1 since I'm not willing to run beta software on my main (and only) machine.

    I don't think Swift 2 is the completed refinement of the Swift languages. I'll think we'll see more new versions. Craig said they're continuing to work on the language so.

    For me I'm sticking with Swift 1.

    Edit: Also note that the Swift 2 book is a pre release and might still change.
     
  6. ArtOfWarfare macrumors 604

    ArtOfWarfare

    Joined:
    Nov 26, 2007
    #6
    I've found Swift is a needlessly complicated language. There's not a lot of libraries for it and there's not a lot of community around it.

    Python is a much better first language than Swift because it has none of the issues I listed above.
     
  7. larswik macrumors 68000

    Joined:
    Sep 8, 2006
    #7
    Go with what ArtOfWarfare mentioned above, or even C like me. Start with something that is well established and has been around a while. Starting with Swift is not a good idea since it is changing a lot since it is new. The goal for you is to understand the code, and then how to use it to create things. You should do that as simply as you can to better grasp it. You will probably understand Swift better later on, if you start simpler. My 2 cents since I struggled at one time learning the fundamentals. Good Luck
     
  8. Gildarts thread starter macrumors regular

    Joined:
    Oct 20, 2014
    #8
    May I ask how long you've been learning swift? Any creations yet or still learning the ropes?

    How do you feel about your C skills? Are you a master or advanced level?
     
  9. larswik macrumors 68000

    Joined:
    Sep 8, 2006
    #9
    I don't think you ever master programming, you just get better and better at it. It's like trying to master Chess. You might be the best chess player in your high school class but then be the worst when you hit college.

    I was excited to start Swift but then put it down for now till it become more standard. C and Objective C I would say Advanced. My first mistake when learning to program was wanting to make a GUI program and started with the Kochan book on objective C. I got lost real fast and gave up for a while thinking it was hard.

    I started off with C a year or so later and it was a struggle but as you read, learn and ask for help here I started having those "AH HA!" moments where you understand. As you start to get it it becomes easier. C has it's limits. You really can't make GUI programs with it. It is console based which is simple. I made little console based games as I was learning like hangman, guess the random number and the computer would tell you if you were high or low and then track how many guesses it takes to get the right number. What I learned there is how the logic flows through the program and how things work.

    C keeps you kind boxed in. What I mean by that, you won't be creating any GUI's with it or dealing with any object oriented concepts its just pure code. Understanding the tools as I call them in C like If statements, for or while loops, arrays is one thing which is kinda easy when you see what they do. But then the hard part is using those tools to make a blackjack game, How the heck do you do that?

    I kept saying C but Python is also good. They are established languages and everyone here can help you with those.

    I am passionate about these responses since I struggled in the beginning to.But once the basics fell into place it made object oriented concepts MUCH easier to understand.
     
  10. Gildarts thread starter macrumors regular

    Joined:
    Oct 20, 2014
    #10
    Wow. thanks for elaborating! Are you just programming for fun or are you doing it professionally now? (If I'm asking to many questions let me know).
     
  11. larswik macrumors 68000

    Joined:
    Sep 8, 2006
    #11
    I have a day Job that is not programming. I got into programming because I always wanted to learn and now I make little helper apps for myself for OS X and IOS. I enjoy learning and a great Friday night for me is home writing code.

    Figuring things out is a brain challenge, it's like putting tougher a puzzle. I can see the finished puzzle on the box cover but I need to find all the pieces and put them together in the right order.

    Years ago when I wrote my C blackjack program I had the week off between Christmas and New Years. I spent 12 hours each day for a week to get it working right on the console. Now I could rewrite it in about 1/2 day, the code was ugly but it worked! After that I started to read an Objective C book and began that journey. Learning what an object is when you don't know the difference between an 'int' or 'long int' just makes the journey harder.

    If you learn C first skip things like memory management. I know programmers will scold me here but as you get into object programming these things are taken care of for you. Learn about structs, arrays,scope, primitive data types and the different tools like the If statement and while loops. When your ready to move away from C or Pascal write a basic blackjack game to test your skills. My blackjack game code was UGLY!!! but it worked.

    These days I try and write good looking, less wordy code. Right now I am reading a book called 'Clean Code' which is a good book if you already understand coding.

    It's fun, It's challenging, I love it.
     
  12. Gildarts thread starter macrumors regular

    Joined:
    Oct 20, 2014
    #12
    Do you have like an engineering or math background? If so, do you feel that that has helped you in learning code?

    It's awesome that you taught yourself how to write code. Much respect.

    What kind of helper apps have you made so far?
     
  13. larswik macrumors 68000

    Joined:
    Sep 8, 2006
    #13
    I don't have a math background. Basic algebra. With some programs I need to search the web to figure out the math. I made one program a while back that needed Canon Ball math gravity and velocity and such. Found great youtube videos that talked about it.

    I wrote one program last year that finds all the .mov files on my Mac. I shoot commercials for the most part. I wanted to build a database to find clips more easily. So the app scans a hard drive for the video files, then grab a poster frame and add it to a tableView. Then I go through the tableview select a clip and add meta data to it. So later if I need footage from a vineyard I can just search the app for keywords like grapes, wine, vineyard and so on. This way I can pull from footage I shot years ago that I might have forgot about. That program didn't require any high math levels.

    But I will say that after learning C I also took a class at a city college, intro to programming, and that filled in the blanks that I missed with C. Success = Good Book + This Forum + Time;
     
  14. grandM macrumors 6502a

    grandM

    Joined:
    Oct 14, 2013
    #14
    First of all I'd advise not to dive into objective-C or C. Stick to swift. Bitfountain.io has a free video course on swift 2. Lol and if you dive into C do take C# unless you want to type &&&variable ;) Yes I wrote three of them :p
     
  15. Gildarts thread starter macrumors regular

    Joined:
    Oct 20, 2014
    #15
    LOL, this thread is becoming pretty confusing. Everybody has different advice. So what's your reasoning for yours?
     
  16. grandM, Aug 11, 2015
    Last edited: Aug 11, 2015

    grandM macrumors 6502a

    grandM

    Joined:
    Oct 14, 2013
    #16
    I agree with the others about old languages being better documented. Timewise it is better to learn swift. Learning A to learn B easier is great when you have a lot of time. Say you want to develop for iOS you basically have 3 choices. Objective-C, swift, Xamarin. The latter allows you to export to android and windows too. Xamarin is definitely an option. Objective-C lets you understand programming better but at high a price. It throws the concept pointer at your head. Pointers are essential tools but so is a circuit in your microwave. Swift will vaguely speak about pointers but fix them behind the scenes. This fixing enables you to concentrate at heating your dinner being GUI and programming. To understand the Kochan book C insights were great as you could not escape pointers. With swift you can focus on the arrays, classes etc. Sure there are similarities between python and swift. So are there between Spanish and English. If your kid needs to learn English I would start with English classes though
     

Share This Page