Victory Lap for Ask Patents

Joel Spolsky:

The America Invents Act changed the law to allow the public to submit examples of prior art while a patent application is being examined. And that’s why the USPTO asked us to set up Ask Patents, a Stack Exchange site where software developers like you can submit examples of prior art to stop crappy software patents even before they’re issued.

This is very interesting. There are a lot of very bizarre [1] patents that have been filed for software. As far as I’m concerned, I’d be okay if all software patents were disallowed. But this is a country run by lawyers who get big contributions from lawyers. It’s clearly time to take matters into our own hands, and luckily the government, along with Joel’s Stack Exchange company, are making this possible.

[1] Polite way of saying crappy.

For disclosure, I’ve filed a patent on some technology we are developing. While I’d hate to waste the money, I’d be happy anyway if software patents were eliminated.

If I Were Running Microsoft…

(I do this periodically regarding companies I think are screwing up royally. The last few times RIM has been my target. This time it’s Microsoft.)

Microsoft is moving in completely the wrong direction. The company is sadly disintegrating before our eyes, suddenly trying to emulate Apple and become a hardware company. Microsoft has little hardware in its blood, though. If I were running Microsoft, I’d focus Microsoft’s future on Microsoft’s past: making developers really really happy.

In the late 1970s Microsoft focused on developing and selling tools to help developers write applications. MS-BASIC was their big application. They licensed it to hardware companies, including Apple, and sold it to developers for other platforms. When IBM came calling, it was really originally because of MS-BASIC. IBM also needed an OS and, with more history then I want to explain here, MS-DOS was born.

Over the years the Windows-Office-Server triumvirate has reigned supreme but now Windows is faltering. The first thing I would do is spin out the Windows division into its own company, making it responsible for PCs, tablets, phones and gaming systems. In other words, I’d finish what the Justice Department failed to do ten years earlier: break up the company.

The second thing I’d do is double-down on developer tools. Now I use this term loosely. To most the term “developer tool” means the kind of tool a developer would use to write in C or .net or some other programming language. But in this case I have a much broader meaning. Yes, I mean Microsoft should still create those tools, working closely with the Windows Company to give them away for free, but it should also focus on a series of developer tools we don’t really consider tools: Azure, Server, and Office.

Azure is the perfect 21st century developer tool set. Developers upload their code to Azure, integrating basic services like push notifications very easily, and paying Microsoft a monthly sum for the benefits. Small business? Not likely. For Microsoft it is already a billion dollar business. Amazon and Google make serious money off these services, too. Fully focusing on a suite of tools that help developers make and deploy apps across all platforms is a no-brainer for Microsoft and gets them even more services revenue, the kind of revenue all software companies should be looking for.

The second group of developers Microsoft should focus on is the IT departments. Yes, controlling workers is still big business (and again with recurring revenues) and even more critical in a world where bringing your own devices to work is quickly becoming the norm. What apps get developed, how they get deployed and how those employees access corporate resources (or don’t when they are fired) is mission critical and also big business.

The third group are end-users. The amazing power of the Office suite is that any poor schlub on the street can “write an app,” or rather build a solution for their specific needs. With Word I can create a beautiful, custom made document. With Excel I can work with my lists or numbers. With Access, tons of data can be analyzed and collected. And on the back-end of all these is a programming language for the more adventurous. But these tools are designed for a mouse. The question I’d focus the new Microsoft on is what do these tools look like on touch devices and how do we tie them into their Office 365 platform? That’s a question well worth exploring.

Is this a drastic step? Of course, but one I think is required to keep Microsoft relevant in the 21st century. This new Microsoft, the one in my mind anyway, is no small company. It is however repositioned for success in a world where the desktop operating system is only one of many its customers will be using.

Software, The Art Form

Cory Doctorow as the guest on one of my all-time favorite podcasts, The New Disruptors, said the following:

Don’t quit your day job is advice you should keep even after quitting your day job. The odds are not with you maintaining a career through your whole life. There’s a recurring narrative where someone finds a pop star who was once in the top 10 and they are now working in an office as an insurance underwriter or something. And they go, “Oh my God, how is that possible? You were annointed!” Well that’s not the exception, right. That’s the norm, right. Most people who had careers in the arts where they were at the top of the field ended up just having anonymous lives for the rest of their lives after their stars peaked and after they faded away.

