tag:blogger.com,1999:blog-2441850399540300710.post6395310877381689462..comments2024-02-17T03:47:06.818-08:00Comments on CraigBlog: The Reports of Its Resurrection May Be Greatly ExaggeratedCraig Anderahttp://www.blogger.com/profile/17084199593129216563noreply@blogger.comBlogger12125tag:blogger.com,1999:blog-2441850399540300710.post-5082279292681854902005-06-03T01:06:00.000-07:002005-06-03T01:06:00.000-07:00The stack semantics (which aids deterministic dest...The stack semantics (which aids deterministic destruction without the need for weird constructs like the C# using construct), mixed mode compilation, STL.NET, managed templates - aren't all these reason enough for C++ guys to stick to C++ as their .NET programming language? Why move to C# when C++/CLI gives you everything C# does + a little bit more?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2441850399540300710.post-23056854965835235992005-05-31T04:53:00.000-07:002005-05-31T04:53:00.000-07:00In your case, it sounds like C++ is probably the b...In your case, it sounds like C++ is probably the best choice. And it will definitely be for others as well. My guess is that you're in the minority, though. Not that there's anything wrong with that: having a range of languages to choose from is generally a good thing.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2441850399540300710.post-89372083744584932062005-05-31T04:28:00.000-07:002005-05-31T04:28:00.000-07:00I need to use a platform such as .NET or J2EE for ...I need to use a platform such as .NET or J2EE for software integration via Web services and other middleware. I need a procedural language with O-O extensions for numerically intensive applications. C++/CLI seems better suited for this purpose than C# or Java, in spite of its clunkier syntax. (I have thus far refrained from using managed C++, since that misgudied attempt to cram a round language peg into a square platform hole yielded a product that was as appealing as the prospect of removing your own gall bladder with a warm spoon.)Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2441850399540300710.post-2064967343478872662005-05-27T02:06:00.000-07:002005-05-27T02:06:00.000-07:00Actually, I was pointing out that for *non-GUI* Ja...Actually, I was pointing out that for *non-GUI* Java tasks, Java was acceptable years ago. On the GUI side, I won't argue with you. <br /><br><br /><br>As for LISP: "reputation" for slowness? :) Well, that one sort of supports my argument about choices being non-rational. Especially when you think about how most people approach optimization.<br /><br><br /><br>Libraries, granted. <br /><br><br /><br>Syntax is in the eye of the beholder (e.g. XML is great, but LISP sucks?) <br /><br><br /><br>On the "lack of support" side, again, granted, although that one is a bit less of a factor, IMO. Not because libraries aren't important (they so are), but because all it would take would be a big vendor deciding to do it. <br /><br><br /><br>But by now I'm not sure that we're disagreeing at all. Neither of us thinks that the new C++ means C# is dead, because we both think that there are reasons beyond raw power to choose a language. The ones you give are rational reasons not to pick C++, and for the most part I agree with them. I simply assert that there are nonrational reasons as well. If I seemed to imply that people chose language *solely* on the basis of nonrational factors, then I misstated myself - that is not my belief.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2441850399540300710.post-46045424438935408652005-05-26T21:38:00.000-07:002005-05-26T21:38:00.000-07:00Well, maybe you're some kind of Java wizard bu...Well, maybe you're some kind of Java wizard but every single Java client app I've seen up to this day was sluggish, ugly, and feature-poor compared to native Win32 apps. And comments from professional Java programmers indicate that it's still rather difficult to get an acceptable GUI out of Java. Of course there are also those propagandists who simply claim it's all untrue and those awkward Java GUIs are just great. :)<br /><br><br /><br>As for Lisp, similar problems: reputation for slowness, lack of libraries for virtually anything but text I/O. Additionally, you have the off-putting ((())) syntax, lack of infix operators (except with brittle hacks), an intolerably verbose OOP system, and a similar problem as with Eiffel: the choice of implementations is limited to either half-baked freeware or very expensive products by small companies (high initial investment, questionable support perspective).<br /><br><br /><br>Personally I think you very much overrate expressive power as a rational reason for choosing a language. Virtually nobody really *needs* all the power of C++ or Lisp, certainly not badly enough to sacrifice ease-of-use (relative to the desired application area). In my opinion, the decision to choose ease-of-use is not irrational; the decision to choose unneeded complexity is.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2441850399540300710.post-33159010189267292042005-05-26T06:04:00.000-07:002005-05-26T06:04:00.000-07:00Chris: your statement is demonstrably untrue. I...Chris: your statement is demonstrably untrue. I'm not a GUI programmer, and I could have switched to Java for a good chunk of the work I did long before .NET surfaced in 2000.<br /><br><br /><br>But leave Java aside: LISP is a very powerful language that has been around *forever*. Why haven't people switched to that?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2441850399540300710.post-82147927734628884552005-05-26T05:56:00.000-07:002005-05-26T05:56:00.000-07:00Craig, all the people whose applications were cove...Craig, all the people whose applications were covered by Java language and libraries (i.e. web programming) did switch to Java years ago. But Java was initially rather sluggish, and it's still very weak for Windows client-side programming (GUI support, Win32 access). That's why people continued to use C++ or vB in that area.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2441850399540300710.post-44455228898118863422005-05-26T01:17:00.000-07:002005-05-26T01:17:00.000-07:00Sean: That syntax is a *lot* better than MC++, and...Sean: That syntax is a *lot* better than MC++, and so close to C# that I can already read it quite easily. And to Chris's point, it's obviously not more elegant for the types of tasks that C# is already good at (although things like -> versus . is no big deal to me). But when you get into the realm of interop, then as you say, C++ has a more natural syntax for expressing powerful constructs. So it's either more or less elegant depending on the task. But either way, my point stands. <br /><br><br /><br>As for whether people choose languages for rational reasons - then why didn't we all switch to Java from C++ when it came out? It would have given us basically the same environment we have with C#, but years earlier.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2441850399540300710.post-52931936304969732722005-05-25T22:23:00.000-07:002005-05-25T22:23:00.000-07:00I give you faster and more powerful, but more eleg...I give you faster and more powerful, but more elegant? If anything C++/CLI looks even more "like a comic-book character swearing" (Paul Graham) than regular C++. In terms of elegance C# wins hands-down.<br /><br><br /><br>However, I think a bigger problem for C++/CLI will be the lack of a target audience. C++ is popular for programming "to the metal", creating the smallest and fastest programs possible. By definition this excludes .NET. On the other hand, if you don't mind the .NET overhead why not just use the simpler and prettier C# language?<br /><br><br /><br>That seems to restrict the appeal of C++/CLI to those few tasks where you have to interface managed and native code. So I agree with your conclusion that C++ won't see a resurrection, though I think people are more rational about this matter than you seem to imply.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2441850399540300710.post-37405084592755179902005-05-25T19:15:00.000-07:002005-05-25T19:15:00.000-07:00Craig, so you don't see yourself preferring th...Craig, so you don't see yourself preferring this kind of syntax? :-)<br /><br><br /><br><br /><br>System::Data::DataTable ^table = gcnew System::Data::DataTable();<br /><br><br /><br>table->Columns->Add("ID");<br /><br>table->Columns->Add("Name");<br /><br><br /><br>array<Object^>^ row = gcnew array<Object^>(2);<br /><br>row[0] = 1;<br /><br>row[1] = "Name1";<br /><br>table->Rows->Add(row);<br /><br><br /><br>for each(System::Data::DataRow ^ row in table->Rows)<br /><br> Console::WriteLine("{0}, {1}", row["ID"], row["Name"]);Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2441850399540300710.post-58752395469680034762005-05-25T15:49:00.000-07:002005-05-25T15:49:00.000-07:00Actually, I'm not undermining anyone's wor...Actually, I'm not undermining anyone's work. In fact, I believe I imply that C++ is more elegant, faster, and more powerful than C#. My claim is merely that it won't matter.<br /><br><br /><br>I (mis)used MC++ as a nickname for "C++/CLI". That was probably a mistake on my part, but merely one of terminology. Thank you, however, for the correction.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2441850399540300710.post-52079408581897859842005-05-25T12:40:00.000-07:002005-05-25T12:40:00.000-07:00C++/CLI may or may not gain mindshare. If you dont...C++/CLI may or may not gain mindshare. If you dont want to use it then dont. But that is no reason to undermine other peoples hard work.<br /><br><br /><br>And they stopped calling Managed C++ a couple of years ago. I smell FUDAnonymousnoreply@blogger.com