After coding, testing and releasing another one of my free apps using Visual Studio 2017 and Visual Basic .NET, a nagging thought kept creeping up on me: How come it’s so easy for non-developers like me to code an app on Microsoft Windows using the platform’s official development framework, while on the macOS ecosystem the same attempt using the corresponding platform’s tools requires you to be at a junior developer’s knowledge level? After all, isn’t macOS promoted as the operating system for non-techie people?
Let me clarify that I’m both an MS Windows and macOS power user, and I’ve coded—albeit, in a very amateurish manner—on both platforms. Let me also point out that I’m a pragmatist, a practical guy that just wants to get down to business and produce an app that will do what I need, in the easiest way and in the shortest time frame. I prefer leaving the theoretical, academic issues of designing an app to all those senior people in IT that seem to have way too much time on their hands for such rumblings (and, for still unknown reasons, seldom produce any kind of quality software).
To speak in IT lingo, what I’m talking about is a simple RAD-like environment that would allow a non-professional, aspiring coder do his/her stuff (in his/her dirty and amateurish ways, of course). For the non-techies, RAD stands for Rapid Application Development. Traditionally, these tools are used by professional developers for mashing up a prototype of their software ideas. It’s like a proof of concept thing, because ideas being what they are, can promise things like flying stealth unicorns with mounted time-warping plasma engines and a Wookiee co-pilot.
It seems that Microsoft has nailed this from the early 90s, when Visual Basic was introduced. Others also succeeded back then at producing similar, though more technical, developer tools (Borland’s Delphi comes in mind), but Microsoft kept on supporting and improving the language and, eventually, merged it into the .NET development framework mega plan. And for those rolling their eyes because they think Visual Basic should not be considered a “real” programming language, or that you cannot produce anything professional with it, let me remind them that the 90s and 00s are full of real-world cases involving oil platforms, ship building, medical institutions, warehouses and Point of Sales (POS) systems, just to mention a few. Furthermore, Visual Basic has a more natural syntax flow, resembling more closely the English language, allowing non-professional coders to understand and use it more efficiently. It’s more natural stating “username is a string” (Visual Basic: Dim username As String), than “string is username” (Objective-C: NSString *username;). I mean, come on, we humans do not talk like Yoda, right am I?
So, on Microsoft Windows, the Visual Studio + Visual Basic .NET combo is an ideal way of quickly coding your solution, regardless of your programming experience level.
Camera pan on macOS. You have this neat operating system with a very intuitive, consistent user interface that follows one of the industry’s most strict—but logical—UI guideline available out there. On top of that, add the fact that macOS has always been the go-to platform for non-technical people or techno-phobic hipsters out there, who need a straightforward, pristine computing environment to work in. What I mean is, you could place your great-grandmother in front of it, and she’ll still be able to access her Facebook account in a jiffy. So, why on earth, doesn’t this great, sensible operating system have the most simple, intuitive, non-technical software creation framework available?
Why can’t I simply create a project, drag-and-drop my UI components (a label here, a button there, a checkbox further up, a drop-down list further down), double-click on each one and add a few lines of simple, self-defined code to make them interact with the user? Why do I have to bother with weird, unintuitive shortcut schemes like holding down the Control key, clicking on a UI element, dragging it from the left hand-side to the right hand-side and dropping it on an empty line under some weird text like @interface or @property, and then start coding some mumbo jumbo in another random-looking place just to make the simplest interaction for my app? I assume this complexity is needed somewhere, why else would the richest company in the world go through all the trouble to create and sustain it in the first place, right? Right? Either way, I don’t need it and definitely don’t want it.
If anyone from Apple is reading this, you guys rock but it’s time we made computers fun again. The technology is there. The knowledge too. You’ve perfected the hardware design and form. It’s time you revolutionized the software creation process. Time to think different. The crazy ones await you.