the rise and fall of the microsoft empire

1975-1980

Our historical timeline begins in 1975 when an unlikely duo—Paul Allen as Batman and Bill Gates as his awkward “Boy Wonder”—started Microsoft Corporation.  I’m guessing that ro-sham-bo was involved in this decision but incredibly somehow Bill was made the CEO when the company got its start.  Maybe dropping out of Harvard gives you that kind of confidence.

1981BillPaul

1981-2000

Nothing really significant happened until they managed to modify an existing operating system for the IBM PC in 1981 from another company and rename this to MS-DOS. Significant sales of the IBM series of computers and those of their competitors then launched a thirty-year stretch of dominance in the business world in the area of operating systems, software and development platforms.

For most of us, we reasonably dismissed Apple’s hardware and the MacIntosh operating systems as nothing we could seriously use in business outside of the marketing department.

Consumers bought new versions of software and that license was good for life.  It could often be transferred from one computer to the next as long as the last one was de-registered first.  If you built software for Windows, you likely used a Microsoft compiler to do so and you paid for that.  In fact, the Microsoft Technet collection of CDs was quite expensive.

2001

About six years into the “Internet Tidal Wave” as Bill would call it, Microsoft was starting to lose its way.  They tried to dominate in the browser wars but never quite managed to quash the competition.  Others saw their efforts in this area as annoying.  Their software for creating programs, Visual Studio, first hit the scene about four years prior to this.

Google was founded some five years prior and was just beginning to get attention from an investor before they had anything real yet.  In 1999 they moved from their garage to an actual building in Palo Alto.  Yahoo’s popularity as a search engine from a decade ago was waning.  Google’s ad-based revenue from keywords was paying off; they’d planted a money tree which eventually created an entire forest of money trees for them.  It wouldn’t be long until Microsoft’s executives behind closed doors would consider Google their biggest threat.

About this time Apple created a very clever method of provisioning content for one-and-only-one device within the music-delivery space.  The iTunes store would turn out to be the goose that laid the golden egg, as seen in the following revenues.  And yet, it would take years for either Microsoft or Google to realize the beauty in this fulfillment model and to come up with their own versions.

showmethemoney

The “Internet of Things” concept started gaining in popularity at this time.

2009

Microsoft’s attempts at copying Google’s success (MSN Search, Windows Live Search, Live Search) now culminated in the introduction of Bing as their default search engine destination for all things Microsoft.

Apple introduced the first iPhone and the first iPad about this time, noting that the same provisioning model from iTunes was incorporated into both via iOS.  The subscription model of sofware licensing was born with this, if you think about it.  If you wanted to write a program for either, you needed to use Apple’s software to do so.

Google has just introduced Chrome as a browser and would begin their campaign to slowly break Internet Explorer.  The same was true of the Android phone and its related operating system.  It would take a few years for Microsoft to catch up to either the iPhone or the Android before releasing their own app-savvy smartphone offering.

Amazon some three years prior had introduced the beginning of what would be a full complement of cloud-based services to support web development.  It would take Microsoft two full years to realize that they needed to be in this space and they didn’t have their offering ready for a few years more, too late to effectively compete.

Github.com had just celebrated their first year online, hosting over 46,000 repositories by then.  The world of open source was the very antonym to the way that software had been developed prior to this.

The free Ubuntu operating system was released about four years prior to this, backed by the well-funded company Canonical.

2015

Microsoft releases Windows 10, “the last version of Windows” (they claimed).  Rumors suggested that Windows would eventually go from a version-based license model to an annual-subscription model with respect to pricing.  I think it’s safe to say that the market hasn’t really embraced either Windows 8 or Windows 10.

The subscription-based model for Office 365 was introduced four years prior to this so the writing was definitely on the wall:  Microsoft wanted to depart from their former methods of making money and to chase the monthly subscription model.

2015-popular-coding-languages

The world of open source was offering new programmers a wealth of free code.  All they had to do was to take it and make it their own.  Formerly, Microsoft-friendly coding languages like C, C++, C#, VB and .NET dominated the playing field but this graphic shows how the game had changed.

