Click here to Skip to main content
16,008,175 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: Sending Keystrokes to another process Pin
Tim Deveaux15-Dec-01 18:05
Tim Deveaux15-Dec-01 18:05 
GeneralRe: Sending Keystrokes to another process Pin
Mustafa Demirhan16-Dec-01 17:03
Mustafa Demirhan16-Dec-01 17:03 
GeneralRe: Sending Keystrokes to another process Pin
Tim Deveaux15-Dec-01 14:24
Tim Deveaux15-Dec-01 14:24 
GeneralRe: Sending Keystrokes to another process Pin
#realJSOP16-Dec-01 3:15
professional#realJSOP16-Dec-01 3:15 
GeneralRe: Sending Keystrokes to another process Pin
Tim Deveaux16-Dec-01 4:00
Tim Deveaux16-Dec-01 4:00 
GeneralPrinting Problem! Pin
Mazdak15-Dec-01 8:36
Mazdak15-Dec-01 8:36 
GeneralBeyond Fundamental C++ - Experience Pin
valikac15-Dec-01 7:03
valikac15-Dec-01 7:03 
GeneralRe: Beyond Fundamental C++ - Experience Pin
Tim Smith15-Dec-01 8:00
Tim Smith15-Dec-01 8:00 
In the real world there are no hard and fast rules about what is best.

Does your software require speed?
Does your software need a short "to market" time frame?
Does your software require a long support requirement?
Does your software require a small memory footprint?
etc...

The answers to all these question have significant effects on what is considered good programming style.

Making a program small and fast might be counter productive if it requires long term support. Also, making it small and fast might make the product worthless if the time required to do so allows your competition to beat you to market.

In my world, maintainability and flexibility are the two most important things I have to consider. Being fast is important to some time critical sections of the code. Having a small memory footprint is only important when embedding our package.

Case #1: I worked with a programmer who spent a day making the keyboard input software very fast and efficient. On the surface, this sounds great. But when you look at package at a whole, keyboard input was not slow to the user. Our package didn't require much keyboard input. The amount of CPU time being saved was minuscule compared to the CPU time being used by the package as a whole.

Case #2: I worked on a routine that was about 150-200 lines long. The routine was basically the same block of code repeated 2 or 3 times. To make the routine more streamline, I combined the repeated blocks into a generic single block that executed 2 or 3 times. Two weeks later a co-worker brought the code to me and asked me what the hell it was doing. After looking at the code, we both agreed that even though my new routine was much more 'elegant', it was in fact a maintenance nightmare and in the long run was much worse than the original code.

Case #3: A young grad student that I worked with decided that he hated how slash screens would never repaint while the program was still initializing. He spent all day creating a thread in the program just so this one splash screen would paint properly. Of course, this was a total wasted day since the end user would see the splash screen once a day. Also, since this was the only application running on this computer, there weren't going to be any other windows causing the splash screen to repaint.

All three of these cases all boil down to the same thing. Wasted time which means wasted money. Every dollar we waste doing the wrong thing for our software is a dollar that has to come from somewhere else. This money all has to come from somewhere. Either you (the employees/employers) pay for it or the end user does.

What a lot of people don't realize is that the software decisions we make now also affect how much money will be wasted after the product ships. If you have to get it out fast, you will pay for that speed during the support phase.

Oh well, enough rambling.

Tim Smith
Descartes Systems Sciences, Inc.
GeneralRe: Beyond Fundamental C++ - Experience Pin
Michael Dunn15-Dec-01 8:39
sitebuilderMichael Dunn15-Dec-01 8:39 
GeneralRe: Beyond Fundamental C++ - Experience Pin
valikac15-Dec-01 9:31
valikac15-Dec-01 9:31 
GeneralRe: Beyond Fundamental C++ - Experience Pin
valikac15-Dec-01 10:13
valikac15-Dec-01 10:13 
GeneralRe: Beyond Fundamental C++ - Experience Pin
Tim Smith15-Dec-01 10:27
Tim Smith15-Dec-01 10:27 
GeneralRe: Beyond Fundamental C++ - Experience Pin
valikac15-Dec-01 10:51
valikac15-Dec-01 10:51 
GeneralRe: Beyond Fundamental C++ - Experience Pin
Todd Smith16-Dec-01 5:00
Todd Smith16-Dec-01 5:00 
GeneralRe: Beyond Fundamental C++ - Experience Pin
valikac16-Dec-01 5:20
valikac16-Dec-01 5:20 
GeneralFunction explored from .exe files and heap problems Pin
Marc Richarme15-Dec-01 6:02
Marc Richarme15-Dec-01 6:02 
GeneralRe: Function explored from .exe files and heap problems Pin
Igor Sukhov15-Dec-01 6:14
Igor Sukhov15-Dec-01 6:14 
GeneralRe: Function explored from .exe files and heap problems Pin
Marc Richarme15-Dec-01 8:47
Marc Richarme15-Dec-01 8:47 
GeneralRe: Function explored from .exe files and heap problems Pin
Joaquín M López Muñoz16-Dec-01 2:57
Joaquín M López Muñoz16-Dec-01 2:57 
QuestionHow to integrate a Button Object into the middle of the Mainframe at Runtime. Pin
Alexander_BMW15-Dec-01 5:20
Alexander_BMW15-Dec-01 5:20 
QuestionModeless dialog?? Pin
Rickard Andersson2015-Dec-01 1:18
Rickard Andersson2015-Dec-01 1:18 
AnswerRe: Modeless dialog?? Pin
David Wulff15-Dec-01 2:53
David Wulff15-Dec-01 2:53 
GeneralRe: Modeless dialog?? Pin
Rickard Andersson2015-Dec-01 11:36
Rickard Andersson2015-Dec-01 11:36 
GeneralActiveXComponent Pin
San15-Dec-01 0:08
San15-Dec-01 0:08 
GeneralRe: ActiveXComponent Pin
Joaquín M López Muñoz15-Dec-01 0:19
Joaquín M López Muñoz15-Dec-01 0:19 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.