A 25 page’s paper by Andrew J.Brust (not including cover and TOC) provides an introduction to NoSQL database technology, and its major subcategories, for those new to the subject; an examination of NoSQL technologies available in the cloud using Windows Azure and SQL Azure; and a critical discussion of the NoSQL and relational database approaches, including the suitability of each to line-of-business application development.
- Can be downloaded here
Is listing the NoSQL options available on the Azure platform
We saw how NoSQL databases are suitable for data management that is light-duty but large-scale, and how they work well for content management requirements of many stripes. We also saw, again and again, that relational databases are best for line-of-business applications. The database consistency, query optimization and set-based declarative query capability that relational databases have provided for decades is still required by most LOB applications; this has not changed.
“The nascent NoSQL market is extremely fragmented, with many competing vendors and technologies. Programming, deploying, and managing NoSQL solutions requires specialized and low-level knowledge that does not easily carry over from one vendor’s product to another,” the two researchers, Erik Meijer and Gavin Bierman, write in a paper published inthe April issue of Communications.
More information available here
Trinity is a graph database developed by Microsoft research department
More information available here:
A great article with code sample using new functionnal language from the microsoft .Net aka F# (inspired from CAML) has been published: http://msdn.microsoft.com/en-us/magazine/gg598923.aspx
Ambar Ray, as an exercise, have implemented four matching algorithms using F# pattern matching and asynchronous programming features to quickly calculate the aggregate match score.
The four matching algorithms used in this example for attribute deduplication processes:
- absolute match
- partial match
- lookup match
It demonstrate how matching the result and scoring when appropriate.
Code sample is available here
NoSQL solution have bring a new generation of technologies(mainly by taking advantage of distributed system) and engineers but also popularize a bunch of new programming languages such as Erland,Ruby etc ….
It may be fun to take a moment and think about this very last point and write few lines about this: new languages. I’ll dedicate few line trying to answer the 1$ question; “What could be the next big one ? (programming language)”
First, few observations about programming languages:
- Language allows programmer to express algorithms precisely
- Language shapes the way we think, because it determine the ways and limits we can think
- You love a language for its expressiveness (while nothing exist to formalizing such statements)regardless of ease (theoretical expressivity)concisely and readily (practical expressivity)
Second, the technical/features approach:
- “C# is imperative,object oriented,functional,generic,reflective”
- “O’Caml is a static type system, type inference, parametric polymorphism, tail recursion, pattern matching, first class lexical closures, functors (parametric modules), exception handling, and incremental generational automatic garbage collection.”
While it properly describe programming language, by providing good classification and also reflecting the language philosophy and capability it doesn’t bring any information or leads about its popularity.
Third, a PHP story:
PHP is a very good sample as one of the latest largely adopted programming language, it wasn’t oriented object at first, and even when object-oriented programming became supported by PHP four, most PHP builders didn’t change their approach.
Its popularity and adoption came from other criteria such as:
- answering at best a single but critical and trendy need: creating dynamic website
- large and helpful community, ease of access and use
Flash could be another good sample or failure …. mainly due technical flaws. Language technical feature is not that important, but still required.
GO (programming language created by Google) is probably another failure story….
About the next big new language:
- Must bring new and strong enough technical aspect
- Must be fun and efficient enough
- Must be loved (for whatever reason)
- Must help and ease doing something highly demanded
- The current balance is a factor for upcoming change
This being said …. the 1$ question remain. We didn’t answer much ….so let’s take some risk then
- We can forgot about some language, we had a generation of programmers (well the old school one you may be part of ) who played with C,C++,Java,Perl and PHP …. you can now forget about all of them.
- We can keep an eye on some language such as Ruby (so hype few times ago) … now replaced by Erlang and Clojure (so close from Lisp) at top of the trend….
- F# came along pushed by Microsoft (close to the trend: Caml has been revived back ! )….
- Next big language could be related to mobile platform (ease development and port)
You can monitor http://langpop.com/
, aka “Programming Language Popularity” website awaiting a final answer
While we probably all agree to define NoSQL has a massive trend, we may disagree to define microsoft windows as the largest computer platform …. But still, it may sounds like a discrepancy to find out so few NoSQL products available on the leading platform market: Microsoft Windows.
Quick tour, as of today, NoSQL solution available over the windows world:
- Raven DB document oriented database,open source, especially designed for the .NET platform is the leading answer
- Voldemort (written using the cross-platform language: Java), few info can be found here
- MongoDB provide windows binaries
- Cassandra using the following specific instruction
- Keyspace provide .NET client
- Eloquera DB object oriented database which maintains an SQL and LINQ interfaces
Finally i have to mention F#, probably the smartest move by Microsoft, its a functional programming language inspired from Objective CAML