2017

And here we are, present-day.  That curious number 42 now describes the number of years that Microsoft has been around.

Yesterday evening, I attended a very geeky meetup of perhaps fifty or sixty coders and only saw one Windows-based laptop.  Almost everyone had a MacBook of some kind.

I just spent about two hours today installing the free Visual Studio Community 2017 software so that I could—in theory, anyway—alter a free copy of the source code for TightVNC software.  Out of the box, so-to-speak, Visual Studio doesn’t want me to build this project since it uses an earlier target platform (Windows 7 or 8, one would assume).

Microsoft only wants me to make things for Windows 10.

So rather than making it easy for me to build a program that will happily work with Windows 7, they’re forcing me to jump through hoops in order to add the necessary pieces for this to happen.

Add two more hours to this and I find that my installation does not want to download the earlier pieces to allow this to happen.  I’m forced to then upgrade the code to Windows 10 compatibility mode… only to find that the build fails with 528 errors.

The main crux of all these errors appear to be:  “we can’t find common files”.  It’s a very amateur sort of error from a company that’s been providing compilers for several decades now.

I have to think that Microsoft doesn’t want me to do anything with Visual Studio unless it benefits Microsoft.  And this is the core of the reason why I suggest that they’re doomed.

Every time a coder like myself runs into obstacles like these, the usual seed that’s planted inside their head is “this would be easier with another free compiler or another language from someone else”.

2022

Fast-forward another five years and Microsoft will have lost ground on many fronts.  New software development here, there and everywhere will be via some language which wasn’t popularized by Microsoft on computers which aren’t Windows and with browsers which aren’t Internet Explorer or Edge.  Our toasters and refrigerators and our cars will be powered by the Ubuntu operating system or perhaps Debian, a similar free Linux flavor.  These appliances will be connected to our wi-fi and even to the Internet but there won’t be a scrap of anything Microsoft about them.  They’ll be coded up with something that isn’t C#, doesn’t use .NET and doesn’t need Visual Studio in order to compile it.

The only thing with a Microsoft pedigree with some staying power could be some of the websites and services currently served up at Microsoft’s datacenters via Azure.  But Amazon or Google could kill that by simply lowering their own prices for cloud-based services.

ubuntu bash now in windows 10…?

There’s a little-known feature now in Windows 10 which is a fairly awesome piece if you know Linux/Ubuntu and, say, you’re a coder. Microsoft and Canonical got together to add an Ubuntu on Windows subsystem in the 14393.0 “Anniversary Update” OS Build.

The feature is also called the Windows Subsystem for Linux. What’s interesting is that from bash you can actually invoke a Windows executable or one compiled for Ubuntu. It can run DOS batch files as well as shell scripts.

  1. Turn on Developer Mode in Windows 10 -> Settings -> Update & Security -> For developers
  2. Turn on the Windows Subsystem for Linux (Beta) in Windows 10 -> search for “Turn Windows features” -> select Turn Windows features on or off
  3. Restart Windows 10
  4. Go to a command prompt
  5. Enter bash and type a y to continue, noting that this step will take about 20 minutes
  6. When finally prompted, enter a UNIX username (it’s case-sensitive) and a password (again, case-sensitive) which are completely separate from your other credentials

From this point you can run an Ubuntu bash prompt either from the added Start entry or by entering bash in an MS-DOS or PowerShell prompt.

Notes

  • It’s probably not a good idea to use Notepad or similar Windows tools to edit configuration files within the Ubuntu space.
  • You should be able to sudo from this first user as you might expect.
  • Once logged in, you’ll land in a /mnt/c/Users/username location from a Unix perspective.
  • Since the OS is Ubuntu, you would run sudo apt-get update to install things.
  • If you want to invoke Windows executables from a bash session, you probably want to start by adding the SYSTEM32 folder to your path, for example: export PATH=$PATH:/mnt/c/Windows/System32 but since this is UNIX you’ll need to make sure that the capitalization is right for each path.
  • Run lsb_release -a if you’d like to see which release of Ubuntu is running.
  • In theory, you could run bash scripts within a PowerShell script.
  • At this time, it does not support GUI applications.

