473,758 Members | 2,401 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Breaking backwards compatibility - good or bad?

If you have any PHP scripts which will not work in the current releases
due to breaks in backwards compatibility then take a look at
http://www.tonymarston.net/php-mysql...verything.html and see if
you agree with my opinion or not.

Tony Marston
http://www.tonymarston.net

Dec 20 '05
150 6571

"Jerry Stuckle" <js*******@attg lobal.net> wrote in message
news:To******** *************** *******@comcast .com...
Tony Marston wrote:
Because it's better, IMHO.

Exactly why is case-sensitivity better? No human language allows a word
to have a different meaning just by canging its case, so why should a
computer language be different, espeically when that difference allows
for unmaintainable code?


I'm not going to bite on that one any more. Several people have tried to
tell you. Go back through this thread. I'm not going to repeat their
arguments.


Their arguments don't hold water. Saying that "it is this way becauseit's
always been this way" is not an argument.
The one exception I will make - when computers can understand verbal
instructions (or even written instructions) like people do, then you can
compare computer and human languages. Until then, you are talking apples
and oranges.
Humans communicate with other humans using human language. Humans
communicate with computers using a computer language, one that translates
high-level commands into low-level machine instructions. Human and computer
languages thereore have a single point of origin, and to say that they are
like apples and oranges just shows the depth of your ignorance.

The first computer languages were case-insensitive, just like human
languages. Then some UTTER MORON decided to break with a tradition that had
existed since human language first appeared in written form and insisted
that the SAME word in a DIFFERENT case now has a DIFFERENT meaning. The
reason for this was probaby because he was too stupid or too lazy to perform
case-insensitive searches of variable and function names.
And if the majority of programmers didn't think it was progress, it
wouldn't have caught on.

Mere programmers don't have a choice, it's only the language authors that
have a choice. And what was their reason for choosing case-sensitivity
when all previous languages, whether human or computer, were entirely and
completely case-insensitive? There is no good reason, which leads me to
the conclusion that it was a STUPID MISTAKE that you are trying to
perpetuate.


Horse Hockey. EVERY programmer has a choice as to which language to use.


Most programmers have no choice. They have to use what their employer tells
them to use.
And quite frankly, most programmers I know would put you in the
"old-timer-has-been-who-refuses-to-change-but-wants-everyone-else-to-change-to-suit-him"
category.
I am not asking that all other languages be changed to suit MY taste, I am
just asking that PHP not be changed to suit YOUR taste. I have worked for 30
years with operating systems and compilers which were ALL case-insensitive,
and I see no advantage in making the change, only disadvantages.
And quite frankly, I really don't give a damn what you think. So I'm not
going to waste any more of my time.


Just as I don't give a damn what you think.
Dec 25 '05 #101

"Jerry Stuckle" <js*******@attg lobal.net> wrote in message
news:To******** *************** *******@comcast .com...
Tony Marston wrote:
"Jerry Stuckle" <js*******@attg lobal.net> wrote in message
news:LY******** *************** *******@comcast .com...
It really doesn't matter if you agree or not. The fact is the vast
majority of programmers in this world disagree with you.

I think not.
Are you saying that the vast majority of programmers would agree with a
language that allowed the same variable or function name to exist in
different mixtures of upper and lower case, and for each combination of
case to have a different meaning? That would make it far easier to write
unmaintainable code. Would that be a good or a bad thing?
They would agree with a languages that allows the same variable or
function name to exist in different mixtures of case.


What do you mean by 'same'?

Are you saying that 'box', 'Box' and 'BOX' point to the same variable, or 3
different variables?

Are you saying that 'dosomething()' , 'doSomething()' and 'doSomeThing()'
point to the same function, or 3 different functions?

