C# Opinion Kris Amico, a colleague and former employee (although we both still work for the same company) is either trying to get my attention (which he did) or has an interesting view of my thoughts on C#. Have I bagged on C#? Yes. Do I think it's a step backwards in many ways from C++ (for me, and how I like to take advantage of the language)? Yes? Did I ever call it C-? I don't know, but I don't recall doing so. I know that I was initially not impressed and said so, although in correspondence I pointed out both the good and the bad.
The article that Kris points to by Bill Joy is interesting, but fails to hit the real security problem posed by C# and the underlying CLR. The Java Lobby has a good description of the CLR and what they see as problems. Developers, inside Microsoft or not, will be more or less blindly making live code connections to all kinds of tools written in all kinds of languages. Each of which has it's own particular foibles. This is much like unix in many respects, but has a significant new twist. It's a dynamic environment and the applications on the users system are in charge of making and changing these connections; not some admin with bit of caution and lot of knowledge.
On top of DLL hell (or in place of), Microsoft has dropped runtime hell. Someone is going to make a lot with a CLR detective application which can track down rouge dynamic replacement executables, mark my words.
In a nutshell, that's my problem with C# and where I see things going.
It's interesting to look at these concepts in light of an area I've been spending a lot of time thinking about lately, Web Services. The current Web Services models have all these problems and more. But unlike general users who get packaged services (and lots of them), I think we're now at the point where we're developing services, exploring what's out there and we can pick and choose which services we'll use and from who. We can go slowly and resolve a lot of the difficult problems before our systems get burned by them. In some ways, this is why development is so much fun. Bleeding edge? Yes. Razors edge? No.
One more thing about C# before I finish. Yesterday we had a long day with some folks from IBM talking about WebSphere, Web Services and WebSphere Studio Application Developer (WSAD -- the new replacement for VisualAge). I am more convinced than ever that WSDL is seriously flawed as an IDL. Another colleague and I has a conversation today about several things and we got to WSDL. He got to really pushing an idea (he comes from a CORBA background) that I mostly agree with; build all the SOAP glue and proxies using WSDL, it's the obvious way to use a real IDL. I'd looked around again last night after the meeting and come to this conclusion. The first app (low cost or freeware) which comes up with a reasonable way to describe web services and can generate WSDL files that all the primary consumers (MS Frameworks, BEA, WSDL4J and perhaps Axis if they plan to add that kind of dynamic compilation in) can deal with is going to create a new standard. And if you didn't want to create a new language to express things, the syntax used in C# is about as simple as it needs to be (perhaps not expressive enough, but close). With WSDL generation out of the way, things could move forward more easily.
I've got something floating around about XML and its complications, but not tonight.
11:25:53 PM
|
|