Probably an overgeneral statement meant to prevent any dispute yet lead to the wrong conclusion.
Software can be (and often the best software is!) written without paying the programmers. Of course, you need money to feed the programmers and to give them a place to live and to give them more hardware. But then again, you need money to breathe as well so that really isn't a point at all.
Am I better off with: a) a tool that requires me to read twenty pages of assembly and operating directions and periodically stops working if I don't follow every instruction just right, or b) a tool that I snap together and start working with immediately (no classes required!), and which performs flawlessly throughout the job?
How about this one. Lets say you want to simulate the orbits of the planets, satellites (both artificial and natrual), and minor planets of the solar system. Are you better off with
a tool that requires me to read twenty pages of assembly and operating directions and periodically stops working if I don't follow every instruction just right, or
a tool that I snap together and start working with immediately (no classes required!), and which performs flawlessly throughout the job?
With a moments thought, 2 can't be right. Use a simple system only for simple things.
Re:Why are people still using a 30 year old langua
on
C
·
· Score: 2
A good programmer can manage memory without the help of the runtime environment. There's a certain pride in being able to program with no memory leaks.
Then where have all the good programmers gone? Or have they all moved over to Lisp?
Meant no offenses. And trolling is something completely different:)
Re:because apple thinks like a non-technical user
on
Why So Many Mac Fanatics?
·
· Score: 1, Offtopic
... mostly for fun and partly for work, and generally couldn't give a rat's ass how it works. They want it to be as easy as possible to use, and attractive to boot.
(taken out of context for effect)
Wouldn't your mom rather have a nice bubblegum machine instead?
But I am still trying to come up with Be users and advocates I know who I can laugh at.
Remember when Be was going take over the world yet us "free software zealots" who wanted the source code kept saying "but...what if Be goes under or becomes some kind of tyrant?"
Hopefully they learned that freedom means giving control of the software as well as its power to its users. Power contained in the hands of the few is little power at all.
It is clear that there are differences comparing Prolog and C, and that is the important point in a CS degree: to learn every kind of programming instead of certain languages and to be able to choose the correct language for each task.
Sure. Do you think an algorithm expressed in Prolog is the same as the algorithm expressed in C? If I'm not mistaken, Prolog uses recursion and C uses looping.
Also, it is more important to design programs that actually coding them.
Granted. Good languages let you do both at the same time:)
Are you saying that Aqua actually does "anti-aliasing, sub-pixel text positioning, scaling for a screen with a different size/resolution" or that you think it might?
Also, typically floating point operations are much slower than equivalent integer operations. If you need to divide integers, create a rational type. (apologies, my C is rusty)
struct rational {
int num;
int denom;
}
From there it should be simple to build arithmetic operations for this rational type. Of course, this isn't going to help if you want the square root of a number but you can always build a polynomial type:)
Remember that Quartz is used for handling on screen drawing, but also printing -- current printers can have 24 times more resolution than your screen (2400 DPI vs 100)- so if you use the discrete grid of your screen to describe stuff for your printer, you can only adress directly one pixel out of 576.
I certainly hope that Mac OS X uses some sort of vector format for printing rather than printing from the screen (a raster display):)
Accessibility: Choice is not good. You have an obligation to the people you serve.
Flash is a Tool: Right. We should give developers a shorter rope to hang themselves with, IMO.
Flash is dynamic: I like what you are saying but I think we need another solution besides Flash for this. Whats wrong with thin clients again?
In addition flash can read XML allowing for a non-database dynamic solution that makes use of an open standard. The fact that information can be dynamically loaded (from XML or a database) means that you can set up the plain HTML version and the flash version to make use of the SAME CONTENT!!! Using XML and XSLT and FLASH, it is possible to do a flash version, html version, phone version, low bandwidth sucky browser version, all drawing from the same content.
The hacker's trap is a box that will not open. What you're saying can probably be done easier without XML but is tricky and a limitation anyway.
Flash is not HTML: All we need is a safe standard crossplatform way of downloading applications and running them on the client machine. A Scheme interpreter would be great for this but I am sure there are other ways. The web should be for browsing information, IMO.
True computer scientists have no trouble learning most new languages because the underlying fundamentals are the same. An algorithm is an algorithm is an algorithm, be it in C#, VB, Java or Perl.
You are mistaken because these language which you know about are mostly the same. Most of them are structure programming languages and all of them are imperative. That is a specific way of programming. In all of them, you give the computer a list of commands to follow.
The other type of programming is called applicative programming and rather than a list of commands the computer computes based upon a series of dependencies. For the most part, the order you place your code in is not important. There is actually a lot more to this but it is definitely an error to say that all programming language fundamentals are basically the same. This is not true at all.
Java has a relatively simple syntax compared to C or C++, is comprehensive in its libraries, is object-oriented, and runs on almost every operating environment a student might have. It is the perfect programming language for quite a bit of the foundational computer science courses.
Actually, Java has the syntax of C and C++. I see no difference.
If you want to see the perfect language for teaching CS, see Lisp or Scheme. Java has many pitfalls of its own*.
Secretaries, it seems to me, don't type in equations often or at all. If they did, I am pretty sure they would prefer using LaTeX or Lout as opposed to MS Word. Using the mouse to type is a horrible thing.
LaTeX and TeX are far more powerful than anything Microsoft has to offer. This isn't a statement about Free Software or about GNU/Linux but is rather a statement about Donald Knuth and Computer Science.
TeX has no bugs. If you find one, you're a rich man. Say the same for Word. I dare you.
LaTeX is actually easy to use at the expense of a monstrous learning curve. I suppose a cost-benefit analysis would have your secretaries choosing a regular word processor.
Hey now...that post was hilarious. Comparing Microsoft to the Ferengi is definitely an interesting assessment if not accurate.
Anyway...have fun with your social life as if most of us really care if he has a social life or not, or if you do. I think there was a battle of the geeks and I am pretty sure the geeks won. Social lives are only a conveniance:)
As I said before. I'm not saying some people can't program, but that some find it alot harder. I'm sure you know all about the whole right/left brain thing and how it affects the way people think and what skills they are good at etc. Go to google and do some research if you don't know, or are unconvinced.
I've heard about it in passing. But hopefully you'll see this in another light in this message.
What if you don't call it programming? Then it gets called something else. It still dosen't change the fact that it's programming. People aren't suddenly going to understand it better just because the name has been hidden. That's silly. But you already knew that.
Sure. But I am still concerned that you don't understand what programming is in the generic sense I am trying to convey. Its a notation for expressing computation. Everyone computes therefore everyone can program. Its really as simple as that.
Maybe I should have been more clearer. When I meant to say is that some people aren't as good at arithitic, calculations, logic, staistics, numbers etc (all left brain oriented activities). All these things are needed for programming.
First of all, not all them things are needed for programming. Here is something that I suspect may trip you up. What you say is true--people are better at different things. Math is difficult for some people, I know this. I don't mean to say that programming is working with math because that isn't at all true. There are more computations that don't deal with math than that deal with math. However, just because you find a certain computation difficult doesn't mean it isn't useful for you. And if you do make your way through a difficult computation wouldn't you like to store this computation into a computer program so that you can have the computer do every succeeding computation for you?
The your arguments is simple. If you don't know how to compute something, you can't program it. If you don't know calculas you can't create a program that does calculas. However, if you do know calculas it would be useful to put some of the load onto the computer.
Now that I think about it, you are right in one fashion. Programming requires you to be able to express a computation. If you get a result, you have to be able to say to the computer or to other people how you got that particular result. This is a skill that increases over time but is helped by the ability to think in an organized fashion. This could be said to be a left-brain function. But I feel that most people have mastered this function long ago.
What kind of computation doesn't require math? By math, I am assuming you mean high level math. I doubt that people without learning impediments would have trouble with basic arithmetic. (I hope you don't consider this an elitist attitude, I don't expect blind men to see either) Sorting and searching are obvious examples but most people don't actually need to program this. How about doing your taxes? If you know how to do your taxes then you know how to write a program for doing that. Certainly there are software packages that do your taxes for you and I would recommend one of these. But my whole point is for the computer to perform arbitrary computations for you. For you to have the power of the machine and not having to have other developers to bring this power to you. It really is computing power at your fingertips.
It seems that we get lots of volunteer sites on the internet and it seems the cost hasn't ripped a hole in their pockets. Think of all the FTP sites...when one gets flooded with requests you to a mirror with faster access. Whats wrong with a mirroring system for slashdot?
If someone would set up a system where they mirror slashdot and half the slashdotters go there instead of the original, it makes sense to me that both sites would require half the bandwidth. What if their were 3 mirrors, 4 mirrors, n mirrors of slashdot? Do you think then that running a popular site would cost so much?
The difference is that no one would get paid. It would actually be a volunteer activity. But the problem is with the internet itself. We've learned that it would be so much better if the internet could provide resources based upon need. If a site gets a heavy load then it should be given a majority of the resources. I think the FreeNet Project is experimenting with this sort of thing.
As for myself, I'm not gonna pay money to read other people's comments. We have newsgroups for that, we have IRC for that.
In my opinion, the Internet economy demands that we spread our communities into more diverse locations rather than suck everyone into a single web site. The later is the AOL-ization of the web. Everyone using one provider is gonna cost money. But I think we got to spread out. The internet is too large a place for just one web site.
I think you need to do your research. I'm sure you've heard of this thing called genetics? And how if affects how people grow?
I'm sorry but the burden of proof is all yours. I would like some pointers on how people are genetically unable to program.
You say
I'm not saying that people can't learn programming.
but rather matter-of-factly said earlier
There is no reason why people should need to learn programming. And just because someone can't program. It dosn't mean that they are: a) dumb. Or b) intelligent but affraid/can't be bother to learn programming.
Emphasis is mine.
I don't mean to quibble on details but it would be nice if you were consistant. I am actually replying to your posts. I try to respond with thought and am careful not to make any hasty assumptions.
I'm not saying that people can't learn programming. But that it is an awful lot harder for some people than it is for others. So you can't expect everyone to 'get it'. I know people that are quite computer literate, and that benifits them also in what they do. But even start to mention anything concepts like programming, and it just goes straight over their head.
What if you don't call it programming? In the Gimp it is called Script-Fu. I think Photoshop has an equivalent. Emacs uses an extension language. AutoCAD is a leading engineering package and has a built in extension language as well. Apple computers have AppleScript (which reads quite close to english, as I have seen it). Pretty much all operating systems have some sort of a scriptable shell. Bash simply has you type in the commands as you would type them in the command shell with a few simple programming constructs such as if...then conditionals and variables. In Microsoft Word, when you write a macro Word actually writes a VB script that performs the macro. This is transparent to the user but you can modify the macro script if you wish (my knowledge of this may be inaccurate...I don't use Word often).
What you find is that user applications become more and more powerful and these applications begin to require extensibility at the programming level. This is not new and has been happening for some time. But instead of what we would call traditional programmers to build these systems for a generic set of tasks there will, as I see it, be nontraditional user-programmers extending existing systems for very specific tasks. I truly believe this is part of computer literacy. And you know, I don't think this will look like the kind programming you and I know. It will look like something else that your friends can take to that while some of it will go over their heads, some of it will stick, and they will be the better for it.
I'm sorry if you are offended by my post. I swear it is of the best intentions.
There is no reason why people should need to learn programming. And just because someone can't program. It dosn't mean that they are: a) dumb. Or b) intelligent but affraid/can't be bother to learn programming.
There is no reason why people need to use computers at all. But your proficiency with the computer often makes life easier with using the system. Hence why I think simple programming is a part of being literate with a computer. I used the word "idiot" with the assumption that anyone reading my post would first read the post I was replying to, who declaired himself an idiot with certain things. I could have tackled with this point (in fact I did, implicitly) but didn't really care to digress that much.
There is no one who can't program. Again, I mean a program in an abstract sense which means a notation for expressing computation. Lather, rinse, repeat. Add all the numbers and then divide by the number of numbers to get an arithmetic mean. If you mean more than one blocks, add an 's' to the end of the word "block", else omit the 's'.
You give less credit to your brain than it deserves. Of course, programming is a skill that you gain proficiency as you use it. If you don't use it you won't become proficient in it. The likely case is that you never need it. Which is fine. I am more interested in the case when either you do need it or find it useful and you don't use it. Why would this be? Because they are afraid of programming or because they blame their brain was born wrong.
"And yes, money is needed to make more software."
Probably an overgeneral statement meant to prevent any dispute yet lead to the wrong conclusion.
Software can be (and often the best software is!) written without paying the programmers. Of course, you need money to feed the programmers and to give them a place to live and to give them more hardware. But then again, you need money to breathe as well so that really isn't a point at all.
Well...the wording is heavily biased to begin with. If you had a choice between
You'd probably choose the first one. Your example is just an extrapolation of 1 above.
The reason 2 couldn't exist is because it is too simple to do anything complex. This is not really in regards to OS X but generally.
With OS X, complex things can be done but only if you read the directions, understand the concepts, and are willing to fix it if it screws up.
Simple, therefore good is not often true.
How about this one. Lets say you want to simulate the orbits of the planets, satellites (both artificial and natrual), and minor planets of the solar system. Are you better off with
With a moments thought, 2 can't be right. Use a simple system only for simple things.
Then where have all the good programmers gone? Or have they all moved over to Lisp?
Clever, aren't you.
Twas a joke. Are you not entertained?
Meant no offenses. And trolling is something completely different :)
(taken out of context for effect)
Wouldn't your mom rather have a nice bubblegum machine instead?
Ask a BeOS user.
Please Complete These Steps
There you go. Feel better? Not my fault if you find you are no longer motivated to become a hacker.
You got me. I've been posting a number of comments recently and of all them, the silliest (stupidest?) one get moderated up.
Sigh.
Command line mode? LOL. What has happened to our beloved slashdot? ;)
But I am still trying to come up with Be users and advocates I know who I can laugh at.
Remember when Be was going take over the world yet us "free software zealots" who wanted the source code kept saying "but...what if Be goes under or becomes some kind of tyrant?"
Hopefully they learned that freedom means giving control of the software as well as its power to its users. Power contained in the hands of the few is little power at all.
Sure. Do you think an algorithm expressed in Prolog is the same as the algorithm expressed in C? If I'm not mistaken, Prolog uses recursion and C uses looping.
Granted. Good languages let you do both at the same time :)
Are you saying that Aqua actually does "anti-aliasing, sub-pixel text positioning, scaling for a screen with a different size/resolution" or that you think it might?
Also, typically floating point operations are much slower than equivalent integer operations. If you need to divide integers, create a rational type. (apologies, my C is rusty)
From there it should be simple to build arithmetic operations for this rational type. Of course, this isn't going to help if you want the square root of a number but you can always build a polynomial type :)
I certainly hope that Mac OS X uses some sort of vector format for printing rather than printing from the screen (a raster display) :)
You are mistaken because these language which you know about are mostly the same. Most of them are structure programming languages and all of them are imperative. That is a specific way of programming. In all of them, you give the computer a list of commands to follow.
The other type of programming is called applicative programming and rather than a list of commands the computer computes based upon a series of dependencies. For the most part, the order you place your code in is not important. There is actually a lot more to this but it is definitely an error to say that all programming language fundamentals are basically the same. This is not true at all.
What did you expect? Be glad you're not a sandwhich engineer ;)
Actually, Java has the syntax of C and C++. I see no difference.
If you want to see the perfect language for teaching CS, see Lisp or Scheme. Java has many pitfalls of its own*.
* Footnote: For a short review of Java see http://tunes.org/Review/Languages.html#Java.
Several points.
Does or does not Microsoft have a monopoly?
If they do have a monopoly then there are no viable alternatives to Microsoft software.
If there are viable alternatives, Microsoft does not have a monopoly.
I am, however, happily using the GNU/Linux OS and have decided that there is no monopoly.
Hey now...that post was hilarious. Comparing Microsoft to the Ferengi is definitely an interesting assessment if not accurate.
:)
Anyway...have fun with your social life as if most of us really care if he has a social life or not, or if you do. I think there was a battle of the geeks and I am pretty sure the geeks won. Social lives are only a conveniance
The Free Software Foundation did send in a comment. Look on the gnu site for this...it should be in the "Whats New" page.
I've heard about it in passing. But hopefully you'll see this in another light in this message.
Sure. But I am still concerned that you don't understand what programming is in the generic sense I am trying to convey. Its a notation for expressing computation. Everyone computes therefore everyone can program. Its really as simple as that.
First of all, not all them things are needed for programming. Here is something that I suspect may trip you up. What you say is true--people are better at different things. Math is difficult for some people, I know this. I don't mean to say that programming is working with math because that isn't at all true. There are more computations that don't deal with math than that deal with math. However, just because you find a certain computation difficult doesn't mean it isn't useful for you. And if you do make your way through a difficult computation wouldn't you like to store this computation into a computer program so that you can have the computer do every succeeding computation for you?
The your arguments is simple. If you don't know how to compute something, you can't program it. If you don't know calculas you can't create a program that does calculas. However, if you do know calculas it would be useful to put some of the load onto the computer.
Now that I think about it, you are right in one fashion. Programming requires you to be able to express a computation. If you get a result, you have to be able to say to the computer or to other people how you got that particular result. This is a skill that increases over time but is helped by the ability to think in an organized fashion. This could be said to be a left-brain function. But I feel that most people have mastered this function long ago.
What kind of computation doesn't require math? By math, I am assuming you mean high level math. I doubt that people without learning impediments would have trouble with basic arithmetic. (I hope you don't consider this an elitist attitude, I don't expect blind men to see either) Sorting and searching are obvious examples but most people don't actually need to program this. How about doing your taxes? If you know how to do your taxes then you know how to write a program for doing that. Certainly there are software packages that do your taxes for you and I would recommend one of these. But my whole point is for the computer to perform arbitrary computations for you. For you to have the power of the machine and not having to have other developers to bring this power to you. It really is computing power at your fingertips.
It seems that we get lots of volunteer sites on the internet and it seems the cost hasn't ripped a hole in their pockets. Think of all the FTP sites...when one gets flooded with requests you to a mirror with faster access. Whats wrong with a mirroring system for slashdot?
If someone would set up a system where they mirror slashdot and half the slashdotters go there instead of the original, it makes sense to me that both sites would require half the bandwidth. What if their were 3 mirrors, 4 mirrors, n mirrors of slashdot? Do you think then that running a popular site would cost so much?
The difference is that no one would get paid. It would actually be a volunteer activity. But the problem is with the internet itself. We've learned that it would be so much better if the internet could provide resources based upon need. If a site gets a heavy load then it should be given a majority of the resources. I think the FreeNet Project is experimenting with this sort of thing.
As for myself, I'm not gonna pay money to read other people's comments. We have newsgroups for that, we have IRC for that.
In my opinion, the Internet economy demands that we spread our communities into more diverse locations rather than suck everyone into a single web site. The later is the AOL-ization of the web. Everyone using one provider is gonna cost money. But I think we got to spread out. The internet is too large a place for just one web site.
I'm sorry but the burden of proof is all yours. I would like some pointers on how people are genetically unable to program.
You say
but rather matter-of-factly said earlier
I don't mean to quibble on details but it would be nice if you were consistant. I am actually replying to your posts. I try to respond with thought and am careful not to make any hasty assumptions.
What if you don't call it programming? In the Gimp it is called Script-Fu. I think Photoshop has an equivalent. Emacs uses an extension language. AutoCAD is a leading engineering package and has a built in extension language as well. Apple computers have AppleScript (which reads quite close to english, as I have seen it). Pretty much all operating systems have some sort of a scriptable shell. Bash simply has you type in the commands as you would type them in the command shell with a few simple programming constructs such as if...then conditionals and variables. In Microsoft Word, when you write a macro Word actually writes a VB script that performs the macro. This is transparent to the user but you can modify the macro script if you wish (my knowledge of this may be inaccurate...I don't use Word often).
What you find is that user applications become more and more powerful and these applications begin to require extensibility at the programming level. This is not new and has been happening for some time. But instead of what we would call traditional programmers to build these systems for a generic set of tasks there will, as I see it, be nontraditional user-programmers extending existing systems for very specific tasks. I truly believe this is part of computer literacy. And you know, I don't think this will look like the kind programming you and I know. It will look like something else that your friends can take to that while some of it will go over their heads, some of it will stick, and they will be the better for it.
I'm sorry if you are offended by my post. I swear it is of the best intentions.
There is no reason why people need to use computers at all. But your proficiency with the computer often makes life easier with using the system. Hence why I think simple programming is a part of being literate with a computer. I used the word "idiot" with the assumption that anyone reading my post would first read the post I was replying to, who declaired himself an idiot with certain things. I could have tackled with this point (in fact I did, implicitly) but didn't really care to digress that much.
There is no one who can't program. Again, I mean a program in an abstract sense which means a notation for expressing computation. Lather, rinse, repeat. Add all the numbers and then divide by the number of numbers to get an arithmetic mean. If you mean more than one blocks, add an 's' to the end of the word "block", else omit the 's'.
You give less credit to your brain than it deserves. Of course, programming is a skill that you gain proficiency as you use it. If you don't use it you won't become proficient in it. The likely case is that you never need it. Which is fine. I am more interested in the case when either you do need it or find it useful and you don't use it. Why would this be? Because they are afraid of programming or because they blame their brain was born wrong.
Anyway, I got to go.