Which would lead to confusing and unmaintainable code, and shuld therefore
be avoided?
After all, 'a' is NOT the same character as 'A'.
It may not be the same combination of bits in a computer language, but to a
human it is the letter 'a' wit case bein irrelevant.
They even agree that each combination of case could have a different
meaning.
I think not. Can you name me any computer language where the authors have
deliberately created their own variable and function names in different
mixtures of upper and lower case with a different meaning for each mixture?
Why not? Because it would be confusing. You have already stated yourself
that even though the language allows it you would not deliberately use
different case on the same word to give different meanings. Why not? Because
it would be confusing. So if there is a "feature" in the language that you
would not use, and you agree that usig it would lead to confusing code, then
why on earth do you want this "feature" to remain in the laguage. Why do you
continue to insist that such a "feature" is a good idea? It does not sound
very logical to me.
But they do not agree that it makes it far easier to write unmaintainable
code. You can do that in ANY language.
Yes, but as languages continue to evolve those constructs which are
considered tooharmful, and which allow programmers to shoot themselves in
the foot and produce spagetti or unmaintainale code are gradually
eliminated. That is why the ALTER verb was removed from the COBOL standard.
That is why GOTO was removed from subsequent languages. Remember, I
programmed with COBOL for 16 years so I have direct experience of these.
In fact, I find mixed case makes code MORE maintainable.
How? You have already stated that you would never personally write code that
contained the same variable or function name in different mixtures of case,
so you are avoiding something which you consider to be MORE maintainable,
thereby producing code which is LESS mantainable. Your logic just boggles
the mind.
But I digress. You're not worth any more of my time.


That's funny. I have the same opinion about you.
Dec 25 '05 #102
Tony Marston wrote:

Case-sensitivity is the whole point of this thread. Any language that has a
feature which can be abused and which produces unmaintainable code is a BAD
language. Any language that allows the same variable or function name to
Then any language is bad by your definition.
exist in different combinations of upper and lower case, and to give a
different meaning to each of those combinations, is a BAD language. Case is
irrelevant in all human languages, so it should be irrelevant in all
computer languages.
That's not true. Anyone proficient in german can assure you that "Helft
den armen Vögeln." and "Helft den Armen vögeln." means something
*completely* different! ;-)
Why do most modern languages exclude the GOTO statement? Because it is
considered BAD.


Do they? The last time I checked all modern languages get translated to
machine code at compile time and all machine languages I know have an
equivalent to GOTO, which is usually called JMP in Assembler.

Bye!
Dec 25 '05 #103
Tony Marston wrote:
I'm not going to bite on that one any more. Several people have tried to
tell you. Go back through this thread. I'm not going to repeat their
arguments.
Their arguments don't hold water. Saying that "it is this way becauseit's
always been this way" is not an argument.


I can agree with that, but...
The one exception I will make - when computers can understand verbal
instructions (or even written instructions) like people do, then you can
compare computer and human languages. Until then, you are talking apples
and oranges.


Humans communicate with other humans using human language. Humans
communicate with computers using a computer language, one that translates
high-level commands into low-level machine instructions. Human and computer
languages thereore have a single point of origin, and to say that they are
like apples and oranges just shows the depth of your ignorance.


.... now you are getting ridiculous. Human languages and computer
languages might share the same origin, but they du not share the same
purpose.

Human languages developed over time. Words changed meanings and
spelling, the grammar changed, too. On top of that humans communicate
differently than machines. We have a lot of words that communicate
vagueness or uncertainty. How much is 'a lot of'?

Computer languages on the other hand were designed from the bottom up
and their only purpose is to eliminate any vagueness in communication so
that a machine that only knows logical states (0 or 1) can follow a set
of instructions in a concise and repeatable way.

That is why computer and human languages are *very* different. If it
were not so nobody would need programmers.
The first computer languages were case-insensitive, just like human
languages. Then some UTTER MORON decided to break with a tradition that had
existed since human language first appeared in written form and insisted
that the SAME word in a DIFFERENT case now has a DIFFERENT meaning. The
reason for this was probaby because he was too stupid or too lazy to perform
case-insensitive searches of variable and function names.
Complete nonsense. The first computer languages were case insensitive
because the first computers only had upper case letters. Human languages
on the other hand never were case insensitive.
I am not asking that all other languages be changed to suit MY taste, I am
just asking that PHP not be changed to suit YOUR taste. I have worked for 30
years with operating systems and compilers which were ALL case-insensitive,
and I see no advantage in making the change, only disadvantages.


Don't make me laugh. I've been into computers for only about 22 years,
but I know computers like C64, VIC20 and PET and know why they were case
insensitive. Simply because they lacked lower case.

