I’ve heard a few things today that made me decide to write this post.
This is basically my take on Apples announcement that they have created a new programming language called SWIFT.
Keep in mind, I am not an IOS developer. I may never be… What I do know how to do is build web applications using Ruby and Ruby on Rails.
In general this isn’t even necessarily about SWIFT. Instead it mostly has to do with what I believe to be important about programming, whether you are building an IOS app or an api.
So here goes… here is how I feel about SWIFT.
Syntax Shouldn’t Hold A Developer Back
This is one of the biggest things that immediately surfaced in my mind. I am of the opinion that a person who is working as a software engineer does a couple of things.
Developing an application isn’t nearly as much about writing code as it is about designing the application. Sure, code will eventually need to be written to implement that design, but the most basic part of what an engineer has to work with is data.
The data can then be manipulated, called back and generally used for lots of different things within the application itself.
The job of an engineer is to develop an architecture that will allow those bits of data to be manipulated however they need to be.
Once the architecture is designed there is the “problem” of implementing the design into actual working code. That is when code is actually written. If you don’t know what you are building before you start to code, you should probably be running for the hills.
SWIFT claims to have an easier to read syntax. I’ve looked at some examples and indeed it does appear to be easier to read and understand. Coming from the world of Ruby, I find that to be a really great thing.
A few weekends ago I decided to attempt to build a very simple IOS app with Xcode and Objective-C. I was following a pretty detailed tutorial… and it was still pretty difficult to get anything working. I eventually gave up because the syntax simply wasn’t working.
I am of the opinion that Syntax should be the last thing that a software engineer should have to worry about. One of the reasons that I love Ruby is that it isn’t terribly picky. Sure you still have to do things correctly, but there are fewer parts to the actual syntax. That means there are fewer places to mess up.
This is the same reason I actually like to use white space sensitive things like HAML and SLIM. Yes, I realize I am comparing a very complex langauge (objective-c) to a fairly simple layout language, but the point remains the same… I think…
Giving a developer some space in how they have to write code helps them avoid wasting time in debugging and figure out little errors.
So that, in my opinion, is a major win that is coming down the pipeline with SWIFT.
It’s Called Engineering For a Reason
This ties back to what I’ve said already, but for a person to be a software engineer they must know a lot of things besides just syntax.
If being a back-end engineer was just about syntax I’d have been a pro in about a week and a half. Knowing how to write code will only get you through the tutorials on codeacademy. Knowing the syntax is important, but what you do with that syntax is what makes you an engineer.
SWIFT may be easier to read and write, but you still have to actually build an application.
It’s called engineering for a reason folks.
So… What Do I Really Think About SWIFT?
I’ll make this pretty simple.
If SWIFT can take any focus off of writing code (syntax) and put it on engineering, it will be a win in my book.
Once I finish this Ruby on Rails class at The Iron Yard, one of the things on my list is to try again to build a simple IOS app – using SWIFT.
Who knows, maybe SWIFT will allow me to create IOS apps that talk directly to my Rails api’s! Now wouldn’t that be cool?