iphone without itunes

You know how Apple can be sometimes; they feel the need to control everything. So for a Windows-based computer, they want to force you to install the entire iTunes collection of software just so that you can get to your files on your iPhone. As an I.T. person, to me that’s just way too much software to be adding to someone’s computer setup.

Why not?

You might just ask “why not?”  Why not just install iTunes? One of the subtle changes that iTunes makes in terraforming your Microsoft computer for its own needs is to install a variety of software to make things more Apple-friendly.

For example, in an Apple-based network the Bonjour service allows lookups for printers normally but allows for almost any device to broadcast its existence on your network. The downside to adding a different printer lookup service is that you might have a number of printers already which broadcast via Bonjour and can now be seen by your computer this way.  And yet, you might not have a working Microsoft driver installed to make all this happy. The printer when added simply doesn’t work and yet it seems to work for everyone else on the network who didn’t install iTunes. Rule of thumb for success: don’t arbitrarily add services and things unless you exactly know the ramifications for doing so.

Rule of thumb for success: don’t arbitrarily add services and things unless you exactly know the ramifications for doing so.

The problem

If you simply plug in your iPhone into a Windows 7—based workstation you’ll see it download and install a default driver. Unfortunately, the Internal Storage section of this device won’t show anything in it.

iphone-no-driver-yet

The fix

Unbelievably, the fix is much easier than I’d imagined. Immediately upon tethering the iPhone the very first time to the Windows computer the iPhone will buzz twice (telling you not that it’s now charging but it’s trying to tell you that it’s displaying a notification).  The message is crucial to your success but Apple in its infinite wisdom doesn’t decide to wake the phone up for you.  You need to manually wake it up first to see it:

allowthisdevice

Select the Allow option here and suddenly Explorer will now present you with a DCIM folder, below this a 100APPLE folder which contains your images.

iphone-after-allow

Why is this considered a smartphone?

That’s a good question to ask. Why would Apple decide to block access to the phone on a Windows computer by burying its head in the sand when an important access message is being hidden behind a sleep state? I suppose they could suggest that if the phone is sleeping then the rightful owner may not be in control of it and that nobody should have access as a result.

But why not simply bubble that information up to Explorer with a dialog box so that the user will know the status? It just silently doesn’t see anything at all for the device.

If you read the many support threads on the Apple site nobody ever mentions such an easy solution. The reason of course is that Apple wants you to install all of their software on your Windows-based computer, too. The biggest reason is that the iTunes application is a shopping cart and you’re a consumer to them.

windows 10 sucks balls

Seriously. So today’s saga ends with me giving up on my relatively-new Windows 10—based laptop as just a lost cause. Since around November, it’s had its microprocessor firmly stuffed up its I/O port.

The Symptoms

The symptoms began about the same time. The Mail app just failed to sync: no new email.

Further troubleshooting suggested that the wi-fi adapter wasn’t consistently connecting to my own zone and not that of one of my neighbors. Tracking down the correct settings allowed me to definitely not connect to that other zone. Although that worked, still no resolution of the problem.

I thought updating might help. Unfortunately, Windows Update thought that it wasn’t connected to the Internet so I couldn’t update. I could browse the Internet with my browser but it just didn’t think that I was connected to the Internet.

The Attempts

I tried using only the wi-fi. I tried using only an Ethernet connection. Same result.

I tried opening an administrative MS-DOS console and entering a variety of terse commands in an effort to clear my DNS cache, reset my IP adapter’s DHCP lease, reset the WINS catalog, you-name-it.

I tried rebooting. Oh yeah, I rebooted the fuck out of that thing. Still, no-go.

I wanted to adjust the network’s location so that instead of thinking that I’m in a public space, it would know that I’m in a private place. But since it thinks I’m not connected, you can’t do that.

The Research

