Here is why I love vb6 and wont give it up. Its a simple clean light weight language. The IDE starts up like a flash, as do debug sessions. Compiled executables are native and give good performance. They can not be decompiled and are not defacto open source. The language has not been academically abstracted away into hundreds of classes and does not require long drawn out lines of code to access object after object to complete a single task. When debugging, I can set a breakpoint and edit just about anything without a debugger reset. Including code in other functions. The message pump on the form continues to run at breakpoints so I can see output. VB6 was created by pretty much gods of Windows programming. They made super hard stuff trivially easy and did it with class. VB6 also integrates nicely with standard C and beautifully with COM. If I cant do something easily in vb6, I just switch gears, do it in C then integrate the two. I write research tools and use vb6 everyday. I am grateful that I am still using code written over a decade ago. I use C# now and again if there is a library for it that will save me allot of time, but mostly it sits on the side. I want raw access to memory and data structures without any extra layers in between. I dont want to accept all those extra startup delays every debug session or application startup. Regardless of OS, I need vb6 as a tool to do the types of processing my job entails. It lets me have more tools in less time with less typing and is perfectly capable of performing the tasks I require of it. I like the balance they struck between light weight, speed, and quick development. .Net attributes are not as suitable for my tasks.