Microsoft has been mercilessly tightening the screws between SQL
Server and stack components BizTalk Server and Visual Studio a tighter integration that's making developers gleeful and
causing DBAs to cringe.
"If you're a developer, this makes
[you] very happy. It has [database administrators] pretty concerned," said Kevin
Kline, SQL Server MVP, director of technology for SQL Server Solutions at
Quest Software and president of PASS (Professional Association for SQL Server).
"You can have code running on SQL Server and you get a bug and you don't know
how to code and debug it."
At the heart of the problem is T-SQL, a
proprietary stored procedure language that SQL Server DBAs know like the back of
their hands but that might as well be Greek to most .Net developers.
With an integration gleam in its eye,
Microsoft Corp. has set its sights on demolishing the wall between those two
groups. In SQL Server 2005 due to ship in early November for the first time, the
company's CLR (Common Language Runtime) will be integrated into the heart of the
database.
That means that instead of being
constrained to T-SQL, developers will be able to program to the data tier based
on the language that they're most familiar with, such as Visual Basic or C#, to
create applications for the database.
Microsoft still intends to support and
innovate around the T-SQL language that developers use to build applications for
SQL Server, but developers will be able to use the often faster and less
code-intensive SQL CLR.
It's easy to see why developers are so
happy. CLR is a powerful tool with significant advantage over T-SQL in a few
areas, according to Rick Dobson, an author, trainer and Webmaster for
ProgrammingMSAccess.com.
It's a compiled language, as opposed to
an interpreted one, as is T-SQL, Dobson pointed out. Also, CLR is powerful for
computation-intensive tasks, such as string computation, he said.
For his part, Anders Hejlsberg, a
Microsoft Distinguished Engineer and the man known as the father of C#, is
planning to tackle the integration question at Microsoft's upcoming Professional
Developers Conference, according to Microsoft's posted abstracts.
Among other things, Hejlsberg plans to
talk about new language features in C# 3.0, including anonymous types that make
it possible to create powerful APIs for expressing queries and interacting with
objects, XML and databases in a strongly typed, natural way.
"My particular interest for the past
couple of years has been to really think deeply about the big impedance mismatch
we have between programming languages, C# in particular, and the database world,
like SQL or, for that matter, the XML world, like XQuery and those languages
that exist there," Hejlsberg told Microsoft Watch Editor Mary Jo Foley and eWEEK
Senior Editor Darryl K. Taft during the recent Microsoft Tech Ed conference.
"…When you're learning to program in
C#, you're actually not just learning to program in C#. You're also learning
SQL," he said. "Interestingly, we've come to accept that that's just how it is.
But it doesn't necessarily have to be that way. The two worlds are actually
surprisingly unintegrated."
Microsoft is looking to make progress
to fix that the gap between the two worlds, both on the tools side and on the
language side, where we'll see the "Whidbey" release arm programmers with much
more code sharing.
So what are DBAs afraid of? A typical
scenario is that programmers will write for a development server. The
application seems to work well on that setup, so developers move the code over
to the production server. Performance takes a nosedive, and it becomes the DBA's
responsibility to fix it, according to Kline.
"[DBAs will] look at code in there and
say, 'You're using a cursor that consumes all sorts of resources it shouldn't
have to, so let's change to an alternative [string] that works better," he said.
"Now, the DBA traces to a CLR procedure, and when he opens it he doesn't know
C#. It's code he doesn't know how to fix, but he's responsible for it."
Thus, many DBAs are at this point
deploying a head-in-the-sand strategy to the impending CLR integration, Kline
said, as few actively seek to acquire .Net or C# coding skills. "A lot of DBAs
are saying, 'I'll be responsible for that when I know how to use it; when I'm
familiar with it,'" he said.
Much of the problem has to do with the
fact that .Net is just too hard, Dobson said. "Most IT pro people I'm talking
about the DBAs did not embrace .Net" when it first came out in 2001, he said.
Dobson conjectured that this may be the
reason for Microsoft to opt for turning the integrated CLR off by default when
it ships the final SQL Server 2005 database. "Many DBAs have expressed concern
about this CLR code hanging around their SQL Server databases," he said.
Between .Net being tougher to use than
Visual Basic and having the integrated CLR shipped off by default, Dobson
predicts that all this integration will be facing a languid adoption rate. "That
combination of 'off by default' and concern by DBAs suggests to me that the
integrated CLR will get off to a slow start," he said.
Will this forever hamper the adoption
of the integrated CLR in the SQL Server world? Kline thinks not, the saving
grace being that the line between developers and DBAs is much fuzzier than that
of, for example, Oracle Corp. databases.
"The line s very firmly and darkly
drawn between developers and DBAs in the Oracle world," he said. "With
Microsoft, there are DBAs who are fairly good developers and vice versa. There's
a portion out there that say 'No problem, I can handle it.' In shops where
they're allowed to specialize a bit more, they don't have that skill set and are
a bit more skittish about CLR.
"For those of us around when Oracle
launched Java in the database engine, we wonder if it will be a repeat of that.
Java didn't turn out to be a compelling feature. It could wind up going that
way. My feeling, though, is that the developer community is so much stronger in
the SQL Server world than [in the Oracleworld], my guess is that it will find a
toehold."
At any rate, PASS will be helping to
secure that toehold: The heightened integration between SQL Server and the rest
of the stack will be a major theme at PASS' upcoming conference, Kline
said.