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
728 Views
5 Comments