I've read somewhere that c++ is something more than better c ... then
I talk with my friend and he claimed that c++ is nothing more than
better c ... I tried to explain him that he was wrong but I forgot all
arguments about it. Could someone told something about it?
Oct 24 '08
43 1866
Gerhard Fiedler wrote:
Yes, but that's a different thing, and I think that this is what computers
are for :) XML is usually quite easily compressable, so for network
transfer this shouldn't be a problem.
And this already presents one of the problems with XML. For efficient
transfer you have to use some unrelated format and have both ends agree
on it. You immediately destroyed one of the key "advantages " of XML.
On 2008-10-28 15:27:03, Jeff Schwab wrote:
[...] since C's long-term niche is clearly with developers who need just
enough abstraction to let the same code run on target platforms with
different assembly languages.
I find often that many who use (and like) as well as many who don't use
(and sometimes hate) C don't understand this particular position of C, as
some sort of portable assembly. It clarifies a lot about why C is what it
is -- and also where it is a good choice.
Gerhard
On Oct 27, 7:28 pm, Juha Nieminen <nos...@thanks. invalidwrote:
blargg wrote:
Won't someone think of the compiler writers???
(As a side note, I detest XML precisely because of that: XML
has been designed to make it easier to create programs which
read XML, at the cost of making it harder for users to write
XML.
It's not quite the same context. While XML is not without its
problems, one of the goals is to allow non-programmers to design
their own language, more or less easily. And because all of
such languages have the same basic grammar, they can all be
based on the same parser, and can all benefit from the same
smart editor tools.
(Basically XML is pre-tokenized data, which lifts the need for
the program reading XML to tokenize it.) This is the complete
reversals of what software should be all about: Software
should do as much as possible to make the life of the user as
easy as possible, not the other way around!
In the case of XML, it is the user who defines the language.
As an example of what I'm talking about, consider MathML vs.
LaTeX equations, and which one is easier for a human to
write.)
Neither are, IMHO, particularly simple. MathML will benefit
from an XML aware editor; LaTeX will need special support. In
the case of LaTeX, of course, the language has been around
awhile, and is pretty universal in mathematic circles, so
editors already have that support. The simplest way to use
MathML is probablly to write LaTeX, and pass it through a
converter. But XML is used for many other things, where there
really aren't good existing tools.
--
James Kanze (GABI Software) email:ja******* **@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientier ter Datenverarbeitu ng
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
On Oct 28, 6:48 pm, Juha Nieminen <nos...@thanks. invalidwrote:
Gerhard Fiedler wrote:
XML is primarily meant for the (easily
portable) exchange of data between programs
And XML is one of the least efficient ways of doing that,
spacewise. This is especially true with large amounts of data
which have to be transferred eg. over a network. XML is
hyperverbose, often for no good reason.
But it compresses well:-). I agree, and this over-verbosity is
one of the things I don't particularly care for in XML. Before
XML, each time I've needed some specialized syntax, i designed
it from scratch (usually with a vaguely lisp-like grammar,
although I'd usually put the keyword outside the parentheses,
and often used {..} for parentheses, rather than (...)). And
write a parser for it, which was good for a couple of days work.
And not have any support (e.g. auto-indent) for it in the
editor. Today, I'll do it in XML, write my DTD in a couple of
hours, and have a complete parser and editor support
immediately.
I'm not really fond of XML, however: it's not that it's better
than any possible alternatives, it's that there are no
alternatives, other than developing an entire data description
language from scratch each time around. The results are never
as good as a custom data description language would be, but a
half a day's work, compared to a week or more (generally more,
because if you define your own format, you have to document it
in detail as well). There are doubtlessly some cases where the
extra work is justified, but file size is rarely a valid
justification, given the omnipresence of gzip, bzip2, etc.
--
James Kanze (GABI Software) email:ja******* **@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientier ter Datenverarbeitu ng
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
On 2008-10-28 15:48:35, Juha Nieminen wrote:
>XML is primarily meant for the (easily portable) exchange of data between programs
And XML is one of the least efficient ways of doing that, spacewise.
This is especially true with large amounts of data which have to be
transferred eg. over a network. XML is hyperverbose, often for no good
reason.
XML is as verbose as you make it. If your XML files are too verbose, you
can't really blame the XML definition for that. It's possible to create an
XML spec for a configuration file that is not more verbose than the
standard .ini file format, for example.
<ini cfg1="value1" cfg2="value2"/>
Of course, you can also make this
<MyReallyLongRo otNodeName>
<AnEvenLongerCo nfigurationValu eName>
value1
</AnEvenLongerCon figurationValue Name>
<AndAnotherStil lLongerConfigur ationValueName>
value2
</AndAnotherStill LongerConfigura tionValueName>
</MyReallyLongRoo tNodeName>
Neither is required or prohibited by XML. Both are XML (well, there's the
spec line that's missing).
Gerhard
In article <h7************ *************** ***@giganews.co m>,
Jeff Schwab <je**@schwabcen ter.comwrote:
>Yannick Tremblay wrote:
>In article <jt************ *************** ***@giganews.co m>, Jeff Schwab <je**@schwabcen ter.comwrote:
>>> I prefer C for some of the lower level portions of OS kernel and device driver development, e.g. the code that runs on an ACPI embedded controller. It's not that the C code is any better than C++ would be, but that someone reading the code doesn't have to consider every operation a potential function call. The meaning of an expression like a+b has a variety of potential meanings, even in C, but the variety is at least bounded. C is also much nicer than typical C++ to interface
Well, if you are going to talk about bad C++ that redefine operator+() for basic types,
You can't redefine operator+ for primitive types, even in C++, thank WG21. You can overload operator+ for the case when at least one argument is not primitive, but that's not the same thing.
Sorry, my mistake. What I meant was "unnatural" usage of operators.
I.e. defining an operator+() that does something that is not expected.
Example bad code: MFC CRect monstruosity
-----------------------------------------
CRect operator +( POINT point) const throw( );
CRect operator +(LPCRECT lpRect) const throw( );
CRect operator +( SIZE size ) const throw( );
---------------------------------------------
What on earth is adding a point to a rectangle supposed to mean? Or
adding a size to a rectangle? Or even worse, adding a rectangle to
another?
If what they wanted was shifting a recantangle sideway in direction x
and y, why didn't they say so:
CRect shift(xShift, yShift);
or
CRect move(xDirection , yDirection);
Clear and it does what it says but some idiot seem to find the need to
abuse operators for that.
>In well-written C++ code, the reader doesn't have to know exactly what's happening at the next lower level of abstraction; for example,
My point.
Anti C++ C hackers claim that because it is possible to write
obfuscated C++, then C++ is bad. Regardless that the same powers that
allow one bad programmer to write obfuscated C++ do allo a good
programmer to write clear code that make appropriate use of levels of
abstraction.
>some_library:: smart_pointer's destructor may clean up a resource, or flush a buffer; operator-may return a temporary proxy object whose constructor and destructor obtain and release a lock. These techniques can be great for high-level programming, but they're wide open to the kind of savage abuse that "seems like a good idea at the time." Almost any use of them would be dangerous in code that is innately hardware-specific. The "next lower level of abstraction" specifically should not be hidden from (e.g.) a device driver that needs to communicate with the registers on a device controller.
The introduction to The C Programming Language claims that "a programmer can reasonably expect to know and understand and indeed regularly use the entire language." The same is not true of C++. Note that C++ is my
That's true, it is much more difficult to undertand the whole of the
C++ language.
However, in practice, is it more difficult to understand a
complete application written in C++ than it is to understand an
equivalent application written in C?
I suggest it is in fact easier if good programming practices were
followed. The C++ application should have less lines of code, have
cleaner interfaces without hidden side effect, simpler memory
management, cleaner layering of levels of abstraction, may take
advantages of OO techniques, better generic codes, etc. All stuff
that is more difficult to do in pure C.
So although in C, you can read the low level driver code and be fairly
confident that you fully understand what is happening, it is much more
difficult to shift up in application land and be able to view
everything. C++ allows this process to happen more easily. However,
it is maybe more suceptible to poor coding due to the same power. The
sword has two edges.
>"desert island" language, and I love it dearly, so I don't claim that C has its advantages without reason. I also wonder why the C committee bothers with quasi-automated features like VLAs, since C's long-term niche is clearly with developers who need just enough abstraction to let the same code run on target platforms with different assembly languages.
>then one should also consider preprocessor abuse in pure C.
The same preprocessor is available in C++, and seems to be abused with roughly equal frequency in both languages. Note that what constitutes "abuse" in C++ is often valid in C; for example, macro definitions don't respect C++ namespaces, but in C, that's not a problem.
Although it is availabe, it is less often used and abused because the language
offers facilities that are often more appropriate.
So while the bad C++ programmer create unreadable code by abusing the
operator overloading and a monolith of a class hierarchy the does not
follow LSP, the bad C programmer absue the Preprocessor to rewirte
code on the fly with no traces in the current file. :-(
Yannick
Gerhard Fiedler wrote:
XML is as verbose as you make it. If your XML files are too verbose, you
can't really blame the XML definition for that. It's possible to create an
XML spec for a configuration file that is not more verbose than the
standard .ini file format, for example.
<ini cfg1="value1" cfg2="value2"/>
Short and obfuscated names don't necessarily reduce the verboseness of
XML. Case in point: Just look at any MathML file.
James Kanze wrote:
>As an example of what I'm talking about, consider MathML vs. LaTeX equations, and which one is easier for a human to write.)
Neither are, IMHO, particularly simple.
I didn't ask if either one is particularly simple. I asked which one
is *simpler* for a human to write (and read).
The LaTeX equation syntax is *by far* simpler to read and write by a
human.
In message <NK************ **@read4.inet.f i>, Juha Nieminen
<no****@thanks. invalidwrites
>Gerhard Fiedler wrote:
>Yes, but that's a different thing, and I think that this is what computers are for :) XML is usually quite easily compressable, so for network transfer this shouldn't be a problem.
And this already presents one of the problems with XML. For efficient transfer you have to use some unrelated format and have both ends agree on it. You immediately destroyed one of the key "advantages " of XML.
If bandwidth is really an issue, the compression should be happening
transparently at a lower level in the network stack. It isn't an issue
the application layer should be concerned with, so decoupling it is
surely a Good Thing.
--
Richard Herring
On 2008-10-29 13:26:40, Juha Nieminen wrote:
>XML is as verbose as you make it. If your XML files are too verbose, you can't really blame the XML definition for that. It's possible to create an XML spec for a configuration file that is not more verbose than the standard .ini file format, for example.
<ini cfg1="value1" cfg2="value2"/>
Short and obfuscated names don't necessarily reduce the verboseness of
XML. Case in point: Just look at any MathML file.
One example doesn't make a general point, good or bad. I don't know MathML,
and I don't have to. If it's a bad example, it's just a bad example. I'm
sure you won't have difficulties finding bad examples of C++ code, yet you
seem to continue using it :)
My general point above was that any XML file can be as succinct as an ini
file format. You can probably transform most free-form data formats into
XML without making them considerably more verbose.
Gerhard This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: Brandon J. Van Every |
last post by:
What's better about Ruby than Python? I'm sure there's something. What is
it?
This is not a troll. I'm language shopping and I want people's answers. I
don't know beans about Ruby or have any preconceived ideas about it. I have
noticed, however, that every programmer I talk to who's aware of Python is
also talking about Ruby. So it seems that Ruby has the potential to compete
with and displace Python. I'm curious on what basis it...
|
by: Muhd |
last post by:
<usualDisclaimer>Please forgive me if this is in the wrong group, and if so,
what is the right group.</usualDisclaimer>
Let me start off by first saying im a newb. Ok, with that out of the way I
am trying really hard and boy have I learned a lot in the last little while
but I have a question i just can't seem to find a good answer to.
Lets say i have a table that simply stores how many times someone has logged
into a webpage. Is it...
|
by: Faith Dorell |
last post by:
I really don´t like C.You can write better programs in BASIC than in
C, if you don´t like this language.
I don´t understand how C became so popular, although much better
programming languages existed in the 70s or 80s or 90s.
Pascal is much better.
|
by: Rob R. Ainscough |
last post by:
I realize I'm learning web development and there is a STEEP learning curve,
but so far I've had to learn:
HTML
XML
JavaScript
ASP.NET using VB.NET
..NET Framework
ADO.NET
SSL
|
by: Protoman |
last post by:
Which is better for general-purpose programming, C or C++? My friend
says C++, but I'm not sure. Please enlighten me. Thanks!!!!!
| |
by: JoeC |
last post by:
I am working on another game project and it is comming along. It is an
improvment over a previous version I wrote. I am trying to write
better programs and often wonder how to get better at programming. I
tend to learn what is useful and gets the job done. I am always
curious if there is some techique I don't know. I read books and study
as well as write programs. My goal is to some day be able to get a job
programming. I have a...
|
by: Alexandre Badez |
last post by:
I'm just wondering, if I could write a in a "better" way this code
lMandatory =
lOptional =
for arg in cls.dArguments:
if arg is True:
lMandatory.append(arg)
else:
lOptional.append(arg)
return (lMandatory, lOptional)
|
by: mike3 |
last post by:
Hi.
(posted to both newsgroups since I was not sure of which would be
appropriate for this question or how specific to the given language it
is. If one of them is inappropriate, just don't send replies to it.)
I'm making a bignum package for use in a program I've got (this is
something different from the pi program you may have heard about). The
package is going to support manipulating long floating point numbers.
|
by: mike3 |
last post by:
Hi.
(Xposted to both comp.lang.c++ and comp.programming since I've got
questions related to both C++ language and general programming)
I've got the following C++ code. The first routine runs in like 65% of
the time of the second routine. Yet both do the same thing. However,
the second one seems better in terms of the way the code is written
since it helps encapsulate the transformation in the inner loop better
making it easier to read,...
|
by: Ryan Liu |
last post by:
Hi,
Is Async I/O (e.g. NetworkStream.Begin/End Read/Write) always better than
synchronous I/O? At least as good?
When I don't concern about easy or difficult to write code, should I always
use Async I/O?
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look !
Part I. Meaning of...
| |
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it.
First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed.
This is as boiled down as I can make it.
Here is my compilation command:
g++-12 -std=c++20 -Wnarrowing bit_field.cpp
Here is the code in...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth.
The Art of Business Website Design
Your website is...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
|
by: TSSRALBI |
last post by:
Hello
I'm a network technician in training and I need your help.
I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs.
The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols.
I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
|
by: adsilva |
last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
| |
by: 6302768590 |
last post by:
Hai team
i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
|
by: bsmnconsultancy |
last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...
| |