Software: C++ language code?

Does anyone know the basics to programming syntax/grammar? That may be the problem…

Does anyone know the basics to programming syntax/grammar? That may be the problem…

Yes. You should have no trouble becoming a proficient programmer by selecting a decent language and learning on your own. C++ is a terrible language for learning (heck, it’s terrible for experienced programmers too)

That is C++'s big problem. It isn’t always obvious when viewing a snippet of C++ code what is going on. The syntax is highly cryptic for one reason. And code locality is hurt by header file/implementation file concepts, macros, and so on.

I would recommend learning programming principles using a clean language, Visual Basic isn’t a bad choice, as it is fairly easy to learn, is widely available, “fun”, and the development environenment is very friendly and intuitive. Plus Visual Basic is used in many real world, industrial strength applications (unlike some toy languages that are designed specifically for learning).

I could bash C++ all day long, and discuss my favorite language Eiffel for years.

Bertrand Meyer is a genius (the inventor of Eiffel), and his understanding of what Object Oriented programming is (and should be). His book Object Oriented programming is a masterpiece and I highly recommend it to Objectivist software developers.

I implemented a chess engine using Eiffel with fairly decent performance (this is with full garbage collection). See http://www.stauffercom.com/hotbabe

(Obviously I am responding to an ancient post, but I love, love, love Eiffel and hate, hate, hate, C++ so I could not pass on adding my $0.02. and I have had 3 cups of coffee just now)

I suppose C++ is all-purpose in the sense that it’s equally bad at everything. For which specific tasks would you say that C++ is the language of choice? It’s too low level to be properly used for most high-level functions (ie 99% of programming tasks), and inferior to Objective C for combining OO with C. I suppose you could use it for low level programming if you really didn’t like C, but how much programming is actually done at that level?

Saying C++ is too low-level and therefore useless is missing the point. The main selling point of C++ is CONTROL. C++ is low-level by default, but you can bring it up as many tiers as you want with the use of libraries and API’s (both your own and others’). And then modify them as it suits you.

It is true that you can’t immediately code something useful in C++, but if you’re willing to do the gruntwork of coding your own environment (think: making abstractions), the power it gives you is hard to let go of.

Let the language wars begin… I don’t mind. I am up for the challenge.

But on an Objectivist/Ayn Rand specific forum? Yes. I think if this topic is moved to appropriate group.

I would love to see a critique of various computer languages. And Ayn Rand’s epistemology could be the key to make such a topic relevent.

How does a language help the programmer respect the crow epistemology? How does the language allow the programmer to combine abstractions into higher level abstractions.

By the way, I don’t believe the evolution of computer languages has anything to do with the computer. The trend from assembly to modern Object-Oriented languages is really about a new industry discovering the best way to organize programmatic information for the human to cope with. (This view differs from the view that the evolution of better and better languages is in some way implementing consciousness on the computer).

The computer is flipping switches, and if the switch settings came from assembly or from a visual basic representation has no effect on the execution of the computer.

The quality of a language should be measured by its power. Power is the combined sum of two powerful qualities: The most you can express in a certain amount of code, and the extent and the closeness to which you can manipulate the computer at the concrete level. (In the old days, concrete would mean accessing the hardware directly; nowadays it means getting as close to the OS as possible).

Usually these two sub-components of the word “power” are also refered to as “power” (it would be ok to describe them as “powerful”); these need to be given new words to differentiate them.

I recommend the words “expressiveness” and “flexibility”.

C++ is a language of very high flexibility, and user/programmer-dependant expressiveness, that defaults to very low expressiveness. C++ can be made into a highly expressive language, the extent to which that is achieved depends on the skill of the programmer. There is an upper-bound to how expressive you can make C++ before you have to turn it into another language.

I submit that C++ is POTENTIALLY the most powerful programming language in existence.

EDIT: Deleted my opening paragraph which was redundant.

I’ll add that the more expressive (read: high-level) a language is, the easier it is to understand. The more flexible a language is, the more you can learn about computers in general from it.

I would love to see a critique of various computer languages.

Me too. I think I’ll write one some day.

And Ayn Rand’s epistemology could be the key to make such a topic relevent.

Ayn Rand’s epistemology (and the only true epistemology) - or, more precisely, the method it teaches - is absolutely essential to being a good programmer. The extent to which and the skill at which you make abstractions, plays an enormous role in your ability to write good code.

How does a language help the programmer respect the crow epistemology? How does the language allow the programmer to combine abstractions into higher level abstractions.

This is an excellent question, and one that I, or someone else, would have to think carefully about. Languages are very unique and individual. There’s no better word for describing the way C++ does things, than “C++”. Discovering what qualities it posesses that make it suited to a particular task, and why, requires an extensive process of deduction, and isn’t something anyone could post about offhandedly in this forum. But maybe someone else has already done the necessary thinking, and will enlighten us.

By the way, I don’t believe the evolution of computer languages has anything to do with the computer. The trend from assembly to modern Object-Oriented languages is really about a new industry discovering the best way to organize programmatic information for the human to cope with. (This view differs from the view that the evolution of better and better languages is in some way implementing consciousness on the computer).

There’s not much I can say here except that I totally agree with you.

The computer is flipping switches, and if the switch settings came from assembly or from a visual basic representation has no effect on the execution of the computer.

I wonder how many programmers really keep that in mind…

In response to the previous 5 or so posts about the pluses and minuses of specific programming languages I recommend the following website: http://www.paulgraham.com/articles.html.

I’m currently reading a book by Paul Graham, called Hackers and Painters, that is essentially a collection of the some the essays on his website. He has some fairly insightful things to say about specific languages and language design.

I specifically recommend reading The Hundred Year Language. There is also another essay in his book called, “Programming Langauges Explained”, that is very good, but it’s not posted on the wesite.

In response to the previous 5 or so posts about the pluses and minuses of specific programming languages I recommend the following website: http://www.paulgraham.com/articles.html.

I’m currently reading a book by Paul Graham, called Hackers and Painters, that is essentially a collection of the some the essays on his website.  He has some fairly insightful things to say about specific languages and language design.

I’ve read his “Hackers and Painters” article before and I think I even posted a link here. I remember he wrote some pretty enlightening stuff but I’d have to read it again to clarify what he said. I’ll also consider buying his book, now that you’ve reminded me of its existence.

I’ve read his “Hackers and Painters” article before and I think I even posted a link here. I remember he wrote some pretty enlightening stuff but I’d have to read it again to clarify what he said. I’ll also consider buying his book, now that you’ve reminded me of its existence.

I “stumbled” upon it at a bookstore one day, I was just browsing books in the technology section. There are two essays in the book that aren’t on the website called, “How to Make Wealth” and “Mind the Gap” (connecting unequal distributions of wealth to the health of a society) that most Objectivists would love. For me, it was $15 well spent.