It turns out that I’m not the only one experiencing this. Almost 70,000 viewers on one Microsoft help page alone and thousands of participants in the discussion. Keep in mind that a subset of the users think that this is an email problem, another just-as-large collection of users think that their Windows Update has a problem, another several thousand think that they have a Firewall problem, another several thousand think that they have an Ethernet adapter problem…, (you get the point).

It looks to me like Microsoft has painted themselves into a corner. If Windows Update now doesn’t function, then you can’t easily push out a fix. You then have to rely upon the millions of users to ask you for help.

The Fix

Fortunately, it hit upon me how I could fix the problem which I now share with you.

buy-a-macbook

Update

Now that I’ve formatted the HP laptop with Ubuntu 16.04 LTS, I’ve been able to spin up a virtual machine and run Windows 10 Pro in it… and it doesn’t have the aforementioned bug.  Read more

ubuntu core on the raspberry pi 3

The fun just never stops here as I begin with a new operating system on a second microSD for my newly-purchased Raspberry Pi 3. This time, it’s Ubuntu Core. This operating system from Ubuntu appears to be a big departure from the Ubuntu server or desktop versions I’m used to. In case you were wondering, I managed to install the new operating system with little trouble. It’s different, though, I’ll be the first to admit it.

Goodbye apt-get, hello snap…

Gone is the usual apt or apt-get interface for fetching code. It’s been replaced completely by snap. Honestly, apt has been the mainstay command for managing Ubuntu (and Linux) for a while now so this is quite the departure from the norm. Snap, in theory, will be a cross-Linux way of deploying code. From my initial research, it appears to be a lot like the Juju Charms for deploying services on a Metal-as-a-Service (MaaS) system. Like Charms, Snaps appear to have an up-stream and down-stream component to them, providers and consumers, if you will.

On the positive side of things, a Snap that you create would work on many different systems. In this way, it works a bit like Java or .net (somewhere, there’s an interpretive layer for the particular hardware but you don’t have to worry about that). Presumably, you mostly just worry about the interface you’re providing and the packaging requirements to create a Snap for submission to the store.

Since Snaps get digitally signed this makes them more like the Apple iTunes store metaphor that Microsoft, Google and everyone else seems to be going with these days. Digitally signing your programs both lowers the risk of rogue/evil code out there but it also puts a middleman into your money stream—someone like Apple will be there to charge the publisher a fee for making money on the store and for signing your developer’s certificate each year. At the moment, Canonical (the maker of Ubuntu) doesn’t charge for a Single-Sign On account but maybe if this becomes popular they will in the future.

Honestly, the entire concept of Snaps appears to be a watered-down clone of Apple’s iTunes distribution model.

Fee Structure for their Store

Not that this information is easily available, I managed to finally find it. From this page on Canonical’s website:

4. Pricing, fees and payment

  1. If you elect to distribute an App without charge, the payment terms of this Agreement will not apply with respect to the free App.

  2. If you set a price for your App we will collect fees from end users that purchase your App at the price you set. Within 30 days of the end of each calendar quarter, we will provide you with a report of the number of copies of each of your Apps sold and the amount of any payment due, which shall be the fee multiplied by the number of copies sold less any applicable taxes and our commission. Our commission is 20% of the total fees charged for the sale of your App, less any applicable taxes.

So they’re charging 20% commission for brokering your Snap. Compare this to Google’s flat 30% commission, Apple’s flat 30% commission plus $100/year developer license and Microsoft’s 30% commission plus $49/year developer license. Note that there are precious few Snaps available. Specifically, only one Snap has a price of $1 at this time and the remaining 547 are free. So until others are charging for their Snaps, don’t expect to make a dime selling yours, in other words. In a free world, nobody will open their wallet nor expect to.

The Future of Snaps

It’s difficult to say whether this entire concept will get traction. Linux has been the free alternative. The people who run Ubuntu, for example, like that aspect about the community. Will these people easily change their stripes and embrace a payment system in the future in which we pay for code? Remember, we’re talking about people who’d rather build from source instead of paying for a binary file. My gut tells me that they’re never going to go for it.

