|
Mmmmnnnyyyeah, c# started out as a nice succinct, clean language, kind of like C with the K&R paperback to hand.
Then they introduced Linq...
and Linq to sql - forget everything you knew about query plans, stored procedures, cursors, connection pooling
and all the "syntactic sugar" around function declarations and "var" and now the C# manual, if printed, would outweigh Larousse Gastronomique.
There is always someone on the team that spots a handy new keyword / method / object and throws it in the codebase (probably along with a npm lib) and you sit scratching your head till they get back from vacation. Then we find the handy new keyword / method / object which saved typing 10 characters requires a couple of paragraphs and a hyperlink in the /// <remarks> (oh I forgot, comments are evil and all code should be self-documenting etc).
How DO you spell curmudgeon?
Don't feed the Trolls, they bite
|
|
|
|
|
I can't argue against your points. I am still blown away that Delphi and C++ Builder shared object structures well enough to cross-inherit. It's no wonder C# (same architect) can do this with VB.NET (now an ugly step child).
But the syntactic sugar is a bit overwhelming. There is the language and now these decorations are like adding "context" to the language.
And I completely agree with linq and sql linq... OMG As a DB Developer, I cringe when I see some of these queries coming across the wire.
|
|
|
|
|
i don't know if linq is the problem or something else, but adding new syntax into a language on almost annual basis... that is something very very dangerous.
you'll end up with 3 different projects in 10 years and all 3 could be like different language. you open with a C# 1.0 code base, then a C# 3.0 code base and what is it now C# 10.0? and what you get is the out of college coder that is familiar with C#9 is terrified by C#1 and the C#1 coder cannot recognize a C#9 project as the same language.
the absolute only reason why it is justifiable to change something in the syntax is if it severely makes things simple. not juts make things simple, but make things simple in a killer way.
it's worse in the JS camp, every year they add something. like, this new syntax will provide... who cares?!
there is no need for a debate. you have a RISC and a CISC philosophy and the RISC won.
Bruce Lee - "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times."
|
|
|
|
|
this is code project, you don't sh*t where you eat
nah, but yeah my main language.
I like javascript because I don't have to create classes and properties to attach another property. debugging none issue
|
|
|
|
|
Three real stinkers there: Python, JS, and VB6/VBA
VB6: No language that includes On Error Resume Next should be allowed to live.
Python: Significant indentation, but spaces and tabs both count as one character - so two identical lines in an editor are in different blocks.
Javascript: A total absence of type safety, and the "evolved from pond slime" design of the language.
It had to be JS in the end.
"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 have a few language choices: Objective-C, Bash/Powershell and VB6.
I used to work on a Qt desktop project that uses C++, Python and Javascript. Imagine the horror of debugging it.
Argh... Why can't we code in a single language?!
|
|
|
|
|
"No language that includes On Error Resume Next should be allowed to live."
What about WPF? The default there is to resume next on binding errors...
Oh sanctissimi Wilhelmus, Theodorus, et Fredericus!
|
|
|
|
|
Python: if there is a line of code in an import, it gets executed. Ouch. Also allows changing the class dictionary. Duoble ouch.
GCS/GE d--(d) s-/+ a C+++ U+++ P-- L+@ E-- W+++ N+ o+ K- w+++ O? M-- V? PS+ PE Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
|
|
|
|
|
JS "Evolved from pond slime" heh.
I wouldn't have lumped VB6 & VBA together though.
I agree about "On Error Resume Next" the big problem with turning it off was that unless the entire team was religious about catching errors, if you came along and added a new function with "On Error Goto [my handler]" any error in a completely separate lump of code would stop in YOUR nice shiny new function. As a contractor you don't want that.
But then is that any different to c# code with no try...catch etc?
As for VBA - no, I don't know the entire object models for Word, Excel, Outlook etc...how about some decent intellisense MS?
Don't feed the Trolls, they bite.
|
|
|
|
|
Of the three, VB6 was actually the least offensive to me. And that's saying something. I agree with you though, no argument from me!
To err is human. Fortune favors the monsters.
|
|
|
|
|