Successful languages - show me the code please
Posted by Louis Lovas
The SIFMA show has just ended. It was a great success, we announced a few
new partnerships and our latest version, Apama 4.0. We had a constant
flow of people
coming by our booth which of course increased dramatically at 3:00 pm
each day when we opened the bar. We also had a magician who mesmerized
the crowd with his sleight-of-hand exploits. While our fearless leader John Bates had a seemingly
endless
stream of journalist and analyst interviews, myself and my colleagues
did a three day tour of (booth) duty. In addition to
showing off the new Apama 4.0 Studio, we had demonstrations of
our various Accelerators in Pricing, Smart Order Routing, Market
Surveillance, FX Aggregation and good ol' Algo Trading.
SIFMA is a true technology show, vendors large and small had dazzling displays of their wares - hard and soft. For the average attendee it was the quintessential kid in a candy store experience. It was truly geek heaven. My compatriots and I fielded a wide range of questions about the Apama platform, from the basic explanation of CEP in Capital Markets to how Apama is deployed in a wide range of asset classes. A consistent theme I heard from many of the attendees coming by our booth was "show me some code". The challenge of course was explaining a programming language in five minutes. It made me think of a recent blog by Mark Tsimelzon of Coral8 on what makes a programming language successful.
One of the most prominent characteristics of CEP, yet one of the most contentious is language. Mark's reference to slashdot links to a well written tutorial by Daniel Pietraru on the success of general-purpose programming languages and the likelihood of newcomers (i.e. Ruby, Python) unseating the mainstays (i.e. Java, C++). In a nutshell the answer to that question is an emphatic no. Interestingly, there are numerous aspects of this research on language that are applicable to CEP.
Event Processing Languages come in many shapes and sizes. They build upon prior art deriving their base syntax and semantic logic from a variety of older languages, whether that's SQL or general purpose languages like Java or C++. The marketing departments of all vendors trumpet the merits of their chosen course. In the past, I certainly have not been too quiet about this particular topic myself (although I have soften a bit lately). The very fact that the language of CEP is so fractured among vendors is a clear sign of CEP's lack of maturity. Yet it's what makes us unique, it's our special sauce and quite frankly gives this blog community the level of interest it enjoys. Standardization and commoditization has that Borg sense of sameness that I find a bit dull and boring (oh I've probably just incited a riot by making that statement).
There are a number of attributes that make for a successful programming language. The mainstays of C, C++, Java and (now) C# hold a commanding 49.915% popularity rating. Daniel Pietraru ascribes this success to a number of rationale, the first being similar syntax. A recognizable syntax is what gives languages that sense of familiarity as Mark Tsimelzon so thoughtfully pointed out. But I believe there is one aspect of a programming language that is perhaps the most important of all, that of readability. Readability plays a huge role in the long term survival of not only a language but the software projects built in it. The Java language, as shown in the popularity chart of this tutorial, holds a commanding lead (20.176%) over all other general purpose languages. This success is arguably due to a natural evolution, a Darwinian survival of the fittest so to speak (or most popular as the case may be). It's authors wisely pruned the obtuse and wildly unreadable aspects of C++. It's interesting to note where SQL (or PL/SQL to be specific) ranks, you'll have to check that for yourself.
How does all this relate to the language of CEP? The same set of characteristics still ring true. A familiar recognizable syntax is important yet readability is vitally important. This is the approach we at Apama have taken. Our EPL, MonitorScript is quite purposed for the event processing paradigm yet has the familiar readability of those mainstay languages like Java. MonitorScript is predominately an imperative programming language with declarative constructs purposed for the event paradigm. Yet even the declarative on all Tick(symbol="IBM") is an easily understood concept. In a short five minute session a Java, C++ or C# programmer will be able to not only see a familiar syntax but also a readable semantic of even a reasonably complex MonitorScript application. This makes the first impression of Apama and our EPL a good one.
Hi Louis,
One of your sentences is misleading:
"The Java language, as shown in the popularity chart of this tutorial, holds a commanding lead (20.176%) over all other general purpose languages."
In the chart, Java holds around a 5% lead over C. Your words accidently sound like Java holds a 20% lead over all other languages, which is incorrect.
Yours faithfully, Tim
Posted by: Tim Bass | Saturday, June 14, 2008 at 11:45 PM
Is Monitorscript user manual on-line at your website?
I have an early version from when Progress first bought Apama. I always found the Apama Javascript very easy to use/read/understand/think with.
It is, as you say, imperative. It has a very intuitive approach to multiprocess programming with shared state. I find it much easier that SSQL.
However, I believe EPLs have to become declarative, more in the direction of Rapide. A user has to think more about the event pattern and not about the processes for detecting it.
Finally, for Gods sake use a blog sodtware that doesn't need email addresses, or at least will allow "at" instead of "@".
Posted by: David Luckham | Sunday, June 15, 2008 at 04:58 PM
Thanks Tim, I stand corrected. The 20.167% figure I quoted is Java's rating not it's lead.
Java holds the first place position with a popularity rating of 20.167% Second place goes to the C language with 15.292% rating. This of course is just one of many polls on the success of languages. You can find more at http://www.langpop.com/
Posted by: Louie | Monday, June 16, 2008 at 08:19 AM
Thank you, that was interesting. Id also like to share with you a rapidshare SE http://www.rapidsloth.com that i found and its helpful for anyone that likes to searh for downloads.
Posted by: cherri | Saturday, March 06, 2010 at 05:50 PM
Louis Lovas
who have done a great job.
am a newbie
to all these type of programing concepts.
thank u for sharing.
Posted by: java tutorial | Tuesday, October 26, 2010 at 11:04 AM
I'd actually love to review these boxes on my shopping/lifestyle blog. i wonder if they'd send me a sample box to talk about?
Posted by: Outlets Belstaff | Thursday, December 29, 2011 at 12:21 PM