LINQ. Yes. Horrible.


– Yes.

I said: “Yes”. What else do you want me to say?

I am not a developer, I am a systems engineer. But in this case, I would like to talk from the point of view of a developer. LINQ introduced great capabilities and impressive functional ease in constructing queries. But I would like to discuss things from a database access point of view. Database access is not the only thing in the development of a business application. But it is the most important thing. Do not let anyone tell you any different. Please. Do not.

I said: “Yes”. That means: “Yes, I know about LINQ. I understand what it’s for. I get its purpose, capabilities and paradigm. I realize that to create LINQ and make it a part of .NET is a tremendous undertaking, and all that has been done for the benefit of every developer.”

So, yes.

But it kind of seems backwards. The whole thing feels like a step back to me. It is not a step back, it just feels that way to me.

If there already was LINQ and nothing else, and a new method would emerge where one could dynamically construct the SQL string and send it to the database, I would be thrilled. I would go to everyone and talk about this wonderful new way of accessing the database. Complete freedom. Ability to tweak the queries, every SQL statement with exact precision. And all that as easy as dynamically constructing a string. Honestly, it cannot get any better. It is the perfect solution, the perfect method of accessing the database for every professional program with needs that are at least a bit above modest.

Or, at least, it is the best solution more often than not. LINQ is nice to have; I wouldn’t use it that much, though.

In effect, you lose the most important capability of accessing the database: building the SQL string dynamically. LINQ comes and takes that away. Now .NET languages have dynamic capabilities that excel. And, thus, these can somewhat reintroduce this lost capability. But what has been done, in effect, is that the only part of the program that really needed to be dynamic, has stopped being dynamic.

That’s horrible. I don’t need any dynamic development except to build the SQL string dynamically, and the only part that is taken away is that. No. No LINQ. I want no LINQ, whatsoever. It is a major inhibitor to the kind of advanced professional programming some developers want to do.

I find it very irritating, the way LINQ takes away the only flexibility that is essential; that of constructing the SQL statement as a string and passing it to the database. It is frustrating, to the point of hopelessness.

Anyway, the debate about programming methods is a heated one. But, my opinion is to be as free and flexible as possible; especially if you don’t know all the requirements beforehand. Something might come up that will make you wish you had the extra flexibility.

I also want to point you to The Framework Myth. Please read it. In the comments, I wrote that it is the most beautiful thing I have ever read. It talks about frameworks and how difficult it is to get them right and all-encompassing. And I also want to point you to the way I see programming. You should know that I detest writing code, scripts, whatever, except when I use Notepad. It is not Notepad, per se, that I want to use. I just want to use a text editor. And I also want to create my own code files and not leave it to some framework. I want to be in control, and they way I feel in control is to know what I am doing all the time. I want to create the files and write all the code in them. If there is a framework in between doing some of the work, I feel that I am not controlling the process. I feel that I am using a program, instead of writing one.

I remember, when the AIDS epidemic began, CNN had very good coverage of it, as they do with every issue. And they always present every side. This is what I like about CNN the most. Now, with AIDS, they had a gentleman raising a concern about using protection during sex: “We feel that we are not functioning as men, if there is something in between”. This statement fascinated me, partly because it was brilliant and partly because I never thought of protection that way. Of course, the use of protection during sex is paramount. But the gentleman’s issue should be taken very seriously and deserves further consideration. So what I would like to denote is that I feel I am not programming if there is something (a framework) in between. I feel I am not functioning as a developer if there is LINQ in between.

All these are serious issues that pertain not only to the style of one’s work but to the actual product quality and how easy it is to create and change the program; to “maintain” it.

– I meant LINQ, the band: Lunatics in Queens.

– Oh, the band! The band… They’re great!

– Yeah?

– Absolutely. They released a dynamite album. And you should see them live in concert, too. They rock!


About Dimitrios Kalemis

I am a systems engineer specializing in Microsoft products and technologies. I am also an author. Please visit my blog to see the blog posts I have written, the books I have written and the applications I have created. I definitely recommend my blog posts under the category "Management", all my books and all my applications. I believe that you will find them interesting and useful. I am in the process of writing more blog posts and books, so please visit my blog from time to time to see what I come up with next. I am also active on other sites; links to those you can find in the "About me" page of my blog.
This entry was posted in Development. Bookmark the permalink.