Should I Invest Time in Developing Snaps?

As a developer, having a variety of experience looks good on your résumé so yes, by all means, develop a Snap. And since we developers often communicate our value via our github page I’d suggest that these Snaps be free and open-source if possible.

google stabs again at microsoft

In this entry of the Google/Microsoft war, we see that attempting to visit the Google Fonts API list page results in what is an outright ban of Internet Explorer.  Note that the fonts in practice work just fine in Internet Explorer, it’s just Google doing a denial-of-service for anyone using Microsoft’s browser.

googlefontserror

google is systematically breaking i.e.

In an earlier post I described the war that’s going on among the big players:  Google and Microsoft, for example. Today’s entry relates to Google’s acquisition of Firebase in late 2014 and its recent redirection of that site’s content to an Internet Explorer—incompatible platform within the past few weeks.

If you have websites and/or apps hosted on Firebase then you will find that you are no longer able to use Internet Explorer to administer them. This is similar to the Internet Explorer—incompatible website Google Domains in which their client-side code freezes Microsoft’s browser by design.

Google’s campaign to destroy Internet Explorer now pushes Microsoft’s accumulative 16.72% of the browser market share (Dec 2015, Sitepoint.com) to the point where it’s about to be surpassed by Firefox at 14.29% and into 3rd place behind Chrome’s lead of 53.71%.

Interestingly, it looks like Microsoft’s Forefront Endpoint Protection product at least back in 2011 marked Google’s Chrome browser as a virus.

digital inflation

I spent most of the morning retiring an old Compaq Presario server; it’s perhaps fifteen years old. It was in with some things in storage and I thought I’d get rid of it since the hardware wasn’t even compatible with an Ubuntu server install attempt.

Less Was More

I realize in going through the motions of archiving all my many coding projects from years ago just how much bloat we’ve taken into our computers and our computer languages these days. I think the laptop I’m on right now has 8GB of RAM and this NT 4.0 Server only had 384MB of RAM, running instances of IIS, SQL Server, NT Server, WINS, DNS Server as well as a VSS server. It also hosted QuickBooks Pro 99, Adobe Photoshop 5.0 LE and Visual Studio. Come to think of it, it also easily ran my own NT services, custom-made IIS ISAPI filters and custom SQL Server extended stored procedures that I’d written. It had Microsoft Office, Adobe Acrobat and Illustrator, Flash-development tools by Macromedia.

It ran all this on 384MB of memory.  And those fifteen prolific years’ worth of accumulated everything only resulted in about 4GB of storage, perhaps the equivalent of a mere three movies on my laptop now. I almost have to laugh as I store it on a terabyte external drive.

Digital Inflation

graph

Seriously, though, what have we gained by making everything so heavy? I recall being able to accomplish anything I needed to do in that older version of Adobe Photoshop and using a fraction of that 384MB of memory. Just now, it took Adobe Photoshop CC about five minutes to load up so that I could paste this graphic in and start to work on it. I select the Spot Healing tool and begin clicking.  One, two, three… and then I wait as the tool freezes up and I have to wait for the spinning cursor to resolve itself. I then Step Backward to remove the garbage that the tool added and try to repeat, only this time slower. This sucks. I know that older version from over ten years ago didn’t do this.

So now, every day we get faster and faster microprocessors with multiple cores. But that Windows 10 upgrade from this year demanded that we have no less than 4GB of RAM just to install it. Why?

The answer is that we’re under a form of inflation that’s taken over the digital world. The same resources we had last year just aren’t good enough.

Back in this post I suggested that open source projects are suffering from this bloat, too. Big companies like Google believe that programs have to be big to be good. I disagree. Sometimes quality and project size are in direct opposition with each other. The more code you have, the more code that could be potentially bad.

Who Do We Blame?

Is it the microprocessor manufacturers who are behind this? I don’t think so. How about the operating system makers like Microsoft and Apple? Probably. I do know that .Net is a huge, bloated layer of code that’s supposed to be Microsoft’s version of Java. But the reason for both Java and .Net is to write machine-independent code. And since nobody really writes .Net code to run on an Apple computer or on a Unix box then what’s the point?

