Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In this thread, an Oracle Product Manager (username "Alex Keh") refused to make Oracle's EF provider to conform with .NET's PascalCase coding standard for class names and property names, saying that it is only "cosmetics" without any "functional needs".

I discussed it with my team. One of the key things we want to know is why developers are spending so much time changing the case between Oracle and EF. Is there a compelling functional need to change from upper case to Pascal case, not just a cosmetic one?

On the feature request tool and this thread, people have asked for the feature, but not offered a reason why Pascal casing is so important that they would be willing to conduct the manual mapping changes.

For me, the main reason is that I don't want to see Oracle's UPPER_CASE name convention mixing in my .NET code, but it seems that this is not enough. How would you justify effort to support PascalCase convention?

share|improve this question

closed as unclear what you're asking by gnat, BЈовић, MichaelT, Kilian Foth, Bart van Ingen Schenau Jul 31 '13 at 12:06

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question.If this question can be reworded to fit the rules in the help center, please edit the question.

possible duplicate of How can I convince management to deal with technical debt? – gnat Jul 30 '13 at 4:51
I think it has been made abundantly clear over the course of the last decade that if you use .NET, Oracle aren't interested in persuading you to use their products. It's unfortunate if you're in a situation that forces you to use Oracle as a database, but if you've got any choice, then just accept the fact that they don't want you as a customer. – Carson63000 Jul 30 '13 at 7:40
@Carson63000: with that line of thinking I've always been wondering if they even want people to use Java :) – DXM Jul 30 '13 at 17:54

How do home builders justify the effort that every wall stud is 16" from each other? How do aircraft engineers justify that bolts/rivets (whatever they use these day) on an aircraft's wing are all evenly spaced?

Maybe exact spacing doesn't matter and maybe capitalization doesn't matter but outside of software engineering it is very easy to look at these things that don't matter and tell a difference between a well-crafted product and something that was slapped together. Why should software be any different?

Having consistent style throughout your code base allows your engineers to read it efficiently without their brain going, "WTF" every time they open a new source file. Maybe capitalization by itself isn't a major contributing factor, but the key is overall style. More standard and consistent look and feel of all your code makes you use less brain cycles trying to read it and more cycles trying to understand it.

Developers are spending time on Oracle's capitalization because they are trying to clean up the mess and align all those studs/rivets/bolts (whatever software equivalent is). Maybe it is just aesthetic to a Program Manager but when a developer fixes one of these things, it is one less thing that bugs him about the code base, so next time he has to work on the file, he can avoid one more annoyance/distraction and jump right into the guts. Good software engineers are generally those that pay a lot of attention to details. It is important because when you are write a piece of code, it can fail in a 1000+ different ways and paying attention is how you avoid spending 90% of your time looking for bugs. But when a person pays attention to details, they notice ALL details.

One of the well-known authors (can't remember source but either Robert C. Martin or maybe Brooks or DiMarco) once mentioned an analogy that even a product manager should understand: if you need to make a dinner, would you rather do it in a messy kitchen with dirty counters and utensils all over the place? Or would you prefer to enter a spotless, clean environment where everything is exactly where it should be? Sure you can get your work done in both types of environments but a) you'll definitely be more efficient in a clean one and b) if nothing else, it just makes your work day that much more enjoyable. Sifting through 1000s of lines of code on daily basis is a software engineer's (NOT product manager's) work environment and they should have full right to go in and clean it up. Because your happy engineer is your productive engineer. Your engineer whose hands are tied so much that he can't even fix capitalization is an engineer who goes home and works on his resume or his own startup software.

And this last part is mostly a rant that might get me flamed, but here goes... In the last year or so I've head the pleasure of crossing paths with numerous pieces of software produced by Oracle and most of the time I did walk away with a feeling that their official policy is to slap sh#t together. I don't know any other company at that level who takes more than 6 months to fix a security vulnerability or who defines a class which internally contains the data you need but the only way for you to get that data is to call toString() and then parse what you get back.

share|improve this answer
hear, hear..... – Louis Rhys Jul 30 '13 at 4:18
No, the rant was entirely appropriate; companies that produce badly styled software show that they don't care about their users, and deserve to be called out for it. – congusbongus Jul 30 '13 at 4:19
Very well written answer but I feel like it doesn't actually answer the question: Is there a compelling functional need to change from upper case to Pascal case, not just a cosmetic one? – Mike Jul 30 '13 at 4:35
@Mike by definition capitalisation is cosmetic and not functional. Consistent style improves readability and developer morale, both points covered in the answer. – congusbongus Jul 30 '13 at 5:00
@Mike: have you ever had one of those days when you come to work and spend 6 hours walking around and talking to people? I have, they are fun. Interestingly enough, I got paid on that day just as much as on a different day when I spent 12+ hours coding. I'm interpreting this question, "is the change just in characters in some file, or will there be a visible effect on shipping software" - obviously there's no direct effects and it is not about capitalization but about letting software developer do what they believe is the right thing to do. If you treat your people right, you bet your a$$... – DXM Jul 30 '13 at 5:08

Not the answer you're looking for? Browse other questions tagged or ask your own question.