Hacker News new | ask | show | jobs
by tonyedgecombe 4413 days ago
I think the point is the end user doesn't see any of the benefits when they are using your application.
2 comments

The difference between webforms and MVC was huge... (no more postbacks)

But i think Microsoft is slowly finding the correct way of doing things and yes, there is a lot of influence of NodeJS (Owin) and RoR (Scaffolders). But it's easier to change between the same platform (and still using C#), then changing between web technologies.

The above user wasn't required to switch to Silverlight, some web applications in my company still use Asp.Net 1.0 and it still works (not my projects, thank god)

Good point, I'm thinking in terms of code quality, which can be seriously improved by using newer language features. I mean, you could write C# without using generics or LINQ or extension methods or a dozen other meaningful improvements, but I can't imagine someone doing so on purpose.
LINQ isn't a magic bullet.

   collection.Where(s=>s.Transaction.Amount < 100).OrderBy(s=>s.Name).Single();
I'll let you debug the intermittent NullReferenceException that threw in production with no PDBs...
You would get a null reference exception if you unrolled that into a loop, too. You should know what your data is going to look like and if any elements could be null or not. Don't blame LINQ for your lack of null checking.
Yep but you'd know which dereference it was if you unrolled it. Nulls happen unfortunately even with the best checking and intents.
Nulls happen, that's why you use the best checking. It's not the best checking if you get thrown NullReferenceExceptions
Definitely but that gurantee is thrown away the moment you pull a 3rd party black box in.

I'm suggesting it's feasible but not necessarily perfect and when it does go boom, which it does when you have 100 million HTTP hits a day, you need to be able to find out precisely where it went wrong. LINQ makes that damn hard:

   NullReferenceException
   Company.Product.Assembly.Namespace.Type.Method() +14
   ...
When line 14 has 22 dereferences then you have no idea why it broke.
But look at how concise and readable that is!