And now that .Net has seen its heyday Microsoft is ready to do the “new, new thing” which is to chase Apple’s app-based iTunes-delivered store. So we as consumers picked up this thick layer of code in the form of .Net which honestly does little for us. And yet most of the software written for a Windows-based computer has to use this foundation. No wonder it takes so much to do so little.

I’d like to blame Adobe’s bloat on all the code which is designed to permission their new subscription-based model. Try to buy Adobe Acrobat now and you’re left with the choice of paying $500 or something like $20-per-month. Neither option is worth it, in my humble opinion. Much of that startup lag I mentioned before could be the client app talking to mothership Adobe to see if my licensing this month is paid.

Predictions

Honestly, the pendulum has to swing back the other way. Consumers will reject subscription-based pricing models, will turn in greater numbers to open source operating systems and desktop tools and eventually the big players will come back with their apologies and revised ideas about how to win back their former customers.

In earlier times you couldn’t expect an average computer person to use a command line interface. But younger computer users are trained in public school and they’re not so timid. Strangely enough, Microsoft is turning to a similar mechanism to do advanced things in their software using PowerShell commands. And there is even an option to install their server software without a GUI environment at all… like a UNIX server, if you think about it.

The original IBM PC didn’t have a Windows interface since that didn’t come until many years later. The very popular (free) Ubuntu server software now does the same. You’d be surprised how much work the computer can do when it’s not unnecessarily displaying graphics.

I believe that we’ll eventually build simpler interfaces. The Windows 10 “Metro” menu and those of smartphones now are visually simpler if you think about it. They’re essentially flat squares that you can push with your finger rather than the fussy-little, 3D-styled buttons from twenty years ago in Windows 95.

Hardware like Google Glass may remove the need for such specialized interfaces. Since this hardware doesn’t include a keyboard your ability to interact with the interface is limited to pointing your head toward a spot on the screen and holding it until it’s selected. When they add voice commands to this interface we’ll see yet another revolution in how we expect software to behave. Hopefully we’ll get to the point where there are no more buttons to push—all commands would be accomplished verbally in your own language of choice.

Back to simpler interfaces, however, must we have all the visual candy? Could we not focus on the work to be done, the spoken commands to trigger that work and remove everything else but the text-based status? On today’s hardware we could do that now if we really wanted to. But since companies like Apple/Microsoft/Google want their store-like delivery model we’ll likely not get what we want unless we build it ourselves.

let the wars begin

Oh, the fun.  Microsoft and Google seem to be at odds these days or so it would seem. It’s like a cold war is going on just beneath the surface.

Google Domains freezes in IE

The new Beta Google Domains website is Google throwing their hat into the ring of the annual US$500M domain registration market. Given their programming clout, they could create almost any kind of website and support any kind of browser. And of course the entire administrative interface on Google Domains crashes spectacularly if you use Internet Explorer. I would suggest that this is “by design”.

Outlook in Office 365 marks @google.com as junkmail

I kid you not. Right out of the box with a fresh installation of Office 365 today on a Windows 10 computer I see that the only inbound email is in the Junkmail folder and it’s from Google Domains’ notifier.

database app, no server-side

This is new for me. As a long-time website developer I consider myself a hardcore backend developer. For years I’ve contracted out as the guy you’d go to for the database design and subsequent server-side code to access that database. And now I find myself working on a website with a slick-looking frontend and—gasp!—no server-side coding at all.

“How is this even possible?” you ask. Even a week ago, I’d have been just as confused as you may be now.

Firebase

Fortunately, there’s a platform called Firebase which actually allows you to write a database application with no server-side code whatsoever.

Here’s a list of things you’d normally need backend code to do on behalf of activities initiated by client code (on both your users’ and your admins’ browsers):

  1. Authentication, password maintenancerights control and logged-in state management
  2. Creating database records or objects
  3. Reading from database records or objects
  4. Updating database records or objects
  5. Deleting database records or objects

