﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <description><![CDATA[Comments for The illusion of scalability]]></description>
    <title><![CDATA[Comments for The illusion of scalability]]></title>
    <link>http://dn.codegear.com/article/20585</link>
    <!-- source: http://dn.codegear.com/article/20585/feed-->
    <dc:date>2008-11-19T05:57:35-08:00</dc:date>
    <item>
      <description><![CDATA[If the discussion goes to programming scalability in the context of *poorly qualified* programmers, as I said, I agree it is much safer to use a simpler and more restrictive language as it provides a simplified view and stronger confidence for the newbie, and a better protection against his/hers possible misunderstandings and misuses.Now, I think this discussion is no longer about Java versus C++. I think it came to be about newbie programming versus expert programming.The problem is not only of doing or not doing a certain stuff, but also of what stuff one is doing. Newbie programmers can help horizontal development of IT in an IT-hungry society, by performing low qualification tasks that usually do not require much thought or design, but a more cut&amp;paste-like programming that adapts existing code fragments to slightly new situations -- like much of the web programming is all about. Newbies can address a "quantity" development.On the other side, experts are the ones to research, develop and provide new algorithms, new patterns, new architectures of real world, demanding problems and coordinate large projects. They are not concerned with how many kilobytes they have written a day, but with how performant their code is. Experts address a "quality" development.I thought Bruce Eckel was talking about the support the languages provide; in this respect, C++ provides clearly more support (except for some debatable details I have already mentioned in my previous comment).Now, on the other side, if you turn things upside down and look through the eyes of a newbie, you can cut&amp;paste in C++, too, but things are really much more complicated. An expert would add that this is due to the multitude of opportunities one has and their required associated analysis -- which comes far beyond the knowledge corresponding to the state of newbie. This is why one can have much more trouble in an advanced language than in a simple one.On short, it's all about the fundamental trade-off of language design:  you want to have the ability to make expert programming, you will certainly be endangered by the "wizard apprentice" that messes things up.In the end, if a market company is driven by release schedules instead of the product's quality evaluation, I won't buy its products. And this is because I don't buy software to make software companies wealthy, but to *use* that paricular software that I license from them. It is important to have a working version by the deadline, but it's far more important to have a *very good* version as soon as possible even after. That's the difference that respectable software companies make between protoypes and release candidates on one side and final products on the other.All the best, CristianP.S. Programming has not yet reached the point to have simply deterministic algorithms to generate programs from (possibly ambiguous) specifications -- even if great research is done in this area right now. An expert is not a person that has the "expert" title, but one that has a very good knowledge and control over the heuristics to write good programs. If an expert uses to shoot himself/herself in the foot, then he/she is probably not a programming expert.]]></description>
      <title><![CDATA[re: The illusion of scalability]]></title>
      <managingEditor>
	 (Cristian Levcovici)
</managingEditor>
      <guid isPermaLink="true">http://threads.codegear.com/threads/threads.exe/view?commentid=25342</guid>
      <dc:date>2000-06-11T14:11:53-07:00</dc:date>
      <pubDate>2000-06-11T14:11:53-07:00</pubDate>
      <source url="http://dn.codegear.com/article/20585/feed">Comments for The illusion of scalability</source>
    </item>
    <item>
      <description><![CDATA[The running speed of a Java application against C++ application may also be the difference of marketing an application doing something useful to the user (C++) or doing a funny big monster able to collapse your workstation doing nothing (Java).]]></description>
      <title><![CDATA[The illusion of scalability]]></title>
      <managingEditor>
	 (Ariel Rocholl)
