April 30, 2019

Learn the Platform

I used to be a web application developer.

I can certainly still develop for the web. I can create a web application using a framework, wire up the Javascript framework, and pipe the necessary data from the backend using a myriad of languages and tools.

But I don't consider myself a web application developer anymore. It's certainly a valuable skillset, even a necessary skillset, but I've moved on.

There was a time when I was really excited about web development, design, and all things that pertain to the area. It was fascinating, at the time, but I always felt limited in my capabilities, due to the fact that given the choice between a native app or a web application, I preferred a native app every time.

Screen Shot 2019-04-30 at 4 51 04 PM

Of course, being a web developer, I looked into many options wherein I could leverage my skillset to create native applications. There were many options, and I was hopeful about all of them.

I had a hammer. So I tried to use the hammer.

And then.

And then I actually used them.

They were all awful.

This was years ago, when PhoneGap was new. Before React Native. Before Electron. When Sencha Touch was seemed like it might be a great product. (It's not. Dear goodness, it's not)

But I learned my lesson.

If you want to create an application on a platform, LEARN THE PLATFORM.

It's that simple.

Now, you could create a native application using Javascript. Theoretically.

However, if you want to create a nice product, you're still going to have to learn the underlying aspects of the platform, in spite of whatever niceties the framework adds to abstract away the details.

Not to mention, the other lesson that is important for every developer to learn:

Where there is software, there are bugs.

The amount of bugs may be below the threshold where you care, but there are still issues to be addressed. Perfection that is not achieved.

So, the platform you're targeting will have bugs. And your intermediate javascript-based layer will have bugs.

Have fun with those intermediate bugs, the ones that are getting in the way of creating an actual product. Those issues that will eat away at your time, and leave you thinking, "Is this really worth it? How much more time, or less, would it take to learn the tools and language that I'm trying to bypass?"

These days, I just spend the time to learn the platform.

Sure, it takes time up front, but you either pay the price right now, or pay the cost forever, every time you want to do anything.

In software, there are no shortcuts.

Pay the cost now.

Learn the platform.

comments powered by Disqus