|
Maybe because they have semantic differences.
For a better approach, look at type classes in Haskell, where there is indeed a Num type, as well as an Integer type and a Real type (with implementations as both Float and Fraction).
Note, however, that a type class can include default implementations of functions, and its power begins to shine.
Great straw man argument though.
"If you don't fail at least 90 percent of the time, you're not aiming high enough."
Alan Kay.
|
|
|
|
|
Don't take my post the wrong way. I actually think it's silly that C#/Java doesn't have real multiple inheritance. But even if they did add that to those languages, I think Interfaces should remain, as they have significant semantic meaning over "abstract class" which seems to be Uncle Bob's argument: interfaces and abstract classes are the same thing, so why have interfaces?
|
|
|
|
|
Vark111 wrote: I think Interfaces should remain, as they have significant semantic meaning over "abstract class" Agreed.
Vark111 wrote: Uncle Bob's argument Is really about the lack of multiple inheritance.
#SupportHeForShe If your actions inspire others to dream more, learn more, do more and become more, you are a leader.-John Q. Adams
You must accept 1 of 2 basic premises: Either we are alone in the universe or we are not alone. Either way, the implications are staggering!-Wernher von Braun
Only 2 things are infinite, the universe and human stupidity, and I'm not sure about the former.-Albert Einstein
|
|
|
|
|
I don't see a significant difference in the presence of multiple inheritance.
I see a use for interfaces between components, obviously, but why can't that interface:
- Be an abstract class, possibly distinguished by naming convention.
- Even provide default methods (as LINQ works around using Extension Methods).
Haskell's Type Classes manage the second form very well. Eiffel manages both.
Effectively, as a language feature, interfaces only offer limitations, not features.
As a design feature, they are essential.
"If you don't fail at least 90 percent of the time, you're not aiming high enough."
Alan Kay.
|
|
|
|
|
I don't agree that interfaces are harmful. What I get from his "essay" is that not being able to have multiple base classes is what is harmful. I agree, however, that an abstract base class with only non-implemented abstract functions is equivalent to an interface. Which means interfaces are superfluous.
#SupportHeForShe If your actions inspire others to dream more, learn more, do more and become more, you are a leader.-John Q. Adams
You must accept 1 of 2 basic premises: Either we are alone in the universe or we are not alone. Either way, the implications are staggering!-Wernher von Braun
Only 2 things are infinite, the universe and human stupidity, and I'm not sure about the former.-Albert Einstein
modified 23-Jun-15 16:27pm.
|
|
|
|
|
Absolutely agree, it would be silly to design software without the idea of an interface between components, but in the presence of multiple inheritance, they can just be a naming convention.
"If you don't fail at least 90 percent of the time, you're not aiming high enough."
Alan Kay.
|
|
|
|
|
http://www.theverge.com/2015/6/22/8826117/microsoft-forced-to-explain-who-really-gets-windows-10-for-free[^]
Microsoft confused everyone about its free upgrade plans for Windows 10 last week. While it looked like everyone who tested Windows 10 will get a free copy, the reality is slightly more complex. In an attempt to address some of the confusion Microsoft has created, the software giant has updated its blog post to clarify who gets a free copy of Windows 10. Windows 7 and Windows 8.1 users will obviously get a copy of Windows 10 on July 29th as a free upgrade, but Windows 10 preview users will also get a free upgrade.
|
|
|
|
|
A possible threat to the API has emerged in the form of the court case Oracle America, Inc. v. Google, Inc. centered on Oracle’s claim that their Java APIs are copyrightable. "Any headline that ends in a question mark can be answered by the word no."
|
|
|
|
|
Any headline that contains the words "court case" can lead to a counter-intuitive outcome.
|
|
|
|
|
Hope for the best - end of Java...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
Slow news day? Nothing in that article I hadn't read a year+ ago...
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
LOpht’s warnings about the Internet drew notice but little action. “If you’re looking for computer security, then the Internet is not the place to be.”
Entirely worth it for the image at the top of the article, IMO
|
|
|
|
|
Kent Sharkey wrote: Entirely worth it for the image at the top of the article, IMO
Absolutely. The only thing that's missing is a Prophet 5 sitting on the desk.
Marc
|
|
|
|
|
Microsoft has been showcasing their investment in their new augmented reality headset, HoloLens, the Windows team has also been working behind the scenes to support virtual reality. As requested by nobody
|
|
|
|
|
May not have been requested, but personally I think it is a damn fine idea.
If DirectX is an infrastructure for games, the next generation cannot afford to ignore these developments, otherwise we face a fragmented development platform, with games developers having to put effort into supporting Occulus VR, Valve VR, Google Cardboard (just kidding), etc. Much better to have these things recognised as "VR Devices" and expost their functionality through common APIs. Seems to work well for the rest of the hardware on Windows.
"If you don't fail at least 90 percent of the time, you're not aiming high enough."
Alan Kay.
|
|
|
|
|
What if you could deploy resources you already have at your disposal to improve quality, get projects done earlier – with fewer errors and with less budget impact – by simply implementing a software quality control method that most likely already exists in other parts of your organization? "Many hands make light work."
|
|
|
|
|
Yeah? Well you're not gettin a look at mine as you'll make me rework this and that and this and that.
|
|
|
|
|
Earlier in my career, I was a ASQ Certified Software Quality Engineer. One of the things I learned in my studies was that Code Reviews was the most effective means of removing defects from project deliverable. Defect removal is usually greater than 75% and as it can occur earlier in the project, finds the defects when it is least expensive to repair.
Also, Reviews are not only applicable to code, but can be applied to specifications, design, prototypes, almost anything, and the earlier the better.
One important reason why it is good to have other eyes look at your work is that you will not see the kinds of mistakes that you make, or else you would have fixed it already. It requires someone who thinks, works, and programs slightly, or extremely, differently than you to real savage your deliverables, looking for problems.
Just remember to practice egoless coding. You are not your code, be proud that you can make it better. Also remember that you write code for people, not computers, otherwise we would just be inputting ones and zeroes.
I personally consider it a great day of coding when I end up with less code that I started with, it does more, and reads like a book so almost anyone can understand it.
|
|
|
|
|
I could not agree more.
I would just add that code reviews are a great way to learn. I enjoy being shown where my code could be improved!
Valery.
|
|
|
|
|
Absolutely. Reading other peoples code is a great way to learn new patterns and language features.
I've been writing .NET code since the original beta, and still find new ideas and techniques from code reviews and reading code from articles and GitHub.
You also see some great examples of how NOT to do things as well, typically over-architected, 40 layers of abstraction, theoretically correct horrors.
|
|
|
|
|
Assert.That(NumBadProgrammers * 2 == NumBadProgrammers)
Marc
|
|
|
|
|
We'll have to get someone to review that
TTFN - Kent
|
|
|
|
|
Assertion failed due to Arithmetic Overflow Error
|
|
|
|
|
The Linux Foundation's Core Infrastructure Initiative is taking on three new major open-source security projects and Linux security expert Emily Ratliff has been hired to oversee CII. And it only took one little major flaw as incentive
|
|
|
|
|
Close to a third of developers even admit they feel "overwhelmed" by the potential challenges of IoT will bring. "Precious little things, you mean the world to me"
|
|
|
|