Re: Language options: Objective-C, Swift, C or C++?
Re: Language options: Objective-C, Swift, C or C++?
- Subject: Re: Language options: Objective-C, Swift, C or C++?
- From: Roland King <email@hidden>
- Date: Sat, 13 Jun 2015 11:56:32 +0800
> On 13 Jun 2015, at 10:32, Carl Hoefs <email@hidden> wrote:
>
> Okay, so now there's Swift. Ugh. At first glance it looks like a throwback to Basic (let x =), so it make me shudder. I suppose I'll hold my nose and learn it, but the main question would be why? Is there some glaring irredeemable deficiency in Obj C that will end its days? I don’t recall anyone clamoring for a new language…
There were many. I saw many and increasing numbers of posts expressing utter frustration with learning objective C in order to program for Apple OS. Whole industries have grown up making it possible to program iOS (for instance) in other languages, a lot of them suck.
>
> What problem/issue/deficiency is Swift intended to address? The mindset I use when programming in Obj C is “pure and simple object orientation”. What mindset am I to adopt in learning Swift? I’m having a hard time getting a “feel” for Swift's orientation. It seems so… syntaxy.
>
My 2c, one problem that Swift is intended to address is that computer science, programming and compilers have moved on and the skillset and expectations of newly minted programmers is for languages with the kind of expressibility and features which Swift was designed for. What do people who learn to program these days learn, at university, or in their bedrooms on Sunday afternoons? I don’t know but I don’t think it’s C any more, it’s Java, and Haskell and a host of others. I’ve been doing lots of embedded programming the last year (Nordic BTLE stuff, in C, ARM Cortex) and I’m sometimes flabbergasted by the questions and posts I see on the dev forums there, people who are completely clueless about C programming, they just don’t get it. If you read enough of these posts you start to see that their expectation of what a programming language is and what it gives you is different.
Before I decided that working for a living was getting dull I worked at a financial firm which had its own in-house financial modelling system. A very good one, a very powerful one, somewhat dated and mostly written in C and C++, but a clear competitive advantage. I know quite a few people who left over the last few years and were lured to other shops to basically rebuild this system. None of them are doing it in C and C++, they’re doing it in python and Haskell (and one lot in C# but I don’t fancy their chances). Why, because those languages and the patterns they use are what the programmers in the market know.
I believe that many programmers who learned their skills recently find ObjC, and C, clunky throwbacks to a bye-gone age. They find them hard to learn, verbose to program in and (again IMO) don’t do it very well. Bad, inefficient, sloppy, security-hole filled code results from those who aren’t turned right off the platforms in the first place. Something new was needed to transition eventually away from ObjC for the most part and let tomorrows programmers get on with the job of writing applications in the kind of typesafe, rich programming languages they’ve grown up with.
I had a rocky start with Swift. No disrespect to the team but V1.0 was incomplete, the tools were a complete horror show and although it did interoperate with ObjC it had so much friction that I found it much slower to use and I dropped it for the little Apple OS stuff I was doing the last year. I returned to it over the last couple of weeks, have been impressed so far with Swift 2.0, not just the stability but the intelligent improvements to the language and the almost unbelievable amount of work which must have been done to the entirety of Cocoa to ‘Swiftify’ it. This years WWDC videos have been super thus far (who’s the guy did the Improving Your Existing Apps With Swift, he was great) and the tone’s different. Last year I felt it was ‘Swift is here, your grandmother could use it, here’s how it works, off you go”. This year, with the benefit of 12 months of bug reports and real-world experience of the problems people have had they are more how to think in Swift, best design practices for using it and much more practical.
I’m a way away from being great at Swift, I still need to think more about protocols and extensions and value types, but I’m getting better, but I certainly see the potential power of it and can do a half-decent job of using it. It’s going to get only better, so am I.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden