RSS
 

Archive for the ‘Software Development’ Category

What’s important about Chrome

06 Sep

I just finished reading Google’s comic book about there new browser effort, Chrome.  Much has been written this week in the Tech press:  Why do we need another browser?  Just another attempt to gather more data about me.  What, windows only?! Etc.  Well, this is the first chance I’ve had to check for myself, and I must say I’m impressed.

First off, everything is open source.  Re-using existing open source components when available and writing new ones when necessary to achive their goals.  Very smart.  Additionallly, the new components that prove to be superior can be adopted or adapted by other Firefox and other browser that choose to participate in the open source world.  Much like their use of Gears to prototype things they are proposing to the W3 standards bodies, this is about building the infrastructure for a richer web.  So, all the breathless paranoia about privacy is just that.  There won’t be in privacy busting components in there because it’s open source and would be exposed immediately.

Second, they’ve reallly thought about what’s wrong with the browser security model, and they are not only fixing it, but showing everyone else how to do it.  The comination of the sandboxing and the process model are very important.  As the web moves more and more toward becoming it’s own applications platform, all browsers will need to adopt this or die.

Finally, we have V8, the javascript VM.  Here, I’m excited about the performance possibilities, but also a little concerned.  There is a lot of divergent work going on in this space.  Mozilla is building their own VM.  Microsoft is almost basing IE 8 on their DCLR.  The Webkit guys also have work in this direction.  Google’s, Mozilla’s, and Webkit’s are open source and will likely be used in other projects.  But, as a developer, what I really want to see is a standardization of the VM interface.  If my applet can be compiled, compressed byte codes, then I not only save time at runtime, but I can also write applications in other languages and use a compiler targeted at the VM.  As web application increase in complexity, maintaining them will be a nightmare if we can’t use more appropriate languages.

 

More on Microblogging

25 Aug

In yesterday’s post, I mentioned my belief that a big part of the problem that microblogging sites are having with scaling is the result of their design being primarily that of a content management website and not that of a messaging system which, I believe, is the more proper model.  I thought, after listening to last weeks FLOSS Weekly, that Laconica was taking a step toward this approach.  I’ve had some time to browse their website, and, they too are still primarily designed as a website.  I can understand their rational:  They want to scale through federation, so they want people to run individual sites for small communities.  To achieve this, they’ve come up with a design that will run on the lowliest of shared web hosting sites.  Finding a hosting service that allows you to run your own daemons and setting them up is much more complex than installing a PHP website.  It’s too bad.  A lot of what they are building in PHP is already in existing or drafted XMPP Specs.

As long as the sites size remains under, say, a few thousand simulataneous users per server, I think this approach will probably work okay if coded efficiently.  However, I still believe that to scale the true national service size companies like Twitter aspire to be, you need a tiered architecture with the subscriptions and routing handled in the messaging server. That server then feeds real-time track searching engines and the database which feeds the website.

 

In Defense of Ada (No Really!)

30 Jun

On this week’s TWiT, episode 149, the cast had some fun at the expense of Ada.  Now having worked with Ada a good deal over the years, I’ve done my fair share of this.  In fact, I’ve worked with several people which I would describe as Ada zelots, and I certainly enjoy getting a rise out of them by playing devil’s advocate when they go on an anti-C rant.  However, some of what they said was just factually wrong, so I guess I’ll have to se the record straight.

First, they said no one is using Ada, not even the DoD anymore.  Well, this just shows that none of them have ever worked in aerospace.  Most current commercial aircraft, from including Boeing 777 and Airbus 380, have Ada code running in them somewhere.  Also, the air traffic control system that keeps those planes from crashing into each other in a great many countries is written in Ada.  Satellites, the majority of the things NASA and the ESA fly and put into space, nuclear planst, rail and subway control systems, some European financial systems, and the who’s who of NATO weapon systems.  This page sums it up well.  Pretty much, if it would really suck if it screwed up, there’s a chance Ada is at least a small player in the industry.  It’s true that Ada went no where in the commercial applications business.  Then again, this is the crowd that is still constantly issuing security fixes for buffer overrun exploits.  Commercial application developers were late to see the utility of safety over a slight loss of speed.  They are now heading in the direction of managed code under VMs like Java and Microsoft CIL.

Next, they said it failed because it was slow and too complex for anyone to implement.  It amused me because this exchange came right after Jerry Pournelle got done praising Bill Gates for being smart enough to know that Moore’s Law would bail Microsoft out no matter how bloated they allowed Windows to become.  Anyway, during the Reagan defense boom, there were any number of Ada vendors who had no problem creating a validated compiler.  As this is a niche market, consolidation has occurred since, but there are still 5 or 6 major players in the field.  To the question of speed, you take a surprisingly small hit for the run-time checking you get in return.  Certainly, it is less than the hit you take moving to managed code.

Okay, now that I’ve managed to sound like one of those Ada zelots, let me say that I’m generally language agnostic.  Good programmers can write good code in any language, and bad programmers will manage to screw up the works despite attempts by the languages and development processes to stop them.  However, as someone who has the unique prespective of having implmented mission critical, real-time embedded systems in both Ada and C++, I would certainly recommend the former over the latter for that particular application.