Bye!
Dec 25 '05 #104
Anonymous said the following on 25/12/2005 12:21:
Tony Marston wrote:
Why do most modern languages exclude the GOTO statement? Because it is
considered BAD.

Do they? The last time I checked all modern languages get translated to
machine code at compile time


Like C#, Java, PHP, VB, VBScript, JavaScript, Python and MATLAB do?

and all machine languages I know have an
equivalent to GOTO, which is usually called JMP in Assembler.


Yes, but the low-level constructs are usually completely abstracted by
the high-level language, that's the point of a high-level language. The
machine-code that a compiler/interpreter produces/invokes is just a
method of implementing each of the high-level constructs - the fact that
there's a GOTO construct at the machine level has no influence on
whether there's a GOTO construct at the language level.
--
Oli
Dec 25 '05 #105

"Anonymous" <an*******@nowh ere.invalid> wrote in message
news:43******** *******@nowhere .invalid...
Tony Marston wrote:

Case-sensitivity is the whole point of this thread. Any language that has
a
feature which can be abused and which produces unmaintainable code is a
BAD
language. Any language that allows the same variable or function name to
Then any language is bad by your definition.


Any language that allows stupid mistakes is a bad language. That's why some
programmers say that statically-typed and compiled languages are better that
dynamically-typed interpretted languages.
That's not true. Anyone proficient in german can assure you that "Helft
den armen Vögeln." and "Helft den Armen vögeln." means something
*completely* different! ;-)


Trust the bloody square-head sausage-eaters to throw a spanner in the works.
But in ENGLISH, which is the universal language, there is no difference.
Just check out any dictionary. Does it have separate entries in each case?
No? I wonder why.....
Dec 26 '05 #106

"Wayne" <no*@here.com > wrote in message
news:e7******** *************** *********@4ax.c om...
On Sat, 24 Dec 2005 11:10:33 +0000, Colin Fine
<ne**@kindness. demon.co.uk> wrote:
PHP5 marked a step forward over PHP4, but Tony has changed my mind.
The one place where it has improved things (that I can now say
class MyClass
...
if get_class($var, 'MyClass') ...
and have it work)
is not enough to justify the change.


The reason for the change was for __AutoLoad(). Since most file
systems where PHP runs is case-sensitive you need to get the proper
case of the class to map it to a file name to load.

That's the reason for that change.


Oh, I see. Just because the developers of UNIX screwed up by introducing
case-sensitivity the rest of the world has to follow suit just to be
*consistent*.
Dec 26 '05 #107

"Anonymous" <an*******@nowh ere.invalid> wrote in message
news:43******** *******@nowhere .invalid...
Tony Marston wrote:
> I'm not going to bite on that one any more. Several people have tried
> to
> tell you. Go back through this thread. I'm not going to repeat their
> arguments.
Their arguments don't hold water. Saying that "it is this way becauseit's
always been this way" is not an argument.


I can agree with that, but...
> The one exception I will make - when computers can understand verbal
> instructions (or even written instructions) like people do, then you
> can
> compare computer and human languages. Until then, you are talking
> apples
> and oranges.


Humans communicate with other humans using human language. Humans
communicate with computers using a computer language, one that translates
high-level commands into low-level machine instructions. Human and
computer
languages thereore have a single point of origin, and to say that they
are
like apples and oranges just shows the depth of your ignorance.


... now you are getting ridiculous. Human languages and computer
languages might share the same origin, but they du not share the same
purpose.


Yes they do, it's called *communication* . A computer language is used so
that a human can tell a computer what instructions to follow. That is why
COBOL was constructed around subjects, verbs, predicates, sentences and
paragraphs.
Human languages developed over time.
Having been in IT for over 30 years I have noticed that computer languages
and operating systems evolve over time as well.
Words changed meanings and
spelling, the grammar changed, too. On top of that humans communicate
differently than machines. We have a lot of words that communicate
vagueness or uncertainty. How much is 'a lot of'?

Computer languages on the other hand were designed from the bottom up
and their only purpose is to eliminate any vagueness in communication so
that a machine that only knows logical states (0 or 1) can follow a set
of instructions in a concise and repeatable way.

That is why computer and human languages are *very* different. If it
were not so nobody would need programmers.


