The real man codes in Assembler!

Alfredo Bollati
BeeReal
Published in
4 min readJan 23, 2018

That’s what Professor David Brailsford from the University of Nottingham said in an interview with Brady Haran. Prof Brailsford is nicely explaining how C programing language had such a big impact and how the debates were often to start when this language made it’s appearance.

Along with Operating Systems evolution from being 8 to 16 and 32 bits later, it became possible to start grouping behaviour to be able to develop at a faster phase in exchange of giving up computing performance. Some people thought: it is ok to give up some execution speed if the time we are saving by not having to develop similar behaviours is relatively and most importantly economically convenient. C was it.

Prof Brailsford tries to makes us understand why we need to pay attention to the history, we just need to look back sometimes to see what common mistakes have been done. It happened many times that a technology steps up and a portion of the computer science community sees it’s flaws more than it’s advantages. Probably many developers at that time (the 70’s) were saying ‘The real man codes in Assembler!’ implying that certain things can only be done in that kind of programing language, and yes everything at some point becomes Assembler or some Assembly Language ( the first layer of human readable code in a computer). However C has proven wrong all those people.

A lot of things can be done in high-level languages instead of low-level languages. The two parts of the trade-of are: faster development against loss of performance. And again, yes, it’s ok. I’m sure that you have heard silly statements like “if you want to make a real application you make it native” or “the web-mobile along with hybrid applications are toy applications”. This is completely wrong.

Gordon Moore states in his law:

“the number of transistors in a dense integrated circuit doubles approximately every two years” this means that hardware is evolving at a really fast rate and it continues to do so. We as software developers have to fulfill the requirements that users are looking for in this new era. I follow that philosophy, if it can be done faster and it accomplish the feature that needs to perform (in a scalable and elegant way) for sure is a great option. In web development for example time is one of the most important factors for survival.

Me as a web developer, and having the opportunity of being part of a hybrid Application project, feel like i’m working in a very new and challenging environment. However technology doesn’t stop and we need to have our eyes wide open for new signs of improvement.

Internet has taken a big part in society in the last decade and I don’t think we even realize how big this impact is. People spend a lot of time in front of screens, phones particularly and internet specifically. People lay their lives into the web and into a mobile device.

One co-worker of mine, David, one day mentioned something about some new technology. He was talking about how the web development has really gone into the mobile development. At first I thought he was talking about what I have been using (Cordova, Ionic), but then after listening a little more in detail it really was a big deal. He was talking about Progressive Web Apps.

By running a browser under the hood these apps will play a significant role in the upcoming years in the hybrid mobile applications sector. The dynamic and extremely fast development that JavaScript gives us is the speed that we gain in the development. The service-workers will be the ones performing the tasks to reach the latest native-like features. Making mobile applications will be fairly easy. PWA are far from being as efficient as native apps and for sure they (native apps) will live for a long time until there is an even more drastic change in programing languages and technologies. However simple applications can be made with these new technologies. Already many big companies have their PWA. Twitter, Telegram, Financial Times and many more.

With Google Chrome as main character, Firefox already offering support and also under development Safari, Opera and Edge, looks pretty obvious that many resources are being spent from the biggest companies in the world to offer support to this technology. To say that this is insignificant is ridiculous.

Offline mode, background sync and push notifications are the main features that the service-workers will provide us along with the easy access to most mobile native features (camera, gallery, geolocation, etc). A web application will be accessible offline, will wake up your phone with a notification and will sync after being offline and received user input.

Ok, so the service-workers, they are the ones doing the work. They will take care of all that caching and knowing when to retrieve new data or even to handle push notifications for you. There is plenty of documentation available already. They will really make your life easy and give you an application (if not very complex) indistinguishable from a native application.

Don’t be stingy, and don’t think that the real developer does natives apps only. Adapt.

--

--