Naming conventions are overrated. The only rule I follow is that the name should describe what the variable represents. I don't try to embed the type, or the subsystem name or other relationships into the name. All of these things are subject to change and can create maintenance problems.
Naming conventions are also a great way to participate in code reviews without contributing anything to the quality of the code. Reviewers can look for non-compliance in variable names instead of looking for errors in logic.
"If, on the other hand, you're a serious programmer, working on software that is literally millions of lines long, you're not going to have time to run through searching for declarations every time you want to use an existing variable."
Well, if you have to look through a lot of code to find a declaration, than you must be talking about global variables which hopefully are few and far between if the code is modular or object-oriented. If the variable name is descriptive, it should be fairly obvious what can be combined and what can't. In any case, most language compilers will complain if their is a type mismatch.
The real problem is documentation, in particular for public interfaces. Windows lParam and wParam used to be different sizes but now they're the same. MS decided it was better to cheat on Hungarian Notation than it was to invalidate all the existing Windows documentation.
Statistically valid surveys always quote their margin of error. If there isn't any, this survey is probably not representative of the industry at large.
I remember reading a few years ago that IBM had the most software patents (I don't have a reference). If they're really sincere about open software, perhaps they should show their good faith by relinquishing them.
The 16C was great but during its peak popularity, it had one flaw, it's ugly programmability. After using the 41C with its alphanumeric display, it was hard to go back to label addressing representation.
I realize I was spoiled, but there was a time when HP calculators would always build on the capabilities of previous versions and this was a step backwards.
Well, that sounds very simple to me: they decided profit was more important then standards. I have no problem with that, but they should just admit they want to keep Java proprietary and move on.
"The complaint from Sun is not that Microsoft's Java was crippled, but Microsoft's Java introduced certain features which Sun found it threating to its Java platform, because Sun wants its Java platform to stay totally hardware independent, because of the threat from Intel and Windows."
I mostly agree with you but I think Sun's real intent was to create the illusion that Java would provide hardware independence, have everyone become dependent on the Java Platform on the desktop (in much the same way as people were dependent on the Windows platform), and then come out with proprietary hardware to accelerate Java's performance. They wanted to turn WORA into WORABORFOS (Write-Once-Run-Anywhere-But-Only-Run-Fast-On-Sun).
They knew that they couldn't create a proprietary Java acclerator that included MS's proprietary enhancements, so they sued them. That only made things worse because it effectively killed Java on the Windows desktop which led to KOWKA (Kill-On-Windows-Kill-Anywhere). Thus there is little demand for hardware accelerated Java.
"Microsoft never open-sourced anything and everyone hates them."
Well, If that's the only reason, not everybody could hate MS because most of their customers don't even know what source code is, let alone the difference between open and closed.
Re:Please, AOLTW, switch to NS from IE for AOL..
on
Netscape 7.0 is Out
·
· Score: 1
"Yeah, we all know how much that TCP/IP standard sucked, and the FTP one, and...."
Thanks for bringing all the sacred cows out to graze.
I'm not an expect in the history of the development of Internet Protocols but I strongly suspect that these standards were created after implementations were already in use by a number of different organizations (if I'm wrong, feel free to educate me). Browser standards on the other hand seem to be somewhat disconnected from implementations.
Re:Please, AOLTW, switch to NS from IE for AOL..
on
Netscape 7.0 is Out
·
· Score: 1
"When we have competition, at a scale over 20% for the browser, we will FINALLY see standards begin to matter!"
It depends on your point of view. If you're a web page designer and your goal is to maximize the number of people that can see your page rendered indentically, then having 90% or more of the people using the same browser will get you there much better than having a bunch of different browsers that all purport to follow "standards". If you hate MS, you'd be better off if the vast majority used Netscape even if it doesn't follow the "standards". I put standards in quotes because the best standards codify existing industry practice rather than dictating the future.
I agree. Obviously hardware companies see nothing wrong with the idea of free software if they don't make money on software and it helps sell their hardware. I'm sure MS and other software companies would be delighted if PCs were free for exactly the same reasons.
It would be great if everything in life were free, I just don't see why software is a special case.
I'll assume you mean that my code was appropriate but the co-worker doesn't understand why. If I write code that requires some special explanation, I include detailed comments or I document it in some other way.
Don't let the other posters harass you. The fact is that people want to believe that skills that they possess are important so they often overemphasize them.
A classic case is Bill Gates in the book Programmers at Work where he states that great programmers remember all the code they have ever written. Guess who has a photographic memory? He didn't say anything about design, documentation or maintainability.
The fact is there is a broad range of skills useful to programmers and being able to answer questions in an interview without breaking a sweat is far, far down on the list.
"What's important is that both these editors are designed around constraints that are about 20 years out of date."
I agree with you, but this is really the story for Unix, C, etc. Programmers are really pretty hidebound as a group. Look at the new languages that come out. Even though they may not be compatible with C they have to have at least some subset of C syntax. Nobody would put junk like a "op=" operator in a language today if hadn't been in C. It was designed to save keystrokes (which was important back then), and to help the dumb C compiler to optimize. As explained in K&R, the original syntax was "=op" (which is more intuitive) but that form created problems for the compiler (Had Ritchie held a design review before coding, perhaps this would have been discovered earlier).
Well, let's talk about that. If a complete rewrite is cheaper than refactoring and results in a more maintainable code base, than it's a better solution.
Refactoring is really a form of optimization (in this case, optimizing development time and cost), and like all forms of optimization it's not always appropriate.
"Uh-oh - now they're dead. Here's a news flash; every company that ever tried to to "follow" MS's lead ends up getting served up in the MS cafeteria as stew. They will forever be behind, in the dark and ultimately out of business if this is their plan."
Well, as another poster stated, Opera never said they were going to do this. As a hypothetical case, you could argue that those that make no attempt to make their browser compatible with IE are even further behind and more likely to end up out of business than those that do so imperfectly.
The real issue is whether you can be successful competing head-to-head with MS. If doing things your own way makes your product more attractive to the average user than MS's, than you can compete. If your way is just better in the eyes of geeks and anti-MS types, than you'll be addressing a niche market.
Naming conventions are overrated. The only rule I follow is that the name should describe what the variable represents. I don't try to embed the type, or the subsystem name or other relationships into the name. All of these things are subject to change and can create maintenance problems.
Naming conventions are also a great way to participate in code reviews without contributing anything to the quality of the code. Reviewers can look for non-compliance in variable names instead of looking for errors in logic.
"If, on the other hand, you're a serious programmer, working on software that is literally millions of lines long, you're not going to have time to run through searching for declarations every time you want to use an existing variable."
Well, if you have to look through a lot of code to find a declaration, than you must be talking about global variables which hopefully are few and far between if the code is modular or object-oriented. If the variable name is descriptive, it should be fairly obvious what can be combined and what can't. In any case, most language compilers will complain if their is a type mismatch.
The real problem is documentation, in particular for public interfaces. Windows lParam and wParam used to be different sizes but now they're the same. MS decided it was better to cheat on Hungarian Notation than it was to invalidate all the existing Windows documentation.
"Your obligations, regardless of whether they have paid you or not, are to your customer"
Your customers obligation, regardless of whether they like your work or not, is to pay you as agreed.
"Right-click menus and the taskbar(dock) are both ripoffs from NEXTSTEP (which you probably know as Mac OS X these days). "
Well, Borland was using Right-click menus in the late 80's. I don't know if this predates NEXTSTEP or not.
Statistically valid surveys always quote their margin of error. If there isn't any, this survey is probably not representative of the industry at large.
I remember reading a few years ago that IBM had the most software patents (I don't have a reference). If they're really sincere about open software, perhaps they should show their good faith by relinquishing them.
Microsoft Bob
The 16C was great but during its peak popularity, it had one flaw, it's ugly programmability. After using the 41C with its alphanumeric display, it was hard to go back to label addressing representation.
I realize I was spoiled, but there was a time when HP calculators would always build on the capabilities of previous versions and this was a step backwards.
Actually, I didn't say the rewrote it in Java, I was wondering whoose idea it was. They started the project and then dropped it.
Well, that sounds very simple to me: they decided profit was more important then standards. I have no problem with that, but they should just admit they want to keep Java proprietary and move on.
I hope Sun paid Netscape to call it JavaScript. It makes me wonder, was it Sun's suggestion that Netscape rewrite their browser in Java?
"The complaint from Sun is not that Microsoft's Java was crippled, but Microsoft's Java introduced certain features which Sun found it threating to its Java platform, because Sun wants its Java platform to stay totally hardware independent, because of the threat from Intel and Windows."
) .
I mostly agree with you but I think Sun's real intent was to create the illusion that Java would provide hardware independence, have everyone become dependent on the Java Platform on the desktop (in much the same way as people were dependent on the Windows platform), and then come out with proprietary hardware to accelerate Java's performance. They wanted to turn WORA into WORABORFOS (Write-Once-Run-Anywhere-But-Only-Run-Fast-On-Sun
They knew that they couldn't create a proprietary Java acclerator that included MS's proprietary enhancements, so they sued them. That only made things worse because it effectively killed Java on the Windows desktop which led to KOWKA (Kill-On-Windows-Kill-Anywhere). Thus there is little demand for hardware accelerated Java.
"Microsoft never open-sourced anything and everyone hates them."
Well, If that's the only reason, not everybody could hate MS because most of their customers don't even know what source code is, let alone the difference between open and closed.
"Yeah, we all know how much that TCP/IP standard sucked, and the FTP one, and ...."
Thanks for bringing all the sacred cows out to graze.
I'm not an expect in the history of the development of Internet Protocols but I strongly suspect that these standards were created after implementations were already in use by a number of different organizations (if I'm wrong, feel free to educate me). Browser standards on the other hand seem to be somewhat disconnected from implementations.
"When we have competition, at a scale over 20% for the browser, we will FINALLY see standards begin to matter!"
It depends on your point of view. If you're a web page designer and your goal is to maximize the number of people that can see your page rendered indentically, then having 90% or more of the people using the same browser will get you there much better than having a bunch of different browsers that all purport to follow "standards". If you hate MS, you'd be better off if the vast majority used Netscape even if it doesn't follow the "standards". I put standards in quotes because the best standards codify existing industry practice rather than dictating the future.
I agree. Obviously hardware companies see nothing wrong with the idea of free software if they don't make money on software and it helps sell their hardware. I'm sure MS and other software companies would be delighted if PCs were free for exactly the same reasons.
It would be great if everything in life were free, I just don't see why software is a special case.
"Um, that's because the GPL is obviously legal."
In the real world nothing is "obviously legal".
"Additionaly, some legal systems explicitly state that common interest is superior to individual interest (even under a capitalist regime)."
Unfortunately, in the US individual interest has come to mean corporations rather than actual individuals.
I'll assume you mean that my code was appropriate but the co-worker doesn't understand why. If I write code that requires some special explanation, I include detailed comments or I document it in some other way.
"How do I relate "thinking on ones feet" to being a proactive problem solver? Isn't that the definition of a proactive problem solver?"
No. Being proactive has nothing to do with speed. It's about taking responsiblity.
Don't let the other posters harass you. The fact is that people want to believe that skills that they possess are important so they often overemphasize them.
A classic case is Bill Gates in the book Programmers at Work where he states that great programmers remember all the code they have ever written. Guess who has a photographic memory? He didn't say anything about design, documentation or maintainability.
The fact is there is a broad range of skills useful to programmers and being able to answer questions in an interview without breaking a sweat is far, far down on the list.
"What's important is that both these editors are designed around constraints that are about 20 years out of date."
I agree with you, but this is really the story for Unix, C, etc. Programmers are really pretty hidebound as a group. Look at the new languages that come out. Even though they may not be compatible with C they have to have at least some subset of C syntax. Nobody would put junk like a "op=" operator in a language today if hadn't been in C. It was designed to save keystrokes (which was important back then), and to help the dumb C compiler to optimize. As explained in K&R, the original syntax was "=op" (which is more intuitive) but that form created problems for the compiler (Had Ritchie held a design review before coding, perhaps this would have been discovered earlier).
Well, let's talk about that. If a complete rewrite is cheaper than refactoring and results in a more maintainable code base, than it's a better solution.
Refactoring is really a form of optimization (in this case, optimizing development time and cost), and like all forms of optimization it's not always appropriate.
"Uh-oh - now they're dead. Here's a news flash; every company that ever tried to to "follow" MS's lead ends up getting served up in the MS cafeteria as stew. They will forever be behind, in the dark and ultimately out of business if this is their plan."
Well, as another poster stated, Opera never said they were going to do this. As a hypothetical case, you could argue that those that make no attempt to make their browser compatible with IE are even further behind and more likely to end up out of business than those that do so imperfectly.
The real issue is whether you can be successful competing head-to-head with MS. If doing things your own way makes your product more attractive to the average user than MS's, than you can compete. If your way is just better in the eyes of geeks and anti-MS types, than you'll be addressing a niche market.