Native v. Web

Duct Tape, fixer of all things!Six Colors: “Most apps are just thin layers on top of modern Web standards with the added benefit of a potentially superior user-interface experience, because the operating system takes care of more details with greater consistency, and allows a complicated but more reliable adaptation to multiple sizes of devices, whether it’s iOS, Windows Phone, or Android.”

Yes, folks are still talking about native vs. web. Without the web most modern day apps would be less useful and in many cases useless. Social apps only work with a connection to services running on the web. We still need sites to provide access to the masses, a way to get data on any device.

There will probably come a day when the browser can outright replace native apps, but it’s not here yet. Web technologies are still very young and ever evolving. Heck, you can only use one language in the browser, that’s way too limiting. When the browser matures to the point it allows developers to control the entire experience and is open to the language of the developers choosing, I think we’ll see some remarkable apps. Until then we still need the native experience.

Development Mobile

Chris Dixon on the Mobile Web

Will write C/C++ for foodChris Dixon: “This is a worrisome trend for the web. Mobile is the future. What wins mobile, wins the Internet. Right now, apps are winning and the web is losing.

Emphasis is mine.

I don’t understand this school of thought. Most mobile apps use a web service. The web is not about a browser, it’s about the services on the web. A browser is just the lowest common denominator way to view a web service. Mobile apps are “winning” because the browser isn’t the best way to do the job on a mobile device.

I know it’s not a popular stance, but the browser has a long way to go. HTML, CSS, and JavaScript are fine, but limiting. It will continue to mature.

On mobile we have native access to the device. We can whatever the platform allows, which is actually quite a lot. Interactions are just a lot nicer than they are in a mobile browser. We can handle everything locally then push the results into your favorite web service so you can get to it from other devices, including, but not limited to your web browser.

The browser isn’t the web. It’s one way to view the web.

Cloud Development Uncategorized


Dave Winer: “But all that has changed with the ability to access cloud storage from apps written in JavaScript that run in the browser. Software that used to require a central server, and was easy to attack, and had to scale for all sizes of use-cases, now can run in the browser, with little if any loss of power.”

Dave is excited he can host a JavaScript on a server and pull it to the browser to execute because it affords him the ability to do simple applications without the need of web services. I can understand his excitement. It’s less expensive than running a GIGANTOR set of servers to host your services and answer requests thrown at them from the client. Point taken. It’s a step in the right direction, but I still think services are necessary for all but the smallest of apps because browsers still don’t make great hosts for applications.

Bringing in the Harvest
I think designing services first is the more appropriate thing to do. Don’t think about the UI first. UI’s are a dime a dozen and should be lowest common denominator (browser), up to native, high performance, best of breed (platform specific; iOS, Android, etc.) Because mobile is so important today you can’t leave that out of any discussion about web based services. Most web apps I’ve run on my phone are pretty horrible performance wise, but I can run them. If I have a choice to get a native mobile client I always opt for it because of that.

Dave accused me of calling him stupid.

Far from it, Dave. I know you’re not stupid, I just have a different idea than you, that’s all. A differing of opinion, and that’s ok. I think you’ll be very happy with your new model and out of that we’ll see some great browser apps.

I’ve talked about it before. I’d like to see the browser evolve way beyond what it is today if this is the new “OS” for the web based world. It must if we expect to create beautiful, highly usable, fully functional applications like we did on the desktop before the invention of the browser.

When the browser can evolve to a faceless shell that is language agnostic and allows us to control it like a native application controls the desktop environment, man, then we’ll have something special, until that time it will provide the lowest common denominator gateway to the web.

Web Next

Can you imagine the explosion of high quality code and components that would flow out of a world where we’re not limited to the confines of the browser and JavaScript? It would be industry changing.

I’d love to see the browser community embrace the idea of a full CLI implementation and create a way to hit and endpoint URL that pulls a fully built application to the desktop that’s hosted by an “invisible” browser. [UPDATE: This part, about pulling a full app plays nicely with what Dave is talking about.] The browser should serve as the new OS giving the developer full access to a virtualized machine.

We’ll get there, some day.


Code in the Browser

Watch out! It's a blog fly!Yesterday I was lamenting the lack of good choice for coding in the browser. I know, I know, I gripe too much about it. I can hear folks now “Just shut your pie hole and learn JavaScript, like everyone else.” That is good advice, I should learn JavaScript, but I digress.

The mere mention of it started a conversation on Twitter, which lead me to start thinking about a weblog post, which lead me to a search for “CLI in the browser” or something like that, which landed this great post by Miguel de Icaza.

“ECMA CLI would have given the web both strongly typed and loosely typed programming languages. It would have given developers a choice between performance and scriptability. A programming language choice (use the right tool for the right job) and would have in general made web pages faster just by moving performance sensitive code to strongly typed languages.”

