For the umpteenth time, please don't use the
term "C/C++" if you want to be taken seriously.
C is one language, C++ another.
There's a relation between the two, but the
developer communities, the cultures, what's condidered
good design and good style -- all that is very different
between the two languages.
Re:That's why C is still the best
on
Beyond Java
·
· Score: 1
Static, dynamic, which is the best? It depends. Sometimes you need more power, sometimes you need more security. With C, you can have the security of strong typing, with the power of dynamic typing, by using casts.
Uh, surely you're joking?
Casting is, at best, type conversion. At worst, it is
invoking undefined behavior, or botching the type system completely.
In any case, it's never dynamic typing. Dynamic typing is when
your program doesn't know until runtime what type it should
consider a certain object (reference, name, block of memory)
to have. C always knows that. (And C++ always knows that, except for polymorphism
and templates.)
I use a lot of small, quick, and dirty scripts in other languages, mostly Bash, Perl, PHP, and Python, but for deliverable professional work, there's only one language: C.
In some [large] areas, that's true, and I happen to believe
that there should be a pure C API to all important algorithms,
windowing systems and so on...
But believing that Python (or Bourne shell, or perl) is
undeliverable and unprofessional -- that's 1980s thinking.
Contraproductive.
C++ has been handling this quite nicely for years. C# and Java to some extent now as well.
So by going to a pure dynamically typed language what do I gain again?
It was a bad example, and I don't really see what C++ feature
you are talking about. If you mean templates, they are,
in some sense, a dynamically typed language (for which the
runtime errors happen during the second, traditional compilation stage).
The grandparent's example was not a good
one, but I cannot come up with a better right now.
I like both kinds of type systems.
If you think you don't need dynamic typing, you're either
working on software where it's unsuitable, or you're missing
out on something.
That's only Flex Builder you have there.
You need
"Flex Enterprise Services" and "Flex Charting Components"
to leverage the... oh crap, I've run out of buzzwords.
So, a few bits of recorded data [...]
TV: ~2W (a very small one)
My parents got a brand new 33-inch set the other week, and I
checked its printed specs. They said 0.6 or 0.8W in standby mode.
This surprised me; with all the recent media talk about the
energy wasted in standby mode, I would have expected more.
0.8W, over 24h, is like leaving an old-fashioned lightbulb on
for something like twenty minutes a day -- and people do that regularly without
thinking about it.
I do think something should be done to the power consumption
of home electronics. For example, there's currently no incentive for PC vendors
to ship efficient PSUs, CPUs and graphics cards dimensioned for
the average person's needs, et cetera. And people leave these things
running day and night.
Well LaTeX seems too arcane to most people.... The wiki idea started... The degenerate case is that plain text, with no adornment other than double-carriage-returns between paragraphs, is wiki syntax.
Yeah, but that text is also degenerate LaTeX source (except you need some boilerplate header and footer for LaTeX).
Writing in LaTeX isn't always easy, but it's easier than just about anything else except the different wiki languages: HTML, XML-based languages, troff...
I try to maintain my resume in LaTeX but haven't been really happy with the existing converters to generate HTML. So my impression is that it's really too paper-oriented...
That on the other hand I can believe, and it
certainly diminishes the usefulness of LaTeX.
The issue with going right to the RFCs is that E-Mail was widely deployed before Internet access was. Corporations and government used inhouse systems such as IBM PROFS, Lotus ccMail, and even MS Mail. There were large non-RFC mail networks, including MCI, AT&T, and Worldcom's Lotus Notes network (that had something like a million users when the Internet was far smaller).
True, email didn't start with RFC 822. But surely, the products you mention are late 1980s and early 1990s things?
The roots of electronic mail would be, I think, in the timesharing systems of the 1960s. (And the Wikipedia confirms that.)
I'd like to see such a book. There are bestsellers on quantum physics, chaos theories and the number PI. What's the corresponding book about computer science?
Replying to myself: Gödel Escher Bach; an eternal golden braid, of course!
Saw an old geezer with a brand new copy of it today, on the train.
Personally, I hate task-based texts. The tasks they describe never seem to be the ones
I want to perform and I'm left, in practice, without any useful documentation at all.
But was it really a... for Dummies(TM) type of book the OP wanted to write/have written?
Maybe I ready to much into it, but I envisioned something more like
a work of popular computer science, perhaps with a bit of sociology and politics.
I'd like to see such a book. There are bestsellers on quantum physics,
chaos theories and the number PI. What's the corresponding book about computer
science? All I see seems to be halfhearted mumblings about "ones and zeros".
The closest to what I want is Neal Stephenson's
In the beginning... was the command line.
It's funny, personal and it assumes an intelligent, interested reader.
Also, someone should write Edsger Dijkstra's biography.
Now here's a question for the crowd... is there anything like a multiplayer Nethack? Something you could telnet into with a single dungeon, but multiple players running through it? And no, I'm not talking standard MUD's or other games, but actual multiplayer Nethack.
Go look at the rec.games.roguelike.nethack Usenet group.
There's often talk about this-or-that tournament server being up or down. I haven't bothered to find out exactly what they mean. I suppose
it's mostly a matter of sharing the highscore list -- and the bones files! -- with other people.
Re:translation: LA LA LA LA, LA LA LA LA
on
Demise of C++?
·
· Score: 1
... it is one of the few I'd choose for the niche where speed/space really count. Unfortunately for C++, there are very few programs for which this is the appropriate niche.
Speed is not the only reason to prefer C++ to e.g. Python (which I happen to like and use a lot). Possibly not even a big reason. The type system and the C compatibility come to mind. And RAII.
Do yourself a favor and read Stroustrup's C++ FAQ.
My biggest problem with C++ is the apparent lack of a decent conforming compiler
Huh? What's wrong with recent GCC releases, in practice? Or Microsoft's compiler?
Is there any C++ compiler today with significant conformance issues?
Apart from thoose that implement Embedded C++ ("Writing a C++ compiler is hard, so we've decided you don't need it"), that is.
What did they use? GNOME? KDE? Something in the vein of a blackbox or fluxbox? Or no GUI at all? The ability to choose heavy, light, or no GUI is one of Linux's main strengths in itself, and one Win currently cannot match.
Their main argument seemed to be "we'll install the defaults for the particular Linux distribution, because the users/sysadmins wouldn't have the knowledge to do anything else".
So they probably installed Gnome, KDE and god-knows what other bloatware.
I'm surprised they even could get away with 400MHz/64MB.
Morale: if you expect to use your Linux system as a Windows clone,
you will get Windows-like performance. I didn't need a Microsoft to
tell me that.
It displays documents in a device independent and resolution independent form. It is also an open standard. If you need a print-ready electronic document to look the same in most places, PDF is a reasonable option.
Is racial insensitivity so DEAD in your country that you can't see how putting four influential black icons onto the same page as a B-movie about monkeys is offensive?
I bet that in most of the world, equating black people with monkeys
is either unknown as an expression of racism, or something people stopped
doing in the 1940s or so.
If someone did the monkey/black-guy thing in my presence here in.se,
I'd probably first not understand him, and then, horrified, assume that he
came from a family of crypto-Nazis, his grandfather giving him
Mein Kampf as a birthday present, et cetera.
the same trick was done in Superman 2 or course. By that trained-on-the-job programmer played by Richard Prior (I think).
Richard Pryor. Who died last month, by the way.
I am still amazed that a programmer trained on the job would think of that!
Wasn't he supposed to have a hidden talent for programming, though?
I liked that part -- the idea that it's talent that makes great programmers,
not fancy education. Or a light complexion.
A very silly comment, as it is impossible for you to tell if you are using one.
If you modify that to "I hate Java GUI apps", it's very obvious
which are written in Java, and I loathe them all. I assume that's what
the grandparent meant, too.
If you really hate Java apps, then you will obviously hate the majority of commercial websites.
Still, most commercial applications, games, utilities, OS's, etc are still written in C++ (or a combination of C and C++). There is a reason for this; it is because C++ is both incredibly effective and extremely efficient. Sure, its possible to create artificial benchmarks that prove otherwise, but in te real world where performance counts, people use C++. But when they want flexibility they go for Ruby or Python or something similar. If you want outstanding applications, you use an outstanding language like C++. If you want average applications, you use an average language like Java.
You're missing the point, I think.
I couldn't care less how many commercial applications are
written in C++. I use none of them; most of the software I run
is written in C, Perl or/bin/sh.
I use C++ because it's fun, fast, flexible and compatible with all the
C code out there. And because it's not tied to a vendor or an OS,
and because I trust Stroustrup's good judgement. That's enough.
(When I don't need all those things, I go for Python, but
there's no conflict implied. The One True Language is a myth.)
Hell, you can't event put known non-uniform data in C++ vector without doing it one-by-one.
Not true, of course. You can initialize a vector using
two iterators [start, end), for example two pointers into
an array, iterators into any kind of standard container, etc.
I'm sure there are plenty of other ways, too.
You don't list what your budget is so I don't know what cheap means to you. Since you mention any other solution, I'd go for a quite case and look at the Antec P180. You can always put in a new quiet power supply later. I bought this case several weeks ago for $120 and was really impressed by how quiet it is.
The Antec P180 is huge though; someone who considers buying a Mac Mini probably belongs to another market segment...
As it happens, my closet server is a Mac Mini, and my
desktop lives inside an Antec P150. I am very pleased with both.
IMHO, the P150 is the only reasonable case on the market today
if you want something that's silent, high-quality and find the
P180 a bit extreme.
Re:I love Python, but...
on
Guido Goes Google
·
· Score: 2, Interesting
I really do think it has been hampered by having a less rigorously standardized basic class library than Java or.NET.
I disagree. Python (like Perl) tends to mirror the underlying OS and libraries in some no-nonsense, pragmatic way.
Java and.NET want to be your OS, and seem to make a point of reinventing
as many wheels as possible, hoping you forget how to use the ones you already
have in the process.
My wheels are Unix, and I do not plan to replace them.
Python doesn't try to force me; that's one reason I enjoy programming in it.
It would be great to see Python get some better documentation tools as well so that it'd be easy to generate documentation on par with the Java and.NET documentation.
What's missing, in your opinion?
Man pages have always been (mostly) enough for me, and
Python's docstrings and pydoc reach about the same level.
I don't want graphs with deep inheritance hierarchies and
detailed method parameter descriptions.
Re:I guess it depends on where you came from
on
Java Is So 90s
·
· Score: 1
After C/C++, Java ended a long nightmare...
When people lump C++ with C, it's a clear indication
that they don't know what they're talking about.
C and C++ are as distinct as C and Java. Yes,
C++ has the added burden and benefit of being
kind-of a superset of C, but the way you use the
two languages is radically different.
When I was thirteen or so (a boy, if it matters),
the SF I enjoyed the most was the short stories.
I still believe that the really good SF was to be found in
the short stories. Lots of really good writers
(Theodore Sturgeon, for example) wrote hundreds of
great short stories, but only a few, often flawed, novels.
I don't know what SF short stories look like today, though.
For the umpteenth time, please don't use the term "C/C++" if you want to be taken seriously. C is one language, C++ another. There's a relation between the two, but the developer communities, the cultures, what's condidered good design and good style -- all that is very different between the two languages.
Uh, surely you're joking? Casting is, at best, type conversion. At worst, it is invoking undefined behavior, or botching the type system completely. In any case, it's never dynamic typing. Dynamic typing is when your program doesn't know until runtime what type it should consider a certain object (reference, name, block of memory) to have. C always knows that. (And C++ always knows that, except for polymorphism and templates.)
I use a lot of small, quick, and dirty scripts in other languages, mostly Bash, Perl, PHP, and Python, but for deliverable professional work, there's only one language: C.
In some [large] areas, that's true, and I happen to believe that there should be a pure C API to all important algorithms, windowing systems and so on ...
But believing that Python (or Bourne shell, or perl) is
undeliverable and unprofessional -- that's 1980s thinking.
Contraproductive.
C++ has been handling this quite nicely for years. C# and Java to some extent now as well. So by going to a pure dynamically typed language what do I gain again?
It was a bad example, and I don't really see what C++ feature you are talking about. If you mean templates, they are, in some sense, a dynamically typed language (for which the runtime errors happen during the second, traditional compilation stage).
The grandparent's example was not a good one, but I cannot come up with a better right now.
I like both kinds of type systems. If you think you don't need dynamic typing, you're either working on software where it's unsuitable, or you're missing out on something.
flex version 2.5.4
That's only Flex Builder you have there. You need "Flex Enterprise Services" and "Flex Charting Components" to leverage the ... oh crap, I've run out of buzzwords.
My parents got a brand new 33-inch set the other week, and I checked its printed specs. They said 0.6 or 0.8W in standby mode.
This surprised me; with all the recent media talk about the energy wasted in standby mode, I would have expected more. 0.8W, over 24h, is like leaving an old-fashioned lightbulb on for something like twenty minutes a day -- and people do that regularly without thinking about it.
I do think something should be done to the power consumption of home electronics. For example, there's currently no incentive for PC vendors to ship efficient PSUs, CPUs and graphics cards dimensioned for the average person's needs, et cetera. And people leave these things running day and night.
Yeah, but that text is also degenerate LaTeX source (except you need some boilerplate header and footer for LaTeX).
Writing in LaTeX isn't always easy, but it's easier than just about anything else except the different wiki languages: HTML, XML-based languages, troff ...
I try to maintain my resume in LaTeX but haven't been really happy with the existing converters to generate HTML. So my impression is that it's really too paper-oriented ...
That on the other hand I can believe, and it certainly diminishes the usefulness of LaTeX.
True, email didn't start with RFC 822. But surely, the products you mention are late 1980s and early 1990s things? The roots of electronic mail would be, I think, in the timesharing systems of the 1960s. (And the Wikipedia confirms that.)
Replying to myself: Gödel Escher Bach; an eternal golden braid, of course! Saw an old geezer with a brand new copy of it today, on the train.
But was it really a ... for Dummies(TM) type of book the OP wanted to write/have written?
Maybe I ready to much into it, but I envisioned something more like
a work of popular computer science, perhaps with a bit of sociology and politics.
I'd like to see such a book. There are bestsellers on quantum physics, chaos theories and the number PI. What's the corresponding book about computer science? All I see seems to be halfhearted mumblings about "ones and zeros". The closest to what I want is Neal Stephenson's In the beginning ... was the command line.
It's funny, personal and it assumes an intelligent, interested reader.
Also, someone should write Edsger Dijkstra's biography.
Go look at the rec.games.roguelike.nethack Usenet group. There's often talk about this-or-that tournament server being up or down. I haven't bothered to find out exactly what they mean. I suppose it's mostly a matter of sharing the highscore list -- and the bones files! -- with other people.
Speed is not the only reason to prefer C++ to e.g. Python (which I happen to like and use a lot). Possibly not even a big reason. The type system and the C compatibility come to mind. And RAII. Do yourself a favor and read Stroustrup's C++ FAQ.
My biggest problem with C++ is the apparent lack of a decent conforming compiler
Huh? What's wrong with recent GCC releases, in practice? Or Microsoft's compiler? Is there any C++ compiler today with significant conformance issues? Apart from thoose that implement Embedded C++ ("Writing a C++ compiler is hard, so we've decided you don't need it"), that is.
Their main argument seemed to be "we'll install the defaults for the particular Linux distribution, because the users/sysadmins wouldn't have the knowledge to do anything else".
So they probably installed Gnome, KDE and god-knows what other bloatware. I'm surprised they even could get away with 400MHz/64MB.
Morale: if you expect to use your Linux system as a Windows clone, you will get Windows-like performance. I didn't need a Microsoft to tell me that.
And so was Postscript ...
I bet that in most of the world, equating black people with monkeys is either unknown as an expression of racism, or something people stopped doing in the 1940s or so.
If someone did the monkey/black-guy thing in my presence here in .se,
I'd probably first not understand him, and then, horrified, assume that he
came from a family of crypto-Nazis, his grandfather giving him
Mein Kampf as a birthday present, et cetera.
Richard Pryor. Who died last month, by the way.
I am still amazed that a programmer trained on the job would think of that!
Wasn't he supposed to have a hidden talent for programming, though? I liked that part -- the idea that it's talent that makes great programmers, not fancy education. Or a light complexion.
It's not an omission, it's C compatibility and thus vital to C++.
It wouldn't surprise me if Boost contained the thing you want. Or else, wrap your enum in a struct and add a typedef.
If you modify that to "I hate Java GUI apps", it's very obvious which are written in Java, and I loathe them all. I assume that's what the grandparent meant, too.
If you really hate Java apps, then you will obviously hate the majority of commercial websites.
I rest my case ...
As it always does. Nothing new here.
Still, most commercial applications, games, utilities, OS's, etc are still written in C++ (or a combination of C and C++). There is a reason for this; it is because C++ is both incredibly effective and extremely efficient. Sure, its possible to create artificial benchmarks that prove otherwise, but in te real world where performance counts, people use C++. But when they want flexibility they go for Ruby or Python or something similar. If you want outstanding applications, you use an outstanding language like C++. If you want average applications, you use an average language like Java.
You're missing the point, I think. I couldn't care less how many commercial applications are written in C++. I use none of them; most of the software I run is written in C, Perl or /bin/sh.
I use C++ because it's fun, fast, flexible and compatible with all the C code out there. And because it's not tied to a vendor or an OS, and because I trust Stroustrup's good judgement. That's enough.
(When I don't need all those things, I go for Python, but there's no conflict implied. The One True Language is a myth.)
And the people who think things through too much before they code, and hence write monstruous code.
Not true, of course. You can initialize a vector using two iterators [start, end), for example two pointers into an array, iterators into any kind of standard container, etc. I'm sure there are plenty of other ways, too.
Don't think so. I interpret his answer as 70% playing along and 20% not wanting to exploit his coworkers' sexuality for PR purposes.
And there's always the 10% of any CEO who doesn't want his coders to have a life outside work at all ...
The Antec P180 is huge though; someone who considers buying a Mac Mini probably belongs to another market segment ...
As it happens, my closet server is a Mac Mini, and my desktop lives inside an Antec P150. I am very pleased with both. IMHO, the P150 is the only reasonable case on the market today if you want something that's silent, high-quality and find the P180 a bit extreme.
I disagree. Python (like Perl) tends to mirror the underlying OS and libraries in some no-nonsense, pragmatic way. Java and .NET want to be your OS, and seem to make a point of reinventing
as many wheels as possible, hoping you forget how to use the ones you already
have in the process.
My wheels are Unix, and I do not plan to replace them.
Python doesn't try to force me; that's one reason I enjoy programming in it.
It would be great to see Python get some better documentation tools as well so that it'd be easy to generate documentation on par with the Java and .NET documentation.
What's missing, in your opinion? Man pages have always been (mostly) enough for me, and Python's docstrings and pydoc reach about the same level. I don't want graphs with deep inheritance hierarchies and detailed method parameter descriptions.
When people lump C++ with C, it's a clear indication that they don't know what they're talking about. C and C++ are as distinct as C and Java. Yes, C++ has the added burden and benefit of being kind-of a superset of C, but the way you use the two languages is radically different.
I still believe that the really good SF was to be found in the short stories. Lots of really good writers (Theodore Sturgeon, for example) wrote hundreds of great short stories, but only a few, often flawed, novels.
I don't know what SF short stories look like today, though.