The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.
I like that argument: If it had been missing from C#, C# wouldn't have been any better - so why complain about Java?
That's how I read what you are saying. I guess I am misreading it.
Then, I am dissatisfied even with the operator overlading in both C# and most other languages offering it, because I for several years was programming in a proprietary systems language ("Planc") that did it so much better:
Any operator is just a predefined function. A function name may have the familiar alpbetic-alphanumerics syntax, or a sequence of operator characters like +-=/*... Any function may be overloaded. Any function has 0 or 1 left side argument, and 0 or more right side arguments - with a single right side argument, enclosing parentheses are optional. The predefined functions may be redefined. Then you need no special "operator" concept.
You can define a function like ** (usually for power functions), or a FlipBitNumber operator (newValue = OldValue FlipBitNumber 5;). If you prefer an "operator-looking" name you might rather name it e.g. |^|. The only syntactic limitation is that two adjacent function/operator names of the same group (alphanum or special character) must be separated by a space.
The language didn't have garbare collection, so for development/debugging purposes I redefined the assignment operator for all pointer types to a function that decremented the reference count of the object the pointer was moved away from, and incremented the count in the object it was moved to. If the count of the old object went to zero, a memory leak exception was raised. If an object was free'd with a reference count >1, a dangling pointer exception was raised. I caught quite a few memory errors that way. Then for production code, I could just leave out from the build the file with the (re)definitions of the assignment operator, and the code would run at top speed.
When you have had that kind of flexibility available for a few years, you certainly won't be truly satisfied with C#.
The person who made the Wikipedia article has completely overlooked a series of language details that distinguish it from other similar languages (such as the operator redefinition, overloading and naming, or some flow constructs). It looks like someone who knows C has picked up a Planc manual and reported on the things he could recognize...
Planc originated before the OO programming wave, so as a whole, it is not a modern, fully featured language. I wouldn't want to throw out C# and replace it with Planc. But I'd love to see some of the distinguishing features of Planc being incorporated into other languages.
Planc didn't need OO ... I learned OO programming when our University got hold of a very early C++ compiler that didn't generate binaries but K&R C source code that had to be compiled by an arbitrary C compiler in a second step. So we could study the class objects, the function tables etc. in plaintext.
Then I was an intern with Norsk Data (owner of the Planc language), and saw the source code of their "Sintran" OS, written in a mixture of assembler and a very low level language (almost like an assembler macro collection). There I found exactly the same structures as in the C++ generated code: Classes, subclasses, function tables ... The entire I/O system was designed as a scholary example of object oriented programming, but implemented in assembler rather than an OO language in the mid 1970s. Obviously, when Planc replaced assembler, they continued doing OOP "by hand".
I sometimes say to myself that I should spend some time adding to Wikipedia what I know, before it is forgotten. But after a few seconds of thought, I conclude: Naaah... Who cares? Nobody will read it, or if they do, they will say: That's old stuff, we've got something else nowadays! - Maybe, when I retire, if I am bored with nothing to do, I might consider it.
I don't understand why Oracle did that. They're going to need to make it easier to do stuff like that because of the outrageous amount of money they will now be charging just to use the ing runtime for "commercial use".
There's nothing like shooting your ecosystem in the face with a 10-gauge shotgun.
Oracle "didn't do that".. the lack of operator overloading starting with Java 1.0 in.. err.. 1996? (if my memory serves me right) at the time the Java community and developer where kind of traumatised by anything C++ and custom operator was one of those things. And, at the time, it was Sun (not yet Oracle) that owned and developed Java.
Not that I don't hate Oracle. Just feeling like a little bit of history lesson, that is all!
Same here. Been working on a project that uses Linq to Entities primarily for "Airport" mode in an application.
"When you are dead, you won't even know that you are dead. It's a pain only felt by others; same thing when you are stupid."
Ignorant - An individual without knowledge, but is willing to learn. Stupid - An individual without knowledge and is incapable of learning. Idiot - An individual without knowledge and allows social media to do the thinking for them.