This is what I’m after. Choice and closer to native performance. JavaScript could be one of the supported languages, and should be for that matter, but in the end it would be really great to have a language agnostic runtime.

I’d compare the state of coding in the browser to coding 20+ years ago. At that time everyone was using C because it was the most portable way to get your code on other OS’es. I find it a bit depressing browsers haven’t moved past JavaScript. Can you imagine only being able to code in C on your favorite platform? Of course not, that’s preposterous.

It will be interesting to watch browsers mature into a layer that completely replaces the OS for services. Until then, we’ll have to make due with what we have.

Here’s the Twitter conversation that lead to this post (sorry, the Twitter embed code only grabbed the last bit of the conversation, not sure how to get it all.):


The Internet Generation

Fred Wilson: “Their generation grew up with a computer on their lap and now in their pocket. They were on Facebook before they were supposed to be. Their first phone was a smartphone. They prefer to watch a movie on their laptop lying on their bed than in the movie theater. And as a young woman said at Princeton last week, they want “life, liberty, and blazing broadband”.”

I don’t want to think how horrible the Internet will be if SOPA or PIPA are passed. Something organic, self sustaining? No, we can’t have that. It has to be controlled.

I don’t want complete anarchy, that’s not my point. The Internet is fine the way it stands today. The problem is always people. A few bad eggs ruin it for the rest of us, so the rest of us are punished for their bad behavior.

In the end the powers that be are afraid of us, afraid of change, and they can’t keep up. The world isn’t going to slow down. We’re not going back to VHS as a standard for video distribution, or cassette for music. It’s just not going to happen.

As Neo so eloquently put it.

“I know you’re out there. I can feel you now. I know that you’re afraid… you’re afraid of us. You’re afraid of change. I don’t know the future. I didn’t come here to tell you how this is going to end. I came here to tell you how it’s going to begin. I’m going to hang up this phone, and then I’m going to show these people what you don’t want them to see. I’m going to show them a world without you. A world without rules and controls, without borders or boundaries. A world where anything is possible. Where we go from there is a choice I leave to you.”


Fragile, must be Italian?

Nick Bradbury: “I wrote the first version of HomeSite back in 1994, and seventeen years later I can still run it on the latest version of Windows.

I created FeedDemon 1.0 in 2003, and it was the first app I wrote that relied on web APIs. Now those APIs no longer exist, and almost every version of FeedDemon since then has required massive changes due to the shifting sands of the web APIs I’ve relied on.”

Development Technology

Just a little dramatic

A wonderful boquet of flowers.Joe Hewitt: “The Web will be just another app that you use when you want to find some information, like Wikipedia, but it will no longer be your primary window. The Web will no longer be the place for social networks, games, forums, photo sharing, music players, video players, word processors, calendaring, or anything interactive. Newspapers and blogs will be replaced by Facebook and Twitter and you will access them only through native apps. HTTP will live on as the data backbone used by native applications, but it will no longer serve those applications through HTML. Freedom of information may be restricted to whatever our information overlords see fit to feature on their App Market Stores.”

I’m mostly ok with most of what Mr. Hewitt has to say in this post. Native clients are still provide the best shot at a great User Experience, in my humble opinion. The web in all its glory is just a network, why not use it? I don’t care if the browser is my default window, why would I? It provides a lowest common denominator experience, not the best experience.

It sounds like he wants a web browser with the power of a desktop application. Why not just write desktop applications? Is it because he wants a common host? Maybe, maybe not?

It also seems like Mr. Hewitt is a glass half empty sort of fella. Most of his recent posts seem, at least to me, to be all gloom and doom. It’s not that bad, really, it’s not.


Regarding Web Evangelists

AHHHHHH!Joe Hewitt: “I can easily see a world in which Web usage falls to insignificant levels compared to Android, iOS, and Windows, and becomes a footnote in history. That thing we used to use in the early days of the Internet.”

Ah, yes, computing, and more specifically software, just shifts and changes like the tide.

I do believe in web services but I also firmly believe those services are best consumed by platform native clients. It’s all about the User Experience and in my opinion the browser still isn’t there.


Debugging with Seaside

James Robertson: “People underestimate the importance of this a lot. In fact, you can find plenty of developers (including Rubyists) who will tell you that you shouldn’t debug at all; tests will do it all for you. What that really means is this: debuggers in other languages are very, very different from what we have in Smalltalk, and when you get into Seaside, it’s even more cool”

This is one of the things that bugs me about most web development. You don’t have a great debugger and folks that say you don’t need one are kidding themselves. Debuggers are great for more than actual debugging of code. You can use them to figure out the flow of your code, stepping through it to force code paths, and the like.

If I were to become a full time web developer Smalltalk would be on a very short list of choices because its’ maturity.