As a Wikibook administratos I can tell you that the WikiMedia software never deletes anything - it is just hidden from the general public. If you have a legitimate reason to look at deleted entries you can ask an Administrator to make the data available to you.
Often overlooked: C is a system programming language and not an application programming language. C was designed to write the Unix operating system and quite honestly it is not good for anything else.
Yes you can use C for all sorts of other programming needs (if you have a masochistic tendence) - all programming needs in fact as C is turing complete - but it isn't any good at it.
Martin
Note: I have learned C in 1990, updated my C knowledge regularly, own a copy of the C99 ISO standard and I have quite a lot of experience in C programming.
But I understood the Ruby one right away. "reverse" is just easier to understand then "[::-1]". And don't waste your time explaining it, or to tell me how elegant or nifty "[::-1]" is - I understood "reverse" right away and that is what counts.
Indeed they had - but that too has been abolished. Getting an Ada compiler today cost you $0,-- these days (thanks to the US-Navy sponsoring one). And it is not a crippled compiler like the Delphi for home users. It's fully functional, with IDE (also fully functional) and even an CORBA ORB. Ada has learned from it's mistakes.
However: There is an advantage here as well: All compiler ventdors - even today - comply with the standart. There is an ISO standart describing the official test harnish.
All unlike C/C++ where only one minor player has a fully compliant compiler. So he says: There is no official test harnish to find out.
Ada, the most overhyped language until Ruby. Ada was not overhyped - Ada delivered everything it promised. Ada was rather underestimaded by those who never learned Ada.
Of course that was the problem: When Ada came out only very powerfull system where able to run an Ada compiler so not many programmers could actualy try the language.
But that's not a problem any more, grap yourself an open source Ada compiler [1] and see for yourself.
As for Ruby: That seems a nice enough language as well. Never given me any problems. So where actually is your problem?
Programming languages with build in multitasking have been around for a long time. They just haven't made it into the "top ten". Mind you: Ada has a firm place in the top twenty;-).
The problem is that programs written in your normal languages (C, C++, Java, C#, basically anything you've ever heard of) are totally synchronous; you can not proceed on to the next statement until the previous one completes.
The real problem is that procedural languages are ugly for working in on this stuff. Not true, there is a procedural language with nifty, elegant multitasking around for over 20 years:
No, I was counting the countries using the metric system - which would include China and India - against the US. OK a bit unfair, there is also Liberia 3,283,000 and Myanmar with whooping 50,519,000. Well Ok, with Burma in is't 5.3% - you got me there. But that still make 94.6% for the metric system.
Of corse it's just official measuments: Brits still buy beer in pints - that's ok.
And the last carton of milk I bought in GB was labled "1.35 litre/2 pints" - and that's ok as well. As long as litre is bold print;-).
Martin
PS: In the german election system 4.58% does not round up. You Party got 5.000% (or three direct mandates) or goes home. And I expect it's the same in other countries with a 5% border.
Perhaps the trouble started when Pascal was replaced by C in classrooms?
Yes, that could well be. The teachers/schools thought the students have to learn a language which is also used in the industry.
And that is of course wrong. They should teach programming and software engineering.
But I don't blame them, the pressure came and still comes from managers and personal officers. They think that learning a programming language is difficult - which is wrong - learning programming is difficult.
I am possible one of the programmers who know C++ really in deeps. And yet there was allays room for surprise as the Ruby community would call it. Up to the point that I decided that C/C++ are not the right tools and I switched to Ada [1].
C and C++ are so focused on speed - speed of execution and speed of code hacking:
If:
signed x; unsigned y;
why must
x = y;
be allowed? I mean you will need:
x = (signed)y;
but do you really need that quick hacking shortcut which is difficult to maintain and may hide a book.
And here comes the "NO" part: Most programmers are not allowed to choose there programming language.
No conserving memory or CPU cycles is not bad - but you have to strike a balance between that and safety, security, reliability. And C and it's successor C++ have got that wrong - especially now where almost every computer is wired to the internet.
If you look at the great language shootout [1] then you will see that i.E. Ada [2] uses only marginally more memory or CPU cycles but it offers a lot more on the safety, security, reliability part.
As for Die-Hard: From what I read it is going to be a lot more wastefull on memory or CPU without delivering what Ada can do.
Sad that our posts are at the bottom so almost no one will see them. I posted almost the same before I saw your post. Only I suggested Pascals more powerful sister [1].
But anyway: they will just continue to produce new tools to fix the deficiency if C/C++ so programmers won't need to learn new languages, or because hirering will be easier.
I have not much hope for the software developing industry.
These problems wouldn't arise if programmers were a little less focused on speed and efficiency, which is rarely a problem these days, and more attentive to security Indeed. And one could start of by using using a programming language which is "attentive to security" [1].
I did and I never looked back. It is a damm lot easier then trying to fix the deficiencies of a speed, speed and only speed focused language (C/C++) by the means of tool.
I tried [2] - and it did not work well. A add-on tool just can not beat build in buffer overrun protection by no means.
In the case of Splint static analysis is just not enough, you need runtime checks as well.
And in the case of Die-Hard all the protection bolted on later at runtime. And that will relay be great for performance.
Only... the JPEG-Virus was based not on a buffer overrun, it used an integer range overrun. Ada has build in protection for integer range overruns. Haven't read anything about Die-Hard protecting anything but memory.
$360,000 wasted because the majority of programmers are to lazy to learn a new programming language (those present are of course not meant).
Or there bosses rather buy a tool then a course for them.
Martin
PS: If you like to try Ada you get the free and open source version here [3].
(Note: Your example of using dynamic_cast to cast from an int to an unsigned int won't work. That's part of what dynamic_cast is meant to prevent. It uses a pointer or a reference.) I know. And as I said: it is a missed oportunity.
dynamic_cast makes a runtime check to see if the source pointer is compatible with the destination pointer. As such it is the savest cast available.
It would have been easy to extend the idea of a runtime check to create a save cast for primitive data types (int, long, char). Then one would have got the matra "dynamic_cast is save" which would have been easy to teach to C++ beginners.
But sadly the C++ standart comete where so pointer centric.
Shure you can create templates for save numeric casts (the boost library got one, I programmed one myself). But they are all missing the matra value and - more importanly - are not mentioned in "Teach yourself C++ in 21 days".
shure - i just did not want to make my post to compicated for the average /. reader :-) .
As a Wikibook administratos I can tell you that the WikiMedia software never deletes anything - it is just hidden from the general public. If you have a legitimate reason to look at deleted entries you can ask an Administrator to make the data available to you.
Martin
Often overlooked: C is a system programming language and not an application programming language. C was designed to write the Unix operating system and quite honestly it is not good for anything else.
Yes you can use C for all sorts of other programming needs (if you have a masochistic tendence) - all programming needs in fact as C is turing complete - but it isn't any good at it.
Martin
Note: I have learned C in 1990, updated my C knowledge regularly, own a copy of the C99 ISO standard and I have quite a lot of experience in C programming.
But I understood the Ruby one right away. "reverse" is just easier to understand then "[::-1]". And don't waste your time explaining it, or to tell me how elegant or nifty "[::-1]" is - I understood "reverse" right away and that is what counts.
Martin
I almost never run make install as root. to be precise I run:
make DESTDIR=/var/tmp/whatever install
as a normal user. And indeed that is the prefered way to create an RPM package.
Martin
Maybe you want to have a look at Symbian Signed so see what kind of loops and hops you have to go thrue to run your own software on a smart phone.
t Summary
It's the same for Windows Mobile and will be the same for the iPhone.
And, of course: a network provider can ban the use of specific API's and or unsigned software on subsidised/branded phones.
Martin
[1] https://www.symbiansigned.com/app/page/dev/devcer
... the same way they have not subsidised mobile phones with DECT [1] capability.As a result mobile phones with DECT never made it to the shops.
d less_Telecommunications
Martin
[1] http://en.wikipedia.org/wiki/Digital_Enhanced_Cor
Indeed they had - but that too has been abolished. Getting an Ada compiler today cost you $0,-- these days (thanks to the US-Navy sponsoring one). And it is not a crippled compiler like the Delphi for home users. It's fully functional, with IDE (also fully functional) and even an CORBA ORB. Ada has learned from it's mistakes.
However: There is an advantage here as well: All compiler ventdors - even today - comply with the standart. There is an ISO standart describing the official test harnish.
All unlike C/C++ where only one minor player has a fully compliant compiler. So he says: There is no official test harnish to find out.
Martin
American Dental Association...
Americans for Democratic Action...
Assistant District Attorney...
American Diabetes Association...
which of them [1] are you sick off?
I personaly am sick of people who don't know that a "A female given name."[2] is not spelled all upper case.
Martin
[1] http://en.wiktionary.org/wiki/ADA
[2] http://en.wiktionary.org/wiki/Ada
Of course that was the problem: When Ada came out only very powerfull system where able to run an Ada compiler so not many programmers could actualy try the language.
But that's not a problem any more, grap yourself an open source Ada compiler [1] and see for yourself.
As for Ruby: That seems a nice enough language as well. Never given me any problems. So where actually is your problem?
Martin
[1] http://en.wikibooks.org/wiki/Ada_Programming/Inst
I know I repeat myself:
i ng
;-).
http://en.wikibooks.org/wiki/Ada_Programming/Task
Programming languages with build in multitasking have been around for a long time. They just haven't made it into the "top ten". Mind you: Ada has a firm place in the top twenty
Martin
The problem is that programs written in your normal languages (C, C++, Java, C#, basically anything you've ever heard of) are totally synchronous; you can not proceed on to the next statement until the previous one completes.
i ng
I heard of one more:
http://en.wikibooks.org/wiki/Ada_Programming/Task
And with it comes another approach: rendezvous based tasking. I found it a lot easier to used then semaphore based threading.
C and all it's descendent's have been a step back. C 73's most notable feature was "fit's into 8 kb of memory".
Martin
In Java threading is a library feature controlled by the Thread class, in Ada threading is a first class language feature:
i ng
http://en.wikibooks.org/wiki/Ada_Programming/Task
But more importantly: Ada uses rendezvous instead of semaphores which are a lot easier to handle and more elegant to look at.
Martin
http://en.wikibooks.org/wiki/Ada_Programming/Task
Martin
No, I was counting the countries using the metric system - which would include China and India - against the US. OK a bit unfair, there is also Liberia 3,283,000 and Myanmar with whooping 50,519,000. Well Ok, with Burma in is't 5.3% - you got me there. But that still make 94.6% for the metric system.
;-).
Of corse it's just official measuments: Brits still buy beer in pints - that's ok.
And the last carton of milk I bought in GB was labled "1.35 litre/2 pints" - and that's ok as well. As long as litre is bold print
Martin
PS: In the german election system 4.58% does not round up. You Party got 5.000% (or three direct mandates) or goes home. And I expect it's the same in other countries with a 5% border.
SI is indeed Kelvin but for genereal use one used Celsius. Both are only offseted - to get from one to the other only add or subtract is needed.
It's not just Europe - it's the whole rest of the World. And the US only got 4.6% of the world population.
You are a minority! In quite a few countries a political party with less then 5% of the votes are not allowed into parlament.
Martin
Well, My P990i just died on me. It has memory problems, Software is buggy, Crashes, leaks memory (despite garbage collection).
Eventually one starts to wonder of Sony is a still a 'premium' brand. It will take some time but it will come.
Martin
Yes, I never had a buffer overrun when using Ada - unless I used one of the following:
...
with Interfaces.C:
pragma Import (Convention => C,
got the drift? One problem is that the OSs itself are written in C.
Martin
And that is of course wrong. They should teach programming and software engineering.
But I don't blame them, the pressure came and still comes from managers and personal officers. They think that learning a programming language is difficult - which is wrong - learning programming is difficult.
Martin
I am possible one of the programmers who know C++ really in deeps. And yet there was allays room for surprise as the Ruby community would call it. Up to the point that I decided that C/C++ are not the right tools and I switched to Ada [1].
g uage)
:-).
C and C++ are so focused on speed - speed of execution and speed of code hacking:
If:
signed x;
unsigned y;
why must
x = y;
be allowed? I mean you will need:
x = (signed)y;
but do you really need that quick hacking shortcut which is difficult to maintain and may hide a book.
And here comes the "NO" part: Most programmers are not allowed to choose there programming language.
Martin
[1] http://en.wikipedia.org/wiki/Ada_(programming_lan
PS: Yes I am a bloody Ada advocate who plasters this discussion with damm Ada links
No conserving memory or CPU cycles is not bad - but you have to strike a balance between that and safety, security, reliability. And C and it's successor C++ have got that wrong - especially now where almost every computer is wired to the internet.
g uage)
If you look at the great language shootout [1] then you will see that i.E. Ada [2] uses only marginally more memory or CPU cycles but it offers a lot more on the safety, security, reliability part.
As for Die-Hard: From what I read it is going to be a lot more wastefull on memory or CPU without delivering what Ada can do.
Martin
[1] http://shootout.alioth.debian.org/
[2] http://en.wikipedia.org/wiki/Ada_(programming_lan
Sad that our posts are at the bottom so almost no one will see them. I posted almost the same before I saw your post. Only I suggested Pascals more powerful sister [1].
g uage)
But anyway: they will just continue to produce new tools to fix the deficiency if C/C++ so programmers won't need to learn new languages, or because hirering will be easier.
I have not much hope for the software developing industry.
Martin
[1] http://en.wikipedia.org/wiki/Ada_(programming_lan
I did and I never looked back. It is a damm lot easier then trying to fix the deficiencies of a speed, speed and only speed focused language (C/C++) by the means of tool.
I tried [2] - and it did not work well. A add-on tool just can not beat build in buffer overrun protection by no means.
In the case of Splint static analysis is just not enough, you need runtime checks as well.
And in the case of Die-Hard all the protection bolted on later at runtime. And that will relay be great for performance.
Only
$360,000 wasted because the majority of programmers are to lazy to learn a new programming language (those present are of course not meant).
Or there bosses rather buy a tool then a course for them.
Martin
PS: If you like to try Ada you get the free and open source version here [3].
[1] http://en.wikipedia.org/wiki/Ada_(programming_lan
[2] http://en.wikipedia.org/wiki/Splint_(programming_
[3] https://libre2.adacore.com/
dynamic_cast makes a runtime check to see if the source pointer is compatible with the destination pointer. As such it is the savest cast available.
It would have been easy to extend the idea of a runtime check to create a save cast for primitive data types (int, long, char). Then one would have got the matra "dynamic_cast is save" which would have been easy to teach to C++ beginners.
But sadly the C++ standart comete where so pointer centric.
Shure you can create templates for save numeric casts (the boost library got one, I programmed one myself). But they are all missing the matra value and - more importanly - are not mentioned in "Teach yourself C++ in 21 days".
Martin