Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

My graphics class instructor was Jack Bresenham. The class was given in Borland's Turbo Pascal, but I asked for permission to write my code in the then-new Turbo C++ (since Jack knew C, I was sure he'd allow it).

It came time to demo our work. Everyone else's code ran at least 5 times faster than mine. How could this be? Well, the Turbo C++ compiler was on the "immature" side at that time and produced really inefficient binaries. While the Borland Pascal compiler was mature and created code that ran really quite fast. Lesson learned. :)



That's what you get for not having the foresight to pick the compiler written by the guy who would go on to create C# and TypeScript [1].

[1] https://en.wikipedia.org/wiki/Anders_Hejlsberg


My C# story: We were a Visual Basic 6 shop, writing COM+ components being called by classic ASP pages. Microsoft .NET had just been announced and we spent some time doing an evaluation between it and Java (JSPs and Beans) - our brand new CTO was concerned about Microsoft technology being a monoculture and felt that Java would allow us to pick from several competing vendors so we could be using the best of breed[0].

We spent several months doing a technical comparison. And in the final meeting they went around the room getting opinions from everyone. All but one chose .NET (the dissenter was: "Whatever you think, boss"). The CTO said "That settles it. We're going with Java."[1]

So we spent hundreds of thousands on Oracle database licenses (because if you're changing languages, might as well change databases too, right?) and consultants to write a prototype. When they were done, it scaled to a grand total of two concurrent users on the fastest Compaq servers we had. While our existing VB code was serving about two hundred. Again, mature technology vs. immature technology.

I've been a big fan of C# since then. While I think the latest changes to the language and runtime are mostly eye candy (how hard is it to have a Main method, really?) there's some good stuff in there (I spent some time looking at System.Threading.Channels recently)

[0] The idea isn't bad, but what happens in practice is you get about 2 top-tier vendors and a bunch of also-rans.

[1] When choosing a technology stack, the CTO will pick what they want and everyone else's opinions are secondary. I think this must be a corollary to the "When a business moves, it's always closer to the CEO's house" rule.


Optimising compiler is not the same business as a language implementation :-) related but not the same at all


That compiler got template support very, very late, and conforming support much later than that.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: