Recent submissions

Comment · 12 years ago
Agree. I didn't go to a single lecture after 2 months at university (electrical engineering). My TA was shit as well - was too tied up in computer vision research and found us inconvenient. However we formed a club (5 of us who actually gave a shit) to work through stuff as students. Rather awesomely our digital electronics lecturer turned up after a couple of weeks and helped us with stuff and had a weekly rant about how useless the other staff were. I think we helped him vent too.
Comment · 12 years ago
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.
Comment · 12 years ago
This. Most of the code I write is gluing stuff together rather than inventing new things which is what I'm paid to do.

A lot of people say this stifles creativity and is boring but the productivity is off the scale. I've built things that would cost £50000+ in dev time and licenses and take 3 months in .net in a couple of days in Java without spending a penny (reporting, messaging, email processing, document scanning, parsing, bulk processing, ETL, matching, logging). This is because someone already did the leg work and released it with an open source license meaning no license cost. Not only that, the ecosystem, Unix based deployment platforms are all easy to automate so jobs only get done once and stay working. Sure you can throw out an ASP.Net MVC web app quickly but that's the easy bit.

We can put £500,000 a year back into open source projects through time investment and donations if we replace .Net and still do better than break even on the dev cost.

Comment · 12 years ago
Yep but you'd know which dereference it was if you unrolled it. Nulls happen unfortunately even with the best checking and intents.
Comment · 12 years ago
Why? We write less code in Java than we did in C#. To be fair NetBeans writes most of it.

I still write C and don't hang myself because it doesn't have generics!

Comment · 12 years ago
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...
Comment · 12 years ago
The only bad choice was the foundation on which to build the product. The above technologies are pretty much a response to the world being better elsewhere. Unfortunately the responses are pretty immature, poorly documented with bad support reputations and virtually no backing.

I've used most of the above. ServiceStack was pretty good but nothing in comparison to Jasper which has much better documentation, a cleaner architecture, stable migration notes and better performance. Look: https://jersey.java.net/documentation/latest/index.html

NancyFX I haven't touched.

NHibernate is a buggy behemoth with a learning curve from hell. It doesn't scale well with project size (we have 2000 tables of which about 500 are NH mapped "model-first") and it stinks. The SQL generated is terrible, it's impossible to debug when it goes wrong other than sift through 50Mb of log4net DEBUG level logs. To add insult to injury, the LINQ provider is so buggy it's like programming with a hand grenade. I've used hibernate in java and NHibernate isn't even a tenth of the way to the maturity and reliability.

Dapper - I really like Dapper. I have used it for data transforms before. However it doesn't play well with low trust as it uses IL emit.

OrmLite - see ServiceStack.

Not bad choices - just choices I either regret or had to make because the whole ecosystem is amateurish outside of Microsoft and unstable inside of Microsoft. Sorry.

Comment · 12 years ago
And msbuild will no longer work.

I agree with you though - its a PITA.

Comment · 12 years ago
That's a living hell. I wish you good fortune.
Comment · 12 years ago
As for the company, we've got over one million lines of c#. As new subsystems appear they are being moved to other technologies (Angular + Java + Jersey + maven + guice + Jetty + Redis + postgresql). This takes time. The amount of code is tiny compared to the old implementations and the time to market and reliability is awesome.

As for me, because I'm in charge of the migration. When its gone I'm not even going to go to the funeral.

Comment · 12 years ago
Have you tried merging a JSON file? XML is a shit ton easier. I can't see this as a good thing.
Comment · 12 years ago
I've been through EVERY ASP.net update on every version of .net and every MVC update from CTP2 onwards, dealt with WWF being canned and rewritten, moved APIs between old SOAP stuff (asmx), WCF and WebAPI and rewritten swathes of ASP VBnand C++ COM code, ported EF stuff to later versions and worked around piles of framework bugs including the MS11-100 fiasco. That and been left royally in the shit with silverlight.

Not one of the above has actually improved the product we produce and are all reactionary "we might get left in the shit again" changes.

I'm really tired of it now.

Comment · 12 years ago
I found you have to drink a lot of it before it becomes drinkable which is a bit of a catch 22...
Comment · 12 years ago
The end has been marked for over a decade you realise?
Comment · 12 years ago
It's dead. Start again.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton