7 added 63 characters in body
source | link

To answer your direct question: Why didn't C# adopt these four syntactic changes?

As for #4 - they did. In C# 6.0 with using static you can indeed write WriteLine which saves you some typing. So you get your wish granted!

But for the other 3 points - these we not adopted because C# descends from languages with a different style of syntax, and there would be no clear benefit to changing this syntax. Despite what you claim, there is no evidence your suggested syntax is more productive in general.

You should look intocan compare with BASIC (and the various derivatives like Visual Basic and VB.Net). It which has some the features you request:

  • No semicolons, line breaks are used instead
  • Not case sensitive
  • The logical operators are called and and or
  • A print statement.

Python also almost conforms, except it is case sensitive. BASIC was designed for beginners. Python also emerged from an attempt to create a teaching language for beginners, and usability studies were actually used to determine the simplest syntax.

Java and C# has a different style of syntax because they are derived from C++ and C, so it all comes down to C (which in turn was based on B and BCPL). Neither of these languages were intended for beginners or for teaching. They were systems programming languages intended for hard-core developers.

C++ built on C syntax because it started out as an extension of C. Java built on C++ syntax because it started out as an extension of C++. C# copied Java syntax, because they wanted to lure Java and C++ programmers.

That said, there is no proof that BASIC or Python syntax is more productive as you seem to take for granted. They are designed to be easier to learn but this is not the same as more productive in general use by a competent developer. (Note: there is no proof of the opposite either. It is notoriously hard to measure developer productivity and compare it across languages.)

For example or is clearly easier to understand than || for non-programmers which know basic logic. But if you already know the language by heart, I have a hard time believing one should be significantly more productive than the other. The reason C has the shortcut operators && and || is for symmetry with the bitwise operators & and |. VB.Net has both, and calls them Or and OrElse - certainly not simpler or easier to type!

There are many factors which make a language more or less productive and syntax is just a single superficial factor. For example the C-style languages are all statically typed while BASIC/Python are dynamically typed, which is a much deeper difference.

One thing you mention, case insensitivity, definitely does not improve productivity for competent developers. Case sensitivity may be confusing for beginners, but any competent developer would always be consistent in casing for the sake of readability. Never mind the difficulties of case folding when using unicodeUnicode characters from various scripts and languages.

The Console.WriteLine issue is one thing that was not inherited from C. C has printf as a stand-alone function. Java did away with stand-alone functions, so everything had to be a method. Arguably this made the language simpler and more consistent, at the cost of more typing. But with the recent introduction of import Static (using static in C#) you can save this typing. So in this case the languages have been made simpler to type.

You should look into BASIC (and the various derivatives like Visual Basic and VB.Net). It has some the features you request:

  • No semicolons, line breaks are used instead
  • Not case sensitive
  • The logical operators are called and and or
  • A print statement.

Python also almost conforms, except it is case sensitive. BASIC was designed for beginners. Python also emerged from an attempt to create a teaching language for beginners, and usability studies were actually used to determine the simplest syntax.

Java and C# has a different style of syntax because they are derived from C++ and C, so it all comes down to C (which in turn was based on B and BCPL). Neither of these languages were intended for beginners or for teaching. They were systems programming languages intended for hard-core developers.

C++ built on C syntax because it started out as an extension of C. Java built on C++ syntax because it started out as an extension of C++. C# copied Java syntax, because they wanted to lure Java and C++ programmers.

That said, there is no proof that BASIC or Python syntax is more productive as you seem to take for granted. They are designed to be easier to learn but this is not the same as more productive in general use by a competent developer. (Note: there is no proof of the opposite either. It is notoriously hard to measure developer productivity and compare it across languages.)

For example or is clearly easier to understand than || for non-programmers which know basic logic. But if you already know the language by heart, I have a hard time believing one should be significantly more productive than the other. The reason C has the shortcut operators && and || is for symmetry with the bitwise operators & and |. VB.Net has both, and calls them Or and OrElse - certainly not simpler or easier to type!

There are many factors which make a language more or less productive and syntax is just a single superficial factor. For example the C-style languages are all statically typed while BASIC/Python are dynamically typed, which is a much deeper difference.

One thing you mention, case insensitivity, definitely does not improve productivity for competent developers. Case sensitivity may be confusing for beginners, but any competent developer would always be consistent in casing for the sake of readability. Never mind the difficulties of case folding when using unicode characters from various scripts and languages.

The Console.WriteLine issue is one thing that was not inherited from C. C has printf as a stand-alone function. Java did away with stand-alone functions, so everything had to be a method. Arguably this made the language simpler and more consistent, at the cost of more typing. But with the recent introduction of import Static (using static in C#) you can save this typing. So in this case the languages have been made simpler to type.

To answer your direct question: Why didn't C# adopt these four syntactic changes?

As for #4 - they did. In C# 6.0 with using static you can indeed write WriteLine which saves you some typing. So you get your wish granted!

But for the other 3 points - these we not adopted because C# descends from languages with a different style of syntax, and there would be no clear benefit to changing this syntax. Despite what you claim, there is no evidence your suggested syntax is more productive in general.

You can compare with BASIC (and the various derivatives like Visual Basic and VB.Net) which has the features you request:

  • No semicolons, line breaks are used instead
  • Not case sensitive
  • The logical operators are called and and or
  • A print statement.

Python also almost conforms, except it is case sensitive. BASIC was designed for beginners. Python also emerged from an attempt to create a teaching language for beginners, and usability studies were actually used to determine the simplest syntax.

Java and C# has a different style of syntax because they are derived from C++ and C, so it all comes down to C (which in turn was based on B and BCPL). Neither of these languages were intended for beginners or for teaching. They were systems programming languages intended for hard-core developers.

C++ built on C syntax because it started out as an extension of C. Java built on C++ syntax because it started out as an extension of C++. C# copied Java syntax, because they wanted to lure Java and C++ programmers.

That said, there is no proof that BASIC or Python syntax is more productive as you seem to take for granted. They are designed to be easier to learn but this is not the same as more productive in general use by a competent developer. (Note: there is no proof of the opposite either. It is notoriously hard to measure developer productivity and compare it across languages.)

For example or is clearly easier to understand than || for non-programmers which know basic logic. But if you already know the language by heart, I have a hard time believing one should be significantly more productive than the other. The reason C has the shortcut operators && and || is for symmetry with the bitwise operators & and |. VB.Net has both, and calls them Or and OrElse - certainly not simpler or easier to type!

There are many factors which make a language more or less productive and syntax is just a single superficial factor. For example the C-style languages are all statically typed while BASIC/Python are dynamically typed, which is a much deeper difference.

One thing you mention, case insensitivity, definitely does not improve productivity for competent developers. Case sensitivity may be confusing for beginners, but any competent developer would always be consistent in casing for the sake of readability. Never mind the difficulties of case folding when using Unicode characters from various scripts and languages.

6 added 446 characters in body
source | link

You should look into BASIC (and the various derivatives like Visual Basic and VB.Net). It has some the features you request:

  • No semicolons, line breaks are used instead
  • Not case sensitive
  • The logical operators are called and and or
  • A print statement.

Python also almost conforms, except it is case sensitive. BASIC was designed for beginners. Python also emerged from an attempt to create a teaching language for beginners, and usability studies were actually used to determine the simplest syntax.

Java and C# has a different style of syntax because they are derived from C++ and C, so it all comes down to C (which in turn was based on B and BCPL). Neither of these languages were intended for beginners or for teaching. They were systems programming languages intended for hard-core developers.

C++ built on C syntax because it started out as an extension of C. Java built on C++ syntax because it started out as an extension of C++. C# copied Java syntax, because they wanted to lure Java and C++ programmers.

That said, there is no proof that BASIC or Python syntax is more productive as you seem to take for granted. They are designed to be easier to learn but this is not the same as more productive in general use by a competent developer. (Note: there is no proof of the opposite either. It is notoriously hard to measure developer productivity and compare it across languages.)

For example or is clearly easier to understand than || for non-programmers which know basic logic. But if you already know the language by heart, I have a hard time believing one should be significantly more productive than the other. The reason C has the shortcut operators && and || is for symmetry with the bitwise operators & and |. VB.Net has both, and calls them Or and OrElse - certainly not simpler or easier to type!

There are many factors which make a language more or less productive and syntax is just a single superficial factor. For example the C-style languages are all statically typed while BASIC/Python are dynamically typed, which is a much deeper difference.

One thing you mention, case insensitivity, definitely does not improve productivity for competent developers. Case sensitivity may be confusing for beginners, but any competent developer would always be consistent in casing for the sake of readability. Never mind the difficulties of case folding when using unicode characters from various scripts and languages.

The Console.WriteLine issue is one thing that was not inherited from C. C has printf as a stand-alone function. Java did away with stand-alone functions, so everything had to be a method. Arguably this made the language simpler and more consistent, at the cost of more typing. But with the recent introduction of import Static (using static in C#) you can save this typing. So in this case the languages have been made simpler to type.

You should look into BASIC (and the various derivatives like Visual Basic and VB.Net). It has some the features you request:

  • No semicolons, line breaks are used instead
  • Not case sensitive
  • The logical operators are called and and or
  • A print statement.

Python also almost conforms, except it is case sensitive. BASIC was designed for beginners. Python also emerged from an attempt to create a teaching language for beginners, and usability studies were actually used to determine the simplest syntax.

Java and C# has a different style of syntax because they are derived from C++ and C, so it all comes down to C (which in turn was based on B and BCPL). Neither of these languages were intended for beginners or for teaching. They were systems programming languages intended for hard-core developers.

C++ built on C syntax because it started out as an extension of C. Java built on C++ syntax because it started out as an extension of C++. C# copied Java syntax, because they wanted to lure Java and C++ programmers.

That said, there is no proof that BASIC or Python syntax is more productive as you seem to take for granted. They are designed to be easier to learn but this is not the same as more productive in general use by a competent developer. (Note: there is no proof of the opposite either. It is notoriously hard to measure developer productivity and compare it across languages.)

For example or is clearly easier to understand than || for non-programmers which know basic logic. But if you already know the language by heart, I have a hard time believing one should be significantly more productive than the other. The reason C has the shortcut operators && and || is for symmetry with the bitwise operators & and |. VB.Net has both, and calls them Or and OrElse - certainly not simpler or easier to type!

There are many factors which make a language more or less productive and syntax is just a single superficial factor. For example the C-style languages are all statically typed while BASIC/Python are dynamically typed, which is a much deeper difference.

One thing you mention, case insensitivity, definitely does not improve productivity for competent developers. Case sensitivity may be confusing for beginners, but any competent developer would always be consistent in casing for the sake of readability. Never mind the difficulties of case folding when using unicode characters from various scripts and languages.

You should look into BASIC (and the various derivatives like Visual Basic and VB.Net). It has some the features you request:

  • No semicolons, line breaks are used instead
  • Not case sensitive
  • The logical operators are called and and or
  • A print statement.

Python also almost conforms, except it is case sensitive. BASIC was designed for beginners. Python also emerged from an attempt to create a teaching language for beginners, and usability studies were actually used to determine the simplest syntax.

Java and C# has a different style of syntax because they are derived from C++ and C, so it all comes down to C (which in turn was based on B and BCPL). Neither of these languages were intended for beginners or for teaching. They were systems programming languages intended for hard-core developers.

C++ built on C syntax because it started out as an extension of C. Java built on C++ syntax because it started out as an extension of C++. C# copied Java syntax, because they wanted to lure Java and C++ programmers.

That said, there is no proof that BASIC or Python syntax is more productive as you seem to take for granted. They are designed to be easier to learn but this is not the same as more productive in general use by a competent developer. (Note: there is no proof of the opposite either. It is notoriously hard to measure developer productivity and compare it across languages.)

For example or is clearly easier to understand than || for non-programmers which know basic logic. But if you already know the language by heart, I have a hard time believing one should be significantly more productive than the other. The reason C has the shortcut operators && and || is for symmetry with the bitwise operators & and |. VB.Net has both, and calls them Or and OrElse - certainly not simpler or easier to type!

There are many factors which make a language more or less productive and syntax is just a single superficial factor. For example the C-style languages are all statically typed while BASIC/Python are dynamically typed, which is a much deeper difference.

One thing you mention, case insensitivity, definitely does not improve productivity for competent developers. Case sensitivity may be confusing for beginners, but any competent developer would always be consistent in casing for the sake of readability. Never mind the difficulties of case folding when using unicode characters from various scripts and languages.

The Console.WriteLine issue is one thing that was not inherited from C. C has printf as a stand-alone function. Java did away with stand-alone functions, so everything had to be a method. Arguably this made the language simpler and more consistent, at the cost of more typing. But with the recent introduction of import Static (using static in C#) you can save this typing. So in this case the languages have been made simpler to type.

5 added 12 characters in body
source | link

You should look into BASIC (and the various derivatives like Visual Basic and VB.Net). It has some the features you request:

  • No semicolons, line breaks are used instead
  • Not case sensitive
  • The logical operators are called and and or
  • A print statement.

Python also almost conforms, except it is case sensitive. BASIC was designed for beginners. Python also emerged from an attempt to create a teaching language for beginners, and usability studies were actually used to determine the simplest syntax.

The reason Java and C# has a different style of syntax isbecause they are derived from C++ and C, so it all comes down to C (which in turn was based on B and BCPL). Neither of these languages were intended for beginners or for teaching. They were systems programming languages intended for hard-core developers.

C++ followedbuilt on C syntax because it started out as an extension of C. Java followed the C/C++built on C++ syntax for familiarity. Many developers already knew C/C++, sobecause it was easier for them to adopt a language with a similar syntax, and Java wanted to lure C/C++ programmersstarted out as an extension of C++. C# followedcopied Java syntax, because they wanted to lure Java and C++ programmers.

That said, there is no proof that BASIC or Python syntax is more productive as you seem to take for granted. They are designed to be easier to learn but this is not the same as more productive in general use by a competent developer. (Note: there is no proof of the opposite either. It is notoriously hard to measure developer productivity and compare it across languages.)

For example or is clearly easier to understand than || for non-programmers which know basic logic. But if you already know the language by heart, I have a hard time believing one should be significantly more productive than the other. The reason C has the shortcut operators && and || is simply for symmetry with the bitwise operators & and |. VB.Net has both, and calls them Or and OrElse - certainly not simpler or easier to type!

There are many factors which make a language more or less productive and syntax is just a single superficial factor. For example the C-style languages are all statically typed while BASIC/Python are dynamically typed, which is a much deeper difference.

One thing you mention, case insensitivity, definitely does not improve productivity for competent developers. Case sensitivity may be confusing for beginners, but any competent developer would always be consistent in casing for the sake of readability. Never mind the difficulties of case folding when using unicode characters from various scripts and languages.

You should look into BASIC (and the various derivatives like Visual Basic and VB.Net). It has some the features you request:

  • No semicolons, line breaks are used instead
  • Not case sensitive
  • The logical operators are called and and or
  • A print statement.

Python also almost conforms, except it is case sensitive. BASIC was designed for beginners. Python also emerged from an attempt to create a teaching language for beginners, and usability studies were actually used to determine the simplest syntax.

The reason Java and C# has a different style of syntax is they are derived from C++ and C, so it all comes down to C (which in turn was based on B and BCPL). Neither of these languages were intended for beginners or for teaching. They were systems programming languages intended for hard-core developers.

C++ followed C syntax because it started out as an extension of C. Java followed the C/C++ syntax for familiarity. Many developers already knew C/C++, so it was easier for them to adopt a language with a similar syntax, and Java wanted to lure C/C++ programmers. C# followed Java syntax, because they wanted to lure Java and C++ programmers.

That said, there is no proof that BASIC or Python syntax is more productive as you seem to take for granted. They are designed to be easier to learn but this is not the same as more productive in general use by a competent developer.

For example or is clearly easier to understand than || for non-programmers which know basic logic. But if you already know the language by heart, I have a hard time believing one should be significantly more productive than the other. The reason C has the shortcut operators && and || is simply for symmetry with the bitwise operators & and |. VB.Net has both, and calls them Or and OrElse - certainly not easier to type!

There are many factors which make a language more or less productive and syntax is just a single superficial factor. For example the C-style languages are all statically typed while BASIC/Python are dynamically typed, which is a much deeper difference.

One thing you mention, case insensitivity, definitely does not improve productivity for competent developers. Case sensitivity may be confusing for beginners, but any competent developer would always be consistent in casing for the sake of readability. Never mind the difficulties of case folding when using unicode characters from various scripts and languages.

You should look into BASIC (and the various derivatives like Visual Basic and VB.Net). It has some the features you request:

  • No semicolons, line breaks are used instead
  • Not case sensitive
  • The logical operators are called and and or
  • A print statement.

Python also almost conforms, except it is case sensitive. BASIC was designed for beginners. Python also emerged from an attempt to create a teaching language for beginners, and usability studies were actually used to determine the simplest syntax.

Java and C# has a different style of syntax because they are derived from C++ and C, so it all comes down to C (which in turn was based on B and BCPL). Neither of these languages were intended for beginners or for teaching. They were systems programming languages intended for hard-core developers.

C++ built on C syntax because it started out as an extension of C. Java built on C++ syntax because it started out as an extension of C++. C# copied Java syntax, because they wanted to lure Java and C++ programmers.

That said, there is no proof that BASIC or Python syntax is more productive as you seem to take for granted. They are designed to be easier to learn but this is not the same as more productive in general use by a competent developer. (Note: there is no proof of the opposite either. It is notoriously hard to measure developer productivity and compare it across languages.)

For example or is clearly easier to understand than || for non-programmers which know basic logic. But if you already know the language by heart, I have a hard time believing one should be significantly more productive than the other. The reason C has the shortcut operators && and || is for symmetry with the bitwise operators & and |. VB.Net has both, and calls them Or and OrElse - certainly not simpler or easier to type!

There are many factors which make a language more or less productive and syntax is just a single superficial factor. For example the C-style languages are all statically typed while BASIC/Python are dynamically typed, which is a much deeper difference.

One thing you mention, case insensitivity, definitely does not improve productivity for competent developers. Case sensitivity may be confusing for beginners, but any competent developer would always be consistent in casing for the sake of readability. Never mind the difficulties of case folding when using unicode characters from various scripts and languages.

4 added 445 characters in body
source | link
3 added 647 characters in body
source | link
2 added 647 characters in body
source | link
1
source | link