And that’s the people who reached the top of it. The people who reached near the top, ya know I’m in the 99th percentile, the people who got to the 99&5/9th percentile, those people too often finish their lives as university professors or as Vegas performers or fellowships or something but not living in the industry, not continuing to publish. This is the reality of the arts. This is not a new reality of the arts; it’s an ongoing reality of the arts.

When I was in college, the Computer Science program was apart of the math department. Computer Science, like mathematics, is consistent and stable. Computer Science, the academic study, was. In 1996 they were still teaching Pascal even though Pascal wasn’t used much in industry at all.

But once I graduated I realized that Computer Science, the real world form, was anything but stable and consistent. If anything, being a practitioner of Computer Science, wanting to learn and expand on my art, was about as unstable as it gets. At least if I wanted to practice the craft of writing I could use paper or a word processor or a typewriter, all of which can still be found today. Or, alternatively, I could be a Russian writer or French writer. Once I learned the language it was mine to wield how I wished for the rest of my life.

When I graduated from college, though, I chose to hone my craft in Computer Science at the hands of Palm OS. You know the value of being one of the world’s foremost experts on Palm OS code today? Nothing. The skill is worthless.

And that was one of my thoughts last week as Apple introduced an amazing array of new iOS and OS X capabilities, that’s what I thought about reviewing the plethora of announcements at Google I/O just a few weeks ago, and that’s what I think about every time I write JavaScript.

As much as us developers like to think of ourselves as scientists, we are in fact artists. Our craft is being able to take an archaic, confusing language that most people couldn’t understand if they wanted to and turn it into products, into apps, that come alive in our customer’s hands.

Our medium is code, but unlike mediums used in other art forms, ours are constantly evolving and changing, becoming more important and obsolete, more complicated and easier to use, all at the same time.

How Different Would iOS Development Be If Apple Hadn’t Given In To Native Apps?

Steve Jobs, in 2007, stood on stage and announced the iPhone. Developers everywhere drooled. We all wanted to write apps for this thing. After all it was the smartphone we had all dreamed of. But there was no discussion at all of a developer toolkit. Afterward someone must have asked. I remember the shockwaves reverberating through the developer community when it was announced there wouldn’t be one.

Well, less than a year later, we had a developer toolkit and the race to develop native apps was on. Even I recognized, someone who had done very little web development, that in some ways that was a huge step backward. Of course few of us discussed it at the time. We were too busy rushing to get our apps in the App Store.

As I now dig into HTML5 — and am loving every second of it — I can’t help but wonder what would have been different if Apple had stuck to their guns. What if Apple had stuck with that initial proclamation? What if the only tools we had, as developers, was web apps? What would be different today?

I started a list.

  • Access to a wider array of sensors via JS
  • Other devices would be more standards compliant to keep up with Apple
  • Extra JS libraries to bridge to Apple’s graphics packages
  • No App Store, possibly better ways to market our apps?
  • More websites that have pretty icons when you save them to your home screen
  • Monetization provided by Apple like Stripe or Braintree, leaving us to have an actual customer relationship
  • Universal logins
  • More developers doing web (meaning open) development, able to develop both local and server solutions
  • Native code (C/C++) in more browsers
  • Much of the same code (responsive) would run on Mac, Windows and mobile
  • Better usage analytics
  • Much better JS animations

Have any to add?

Left Behind

In late 2007, we started working on a web based version of powerOne. We started learning Rails on the back end and HTML and CSS on the front. Soon we would have dug into Javascript.

Then Apple announced its SDK and all web-based work, except marketing and a small amount of back end work stuff, like the library, went out the window. We shifted all of our focus to learning native iOS (at that time called iPhone). We got pretty good at it, too, especially for productivity style apps. And of course the work we did on powerOne was popular. We’ve had over 1.5 million downloads, not bad for a productivity tool.

But here I am six years later learning JS, HTML and CSS. The technology is amazing. I’ve never developed with anything so immediate in my life. It is magical to run a command in the console and see it immediately react in the browser window. No compilation time, no waiting on the simulator and debugger. And the basics, especially when using something like jQuery, is actually pretty easy.

Maybe it wasn’t the same back then. After all, Internet Explorer was still way behind on compatibility, there was no jQuery Mobile, HTML5 was really just rolling out. I can’t complain about my timing. But the frustration over not being better versed at such an amazing technology is palpable for me. I wish I would have done more of this earlier.