</managingEditor>
      <guid isPermaLink="true">http://threads.codegear.com/threads/threads.exe/view?commentid=25304</guid>
      <dc:date>2000-06-08T00:30:01-07:00</dc:date>
      <pubDate>2000-06-08T00:30:01-07:00</pubDate>
      <source url="http://dn.codegear.com/article/20585/feed">Comments for The illusion of scalability</source>
    </item>
    <item>
      <description><![CDATA[Hmm... It seems like Bruce Eckel is slightly off topic in this article, and maybe slightly confused by the boundry between class libraries and the language used to implement a given library.Java runtime consists, among other things, of a rather huge set of class libraries covering a broad range of "patterns".The C/C++ runtime libraries is quite limited in scope compared to the java rintime libraries.One would expect Bruce Eckel to know the difference between the actual language and runtime libraries.There is nothing in either language wich makes one of them more scalable than the other. Maybe Bruce Eckel should try to write a book on advanced C/C++ programming, he might find it a rewarding task. Writing a real program once in a while wouldn't hurt either :-) - No insult intended, but I have found that people engaged in teaching "newbees" tend to get stuck at a certain level of competency, since their efforts are mainly geared towards getting people past their first hurdles. This in itself is no easy task since a "newbee" is generally quite confused about computers in general :-) ]]></description>
      <title><![CDATA[The illusion of scalability]]></title>
      <managingEditor>
	 (Espen Harlinn)
</managingEditor>
      <guid isPermaLink="true">http://threads.codegear.com/threads/threads.exe/view?commentid=25293</guid>
      <dc:date>2000-06-07T04:48:48-07:00</dc:date>
      <pubDate>2000-06-07T04:48:48-07:00</pubDate>
      <source url="http://dn.codegear.com/article/20585/feed">Comments for The illusion of scalability</source>
    </item>
    <item>
      <description><![CDATA[The problem  here is one I have often found when tutoring Mathematics at both high school &amp; undergraduate levels, often students who are struggling with an area, take one of two really silly and cowardly approaches, either they just lower their standards and say thats it I'm dumb I cannot do it, this I find is rarely the case if you can make that person believe enough in them selves they will succeed; the other approach is to say it's to complex they've made it too hard etc etc as in the article above again I've found this to be rubbish. The secret is that you need to really make the paradigm shift learn to think in the language domain, C++ is a basically a very simple and eloquent language, if you find it hard your not thing about it in  right way, in short you have yet to learn to think in C++ (and probably objects).]]></description>
      <title><![CDATA[The illusion of scalability]]></title>
      <managingEditor>
	 (Francis Smit)
</managingEditor>
      <guid isPermaLink="true">http://threads.codegear.com/threads/threads.exe/view?commentid=25283</guid>
      <dc:date>2000-06-05T23:00:44-07:00</dc:date>
      <pubDate>2000-06-05T23:00:44-07:00</pubDate>
      <source url="http://dn.codegear.com/article/20585/feed">Comments for The illusion of scalability</source>
    </item>
    <item>
      <description><![CDATA[I find it puzzling that you can understand Bjarne Stroustrup's writtings and not Eckel's.Stroustrup's sure says/writes many interesting things (on C++ but also on OOP) but he is not easy reading.Eckel is talking about "programming scability" and not "final product scability". In that respect, Java scales better than C++ because, to match a given project growth (size/complexity) it is necessary a larger growth in development effort when using C++ than when using Java (or Delphi, in my own experience).In the end, if one can produce a commercial project with Java, Delphi or another tool, spending less time, less money and having less trouble to find good enough people to do the job than when using C++... what is C++ great advantage then? And many companies are doing just that. Sometimes spending more cash on Hardware and tools to match performance loss, but getting a less expensive and faster to implement product overall.C++ obviously has its uses, but it is not that much of a generic use language.Eckel is not betraying the flag. The flag is not "C++", the flag is "produce more with less".I was onsidered a C++ fanatic and had to do the same long ago.There was a time when I was understanding so much of C++ - with all its constructor types, automatic type castings, multiple inheritance, templates and so on - that I was feelling like a "relativity and quantum mechanics" expert. The problem is that the world needs to have a much larger number of programmers than of quantum mechanics experts and I do not pretend to only work with a C++ programming elite. (Specially since I last saw such elite elements shooting them selfs on a foot again and again when I worked on a project with a C++ part last time.)See... I am not talking about language features here. Do you still get blinded by language features? (Than C++ featuritis sure is the one for you.)Have fun,Paulo]]></description>
      <title><![CDATA[re: The illusion of scalability]]></title>
      <managingEditor>
	 (Paulo Gaspar)
</managingEditor>
      <guid isPermaLink="true">http://threads.codegear.com/threads/threads.exe/view?commentid=25281</guid>
      <dc:date>2000-06-05T11:56:10-07:00</dc:date>
      <pubDate>2000-06-05T11:56:10-07:00</pubDate>
      <source url="http://dn.codegear.com/article/20585/feed">Comments for The illusion of scalability</source>
    </item>
    <item>
      <description><![CDATA[Completely agree. Only performance is a problem and I also believe on JDK 1.3.Due to the same reasoning and since I have been working only on the Win32 platform, I have been using Delphi during the last years. And my experience sure says that I write a bit more in the first versions but I end up debugging much less, having much less problems, rewriting much less. A very conservative study, in my previous job, concluded that, for the same tasks, Delphi was at least twice as productive as Visual C++.There are too many traps available in C++, including performance traps.There is also some evidence that stable Java implementations get ready faster than stable C++ implementations.Have fun,Paulo]]></description>
      <title><![CDATA[The illusion of scalability]]></title>
      <managingEditor>
	 (Paulo Gaspar)
</managingEditor>
      <guid isPermaLink="true">http://threads.codegear.com/threads/threads.exe/view?commentid=25280</guid>
      <dc:date>2000-06-05T11:09:04-07:00</dc:date>
      <pubDate>2000-06-05T11:09:04-07:00</pubDate>
      <source url="http://dn.codegear.com/article/20585/feed">Comments for The illusion of scalability</source>
    </item>
    <item>
      <description><![CDATA[Well, I am really astonished reading an article by the author of a well-known C++ reference book having such a wrong perspective over the language he was supposed to understand and explain for the others. Moreover, the competitor programming language he uses to claim C++ being weak is Java -- a poor quasi-subset of C++, without operators, multiple inheritance, and templates, to name just a few of the big misses of the "new-wave" language.First of all, the issue is the progress. The way scientifical and technical evolution goes is that all good new things empower the master, but in the same time they expose him to more severe dangers. This was the case with fire, the wheel, electricity, atomic power, and last but not least computers and their programming languages. And it is nothing wrong about it. It would have been very wrong to be otherwise -- this would have meant that what the human race has developed in the past was deadly wrong and now an angel comes with a bright solution. Progress is progressive.Bare progress means *potentially* better and safer ways to do things. It never guarantees it. Would you prefer fire never be controlled by humans? I don't know about you, but I certainly would not. Though, a child cannot use fire safely and you forbid your kids playing with fire at least until you know they understand what they do. You'll say "well, fire is pretty easy to learn to control...". Don't stick to irrelevant details. Relativity and quantum mechanics have dramatically empowered the human race, and they are not easy to understand at all for a novice. You've got to have a good understanding of the related topics to see these theories as simple, nice and natural.Now, comming back to C++, I find it the best industrial language you can get. Don't get me wrong: it has deep drawbacks comming from its machine dependent structure -- like the constraint that structures/classes dictate the memory layout of data, or that functions cannot be created in contexts on the fly (closures). But don't come now with "templates and multiple inheritance make C++ worse by bringing more complexity and hidden rules than empowering the programmer" 'cause this is exactly what novices say... because they don't understand it. Java is a nice language and at some points you can do nicer things than in C++ -- take for example anonymous classes -- but don't compare it with C++ on the whole because it is really weak. And the good points, like internal synchronization, garbage collection or integrated distributed programming support (RMI) are nice to have sometimes -- but remember the price you have to pay for them: inefficiency. You have a lock for EACH instance in your program, garbage collection is clearly slower and more expensive than controlled heap allocation, and RMI is general but very slow. I didn't want to mention that for an object with 5 embedded instances of other objects Java creates 5 references to them and all access is through those references. This wastes memory, increases memory object fragmentation, and slows down your programs. But it makes very simple to use.Java cannot compete C++ in the real world. The real competitors for C++ out there are the modern functional programming languages, but they are not mature yet -- but they will be so in 5 years.Well, to fight with Bruce Eckell's weapons, tell me, please, how much time do you need to safely work with Java syncronization? Well, for pretty plain stuff, you need very little, but concurrent programming it's a whole new world full of dangers that simply wait for you; and the Java one-condition variable model makes things *really* hard -- I sincerely prefer the multiple-condition variable syncronization Win32 or p_threads provide (much more efficiently, too). On short, it's just the same as with C++: you need to be a master in order to master the complete power of the available infrastructure.As a final note, I find Bjarne Stroustrup's "The C++ programming language" book simply excelent -- even though not for everybody: it is not a "Learn C++ in 24 hours" book. But this book and Gamma's "Design Patterns" are musts for every C++ expert.All the best, Cristian]]></description>
      <title><![CDATA[The illusion of scalability]]></title>
      <managingEditor>
	 (Cristian Levcovici)
</managingEditor>
      <guid isPermaLink="true">http://threads.codegear.com/threads/threads.exe/view?commentid=25264</guid>
      <dc:date>2000-06-03T18:36:23-07:00</dc:date>
      <pubDate>2000-06-03T18:36:23-07:00</pubDate>
      <source url="http://dn.codegear.com/article/20585/feed">Comments for The illusion of scalability</source>
    </item>
    <generator>Atom 1.0 XSLT Transform v1 (http://atom.geekhood.net)</generator>
  </channel>
</rss>