Perché la programmazione non è cambiata?

Quando un programmatore ha la testa infilata nel proprio editor, se la complessità della porzione di codice sulla quale sta lavorando va un po’ oltre Hello World, può succedere che a causa della concentrazione, dell’isolamento e dell’applicazione nel far funzionare il proprio codice, può venire totalmente astratto dal progetto, perdendo paradossalmente il focus sull’obiettivo finale.

“The problem is that software engineers don’t understand the problem they’re trying to solve, and don’t care to,” says Leveson, the MIT software-safety expert. The reason is that they’re too wrapped up in getting their code to work. “Software engineers like to provide all kinds of tools and stuff for coding errors,” she says, referring to IDEs. “The serious problems that have happened with software have to do with requirements, not coding errors.” When you’re writing code that controls a car’s throttle, for instance, what’s important is the rules about when and how and by how much to open it. But these systems have become so complicated that hardly anyone can keep them straight in their head. “There’s 100 million lines of code in cars now,” Leveson¹ says. “You just cannot anticipate all these things.”

James Somers ha pubblicato su The Atlantic un long-form sull’apocalisse del software. L’articolo attraversa analisi illuminanti sullo stato del lavoro di programmazione: si scrivono milioni di righe di codice che, causa la difficoltà nello scriverle, spesso astraggono lo sviluppatore dal problema per il quale quel codice si sta scrivendo.

I nostri team non hanno mai costruito un software per pilotare un Boeing 747 ma possiamo dire di aver comunque sviluppato software per grosse aziende e, dalla mia esperienza, in ogni progetto ho notato questo problema. Il focus sulla funzionalità del codice – sulle metodologie, sugli approcci, sulle strategie, sulla correzione degli errori e sulle logiche – ha causato qualche volta l’allontanamento dall’obiettivo finale, dal problema per il quale il software era in sviluppo.

La tecnologia si è evoluta, il modo in cui essa viene sviluppata è rimasto pressoché identico.

Il problema è quindi il codice?

The problem is that programmers are having a hard time keeping up with their own creations. Since the 1980s, the way programmers work and the tools they use have changed remarkably little. […] Computers had doubled in power every 18 months for the last 40 years. Why hadn’t programming changed? […] the idea that people were doing important work, like designing adaptive cruise-control systems or trying to understand cancer, by staring at a text editor, was appalling. And it was the proper job of programmers to ensure that someday they wouldn’t have to.

Easiest workflow with Todoist

My favorite app for a productive workflow is Todoist, a cross-platform project management software with awesome features without frivolousness. I use it from years; no competitor.

I delegate it all achievable things to remind. I don’t want to remember, I want reading every day a list, check when I achieve a task and forget it. Stop. To be clear, I’m not talking about the productivity methodologies or the better way to complete the most things in a less time etcetera, I talk about a simple and organized checklist to accomplish: Todoist excels.

Essentially I use my list in a simple way: I split my tasks into two separate sources: function (hosting, billings, managing, sales, and other areas) and customers. My functions are the projects, my customers are the labels. When I add a new task I’ll choose a function and one or more related customers (besides the deadline, priorities and potential notes). That’s all folk.

In this way all days I can easily detect tasks for the customers, for the functions or for a deadline (I prefer a view with next seven days).

Every day I follow my list, prioritize the tasks and challenge the day. If comings unexpected stuff – and it happens – I’ll have the free mind to think about. The rest are in Todoist’s hands.

Instapaper is for readers, Pocket for Mozilla

Reading later is usually a habit that I follow every day when I have some minutes of peace. I add articles and posts to my list in Instapaper from my feed reader, by a browser or via Twitter timeline. Sometimes my reading list became like a /dev/null folder, but with a load of patience and much free time, I successfully complete more reads.

Anyway, I said of Instapaper. I used Read it Later for years before it became Pocket, and I used Pocket too. But after a recent update for their Android app (and the Pinterest’s shopping) I’m definitely switched to Instapaper.

I’d like to highlight that I tried to switch back to Pocket several times, especially after the Mozilla acquisition, but each time I capitulate. Instapaper is for reading, Pocket is for sharing.

Instapaper has some features that in Pocket lacks, features that make reading more comfortable: for example the pagination. Yes, I know, even Pocket have the pagination, can be activated by flipping on the page but, in some cases, the results are damn illegible. Instagram has the pagination progress dots in an article and, in the list, a indicator for post length. Sublime for choice what read.

The highlight, oh yes the highlight. Underline parts of an article, share quotes – automatically or manually, as text or image, add notes, collect, search and archive them is a must have for all happy reader. The killing feature for me.

So, Pocket has other cool stuff if you want to share your posts or if you want to create a public collection, but missing reading power features. Mozilla bought Pocket to create a greedy ecosystem of relevant shared contents to suggest in their next browser version, and it’s a great thing, but I think that Mozilla still needs to invest on Pocket under pure reading profile and I hope that this takes place.

If you want mainly read and store your links and quotes, Instapaper wins hand down. For now.

Web Extensions for coming back to Firefox

From the beautiful and most fascinating CNET Special Report on the Mozilla Firefox rebirth:

But another change in Firefox 57 will break a venerable part of Firefox — the extensions technology that lets you customize the browser. For example, with extensions you can block ads, protect your privacy, download YouTube videos, translate websites and manage passwords. Extensions were a key advantage back when Mozilla first took on IE in 2004, but Mozilla is switching to Web Extensions, a variation of Chrome’s customization technology.

I found that the only reason that keeps me far away to Firefox is the poverty of their universe of extensions. Some are obsoleting, some with missing features and much others absent (comparing with Chrome, obviously). And it’s an absurd because Mozilla was the first browser with a large add-ons store.

Next big Firefox version it will provide the simplest way for developers to build extensions and convert a Chrome Extension to a Web Extension. It could be a comeback revolution and would be meaning a huge exodus to the Mozilla’s browser for all users, like me, that has lived a web diaspora.

Good news on the open side of the web.