(Part 2) Top products from r/swift
We found 22 product mentions on r/swift. We ranked the 39 resulting products by number of redditors who mentioned them. Here are the products ranked 21-40. You can also go back to the previous section.
22. ADATA USA Ultimate Su800 1TB 3D Nand 2.5 Inch SATA III Internal Solid State Drive (ASU800SS-1TT-C)
Sentiment score: 0
Number of reviews: 1
New generation 3D NAND technologyR/W up to 560/520 MB/sDynamic SLC Caching and DRAM Cache Buffer for optimized performanceRAID Engine & Data Shaping for ultimate protection3 Year Warranty
23. Clean Code: A Handbook of Agile Software Craftsmanship
Sentiment score: 1
Number of reviews: 1
Prentice Hall
24. iOS 7 Programming Pushing the Limits: Develop Advance Applications for Apple iPhone, iPad, and iPod Touch
Sentiment score: 1
Number of reviews: 1
25. Cracking the Coding Interview: 189 Programming Questions and Solutions
Sentiment score: 1
Number of reviews: 1
26. Swift in 24 Hours, Sams Teach Yourself (Sams Teach Yourself -- Hours)
Sentiment score: 0
Number of reviews: 1
27. Head First Design Patterns: A Brain-Friendly Guide
Sentiment score: 1
Number of reviews: 1
100% Satisfaction Guarantee. Tracking provided on most orders. Buy with Confidence!A brand-new, unused, unopened item in its original packaging, with all original packaging materials included.High seller positive feedback for the seller!Lowest price on amazon!
28. Writing Compilers and Interpreters: A Software Engineering Approach
Sentiment score: 1
Number of reviews: 1
John Wiley Sons
29. Mindstorms: Children, Computers, And Powerful Ideas
Sentiment score: 0
Number of reviews: 1
30. iOS Auto Layout Demystified (2nd Edition) (Mobile Programming)
Sentiment score: 0
Number of reviews: 1
31. iOS and macOS Performance Tuning: Cocoa, Cocoa Touch, Objective-C, and Swift (Developer's Library)
Sentiment score: 2
Number of reviews: 1
32. Cocoa Programming for Mac OS X (4th Edition)
Sentiment score: 1
Number of reviews: 1
34. Don't Make Me Think: A Common Sense Approach to Web Usability, 2nd Edition
Sentiment score: 2
Number of reviews: 1
test
36. Introduction to Computation and Programming Using Python: With Application to Understanding Data (The MIT Press)
Sentiment score: -1
Number of reviews: 1
Mit Press
37. Introduction to Algorithms, 3rd Edition (The MIT Press)
Sentiment score: 1
Number of reviews: 1
Hard Cover
I really don't have a favorite. All language suck; it's just a question of finding the one whose suck is the least poorest fit for the problem you're trying to solve.
One reason I rather like meta-languages - that is, languages for constructing languages; Lisp being the canonical example - is that if you can close that disjoint gap significantly before you even start writing your solution, the rest of the exercise will go much quickly and smoothly. Of course, learning to write good DSLs is quite a curve in itself, not aided by the lack of shared expertise and prior art that comes from have a mass modern pop programming culture whose idea of improving efficiency is to bang the rocks together faster.
Right now I use Python to develop my own special-purpose kiwi automation language and toolset (my day job), and Swift for a novel new general-purpose scripting language and re-treaded macOS automation library I'm irregularly working on as personal side projects for now.
I'm using Python cos it already provides the libraries and dynamism I need for the former, Swift cos it's rapidly accummulating the audience size and long legs I want for the latter; i.e. pragmatic logistical choices. I'd love to have a big meaty project I could do all-declaratively (e.g. using ML/Haskell, or even something more exotic), my currently works won't quite fit that mould, but perhaps in future. At least kiwi's partly-declarative, which goes some way to helping me explore and learn how and where automating away repetitive scutwork can and should make the language's user's life easier and more productive (e.g. memory management in garbage-collected/ref-counted languages such as Swift, determining appropriate order in which to perform operations in non-sequential languages such as Haskell, describing highly specialized powerful operations in extremely concise simple code in custom DSLs build on metalanguages such as Lisp).
...
One link I think you'd like to check out:(from here) is one of Alan Kay's more recent explorations in how to make computing suck less not by increments but by magnitudes:
https://github.com/damelang/nile/wiki/socal.pdf
Its given title—"The Nile Programming Language: Declarative Stream Processing for Media Applications"—is perfectly appalling in its uselessness. (Alan may be a brilliant technical visionary, but his sales skills suck. And his visual design skills are even worse so you'll need a tissue to mop up your eyeballs after reading that PDF, but it is worth it.) The presentation really should've been called "How to Write a 10KLOC Program in 100 Lines Or Less!", because the project's true goal is to explore how to get a 10X reduction in code size and complexity just by using a meta-language to build a task-specific language and the writing your program in that. (The Gezira program example uses a task-specific language written in another task-specific [meta-]language written in the original meta-language to obtain a 10 10 = 100X reduction in total.)
Alan Kay is one of the most fascinating explorers in HCI to follow, and still alive and working too! (We're really running short now!) iI's a shame he hasn't tried harder to transform ideas and technology POCs into living Products and communicate successfully to everyone else just what these products really are and how each of us can make them work for us. (If you think Alan Kay's achievement is giving us OOP, you're probably the sort who thinks of Doug Engelbart as inventor of the mouse. None so blind as those who aren't paying attention.)
Plus my always-obligatory link to Papert's Mindstorms, which'll tell you what Logo was created to be (an open-ended, universally accessible platform for enhanced Computer-Aided Thought, and hand it to every person from 8 to 80 to self-build and grow her own perfectly tailored toolbox that serves her needs and fits her interests), as opposed to what Logo got sold as by the time entrenched interests, impermeable mindsets, and Chinese whispers reduced it down to by the time it got real-world deployment ("Good morning, class, today we will learn to write loops…").
...
My own language development work of the last decade convergently evolved quite accidentally to roughly where Papert was already at before I was even in diapers. Since then I've taking a lot* more interest in the non- and pre-C/Unix history of computing and discovering it's an absolute treasure trove of exciting, unorthodox, and yet almost entirely untapped ideas.
So I figure if all the big fat lazy pussycats of today's programming culture are all too incurious and complacent to pay it any heed, or even know it's there(!), than that's just more 100% free opportunities to collect every dusty genie lamp I can find and polish them up for my own personal profit and glory; and maybe put a few more noses out by empowering several billion other "ordinary pidgeons" just like me to get in on their cozy little "programming" hustle too... ;p
Practically, you can use Swift for anything where you would use Objective-C, but there are a few situations you might use Objective-C and a few times you must Objective-C.
However even with the above, Swift is a better choice for new development. Apple has decided Swift is the future and is heavily investing in it. Performance is improving with Swift, the language is generally source code compatible for the last two years at least, and every year, more of the few remaining Objective-C only APIs have a Swift overlay.
Hi Jaspar,
Note the following:
You make some great points about good practices, especially in online tutorials. I see so much horrendous code out there posted on forums by beginners and it just makes me sad. It isn't their fault (or at least not entirely).
I wrote two editions of a Learning Swift book before I burned out (they are pretty out of date since even the second edition was only written for Swift 2). I got great feedback on them but it is INCREDIBLY exhausting and complicated to present good programming practices along side practical learning. I definitely developed a new respect for text-book writers.
There is also a reason that beginning computer science classes start on the command line learning data structures and algorithms before ever diving into UI. However, I also don't think everyone needs to dive that deep to get something useful out of programming. I don't know what the solution is, but there are certainly thousands of people trying with online courses, tutorials, boot camps, universities, etc.
I know you pointed out that you're interested in OS X, not iOS, but the reality is that most of the good, up-to-date materials on development for the Apple ecosystem are centered around iOS.
There is a Big Nerd Ranch book on OS X development with Objective-C, but it's from 2011. The advent of Swift should give publishers an incentive to update their material on OS X development. A new, Swift-oriented version of the book I linked above is slated (as per Amazon, anyway) for release next month. I look forward to purchasing it myself.
raywenderlich.com also has great tutorials. Most are iOS-oriented, but I found a couple for OS X:
Getting Started With OS X and Swift Pt1
Getting Started With OS X and Swift Pt2
Getting Started With OS X and Swift Pt3
Core Controls and Swift Pt1
Core Controls and Swift Pt2
Don't get discouraged about your lack of experience. The fact of the matter is that app flow in the OS X and iOS realms is not easy to understand at a glance. I can assure you that everybody who writes software in the Apple ecosystem was once confused about the same exact issue.
I LOVE shopping online for books, so here are my recommendations:
There are (in my opinion) no good Swift specific algorithm books out. The reviews for the available books are pretty bad.
PS: Grokking Algorithms is available through https://www.safaribooksonline.com/. They have a free 10-day trial.
This is a really good and easy to read book about design patterns.
https://www.amazon.com/Head-First-Design-Patterns-Brain-Friendly/dp/0596007124/
Gives you a good idea about basic concepts.
Advanced Swift is the only book I know that addresses your needs. I'm in the same boat. I decided to just start learning compiler architecture and programming languages. After Advanced Swift, (I got a book on writing a Pascal compiler in Java)[http://www.amazon.com/Writing-Compilers-Interpreters-Software-Engineering/dp/0470177071]. Next, I'm going to find a general purpose programming language text book to read. All the while I'm going to work on my C++ understanding.
After that, I should be competent enough to dive into the open source Swift project.
Here is a great book to start with:
https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/ref=pd_lpo_sbs_14_t_0?_encoding=UTF8&psc=1&refRID=VYKNSB6ZE37T8GSP8GKY
Stay active in the Swift community. Finish the test app, add features, experiment with UI, etc.
This guide will get you started with testing in Swift 4. It'll help you get everything set up properly and show you how to write your first tests in Swift. If you want even more depth, you could try Test-Driven iOS Development with Swift 4, Test-Driven iOS Development (Objective-C), or the seminal book, Test-Driven Development: By Example which uses Java.
If you haven't heard of it already,I'd recommend The Programmers Bible. The one and only book you'll ever need for writing consistently clean code.
Advanced topics. We're flooded with entry level stuff, don't need more of the same. Advanced isn't just digging deeper into things that re-define the language, we have tons of protocol programming and overriding operators.
There was a "pushing the limits" book years ago... make one like that.
https://www.amazon.com/iOS-Programming-Pushing-Limits-Applications/dp/1118818342
Stopped at iOS 7, make a new version that covers modern things.
I learned a fair amount from Swift for Beginners. It went off into the weeds occasionally with some advanced stuff, but it gave me enough of a base so that I can now work my way through Apple's Language Guide, and am absorbing that stuff without getting overwhelmed.
This book, updated for Swift.
I have just started Erica Sadun's iOS Autolayout demystified book. That might be a good next step for you. https://www.amazon.com/Auto-Layout-Demystified-Mobile-Programming/dp/0321967194
Edit: Sorry, I have just realised that this is a Swift stub, and the book is in Objective-C ... :/
Why not just get a book on Swift?
The best two books that you can add to you list are going to be release in December 2015:
Dec 21, 2015
http://www.amazon.com/Swift-Programming-Ranch-Guide-Guides/dp/0134398017/ref=sr_1_1?s=books&ie=UTF8&qid=1449670522&sr=1-1&refinements=p_n_publication_date%3A1250228011
Dec 21, 2015
http://www.amazon.com/iOS-Programming-Ranch-Edition-Guides/dp/0134390733/ref=pd_bxgy_14_2?ie=UTF8&refRID=01375BDKNPMY4DPRYDSM
I'd learn python. There's much more material to learn from and much higher quality material. Reading any material that teaches Swift will only attempt to teach you iOS relevant material. You won't learn algorithms, you won't learn programming concepts, you won't learn computer science. So you'll be restricted by your lack of foundational understanding. I'd read this book first.
I had been programming iOS relevant stuff for a year before I even learned what an algorithm actually was since iOS relevant content was so app centric. Guess who bombed an interview with Google because of this.
The other book I suggest, to make it more fun, is this. A combination of Guttag and Swiegart will provide a much better foundation than any book written on Swift would.
Also, Python is MUCH easier than Swift. Swift has a feature called type safety is a blessing when it comes to writing quality code, but it makes writing code harder as you always have to conform to a very strict set of rules. Python completely ignores type safety and will just fail and explain why you failed when you do something illegal.