> On 13 Jun 2015, at 10:32, Carl Hoefs <newsli...@autonomy.caltech.edu> 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 (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to