Google

Monday, February 05, 2007

Problems with learning to code through code reuse

I've come to the conclusion that while code reuse is a great thing to speed up development. It does not allow developers who are trying to learn a new skill to truly learn that skill.

An example would be that developers are continuously using String objects instead of StringBuilder objects when doing multiple concatenations and modifications. They have no idea why their code runs slow. You can't learn something if you don't take the time to understand it. So a lot of beginners do not know why StringBuilder is better than a String, or that in some cases just the opposite can be true, or what to look for on deciding which one to use. Some even have no idea on what immutable means.

There appears to be some disconnect these days with users who don't care to learn the basics. Part of this is due to the fact that you can build something with .NET so easy, and you don't have to know the inner workings. I find this very disheartening. Everyone wants short cuts but when you bypass this information your only setting yourself up for disaster.

So, with that I have a few suggestions for the individual who wants to know more about .NET. Start with the CLR and learn what it is and how your code is really compiled and what MSIL is. Learn about the Garbage Collector. Learn what the JIT compiler is. Learn what mutable and immutable types are. Understand why "for" loops are better than "foreach" loops. Know what pass by reference is.

This list is by no means complete but should be a good place to start. Enjoy and good luck.

Friday, February 02, 2007

No Oracle DLinq Support

Recently I had a chance to play around with DLINQ that came out in the "Microsoft Visual Studio Code Name “Orcas” - LINQ CTP (May 2006)". I was blown away by the ability to create a Data Access Layer with out writing a single sql statement.

DLINQ stands for Database Language INline Query. What this means is that we no longer have to write sql statements as strings but can compile them as constructs of the application and let the provider module build the proper query for us at execution time based on the IL that was generated. Seeing this in action was unbelievable.

I spent a good bit of time reading all the material and examples and just couldn't wait until I could try it out with Oracle. It didn't take me long to determine that there was no Oracle support built in to the product. The reading that I did did point out that there is a framework in place for any provider to create their own LINQ module. As of yet, I have found no information stating that Oracle is or plans on making an Oracle DLINQ provider.

For those of us Oracle Developers out there this is a must have in the future. Hopefully Oralce will not make us wait too long for it.