cancel
Showing results for 
Search instead for 
Did you mean: 

Languages at your service!

Languages at your service!

Languages at your service!

I was 8 when I first learnt how to program. In those days (oh so long ago) you didn't have that many choices, it was either BASIC, Assembler, COBOL, Fortran or other arcane languages. My language of choice at the tender age of 8 was BASIC. Let's be honest here, I was far from a child prodigy, so that added to the beauty of BASIC: it was, errrm, basic and therefore rather simple to learn and use - I was very proud of my first "hello world" program:

    10 PRINT "Hello, world."
At the age of 13, and after my school ditched its BBC Micros in favour of x86 machines, I decided it was time to move up the programming language property ladder, and so chose Assembler. It certainly turned out to be a giant leap; it was more difficult to learn, more complex to write and had about a 5:1 line of code ratio with my equivilent programs in BASIC, for example:
    MOV AH, 9 MOV DX, OFFSET HELLO_MSG INT 21 INT 20 HELLO_MSG: DB 'Hello, world.$'
However, the overhead was worth it in my eyes because using Assembler let me interact with any peripheral in any way it supported, call any BIOS function, hack and crash my school's network, and generally behave like I owned the place. But Assembler was never going to win in the private sector. Yes, it has its niche, now largely confined to embedded applications, but businesses want quick results, so C became popular, then C++, then Java, and now Ruby on Rails and our beloved PHP. To be honest, I got bored with programming and lost the buzz about 7 years ago. Still, that's almost 20 years of dedication before I "retired". Languages were springing out of the woodwork and un-primed managers were jumping on buzzwords like there's no tomorrow - "we should use Visual Basic," said one person, whom then continued to exclaim, "because we can do everything in VB that we can do in C++, only much faster!" This isn't a rant about VB so I won't explain too much as to why that frustrated me. Let's face it, VB was useful in some areas and arcane in others, but it was never a direct replacement for something like C++. In fact, a common implementation (once people realised that VB wasn't the answer to all of their prayers) was that VB got used for prototyping and building the user interface, and C++ was used for business logic and low level communication and interactions. VB would then call C or C++ functions that were compiled into a DLL/OCX etc. You know, we've been separating the user interfaces from business logic for longer than you may think. So times they are a changing. They always seem to be changing, and after 20 years of anticipating that my programming language cheese was going to be moved annually, I started to get bored rather than excited. (Oh, I suggest you read Who Moved My Cheese - it'll only take an hour and you'll get what I mean - I became a Hen rather than a Sniff or Scurry.) Anyway, back to the story: new languages all had the same constructs, they all shared the same metaphors, they just had more quirky or more all-encompassing functions. Geez, in any speaking language you just add words to your already known language. We didn't have to invent an entirely new language when we added Google as a verb to our dictionary, we continued speaking English. In my years as an active developer I comprehensively learnt at least 10 languages, and also picked up a sprinkling of at least another 6. I loved learning those languages at the time (well, maybe with the exception of Miranda), but I'd had my fill and decided it was the right time to further my career. However, it must be said I do believe that as a senior technical manager it's absolutely essential to keep abreast of what's going on in the industry. Otherwise I'll become one of them - you know - one of those managers that used to be technical but still lives in the '80s and has '80s principles, and generally just becomes a hindrance more than a help. So the big buzzword of the year so far is Mash-up. No, it's not about getting a Web Service to make you a cup of tea, and it's certainly not defined as Encarta would have you believe here. I also don't think that Wikipedia's description does it justice by describing it as "a web application that combines data from more than one source" - see here. Yes, Mash-ups are the combining of data but the very power that gives you in conjunction with other Web Services is awesome. Nearly every Google Maps Mash-up also presents you with the map interface - that's not just sharing data, that's providing you with a very powerful means of presenting that data too. These Web Services are very simple to use. In fact, I reckon you could set up a business within a day and start seeing revenue almost immediately. Generally, Mash-ups use Web Services, and these Web Services perform some action and return objects either as raw data or as an object you can display. As an example for the reducing league of Windows developers, think of Web Services as a Web version of a Windows COM object. With that in mind, a Mash-up isn't really a new concept, we've just got a name for them when interacting with Web Services. So is it just another buzzword for something we've been doing for years? Yes and no. Yes in that we've been doing it for years, and no because the power of them just isn't comparable. A Web Service can be made available world-wide as soon as it's commissioned; they can be hosted anywhere on the internet and used by anyone on the internet. So, true to form, about once a year something crops up that gives me withdrawal symptoms from coding, my willpower reduces to nothing and my fingers just start typing without my say so. And probably the most surprising of recent offerings that reduced my will power to nill came whooshing from BT. Yes, I said BT. Yeah, they're the telecoms company that let you make calls and connect to the internet, right? Correct. But they are also very big on software development, and they have just released an API for a bunch of Web Services that are just crying out to be used. You can get complete details of the Web Services at sdk.bt.com but the ones that I really like allow you to very easily send a text message, track a phone's whereabouts, and initiate a phone conversation between two phones. Ok, there are websites that offer these services to the general public now but think of the things you can very quickly and easily do on your own website. You can allow parents to track their children's whereabouts, as an employer you can track your employees (very useful for logistics and cab firms, for example), or you can almost pin-point the whereabouts of your stolen mobile phone. Combined with, say, Google Maps you can get a visual representation as well. That's a very powerful Mash-up. Their API could also enable a dating agency to very easily allow two clients registered on their website to call each other's phone without disclosing their details. So, after downloading their SDK for PHP I looked at their example for sending an SMS. When you boil it down you've only really got 5 lines of code you need to worry about:
    1. require_once(dirname(__FILE__) . '/../../web21c.php'); 2. require_once(dirname(__FILE__) . '/../common.php'); 3. $web21c = new Web21c($applicationName, $environment); 4. $sms = $web21c->MessagingOneWay(); 5. $r = $sms->sendMessage($recipientUris, $from, $messageText);
There, I can send an SMS in 5 lines within my own website. Ok, you need to ensure the parameter values are set appropriately but it really is centred around those 5 lines. I think that's impressive. But it's not just BT's SDK that's feeding this Web Services/Mash-up move, just sniff around and you'll soon come across 100s of them, there are even catalogues of them. For instance, go to IBM's QEDWiki, or even go to http://www.strikeiron.com/. Furthermore, PlusNet's User Group (PUG) are getting in on it and plan to add a page specifically for Web Services like these (keep an eye on http://usertools.plus.net/). But there are many more that you can choose from! Earlier I wrote about how new languages crop up here, there and everywhere instead of us enhancing existing ones; I also touched on the fact that new languages by and large only have the benefit of new all-encompassing features, resulting in you having to write less code. Writing less code is a good thing, but that can be achieved by extending existing languages, writing your own libraries, or making use of libraries written by other people. I think Web Services and so called Mash-ups are a big part of the solution. You can call a Web Service from most modern languages and you can write one using most modern languages too. So, do we need a new language or can we make use of Web Services and language extensions to provide us with the increased richness, flexibility and speed to market? Will PHP, .NET and Java be the next COBOL in 5 years time or will we stay with them, be patient with them and build on them as and when we need to? My own thoughts are that Web Services and Mash-ups will be in the mix whatever languages are around. They make it incredibly easy to expose extremely powerful functionality (tried and tested) within seconds. Your libraries will no longer just be a bunch of APIs as part of an SDK you store on your own site - much of the code you use might actually be distributed amongst many third party's servers. PlusNet have already started to benefit from some of these Web Services. For example, we're trialling the use of Google Maps to help us better understand our customers' demographics, and we're also using SMS services to provide our customers with critical information. We believe that leveraging third party Web Services can provide us with significant development savings. Not only is the code already written, most of the time the code is already tried and tested as well. This saves us a considerable amount of time, which in turn means we can spend more effort doing things that we wouldn't otherwise have had the time to do. Web Services could be the biggest time saver for software development in this generation so far. I always wonder what development marvel will hit us next. Whatever happens, software development is getting easier and that can only be a good thing, right? ( Upon reflection, though, I'm not sure BASIC would have coped all that well today anyway :-) ) Dan Kirkland Head of Platform, PlusNet

0 Thanks
5 Comments
196 Views
5 Comments
Rising Star
BT’s Web21C SDK is a straightforward commercial web-services initiative – and why not? At least they seem to be going about it the right way: offering a SAML and X.509 certificate service underpinning the functionality rather than trying to bolt on security as an afterthought. (For comparison, this was a key factor in RIM’s success with the Blackberry: attractive functionality such as push-mail being built on top of end-to-end security). If BT, Google et al make it easier than their competitors for developers to access their services programmatically, meld GPS or mobile phone locations, maps, SMS and so on from more than one supplier and produce additional value through the combination, good luck to them. My concern with the general Mash Up concept is whether the data sources and functionality are offered as simple design patterns (templates) containing well-defined classes with methods instead of just a collection of APIs. I live in hope that we have gone past the stage of ‘lash-up Mash Ups’ with all their unpredictable side-effects.
Superuser
Nice Blog. A good mix of nostalgia and future trends. I left coding some (cough!) years ago - but still get the odd twitch. See some of the recent PUG pages? I've downloaded and started playing with the BT SDK - looking forward to the Set release when SIP calls should be included.
Community Veteran
I used to really like BASIC too. As I kid I used to really like the VTech 'educational' computers (i.e. they were designed to teach English, maths, etc.), and the more sophisticated models actually included a BASIC programming environment on them. Alas, it was pretty rudimentary - it didn't support anything other than text, for example (e.g. it didn't support BASIC's drawing abilities) - but it got me in to programming and tinkering with things from a very young age. And BASIC still has its uses today, I've found - well, one use anyway: graphical calculators. I never much used the programming feature of the one I had, but I remember being pleasantly surprised that it used BASIC. Having said all that, these days I don't do any programming at all - whilst I enjoy using computers, they just aren't interesting enough to be a 'way of life' for me, so I've chosen to focus on other things (I'm currently taking a degree in music)... but still, I did use to enjoy programming in BASIC a decade or more ago, and I think it's still got a good place in this world, as it does offer a very good first step in to programming.
Not applicable
Great post! I never got much further than drawing squares with different coloured sides in BASIC. Somehow Frogger always proved more interesting :-)
Dabbler
My own background is fairly similar to Dan's. I got my first real computer for my 9th birthday, in 1983; a Dragon 32. By the age of 10 I was knocking out all sorts of software, programmed in BASIC with some machine code routines thrown in. I quickly moved on to programming in 6809 assembler, then 68000 assembler and then by the age of 14 girls and football took over, so it all got packed away in the loft. I then got back into it around 1994 and built various apps in VB, VBA & VC before getting really interested in Web Development around 1995 writing small Web apps in Perl. In 1999 I joined PlusNet, picked up PHP and wrote the code for our very early customer Portal websites and the various apps contained within it. (these were the days when it took a week to get Linux , Apache, MySQL and PHP set up on your machine; missing libraries, conflicts, unsupported hardware...kids these days...etc etc). By 2001 I'd moved away from coding as part of the day job, but have still kept an active interest in the day to day developments, and it's still quite useful to knock up a quick script or app in my spare time to solve a particular problem I might be having. I absolutely echo Dan's point about web-service and mashup being here to stay. It's so easy nowadays to pull various pieces of your application together from the many ready-made services that are available. You need a map for your website? 10 lines of code and a call to Google Maps and you have it. You need a collection of images on a particular theme? 10 lines of code and a call to Flickr and you have it. It's just so simple nowadays. Matt Grest Head of Future Development PlusNet