|
Tom with agony becomes Leader (7)
easy peasy
cheers,
Super
------------------------------------------
Too much of good is bad,mix some evil in it
|
|
|
|
|
Tom CAT
with
agony PAIN
becomes (anag)
Leader
CAPTAIN
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
We have a winner.
I was expecting you will be answering it and i am not mistaken
cheers,
Super
------------------------------------------
Too much of good is bad,mix some evil in it
|
|
|
|
|
Well ... an anagram that only swaps two letters isn't exactly complicated!
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
I've experimented with a lot of languages over the years and delivered production code in at least a handful. Of all, I find C# to be the most genial. It has syntax close enough to C/C++ not to alienate those programmers, has plenty of high-level stuff to keep users of languages such as Java happy, and these days has good performance and is open and cross-platform. The only thing I hate about it is the terrible 'destructor' pattern, which you can ignore most of the time. Despite all of this, I rarely if ever read a headline that says C# is gaining in popularity.
There's no point in getting into too many syntax specifics because that would be a never-ending discussion but why does it fail to hit the spot with so many developers and companies?
Thank you to anyone taking the time to read my posts.
|
|
|
|
|
My $0.02:
- For all its advantages, C#, like Java, is unsuited to system-level programming. The kernel in both Windows and Linux is programmed in C and ASM.
- Many organizations have an investment in C and C++ code. Conversion to C# would require a major investment. Note that this is also one of the reasons that companies keep using Cobol, so I don't see this changing in the near future.
- C# does have a serious learning curve - not for the language, but for its libraries. If you have learnt to do things in C or C++, converting to C# is far from simple.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
I'd agree with all of that. Having used C# for years, I recently had to do some C++ work and got a shock how long it took me just to get through a forest of 'Why the hell doesn't that compile?' questions.
Thank you to anyone taking the time to read my posts.
|
|
|
|
|
1.1. It's trying to be useful for everything, an egg laying wool milk sow. To do that, it relies too much on libraries for and against everything. A 'one size fits all' approach, while convenient, can get a little bit wasteful. On a PC they easily get away with this, but on a smaller computer with a more modest processor and far less memory things get tough and you don't have enough control over the computer's resources to get very far.
...
4. Too much comfort makes programmers ignorant and lazy. When an allmighty framework does everything for you, you don't have to waste a thought on anything yourself, right? Wrong, when you rub the framework the wrong way and then start to improvise to correct the problem.
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
|
|
|
|
|
CodeWraith wrote: an egg laying wool milk sow. that's quite a tweedy moofull
«One day it will have to be officially admitted that what we have christened reality is an even greater illusion than the world of dreams.» Salvador Dali
|
|
|
|
|
Nothing for vegetarians
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
|
|
|
|
|
I never claimed that my list was complete...
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
CodeWraith wrote: Too much comfort makes programmers ignorant and lazy. In different words I've said the same thing for years. Pointer, namespaces, enumerations, everything all use the dot-separator. For those who don't know better, meaning those who learned this with C/C++ first, they are all the same. They look the same, don't they?
Double colons and -> ? They're not so terribly hard to type and keep one informed of what the hell's going on.
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
Microsoft seems to think they are. They also seem to think that deleting what you allocate is far too much to ask of programmers.
"They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"
|
|
|
|
|
Rick York wrote: They also seem to think that deleting what you allocate is far too much to ask of programmers. And to think - when I discovered alloca() and used it in functions I felt like I was cheating !
Oh Brave* New World!
* Brave, but maybe not to clever? Perhaps MS knows their smart-phone encrusted clientele all too well.
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
Yes, deleting allocated objects is one of the places that find lots of bugs. Many of these bugs become very difficult to track down. Slow memory leakage is something that eats up lots of support time and turns off many customers.
|
|
|
|
|
Yes, I know. That's why I make sure I never have those bugs. My software has to run non-stop for months and months so leaks and errors of any kind always show up.
"They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"
|
|
|
|
|
Rick York wrote: deleting what you allocate is far too much to ask of programmers
Actually it is. "Use after free" is one of the biggest security risks in C/C++. Also, not removing what's no longer in use eventually leads to memory exhaustion.
These two situations have been known issues since at least 1958 when Lisp was first developed. This is also why all high level business languages, as opposed to embedded or operating system development, contain at least memory garbage collection. Almost all early languages (COBOL, BASIC, FORTRAN, APL, Algol, etc.) have some concept of garbage collection for some data types. What changes with Java was that all data types are now garbage collected unless the programmer explicitly tell the compiler not to do so.
|
|
|
|
|
Nonsense. If that is too much to ask of a programmer then they need to find another line of work.
"They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"
|
|
|
|
|
A big part of the problem is that it’s not always clear who bears the responsibility for releasing the allocation. If you think otherwise, perhaps it’s you who need to consider alternate careers. Or prepare yourself for a big shock if you are just getting started and have just assumed it is that simple.
|
|
|
|
|
If it isn't clear then you aren't doing it right.
"They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"
|
|
|
|
|
Exactly the kind of rebuttal I would expect from someone who doesn’t have a lot of experience.
Your pronouncement would be more defensible if you had written “somebody” didn’t do it right, but it’s not necessarily the someone who is writing code today and the question of what exactly “it” is has a couple of potential answers. It could be, for example, that a library author meant to conform to an specific predefined protocol and failed. Or it could be they were implementing something new and the documentation they provided is incomplete or incorrect. In especially old code, perhaps they *were* correctly following a known protocol but the protocol itself ended up redefined. Or one of my favorites: a library has multiple functions that accept an allocation as a parameter. Some consume the allocation and others just reference it, and there’s a convention to help you as the library user recognize which are which. But also there’s an old function that doesn’t follow the convention, its behavior is grandfathered in due to being used in existing systems and the footnote mentioning this legacy deviation is cropped off the bottom of the photocopied documentation you were given. I’ve run into all of those scenarios in large scale production systems that I was trying to interface with.
It’s easy to make a simplistic assertion that the only reason this is an issue is that somewhere, sometime, somebody did something wrong. You may be 100% correct about that. But you’re making the very point you’re arguing against. Things like this absolutely happen, and it is in real life one of the most common sources of program misbehavior. We know from decades of experience that this *will* go wrong and that it *will* result in system instability and/or security exposures. So we can cross our fingers and hope after all this time as systems continue to increase in complexity that coders as a population will become perfect at it, or we can automate this tedious, error-prone task for essentially perfect behavior today and let developers spend their time and energy on the real meat of their projects.
|
|
|
|
|
Well ... with the new C# version, at least pointer will come back just for you
|
|
|
|
|
And, after enough versions and upgrades, you may even finally be back to C++
One can only hope.
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
Good points.
- true, but you can do unmanaged stuff in C# and you can interface fairly easy with any C++ components
- I disagree here. The investment can be done over time and #1 could help here. Is there a cost, absolutely, but far less then migrating to completely other tools.
- Can you give examples? Most libraries are as easy or as difficult as in any other language, it more depends on who made the libraries. The C# framework itself is well documented and well supported.
What's holding C# back is, I think (no expert) the lack of support in devices like TV's, phones, tablets
or other platforms (macOS/Linux) and therefore cross-platform integrations.
|
|
|
|
|
V. wrote: but you can do unmanaged stuff in C# and you can interface fairly easy with any C++ components
Yes, you could write the UI (for example) of the system tools in C#, but why bother? It just adds another requirement (and another failure point) to the system.
V. wrote: The investment can be done over time and #1 could help here. Is there a cost, absolutely, but far less then migrating to completely other tools.
I did not say that it could not be done. I did say that because of the cost it is unlikely to be done, giving the prevalence of Cobol as an example of a similar case.
V. wrote: Can you give examples?
It's not that learning the libraries is more difficult than learning the libraries available for other languages. The issue is the conversion costs - you have to take a productive programmer, expert in C or C++, and turn him into a novice C# programmer. It is true that he/she will eventually learn the C# way of doing things, but in the meantime - they will be less productive. Many companies are unwilling or can't afford to pay this cost.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|