It turns out that you can configure Firebase to use email/password authentication and as a result of this decision you can do your entire site design without necessarily writing any server code.

As an added benefit you then don’t have to find a hosting provider for that server-side code either. And since Firebase allows you to serve up your static HTML website then this is appears to be a win-win.

Changing your perspective

Server-centric

In other systems like Node.js, e.g., you write your application from a server-centric perspective. You might begin by creating something which listens to a particular port, sets up a router for which pages are delivered and then you setup handlers for when a page is requested or when form data is submitted to a page. Lastly, you might then write some separate templates which then are rendered to the client when a page is requested. The design approach is very much: server-side first, client-side second.

Client-centric

Firebase appears to be turning things completely around. In this case you might begin with the page design itself using something new like Google’s Polymer framework. You would focus a lot of attention on how great that design looks. But then at some point, you need to register a new account and then authenticate and this is where you’d code it from client-side JavaScript. Here, the design approach is: client look-and-feel first, client JavaScript to authenticate second.

Rendering static plus dynamic content

In the past we might have rendered pages with server-side code, merging data in with a template of some kind, say, something written in Jade. In this new version we still might have a template but it’s just on the client now. Additionally, Polymer allows custom elements to be created. If you’ve ever written server-side code Polymer does allow you to bind data as you might expect.

Page routing

The Polymer framework includes a client-side routing mechanism so that you may serve up different pages from the same HTML document. But even if you don’t use this approach then Firebase‘s hosting provider will do that for you; just create separate pages and upload them and they’ll take care of the rest.

Why you might want this

Like me, you might have built up a level of comfort with earlier approaches. I myself often think about a website design from the server’s perspective. One downside to this approach is that you possibly could end up with a website design that looks like you spent 90% of your effort on the backend code and didn’t have enough time in your schedule to make things look really awesome for your users.

By beginning your design with the UI you are now forcing yourself to break out of those old habits. You work up something that looks great and only then do you begin the process of persisting data to the database server.

firebase

This now allows you to focus on how the application will look on many different devices, screen resolutions and whether or not those devices include a touchscreen and features such as GPS, re-orientation, etc.

Google and Firebase

All of this Firebase approach works rather well with the Polymer framework and I’m sure this is the intent. In fact, there seems to be a fair bit of collaboration going on between the two with Google suggesting that you host on Firebase from their own website.

Scalability

I think one big benefit to no server-side is that there is no server-side app to scale up. The downside then is that you’ll likely have to upgrade your hosting plan with Firebase at that point and the pricing may or may not be as attractive as other platforms like Node.js on Heroku, e.g.

Custom domain

Of course, you have to pay $5/month minimally to bind your custom domain name to your free instance. I wouldn’t call that expensive necessarily unless this is just a development site for you. In this case, feel free to use the issued instance name for your design site. At this $60/year level you get 1GB of storage which is likely enough for most projects.

Pricing note

Firebase‘s pricing page mentions that if you exceed your plan’s storage and transfer limits then you will be charged for those overages. Obviously, for the free plan you haven’t entered your credit card information yet so they would instead do something in the way of a denial-of-service at that point. If you have opted for that minimum pricing tier please note that this could incur additional charges if you’ve poorly-sized your pricing tier.

Overall thoughts

So far, I think I like this. Google and Firebase may have a good approach to the future of app development. By removing the server you’ve saved the website designer a fair bit of work. By removing the client-side mobile app for smartphones then you’ve removed the necessity to digitally-sign your code with your iOS/Microsoft/Android developer certificates nor to purchase and maintain them.

All of this appears to target the very latest browser versions out there, the ones which support the very cool, new parallax scrolling effects, to name one new feature. The following illustration demonstrates how different parts of your content scroll at different rates as your end-user navigates down the page.

parallaxEffect

Since parallax scrolling is now “the new, new thing” of website design I’d suggest that this client-centric approach with Polymer and Firebase is worth taking a look.