Well, I've been linux only for quite a while. For a long time I double-booted, except that I just bought the windowsgames and never played them since I would have to reboot. Anyway, if you like online games, there is Ryzom, which plays very well on linux under wine, there is a guide on how to set it up. And I used to play a tale in the desert III --- native client, very different gameplay, might be worth checking out. Both have extensive try-before-you-buy, so what can you loose except some download time?
Atheism is disbelief rather than belief, which makes a difference. As explained in my sig: Atheism is a religion in the same way that not collecting stamps is a hobby.
Are you sure? I've met plenty of Atheist dogmatists in real life as well as in the blog-o-sphere.
It is not my experience. Try to press these atheists, I expect they would admit that a god could exist, depending on the definition of god, but that it is a possibility so remote that believing in god is like believing that dropping a glass will go upward if only you release it at exactly 10am in the morning. Do remember to explicitly define "God". E.g, is this being benevolent? omniscient? omnipotent? and so on. Note that the latter 2 is logically mutually exclusive.
The assertion "there is no God" is a dogmatic religious statement. You are attempting to prove a negative, which you cannot do. This is an Atheistic religious belief.
No, it is just a shorthand of "the possibility of a god is so remote that assuming anything but absence of gods would be silly". We do the same when we say "I know that you can get a dual-core CPU from AMD"... technically, it might be untrue, but noone sane would regard that statement as religious dogma.
"There is no evidence of God's existence" is far less dogmatic, and thus closer to neutral, or disbelief. This is Agnosticism, or a lack of religious belief.
I really won't go into that definition game. Most atheists call someone agnostic if they believe there is a fair chance (say, 30% or better) chance that a god exists, and atheist if not. But many agnostics for some reason believe that atheist take the non-existance as a dogmatic belief rather than a conclusion from the available evidence. I can assure you, and I suggest you ask in any atheistic forum if you don't believe me, that this is rarely the case. (Yes, there are always a few vocal nutcases, atheists are certainly not spared from those). Some atheists even believe in stuff like reincarnation, even if I do find that extremely silly.
If you examine your statement and your "proof", you might just find vestiges of religion everywhere.
You do realize that my sig is not a proof? It's just a small sentence to get people to think. I suppose you *could* make a hobby out of not collecting stamps, but most people that doesn't haven't.
Anyway, there is as much proof for Atheism as for say the laws of gravity.
To say this demands some serious proof -- proof of a negative, at that....
So, prove it, please. Links to Atheistic Apologist web sites doesn't count... Sure. Give me a definition of (a theistic) God and lists its/his/her abilities, and I shall give you your proof. I'm not about to list proofs in all the different meanings to that word. Also note that "proof" is proof in the scientific sense... it is just evidence.
Also note that some (like Einstein, I'm told) uses God in the meaning "the natural world". In that sense, God does exist, but I do not find that terminology very helpful. Indeed, Einstein often had to clarify his position several times. He also called himself agnostic, though some atheists claim that he was an atheist. It all depends on the exact definition, and I am not a big fan of wordgames like that:)
Finally, I would still like to invite you to a forum where such is discussed. I can but give you my personal viewpoints, and while I claim myself to be atheistic I do not claim to represent atheism. I doubt anyone can do that.
Atheism is the belief that there is/are no god/gods (see wikipedia). Belief in absence of proof means it's a religion. I'm an atheist and I believe that god has no place in our universe, but it is only a belief, I have no proof. If I had proof then this would be science and not religion and I would have been killed by religious fanatics a long time ago.
Atheism is disbelief rather than belief, which makes a difference. As explained in my sig: Atheism is a religion in the same way that not collecting stamps is a hobby. Anyway, there is as much proof for Atheism as for say the laws of gravity. And even if this were not the case, atheist only refuse to acknowledge a belief without evidence; given solid evidence most atheist would believe (if not worship) in the invisible pink unicorn or whatever.
Atheism can be succesfully defended scientifically. Religions cannot (or least, none I have encountered can). That is one difference.
Proprietary software always denies users software freedom and is therefore always objectionable.
This makes absolutely no sense.
It makes perfect sense. Open source software is just a safer bet than proprietary, since you have access and rights to the source code.
Take the example of MS Office. How is MS Office "denying users software freedom"? MS Office is the prevalent product based upon the superiority of the software, not because of it's file format.
I don't know where you got the quote from, but if it is from FSF, microsoft denies the freedom to see, modify and distribute changes to MS Office. Whether those freedoms are important to you is another matter, they are important to me and thus a part of the final cost/benefit analysis.
To claim that it's entirely the format is not only delusional, but does a disservice to application design. This isn't to say that the software or the format is perfect... only that it's the best of all currently available options, whether they be "proprietary", FOSS, or whatever.
I do believe that you are a bit biased, there. E.g, it is obvious that MS office is poorer at a) exporting to PDF/ODF b) price (directly and derived) c) publishing to the Web than e.g. openoffice or koffice. Thus, whether it is best or not depend on at what you are using it for. For me, paying for MS office would be a very poor investment since a) installing would be a hassle b) it doesn't provide any functions I need that are not covered by ooffice and c) would slow me down in everything else I do due to wasted system resources.
Of course, your personal or work cost/benefit might look different.
The problem with apps (and standards bodies, as well) is that they over-emphasize the format, and ignore the software. Which means, obviously, that they are completely ignoring the reason MS dominates with Office: because they have the superior software. You keep using that unsubstantiated claim. Anyway, the format is irrelevant for the software, provided the format is expressive enough.
So rather than trying to beat MS on software quality and design... they are trying to manipulate the standards bodies so they can start dictating to MS how to design software.
That is simply incorrect. The file format does not affect the software once the document is loaded until it is saved again.
It's hardly surprising MS is pushing back- these FOSSies tried to do the exact same thing with Windows, and the FOSSies are completely ignoring Apple adding tons of functionality to THEIR operating system... but heaven forbid MS wants to add features to their own.
Not sure what you are saying here. Are you claiming that the free software community object to features in windows? Or do you mean they object to overt attempt to lock customers in? I have only seen the latter, which makes perfect sense.
It really just boils down to MS hating, which is why they applaud Apple for things they have tried to vilify MS for.
I'm sure there are lots of people hating MS, but many of the FOSS advocates do not. E.g, me and Mr. Torvalds. I only hate Microsoft for the few moments where I have to get something to work on one of their system, as even doing the simplest task involves a lot of guessing, fumbling and frustration.
4. They predict an impact 160 million years ago, 95 million years off the mark. Example: Dino fossils are as new as 65 million.
I'm no expert, but there are (at least) 2 big craters on the earth, each roughly corresponding to a big die-off. I think they are talking about the earlier one, while the later one is the dinodeath one.
If I were to make such a tool, I think I would have tried to start x with the vesa driver, a keyboard layout that is installed or maybe the default if there is a such, and nothing else. Since that is pretty obvious, I'm guessing that doesn't work:|
Heh, the flamebait that'd be modded Insightful solely depending on the OS.;)
I run linux, and I'd mod it Funny I think, but insightful would definitely be an option, too:)
A way to recover gracefully from a misconfigured X is highly overdue. On the other hand, these days it would be simpler to just not specify any resolutions at all, and let the autodetect handle it.
BSD is like a doting parent who loves their child unconditionally. GPL is like a parent who only loves their child as long as their child loves them back. The family stays together, not for the kids, but only because of the love of the BSD parent.
In a nutshell
More likely, since the kid does not learn boundaries from the unconditional love of the BSD parent, the family will break apart.
Anyway, this whole thing is a non-story. One of the vaulted freedoms of BSD code is to relicense it, and relicense to GPL is the natural thing to do if you're mixing GPL with BSD code, at least from a least-resistance point of view. The argument about companies [all] giving GPL never is also silly: The companies that chose not to give back are probably unnoticed, and many GPL authors do contribute to BSD code as well.
This article suggests that the relationship between the KHTML team and Apple is much improved over what it once was.
Indeed it is. It is now merely bad.
They maintain a blog/svn at webkit.org and have a relatively open development process for a traditional closed-source shop.
As I said. And it is still a rather uneccessary fork; there is nothing in webkit which could not have been integrated in KHTML by the normal channels.
If you want to see what else Apple gives back to the community, you can find it yourself at their main Open Source page, which includes links to their OS kernel (mainly Apple + NeXT), userland (mostly FreeBSD), Launchd (Apple), etc.
In short, they try to make some of the more popular opensource projects work in OSX. Which is smart, of course.
Apple also runs macports.org, which is a community-driven ports system for OS X, following along the example of the BSD ports systems. Apple contributes hardware & some development resources (not sure if they're paid for this or if it's voluntary, but they are there).
I have never seen a list, but all the changes I have heard about have been insignificant or integration to OSX. If you know of a list, fine, otherwise I'll stick to the neutral "some changes".
A fork with a repository *is* better than a fork where only source snapshots are published is an improvement, but forking is not playing nice by any sensible meaning of the word. It is also nice to see that they have carved in and now openly admit that the code is "based open" KHTML, though "a fork of" would have been more honest.
Although I believe the KDE/khtml folks and webkit/safari/s60 folks haven't completely re-merged there code.
And I doubt it will happen. I think that in time, Webkit will stagnate as KTHML moves on.
whaT gpl code is apple making deRivative wOrks of? i know that a Large chunk of os x came from bsd-Licensed work, but AFAIK they do not have anything that was derived from gpl.
Notably KHTML, Safari is basically Konqueror's web engine, with some changes. And yes, the source code is available, and no, they did not play nicely, but what did you expect from Apple? They are well within the law, if that is important to you.
A dozen of forms to write the same simple task and none of them and the most intuitive is incorrect and a dozen more that leads to memory fragmentation or memory leaks.
Really? I found this snippet, which was how I first thought to write it (I cleaned it up a little bit):
How much more intuitive can you get? You want to return a pair of ints. So say so. And then use make_pair() to do the heavy lifting. Doesn't get much simpler, does it?
Now, I know what you are hinting at. Yes, being able to have real support for multiple return values is something that C++ is missing. I do regard it as an advanced topic though; in most cases (like the above) wanting to return multiple value is a sign of bad design. In the above case, the programmer should have returned some class representing a coordinate. Possibly derived (privately, of course) from std::pair.
I have looked, and I am mostly thrilled. Getting operator. and operator.= will lift the language quite a bit, as will the typeof operator, making a better lambda() possible. operator.= (assignment to member variable) will be useful to any newbie. Lambda is for people who know what they are doing.
It is a montruosity of language. It will be even more unintuitive, harder and frustrating.
I do not find it so --- it's a hard but powerful language. If it's too hard for you, pick one of the dumped-down versions (Java, C#) or better yet, pick a language that is just more suited for your task, sacrificing power for generality.
My fellows are not programmers, they are mathematicias and engineers. I am the only one who has a little knodlegde to make an average robust code, but I am still making embarrased mistakes. In my job I had a whole week wasted because someone made a memory leak.
I am a mathmatician, but also a fairly experienced programmer. However, novice programmers and expert languages are not a good mix. Why not use a language geared at mathematics? Perhaps octave?
Bjarne Stroustrup said that we should not relay on propietary languages. In the future, while propietary languages will be incompatibles, certainly and he promise, C++ will be still there.
Well, true enough, but hardly the point I was trying to make. Anyway, there are tons of non-proprietary languages.
I see another future!. I see Bjarne Stroustrup is retired and fishing in a lake and the whole old school with him. C++ slowly abandoned without ceremony while the fresh blood are programming in C# using.Net technology.
C++ has been with us for a long time, and is still quite popular. But who knows? Maybe the functional languages like Haskell or Lisp will finally make it. Or something else. C# is a Java clone from what I hear, but more like C++? I regard both as Fortran replacement.
There are too many aspects that a dislike on C#, but. Hey! Out of there, there are real people with real jobs that need their work done. At this moment C# is a light year beyond. In least than five years of existence of.Net there is a 3.0 version coming and everybody programming in C#.
Had a bit too much propaganda there?:p I thought to look into Mono someday, just to round out my skills a bit, but I prefer to keep my real jobs in real languages. At the moment, that would be C++, ruby and perl, dependent on the task.
No matters how we cry out about the devil strategies of M$
Not ideal, but since the applications are so rarely informed when they are out of memory in these days and times
That's an incorrect assumption; desktop machines run out of memory all the time, and when they do, this kind of code loses data.
Sorry, sir, it is you who are mistaken. When a modern desktop runs out of memory, the kernel doesn't sit around just failing new allocations, unless you have configured your kernel very unusually. It sends kill 9 to a suitable process. On linux, that would be the OOM killer. It does this because it overcommits memory.. it allows processes to allocate memory as they like, but if a page fault occur and there is no available page in swap or memory, it has a problem. The only realistic case where that exception matters is if someone has set ulimit, which is very rare on desktops, in my experience.
KDE is an X-only application. It is exactly as portable as it should be.
This code fails on lots of platforms on which X runs. Undoubtedly. Does it fail on any where KDE runs? I only remember seeing X-specific things at a glance, but of course I might have missed some. Portability as an tricky issue, in any language. Of course, so far, it has mostly been you who missed things:) E.g, Java programs are usually not crossplatform, despite all the sacrifices that the language developers have made in an attempt to acheive this.
Limiting the language to avoid surprises is a hopeless endeavor, which I'd advice against.
This isn't about "surprises", it's about the fact that in C/C++, you simply cannot reason reliably about programs; writing robust programs in C/C++ is enormously hard and unnecessarily expensive.
So you keep saying. It is not my experience.
But I would like to hear what you suggest in it's stead?
Most languages other than C/C++/Objective-C.
Ok, so you really don't know what you are talking about. There are a ton of languages which are very much like C or C++ (Java comes to mind, but is somewhat worse). Other are not so like (e.g. ruby) but have plenty of power to essentially create a domain specific language inline. You probably have a specific language in mind... I'm guessing Java. People who hate C++ tends to like Java, most be that conforting straighjacket feel.
To get my job done, I need a powerful language, not a nanny nor a straightjacket.
You actually sound like exactly the kind of person who needs a straightjacket. But, in any case, plenty of languages are as powerful as C/C++ but without the defects.
So you say, but give no examples. I know that is untrue of Java, PL/I, Fortran, Cobol at least, and that was on your, eh, list. You seem to have just looked yourself mad at a language, with no real reason for, which might be why you are unable to articulate a real problem with c++ (I have no problem doing that, btw, it's just that the alternatives are worse). And I don't need a straightjacket, am I valued where I am exactly because I don't need a straightjacket. My designs are solid, and using my code is not a nasty surprise. I do not employ advanced techniques unless there is a substantial benefit, so please stop your unfounded accusations.
This will be my last word, since I'm going on holidays. Have a nice day:)
original statement was true and I demonstrated it: C++ source code has lots of bugs (as demonstrated by the bug list).
Sorry for the provocation, but I had to flush out a real example to know what your beef is. It worked, too:p Any project of significant size have hordes of bug reports and another horde of bugs. Sometimes, they even overlap. This has nothing to do with the language, unless you know a language where this doesn't occur? I know firsthand that C, Fortran, PL/I, Java, Perl, Python, ECMAscript and Ruby are all prone to errors. I have only dabbled in Lisp, Haskell and prolog, but they seemed equally prone.
Now, to the specific point
The fact that you think that bugs can be spotted at the level of a single class is itself telling and shows that you really don't have an inkling of what is going on. One of the big problems with C++ is exactly that the meaning and behavior of code can be changed in so many arbitrary ways by other code.
I am well aware of this. I didn't link to a specific class, I linked to an entire project. But usually, the bug can be demonstrated to be pretty localized, even though the cause is in the interaction between several classes.
But since you asked, here's an arbitrary method (first one I picked, I really wasn't looking for anything specific):
[snipped code, look to parent]
Assuming standard definitions for "new", this code has several places where it can (and will) leak memory.
If some called function threw an exception, sure, which is why I'd use an std::auto_ptr rather than the raw point. But: KDE does not use exceptions, nor does Qt. So the only place left would be if the second new operator threw an exception. Possible, but I doubt anything would catch that particular exception, so the application would probably terminate at that point, which is not an unreasonable behaviour if out of memory. Not ideal, but since the applications are so rarely informed when they are out of memory in these days and times, the cost/benefit of attempting a recover just isn't favorable.
It also depends on unportable features.
KDE is an X-only application. It is exactly as portable as it should be.
Beyond that, it's impossible to tell what this code does, let alone whether it does it correctly; depending on header files and other compilation units, this piece of code can do arbitrary things: crash, alter any memory location, alter any variable in any other namespace, etc. The meaning of the code may change depending on whether you remember to include a header file or not, and if you don't include it, it may still compile without warning.
Ok, so I guess that's your real beef, and not a stupid one at that. But: It is true that you can pretty much redefine your code to do anything you like (although inspection of the included files would reveal this). This is one of the features I particularily like; having the language adapt to the domain is far more important to me. (Which might be why I like ruby but dislike Java). Anyway, if I e.g. define a function called "add_2_integers" which actually multiplied in say Java, the user would still be surprised. Limiting the language to avoid surprises is a hopeless endeavor, which I'd advice against.
I also couldn't find any unit tests for this code, so this code probably hasn't even been unit tested.
I wouldn't be surprised. In practice, unit tests are not written in any language, and when they are, they are incomplete. It's a nice idea, it just doesn't work that way. Open source, however, is a proven method of flushing out bugs, that works on more than just paper.
Well, not by heart, but I know enough to know when to look up the details. [...] Most of it. I don't use this part very much, though, so there might well be corners I don't know that well.
"exoteric": not a word (unless you just coined it with a subconscious combination of "esoteric" and "exotic", but we'll have to wait to see if it catches on).
Ok, sorry. English is my second language, but I will bear it in mind:)
Here you go. No examples? So that's a no, then, you couldn't find anything in a random class? So you original statement was false, it is actually pretty easy to produce correct C++ code. I thought so, thanks for clearing that up. Yes, there are bugs, but that is always the case with any language I have ever heard of.
Well, I believe I have learned C++, which took about 6 months of medium intensity.
So, you claim you know all the rules and definition in ISO/ANSI C++? Well, not by heart, but I know enough to know when to look up the details.
You can tell exactly which constructs are implementation defined and undefined? yes
You know the entire STL API, complexities, etc.? Yes, for any reasonable value of "know". There are a few binders and algorithms I rarely use, though.
You know the entire C99 subset, and its rules and definitions? I really doubt it. Most of it. I don't use this part very much, though, so there might well be corners I don't know that well.
What you probably mean is that, after 6 months of studying, you can produce useful code in C++ that seems to work on your desktop machine. That's nice, but it's just enough to get you into trouble. Hah. The code I wrote then runs on all the platforms Mozilla runs on. The code I wrote after that currently runs on Z/OS, windows and Linux. These days, I write code on Linux, but intended to work on windows too when the time come. Sure, I've made mistakes, and bugs, but those mostly comes from typing mistakes and such. So yes, I maintain that if you cannot learn enough C++ to stay out of harms way you are not a very good programmer. Sorry.
AJAX is nice. I never said anything against using that.;)
My original post was just to point out that C isn't for everything. I never said Java was.
C? I thought we were talking C++. In any case, I heartily agree. I would never code a web app in C++ or C... not when rails or the python-equivalent-whose-name-always-elude-me exists. An java also has it's place, especially as a COBOL replacement, where it really shines.
The linker will remove functions it is positive won't be used. The issue here is calling cout to print "Hello World". You only *need* the code to print out a string, but once you get into the core of cout, you reach stuff like if (data is string) {} else if (data is int) else if (data is float) {}. Which branches are needed can't be determined until run time, so you have to pull in all the code to format ints, floats, etc. That's where the bloat comes from.
It also means that the program won't grow much if you try doing fancy things with cout.
Actually, cout << 5 and cout << "cheese" are two different function calls, that probably ends up in some putc() or whatever call. The signatures would be something like basic_ostring<...>::operator<<(const char*);
Have fun writing a web applet in C++ or C# then.;)
Since applets are still stuck in 32bit last I heard, don't blame me if I decline. AJAX apps seem to be the rage these days, though web apps is not my specialty.
Most of the complaining is just sour grapes. C++ is not a language for everyone, it's powerful and complex. Most programmers should be able to learn basic C++, even Java programmers.
I have been developing in C++ for 20 years, do most of my development in C++, and I do not claim to understand C++. And I have yet to see a substantial piece of correct C++ code.
If there are people who have actually learned C++, I have never met them or seen their code. Well, I believe I have learned C++, which took about 6 months of medium intensity. (Actually, I was fixing bug 1777 on mozilla at the time:) ).
Any, go to http://websvn.kde.org/trunk/KDE/kdelibs/. and pick a random class. Then tell me what is not correct about that code.
Of course, provable correct is another matter. But if that is your goal, I think Lisp/Haskell and that ilk is more appropriate.
"Compactness is the property that a design can fit inside a human being's head. A good practical test for compactness is this: Does an experienced user normally need a manual? Depends what you mean by the language? Well, usually I mean just the language, with perhaps the essential standard libraries. What the grandparent meant I don't know.
Do you need a manual for the CRT? or the STL? Are these part of the language? No, I normally don't need the manual for those. I might need it if I do something esoteric, such as string made of of something beside characters. But the key word is normally,
Is Java compact, or does it have such a massive library that you need a giant tome to keep track of the features?
In my opionion, the java library is too expensive. Not because of the compactness problem, which is less of a problem in libraries than in the language, but because anything in the library is there to stay for a long time. Like strncpy in the C library... it really never should've been put there, but we are still saddled with it. Or thread.stop() in the java libs.
I'd say that C++ is remarkably compact, you can know everything there is about it easily. What you'll then find is that it is flexible and so well designed that you can twist it about in remarkable ways, but if you do, that says more about you as a programmer and not the language itself. Yes, that's the flexibility that makes thing like boost::spirit possible.
Recently, I've just started getting into C++, and I can't understand why so many people hate the language with such a passion. The thing is, if you need/want to write your program in a compiled language with plenty of library support, then aside from C, what options are there? I'm not trying to start a flamewar, but I figure if I want to say use C (or other C++) libraries and a compiled language then I feel C++ is much better option than C. One very smart and experienced C programmer I know hates C++ with a passion complaining that "it's too complex" and just rejecting it outright.
Most of the complaining is just sour grapes. C++ is not a language for everyone, it's powerful and complex. Most programmers should be able to learn basic C++, even Java programmers.
I haven't yet written (or debugged) any large programs in C++, so that could be why I'm still enthusastic. Perhaps after some time with the language I might see what everyone is so worked up about.
Debugging is always a mess for any non-trivial problem.You'll learn what to watch out for.
I'm reading through "Effective C++" by Scott Meyers, and although the language seems like it has its warts and complexity, it also offers a great deal of power and is a hell of a lot more fun to program in than C because you get the abstraction support of objects, namespaces etc. Streams - awsome. Shared (reference counting) pointers - awsome. Less need for the preprocessor - awsome. And the standard library (plus Boost too) is so vast... containers, algorithms, it's all there. C is a nice assembler. Using the right tool is essential; C++ is for building libraries, systems and applications. C is for doing lowlevel stuff:D
Smart man.. not that I use Python, I prefer ruby and perl, but using the right tools for the right job is, again, smart:)
Does an experienced user normally need a manual? If not, then the design (or at least the subset of it that covers normal use) is compact... C++ is anti-compact -- the language's designer has admitted that he doesn't expect any one programmer to ever understand it all."
OK. I'm an experienced user, and I don't refer to a manual, except when doing something really exoteric, like placement new (I know it exists, I have yet to find a use for it). So normally, I don't. Heck, I don't even own a manual.
Yeah, there are lots of jobs doing Java. The downside is, you have to work in Java:p Think big financial system, database work, middleware, web backends. And did I mention you have to work in Java? Maybe you can even get to work a bit in JSTL, if you don't find Java limiting enough:P
Well, I haven't done an experiment;-), but..
since life on earth hasn't really influenced anything outside of the earth,
then life on earth hasn't increased the entropy outside the earth. Ok, let's ignore things like greenhouse effects and so on. Fair enough.
While I wouldn't say that life decreases entropy (because it has to increase it somewhere, just to exist), it seems possible that the presence of life means that entropy is lower than it would otherwise be, because of the steady stream of negentropy that's arriving from the sun. Negentropy, I had to look that up on wikipedia. Anyway, I don't think life have influenced the sun. However, I would say that life in general tends to use more energy, and cause more non-reversible processes to happen, than would otherwise happen. Which is why I'd say that the entropy on earth is higher than it would be without life. Not that I'm any expert on global thermodynamics:)
Well, I've been linux only for quite a while. For a long time I double-booted, except that I just bought the windowsgames and never played them since I would have to reboot. Anyway, if you like online games, there is Ryzom, which plays very well on linux under wine, there is a guide on how to set it up. And I used to play a tale in the desert III --- native client, very different gameplay, might be worth checking out. Both have extensive try-before-you-buy, so what can you loose except some download time?
Are you sure? I've met plenty of Atheist dogmatists in real life as well as in the blog-o-sphere.
It is not my experience. Try to press these atheists, I expect they would admit that a god could exist, depending on the definition of god, but that it is a possibility so remote that believing in god is like believing that dropping a glass will go upward if only you release it at exactly 10am in the morning. Do remember to explicitly define "God". E.g, is this being benevolent? omniscient? omnipotent? and so on. Note that the latter 2 is logically mutually exclusive.
The assertion "there is no God" is a dogmatic religious statement. You are attempting to prove a negative, which you cannot do. This is an Atheistic religious belief.No, it is just a shorthand of "the possibility of a god is so remote that assuming anything but absence of gods would be silly". We do the same when we say "I know that you can get a dual-core CPU from AMD"... technically, it might be untrue, but noone sane would regard that statement as religious dogma.
"There is no evidence of God's existence" is far less dogmatic, and thus closer to neutral, or disbelief. This is Agnosticism, or a lack of religious belief.I really won't go into that definition game. Most atheists call someone agnostic if they believe there is a fair chance (say, 30% or better) chance that a god exists, and atheist if not. But many agnostics for some reason believe that atheist take the non-existance as a dogmatic belief rather than a conclusion from the available evidence. I can assure you, and I suggest you ask in any atheistic forum if you don't believe me, that this is rarely the case. (Yes, there are always a few vocal nutcases, atheists are certainly not spared from those). Some atheists even believe in stuff like reincarnation, even if I do find that extremely silly.
If you examine your statement and your "proof", you might just find vestiges of religion everywhere.You do realize that my sig is not a proof? It's just a small sentence to get people to think. I suppose you *could* make a hobby out of not collecting stamps, but most people that doesn't haven't.
Anyway, there is as much proof for Atheism as for say the laws of gravity.To say this demands some serious proof -- proof of a negative, at that....
So, prove it, please. Links to Atheistic Apologist web sites doesn't count... Sure. Give me a definition of (a theistic) God and lists its/his/her abilities, and I shall give you your proof. I'm not about to list proofs in all the different meanings to that word. Also note that "proof" is proof in the scientific sense... it is just evidence.
Also note that some (like Einstein, I'm told) uses God in the meaning "the natural world". In that sense, God does exist, but I do not find that terminology very helpful. Indeed, Einstein often had to clarify his position several times. He also called himself agnostic, though some atheists claim that he was an atheist. It all depends on the exact definition, and I am not a big fan of wordgames like that :)
Finally, I would still like to invite you to a forum where such is discussed. I can but give you my personal viewpoints, and while I claim myself to be atheistic I do not claim to represent atheism. I doubt anyone can do that.
(Offtopic)As regards to your sig.
Atheism is the belief that there is/are no god/gods (see wikipedia). Belief in absence of proof means it's a religion. I'm an atheist and I believe that god has no place in our universe, but it is only a belief, I have no proof. If I had proof then this would be science and not religion and I would have been killed by religious fanatics a long time ago.
Atheism is disbelief rather than belief, which makes a difference. As explained in my sig: Atheism is a religion in the same way that not collecting stamps is a hobby. Anyway, there is as much proof for Atheism as for say the laws of gravity. And even if this were not the case, atheist only refuse to acknowledge a belief without evidence; given solid evidence most atheist would believe (if not worship) in the invisible pink unicorn or whatever.
Atheism can be succesfully defended scientifically. Religions cannot (or least, none I have encountered can). That is one difference.
But do bring debates such as this to an appropriate forum .
This makes absolutely no sense.
It makes perfect sense. Open source software is just a safer bet than proprietary, since you have access and rights to the source code.
Take the example of MS Office. How is MS Office "denying users software freedom"? MS Office is the prevalent product based upon the superiority of the software, not because of it's file format.I don't know where you got the quote from, but if it is from FSF, microsoft denies the freedom to see, modify and distribute changes to MS Office. Whether those freedoms are important to you is another matter, they are important to me and thus a part of the final cost/benefit analysis.
To claim that it's entirely the format is not only delusional, but does a disservice to application design. This isn't to say that the software or the format is perfect... only that it's the best of all currently available options, whether they be "proprietary", FOSS, or whatever.I do believe that you are a bit biased, there. E.g, it is obvious that MS office is poorer at a) exporting to PDF/ODF b) price (directly and derived) c) publishing to the Web than e.g. openoffice or koffice. Thus, whether it is best or not depend on at what you are using it for. For me, paying for MS office would be a very poor investment since a) installing would be a hassle b) it doesn't provide any functions I need that are not covered by ooffice and c) would slow me down in everything else I do due to wasted system resources. Of course, your personal or work cost/benefit might look different.
The problem with apps (and standards bodies, as well) is that they over-emphasize the format, and ignore the software. Which means, obviously, that they are completely ignoring the reason MS dominates with Office: because they have the superior software. You keep using that unsubstantiated claim. Anyway, the format is irrelevant for the software, provided the format is expressive enough. So rather than trying to beat MS on software quality and design... they are trying to manipulate the standards bodies so they can start dictating to MS how to design software.That is simply incorrect. The file format does not affect the software once the document is loaded until it is saved again.
It's hardly surprising MS is pushing back- these FOSSies tried to do the exact same thing with Windows, and the FOSSies are completely ignoring Apple adding tons of functionality to THEIR operating system... but heaven forbid MS wants to add features to their own.Not sure what you are saying here. Are you claiming that the free software community object to features in windows? Or do you mean they object to overt attempt to lock customers in? I have only seen the latter, which makes perfect sense.
It really just boils down to MS hating, which is why they applaud Apple for things they have tried to vilify MS for.I'm sure there are lots of people hating MS, but many of the FOSS advocates do not. E.g, me and Mr. Torvalds. I only hate Microsoft for the few moments where I have to get something to work on one of their system, as even doing the simplest task involves a lot of guessing, fumbling and frustration.
I'm no expert, but there are (at least) 2 big craters on the earth, each roughly corresponding to a big die-off. I think they are talking about the earlier one, while the later one is the dinodeath one.
If I were to make such a tool, I think I would have tried to start x with the vesa driver, a keyboard layout that is installed or maybe the default if there is a such, and nothing else. Since that is pretty obvious, I'm guessing that doesn't work :|
I run linux, and I'd mod it Funny I think, but insightful would definitely be an option, too :)
A way to recover gracefully from a misconfigured X is highly overdue. On the other hand, these days it would be simpler to just not specify any resolutions at all, and let the autodetect handle it.
In a nutshell
More likely, since the kid does not learn boundaries from the unconditional love of the BSD parent, the family will break apart.
Anyway, this whole thing is a non-story. One of the vaulted freedoms of BSD code is to relicense it, and relicense to GPL is the natural thing to do if you're mixing GPL with BSD code, at least from a least-resistance point of view. The argument about companies [all] giving GPL never is also silly: The companies that chose not to give back are probably unnoticed, and many GPL authors do contribute to BSD code as well.
Indeed it is. It is now merely bad.
They maintain a blog/svn at webkit.org and have a relatively open development process for a traditional closed-source shop.As I said. And it is still a rather uneccessary fork; there is nothing in webkit which could not have been integrated in KHTML by the normal channels.
If you want to see what else Apple gives back to the community, you can find it yourself at their main Open Source page, which includes links to their OS kernel (mainly Apple + NeXT), userland (mostly FreeBSD), Launchd (Apple), etc.In short, they try to make some of the more popular opensource projects work in OSX. Which is smart, of course.
Apple also runs macports.org, which is a community-driven ports system for OS X, following along the example of the BSD ports systems. Apple contributes hardware & some development resources (not sure if they're paid for this or if it's voluntary, but they are there).Forgive me if I am not impressed :)
I have never seen a list, but all the changes I have heard about have been insignificant or integration to OSX. If you know of a list, fine, otherwise I'll stick to the neutral "some changes".
They are playing more nice these days, just see:http://www.webkit.org/
A fork with a repository *is* better than a fork where only source snapshots are published is an improvement, but forking is not playing nice by any sensible meaning of the word. It is also nice to see that they have carved in and now openly admit that the code is "based open" KHTML, though "a fork of" would have been more honest.
Although I believe the KDE/khtml folks and webkit/safari/s60 folks haven't completely re-merged there code.And I doubt it will happen. I think that in time, Webkit will stagnate as KTHML moves on.
Notably KHTML, Safari is basically Konqueror's web engine, with some changes. And yes, the source code is available, and no, they did not play nicely, but what did you expect from Apple? They are well within the law, if that is important to you.
Just take a look to this as an example to how frustrating, clumsy and unintuitive C++ can be.
http://www.allegro.cc/forums/thread/552652
A dozen of forms to write the same simple task and none of them and the most intuitive is incorrect and a dozen more that leads to memory fragmentation or memory leaks.
Really? I found this snippet, which was how I first thought to write it (I cleaned it up a little bit):
How much more intuitive can you get? You want to return a pair of ints. So say so. And then use make_pair() to do the heavy lifting. Doesn't get much simpler, does it? Now, I know what you are hinting at. Yes, being able to have real support for multiple return values is something that C++ is missing. I do regard it as an advanced topic though; in most cases (like the above) wanting to return multiple value is a sign of bad design. In the above case, the programmer should have returned some class representing a coordinate. Possibly derived (privately, of course) from std::pair.
But look the new C++09.
http://en.wikipedia.org/wiki/C++0x
I have looked, and I am mostly thrilled. Getting operator. and operator.= will lift the language quite a bit, as will the typeof operator, making a better lambda() possible. operator.= (assignment to member variable) will be useful to any newbie. Lambda is for people who know what they are doing.
It is a montruosity of language. It will be even more unintuitive, harder and frustrating.
I do not find it so --- it's a hard but powerful language. If it's too hard for you, pick one of the dumped-down versions (Java, C#) or better yet, pick a language that is just more suited for your task, sacrificing power for generality.
My fellows are not programmers, they are mathematicias and engineers. I am the only one who has a little knodlegde to make an average robust code, but I am still making embarrased mistakes. In my job I had a whole week wasted because someone made a memory leak.
I am a mathmatician, but also a fairly experienced programmer. However, novice programmers and expert languages are not a good mix. Why not use a language geared at mathematics? Perhaps octave?
Bjarne Stroustrup said that we should not relay on propietary languages. In the future, while propietary languages will be incompatibles, certainly and he promise, C++ will be still there.
Well, true enough, but hardly the point I was trying to make. Anyway, there are tons of non-proprietary languages.
I see another future!. I see Bjarne Stroustrup is retired and fishing in a lake and the whole old school with him. C++ slowly abandoned without ceremony while the fresh blood are programming in C# using .Net technology.
C++ has been with us for a long time, and is still quite popular. But who knows? Maybe the functional languages like Haskell or Lisp will finally make it. Or something else. C# is a Java clone from what I hear, but more like C++? I regard both as Fortran replacement. There are too many aspects that a dislike on C#, but. Hey! Out of there, there are real people with real jobs that need their work done. At this moment C# is a light year beyond. In least than five years of existence of .Net there is a 3.0 version coming and everybody programming in C#.
Had a bit too much propaganda there? :p I thought to look into Mono someday, just to round out my skills a bit, but I prefer to keep my real jobs in real languages. At the moment, that would be C++, ruby and perl, dependent on the task.
No matters how we cry out about the devil strategies of M$
That's an incorrect assumption; desktop machines run out of memory all the time, and when they do, this kind of code loses data.
Sorry, sir, it is you who are mistaken. When a modern desktop runs out of memory, the kernel doesn't sit around just failing new allocations, unless you have configured your kernel very unusually. It sends kill 9 to a suitable process. On linux, that would be the OOM killer. It does this because it overcommits memory.. it allows processes to allocate memory as they like, but if a page fault occur and there is no available page in swap or memory, it has a problem. The only realistic case where that exception matters is if someone has set ulimit, which is very rare on desktops, in my experience.
KDE is an X-only application. It is exactly as portable as it should be.This code fails on lots of platforms on which X runs. Undoubtedly. Does it fail on any where KDE runs? I only remember seeing X-specific things at a glance, but of course I might have missed some. Portability as an tricky issue, in any language. Of course, so far, it has mostly been you who missed things
This isn't about "surprises", it's about the fact that in C/C++, you simply cannot reason reliably about programs; writing robust programs in C/C++ is enormously hard and unnecessarily expensive.
So you keep saying. It is not my experience.
But I would like to hear what you suggest in it's stead?Most languages other than C/C++/Objective-C.
Ok, so you really don't know what you are talking about. There are a ton of languages which are very much like C or C++ (Java comes to mind, but is somewhat worse). Other are not so like (e.g. ruby) but have plenty of power to essentially create a domain specific language inline. You probably have a specific language in mind... I'm guessing Java. People who hate C++ tends to like Java, most be that conforting straighjacket feel.
To get my job done, I need a powerful language, not a nanny nor a straightjacket.You actually sound like exactly the kind of person who needs a straightjacket. But, in any case, plenty of languages are as powerful as C/C++ but without the defects.
So you say, but give no examples. I know that is untrue of Java, PL/I, Fortran, Cobol at least, and that was on your, eh, list. You seem to have just looked yourself mad at a language, with no real reason for, which might be why you are unable to articulate a real problem with c++ (I have no problem doing that, btw, it's just that the alternatives are worse). And I don't need a straightjacket, am I valued where I am exactly because I don't need a straightjacket. My designs are solid, and using my code is not a nasty surprise. I do not employ advanced techniques unless there is a substantial benefit, so please stop your unfounded accusations.
This will be my last word, since I'm going on holidays. Have a nice day :)
original statement was true and I demonstrated it: C++ source code has lots of bugs (as demonstrated by the bug list).
Sorry for the provocation, but I had to flush out a real example to know what your beef is. It worked, too :p Any project of significant size have hordes of bug reports and another horde of bugs. Sometimes, they even overlap. This has nothing to do with the language, unless you know a language where this doesn't occur? I know firsthand that C, Fortran, PL/I, Java, Perl, Python, ECMAscript and Ruby are all prone to errors. I have only dabbled in Lisp, Haskell and prolog, but they seemed equally prone.
Now, to the specific point
The fact that you think that bugs can be spotted at the level of a single class is itself telling and shows that you really don't have an inkling of what is going on. One of the big problems with C++ is exactly that the meaning and behavior of code can be changed in so many arbitrary ways by other code.
I am well aware of this. I didn't link to a specific class, I linked to an entire project. But usually, the bug can be demonstrated to be pretty localized, even though the cause is in the interaction between several classes.
But since you asked, here's an arbitrary method (first one I picked, I really wasn't looking for anything specific):
[snipped code, look to parent] Assuming standard definitions for "new", this code has several places where it can (and will) leak memory.
If some called function threw an exception, sure, which is why I'd use an std::auto_ptr rather than the raw point. But: KDE does not use exceptions, nor does Qt. So the only place left would be if the second new operator threw an exception. Possible, but I doubt anything would catch that particular exception, so the application would probably terminate at that point, which is not an unreasonable behaviour if out of memory. Not ideal, but since the applications are so rarely informed when they are out of memory in these days and times, the cost/benefit of attempting a recover just isn't favorable.
It also depends on unportable features.
KDE is an X-only application. It is exactly as portable as it should be.
Beyond that, it's impossible to tell what this code does, let alone whether it does it correctly; depending on header files and other compilation units, this piece of code can do arbitrary things: crash, alter any memory location, alter any variable in any other namespace, etc. The meaning of the code may change depending on whether you remember to include a header file or not, and if you don't include it, it may still compile without warning.
Ok, so I guess that's your real beef, and not a stupid one at that. But: It is true that you can pretty much redefine your code to do anything you like (although inspection of the included files would reveal this). This is one of the features I particularily like; having the language adapt to the domain is far more important to me. (Which might be why I like ruby but dislike Java). Anyway, if I e.g. define a function called "add_2_integers" which actually multiplied in say Java, the user would still be surprised. Limiting the language to avoid surprises is a hopeless endeavor, which I'd advice against.
I also couldn't find any unit tests for this code, so this code probably hasn't even been unit tested.
I wouldn't be surprised. In practice, unit tests are not written in any language, and when they are, they are incomplete. It's a nice idea, it just doesn't work that way. Open source, however, is a proven method of flushing out bugs, that works on more than just paper.
Well, not by heart, but I know enough to know when to look up the details. [...] Most of it. I don't use this part very much, though, so there might well be corners I don't know that well.
You don't even know enough to understand how m
Ok, sorry. English is my second language, but I will bear it in mind :)
Here you go.
No examples? So that's a no, then, you couldn't find anything in a random class? So you original statement was false, it is actually pretty easy to produce correct C++ code. I thought so, thanks for clearing that up. Yes, there are bugs, but that is always the case with any language I have ever heard of. Well, I believe I have learned C++, which took about 6 months of medium intensity.
So, you claim you know all the rules and definition in ISO/ANSI C++? Well, not by heart, but I know enough to know when to look up the details. You can tell exactly which constructs are implementation defined and undefined? yes You know the entire STL API, complexities, etc.? Yes, for any reasonable value of "know". There are a few binders and algorithms I rarely use, though. You know the entire C99 subset, and its rules and definitions? I really doubt it. Most of it. I don't use this part very much, though, so there might well be corners I don't know that well. What you probably mean is that, after 6 months of studying, you can produce useful code in C++ that seems to work on your desktop machine. That's nice, but it's just enough to get you into trouble. Hah. The code I wrote then runs on all the platforms Mozilla runs on. The code I wrote after that currently runs on Z/OS, windows and Linux. These days, I write code on Linux, but intended to work on windows too when the time come. Sure, I've made mistakes, and bugs, but those mostly comes from typing mistakes and such. So yes, I maintain that if you cannot learn enough C++ to stay out of harms way you are not a very good programmer. Sorry.
My original post was just to point out that C isn't for everything. I never said Java was.
C? I thought we were talking C++. In any case, I heartily agree. I would never code a web app in C++ or C... not when rails or the python-equivalent-whose-name-always-elude-me exists. An java also has it's place, especially as a COBOL replacement, where it really shines.
It also means that the program won't grow much if you try doing fancy things with cout.
Actually, cout << 5 and cout << "cheese" are two different function calls, that probably ends up in some putc() or whatever call. The signatures would be something like basic_ostring<...>::operator<<(const char*);
Since applets are still stuck in 32bit last I heard, don't blame me if I decline. AJAX apps seem to be the rage these days, though web apps is not my specialty.
I have been developing in C++ for 20 years, do most of my development in C++, and I do not claim to understand C++. And I have yet to see a substantial piece of correct C++ code.
If there are people who have actually learned C++, I have never met them or seen their code. Well, I believe I have learned C++, which took about 6 months of medium intensity. (Actually, I was fixing bug 1777 on mozilla at the time
In my opionion, the java library is too expensive. Not because of the compactness problem, which is less of a problem in libraries than in the language, but because anything in the library is there to stay for a long time. Like strncpy in the C library... it really never should've been put there, but we are still saddled with it. Or thread.stop() in the java libs.
I'd say that C++ is remarkably compact, you can know everything there is about it easily. What you'll then find is that it is flexible and so well designed that you can twist it about in remarkable ways, but if you do, that says more about you as a programmer and not the language itself. Yes, that's the flexibility that makes thing like boost::spirit possible.Most of the complaining is just sour grapes. C++ is not a language for everyone, it's powerful and complex. Most programmers should be able to learn basic C++, even Java programmers.
I haven't yet written (or debugged) any large programs in C++, so that could be why I'm still enthusastic. Perhaps after some time with the language I might see what everyone is so worked up about.Debugging is always a mess for any non-trivial problem.You'll learn what to watch out for.
I'm reading through "Effective C++" by Scott Meyers, and although the language seems like it has its warts and complexity, it also offers a great deal of power and is a hell of a lot more fun to program in than C because you get the abstraction support of objects, namespaces etc. Streams - awsome. Shared (reference counting) pointers - awsome. Less need for the preprocessor - awsome. And the standard library (plus Boost too) is so vast... containers, algorithms, it's all there. C is a nice assembler. Using the right tool is essential; C++ is for building libraries, systems and applications. C is for doing lowlevel stuffOK. I'm an experienced user, and I don't refer to a manual, except when doing something really exoteric, like placement new (I know it exists, I have yet to find a use for it). So normally, I don't. Heck, I don't even own a manual.
Yeah, there are lots of jobs doing Java. The downside is, you have to work in Java :p Think big financial system, database work, middleware, web backends. And did I mention you have to work in Java? Maybe you can even get to work a bit in JSTL, if you don't find Java limiting enough :P
Well, I haven't done an experiment
since life on earth hasn't really influenced anything outside of the earth,
then life on earth hasn't increased the entropy outside the earth. Ok, let's ignore things like greenhouse effects and so on. Fair enough. While I wouldn't say that life decreases entropy (because it has to increase it somewhere, just to exist), it seems possible that the presence of life means that entropy is lower than it would otherwise be, because of the steady stream of negentropy that's arriving from the sun. Negentropy, I had to look that up on wikipedia. Anyway, I don't think life have influenced the sun. However, I would say that life in general tends to use more energy, and cause more non-reversible processes to happen, than would otherwise happen. Which is why I'd say that the entropy on earth is higher than it would be without life. Not that I'm any expert on global thermodynamics