You would still need a method of allowing a human to communicate his wishes
to the computer.
The first computer languages were case-insensitive, just like human
languages. Then some UTTER MORON decided to break with a tradition that
had
existed since human language first appeared in written form and insisted
that the SAME word in a DIFFERENT case now has a DIFFERENT meaning. The
reason for this was probaby because he was too stupid or too lazy to
perform
case-insensitive searches of variable and function names.


Complete nonsense. The first computer languages were case insensitive
because the first computers only had upper case letters. Human languages
on the other hand never were case insensitive.


But when those early computers changed to character sets which allowed both
upper and lower case they did not enforce one case or the other, thus
becoming case-insensitive. How do I know this? BECAUSE I WAS THERE, DUMMY!
I am not asking that all other languages be changed to suit MY taste, I
am
just asking that PHP not be changed to suit YOUR taste. I have worked for
30
years with operating systems and compilers which were ALL
case-insensitive,
and I see no advantage in making the change, only disadvantages.


Don't make me laugh. I've been into computers for only about 22 years,
but I know computers like C64, VIC20 and PET and know why they were case
insensitive. Simply because they lacked lower case.


My experience is with *business* computers, not *hobby* computers. Before
personal computers (known originally as micro-computers) came out I worked
on mainframes and mini-computers, all of which had both upper and lower case
and were insensitive to case.
Dec 26 '05 #108

"Wayne" <no*@here.com > wrote in message
news:4j******** *************** *********@4ax.c om...
On Sat, 24 Dec 2005 18:09:24 +0000, Colin Fine
<ne**@kindness. demon.co.uk> wrote:
WHY IS IT PROGRESS?????

PHP5 is a vast improvement on PHP4 in a number of ways. But they could
equally well have resolved the inconsistency between variable and
function names by removing case sensitivity for the former.


I'd say that adding case-sensitivity breaks less code than removing
case-sensitivity would. Adding case-sensitivity in PHP might create a
alot of hard errors (calling functions with the wrong case, for
example) but it will never go silently. Removing case-sensitivity
from variables can easily create situations where you silently end up
with incorrect results.


Only if you deliberately have the same variable name in the same scope in
different mixtures of upper and lower case, thus producing different
variables. How many programmers do you know who would do that?
Dec 26 '05 #109

"Wayne" <no*@here.com > wrote in message
news:gq******** *************** *********@4ax.c om...
On Sat, 24 Dec 2005 22:48:06 -0000, "Tony Marston"
<to**@NOSPAM.de mon.co.uk> wrote:
By mixing case I mean mixing case in the same word. Some organisations
like
all upper case, some like all lower case, but NOBODY likes a mixture of
case
in the same word. That is the difference.
Ummm.. camelCase is used ALOT. In fact, camelCase is now becoming
the standard for PHP.


Only because a few core developers are enforcing it. Nobody asked the
millions of users.
avariableliketh isisveryhardtou nderstand.
itsMuchEasierTo SayThingsWithSo meCapitals.


That's why some people still prefer to use the undersore as a word
separator, to produce something like
an_underscore_i s_far_better_th an_those_stupid _camelcaps. This is the
preferrd method in ANSI SQL for example, and has been since day 1.
Dec 26 '05 #110

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
1786
by: Jason Mobarak | last post by:
Greetings! Say that it's desirable to provide backwards compatibility for methods of an object, consider the case where... class Foo: def bar (self, a, b): pass ....is a defined class that can be serialized and later be deserialized.
7
2151
by: Sonny | last post by:
I need to port a library that is written entirely in C to C++. The library is supported on quite a few platforms (windows, Solaris, Linux, AIX, HP-UX, OSX, etc...) and there's quite an existing customer base that uses it. I need to maintain backwards compatibility such that existing users won't have to do anything to their existing applications other than a re-compile when they upgrade to this new version of the library. I figure that I...
70
4058
by: py | last post by:
I have function which takes an argument. My code needs that argument to be an iterable (something i can loop over)...so I dont care if its a list, tuple, etc. So I need a way to make sure that the argument is an iterable before using it. I know I could do... def foo(inputVal): if isinstance(inputVal, (list, tuple)): for val in inputVal: # do stuff
0
9299
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10076
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
9885
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8744
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7287
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5175
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5332
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
3832
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
3
2702
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.