SQL Server takes a big step forward into the .NET world with the upcoming SQL Server 2005 release. At TechEd earlier this month, we chatted with Wintellect instructor and expert Peter DeBetta about SQL Server, and how well Microsoft was doing in terms of moving into larger enterprises and more difficult applications. Also discussed: How VB.NET and C# fit. DeBetta has coauthored several books, including "Introduction to SQL Server 2005 for Developers."
Q: Sometimes it seems like VB is getting a bad rap. What do you think?
A: I started with VB2. Over the years, as VB came into its own right, it became a viable tool. It can do almost anything you really need it to do. I've worked on systems where we implemented the equivalent of SOAP [for the Simple Object Access Protocol] entirely in VB, with no XML, all in binary.
I think VB has gotten a bad name in the industry because it has allowed people to come in and start working more readily – to get their skills up – but not have practical experience. You can work more rapidly, but – not having the experience – you find sometimes applications don't get architected correctly. But with some experience, it can be done. Some of the best developers I know are VB developers.
Q: Yet, with the arrival of .NET, they had to think about going straight to C# instead of learning VB.NET. as .NET arrived, they've had to stop and think about whether they might not just go straight to C#, rather than learn VB.NET.
A: Well, I knew .NET was going to be a paradigm change. VB programmers could go either route. I made a conscious decision to say 'I want to do C#, because I wanted to get another language under my belt.' I know VB syntax already. It is different in VB.NET, but the main difference in VB.NET is you are dealing with the .NET framework, which the C# developers are dealing with too.
So now I know I can jump back to VB.NET because I know C# and I know VB. That is to say: I know the .NET framework and I know VB.
Q: Meanwhile, there are indications that VB.NET 2005 will be more 'VB-developer-friendly, ' -- that you can do things a lot easier with VB.NET than with C#, at least in the sense that some things can be done with a lot less code.
A: I like the syntactic structure of C#. It's an easier read for me in a lot or respects. But [all the languages] are doing basically the same thing. They all implement code that is going to be put into CLI and 'JITCed' [Just-In-Time Complied] to run.
So I think it's going to be a personal preference. There are going to be some things that C# does that VB.NET doesn't do from the compiler standpoint – because the compiler doesn't compile the code this or that way. VB programmers could go either route.
There are advocates of VB.NET, and there are very strong advocates of C#. I am an advocate of .NET. Whatever path a programmer decides to take is going to be a good choice.
Q: Support of the CLR in SQL Server 2005 has garnered a lot of attention. But performance may be the major issue in terms of a corporation choosing a database. How does the Microsoft DB stack up?
A: SQL Server, Oracle, DB2, Sybase ... they all have their place. SQL Server 2000 does the job. It can scale up and do the job that Oracle does. From what I have seen, SQL Server 2005 is going to do the same if not better. Will people adopt it? Database servers are things that people don't adopt as readily as they do programming languages, so I think it will take more time for SQL Server 2005 to get out of gate than VB.NET.
Q: Going forward, will the role of either the database designer or application developer role change?
A: DB developers definitely have some new things they are going to have to deal with. A lot of people have their feet in camps, SQL and .NET. A lot of them are going to end up being the liaison with the DBAs and the core programmers and architects who are doing none of the data stuff. There is going to be more interaction between the groups.
The database developer was never a defined role. There just were people who did it. SQL Server 2005 may require a certain skill set – because you don't want every developer writing code that goes in the DB. They have to understand the DB, and they have to understand the architecture, and they have to understand the engine. So you are going to want people to focus to that.
Some people will tell you the CLR is bad because some people are going to write bad code. I think that is a poor reason to say the CLR is bad -- if that were the case, pointers were a bad thing. Just because you empower people doesn't necessarily make the product a bad thing. It's about educating people to do the right thing. And I think Microsoft is trying to do that.