About a year and a week ago I started work for CodeSmith Tools. Before I get into this, I’m a Mac person, so I never saw myself ending up in a .Net shop. Before I was getting ready for my interview I hadn’t even looked at the language, only heard about it vaguely. Having only a Mac at home I downloaded Mono to take a look. Wanted to make sure I wasn’t stepping into something completely foreign. I am happy to say that C# is a fine language, but I personally have no desire to program in VB.
About some previous experiences:
(1) Prior to getting out of school I had heard of code generation but never seen it in practice.
(2) I had programmed in Java, C, C++, PHP, Python, with a little Perl scripting thrown in there. Oh and as a Mac person I have dabbled in Objective-C.
(3) During my internship I played with MySql, Oracle, and SQL Server in Java, Php, and Python.
Personally I find that writing database code is a pain in any language. Its a whole lot of repetitive and unnecessary work. Also, during my internship the interns created the programs that we were maintaining, improving, or replacing. There seemed to be a disagreement in style about whether query code in PHP should be in the same files as the UI code. My point is between the inconsistencies and the long Sql queries I had to figure out and write by hand it seems like a lot of wasted time now.
I’ve worked on a few projects here at CodeSmith. I have yet to have to write an annoying line of sql while writing my C# code. Why? Because of PLINQO. I had no idea what PLINQO was a year ago. I have been extremely impressed with the generated code. The ability to treat all of my tables like objects has allowed me to focus on getting things done rather than trying to figure out exactly how to get the information I want by joining this to that or trying to figure out how a bunch of tables I did not create work together. PLINQO has definitely allowed me to spend more time figuring out how to get everything working and not how I’m going to interact with the data.