Unix does not impose any standards on the system, so it can get fragmented quickly.
Unix does not force a specific file heiarchy, so not only do diffrent systems have diffrent filesystems, but one system might have diffrent programs installed with diffrent file structures.
It does not impose a certain file layout either, and that makes a big mess in/etc and the home directory for configuration files
And it does not force certain conventions to provide arguments with the programs and you have to use -abc, -a -b -c, or some other variant so that diffrent programs use different ways.
It does not force you to program using the ideas of the unix philosophy. (Using small tools connected with pipes, rather than big application programs. That is not all of it, but it is the biggest part).
This "weakness", for lack of a better word is a main component of unix and shows itself all over it, even in Unix's main programming language, C.
The power this gives you is great, but when you have a large system with parts maintained by people around the globe, which is Linux, it gets pretty annoying. Standards would have been nice in the beginning, but Standards are recomendations free to be misused, not used, etc. And, even then they fix small parts of the system. one standard for the file-system another for window managers... that just shows the disconnectedness. And some standards would just be horrible if they were set- (XML for the configuration files).
This is not as much as a problem in the big commercial systems where work has been done to make the system seem whole, (even though it is not so great there, either), it is a big problem in linux. Linux is a system with many parts written by many people, but (I) would like it better if each of the parts worked in a consistent manner and were connected
The e was also removed from the creat() system call.
" Ken Thompson was once asked what he would do differently if he were redesigning the UNIX system. His reply: "I'd spell creat with an e." " - The unix Programming Environment Page 204
A few notes:
1. ls is much more complex than you say. When there are more options than enough so that someone can remember it, it is complex enough.
2. As far as I know, there were no 'apps' like the ones of your definition on the first unix systems (first unix system can be defined as one where a paper teletype was used). A design for a music player would be musicplayer/dev/tty. and it would look in the playlist.file for the songs and would print out which one it was currently playing. As for a web browser, it could be an interactive program (NOT AN 'APP' (your definition)), something like this:
---
webbrowser http://slashdot.org
# prints out contents of web pages
# and puts numbers in front of each link, so:
f 2 # f for follow link 2 for the link numbered 2
it would still be small and would use pipes.
---
The apps are exactly what I mean when I said that the rules are not followed
3. Linux is big. There are hundreds of options in the make config process and I think Mozilla suffers worst of all, it is extermely slow and 20MB!!! wow, that is horrible
It would be nice if most of these are true. I am assuming what you is not about the kernel, and most of linux programs do not follow the 'unix philosophy'. I am not writing about the code, I do not look at the code and wouldn't understand it (I do know C and know my way around a linux/unix/bsd/etc system, but I don't have much 'coding' experience' but most of those ruled are not followed in Linux (not kernel- linux programs):
Rule of Modularity: the 'simple parts' are not so simple- take any linux distribution and type 'man ls' and see how long that is, it will work for anything substituted for ls, certainly not simple.
Rule of Composition: Most new linux apps are not desined to be connected (through a pipe) to anything else-- they are either programs written with curses or for X and that means that they are not connectable
Rule of Parsimony: use ls -l/path/to/program of ls -R/path/to/source and check the size column. Or check the man page. Or start the program and look. There are not many small linux programs- especially because of its open-source nature. Linux (kernel) itself is also pretty big,
Sometimes, having computers around can be worse than not having them: For example, at my high school, since the teachers are encouraged to use the computer labs, my Spanish teacher brought us there and we took a vocabulary test in Word. If you have not figured that out yet, that means that we can see a red line the words we spelled wrong (the spanish dictionaries are turned on). If anyone thinks that newer technology is better for this, well, I just don't know what to say
You still have to learn the standard java libraries like you learned the AP code, the only difference is that Sun wrote the code and not the College Board. I spent a while trying to understand arraylists, etc. The Java Class refrence did just had the interfaces and they did not say whether or not.get() is O(1) (implemented as an array) or O(n) (implemented as a linked list). I am not even sure now and I don't care now either.
Even though I am not a big fan of Java, language does matter, not for learning CS, but for taking the test. As our CS teacher at my high school said, we can learn practically everything without a language, and any language can be used, but the people grading the Free-Response section do not know every programming language, and it would take even longer to get the test results.
I thaought the test was going to be much harder than it was, but I knew everything:). I did not have enough time to answer the last 6 multiple choice questions, but finished all of the free response. (This was my first AP, and I am a 9th grader)
-
Unix does not force a specific file heiarchy, so not only do diffrent systems have diffrent filesystems, but one system might have diffrent programs installed with diffrent file structures.
-
It does not impose a certain file layout either, and that makes a big mess in
/etc and the home directory for configuration files
-
And it does not force certain conventions to provide arguments with the programs and you have to use -abc, -a -b -c, or some other variant so that diffrent programs use different ways.
-
It does not force you to program using the ideas of the unix philosophy. (Using small tools connected with pipes, rather than big application programs. That is not all of it, but it is the biggest part).
This "weakness", for lack of a better word is a main component of unix and shows itself all over it, even in Unix's main programming language, C.The power this gives you is great, but when you have a large system with parts maintained by people around the globe, which is Linux, it gets pretty annoying. Standards would have been nice in the beginning, but Standards are recomendations free to be misused, not used, etc. And, even then they fix small parts of the system. one standard for the file-system another for window managers... that just shows the disconnectedness. And some standards would just be horrible if they were set- (XML for the configuration files).
This is not as much as a problem in the big commercial systems where work has been done to make the system seem whole, (even though it is not so great there, either), it is a big problem in linux. Linux is a system with many parts written by many people, but (I) would like it better if each of the parts worked in a consistent manner and were connected
The e was also removed from the creat() system call.
" Ken Thompson was once asked what he would do differently if he were redesigning the UNIX system. His reply: "I'd spell creat with an e." "
- The unix Programming Environment Page 204
A GIM (Google Instant Messenger) session
Chat Session Google Ads
A> Hello. Buy greeting cards!
B> How much of Have us do your
your homework homework for $5!!!
Have you done?
...
A GIM (Google Instant Messenger) session
...
Chat Session Google Ads
A> Hello. Buy greeting cards!
B> How much of Have us do your
your homework homework for $5!!!
Have you done?
A few notes: 1. ls is much more complex than you say. When there are more options than enough so that someone can remember it, it is complex enough. 2. As far as I know, there were no 'apps' like the ones of your definition on the first unix systems (first unix system can be defined as one where a paper teletype was used). A design for a music player would be musicplayer /dev/tty. and it would look in the playlist.file for the songs and would print out which one it was currently playing. As for a web browser, it could be an interactive program (NOT AN 'APP' (your definition)), something like this:
---
webbrowser http://slashdot.org
# prints out contents of web pages
# and puts numbers in front of each link, so:
f 2 # f for follow link 2 for the link numbered 2
it would still be small and would use pipes.
---
The apps are exactly what I mean when I said that the rules are not followed
3. Linux is big. There are hundreds of options in the make config process and I think Mozilla suffers worst of all, it is extermely slow and 20MB!!! wow, that is horrible
It would be nice if most of these are true. I am assuming what you is not about the kernel, and most of linux programs do not follow the 'unix philosophy'. I am not writing about the code, I do not look at the code and wouldn't understand it (I do know C and know my way around a linux/unix/bsd/etc system, but I don't have much 'coding' experience' but most of those ruled are not followed in Linux (not kernel- linux programs):
/path/to/program of ls -R /path/to/source and check the size column. Or check the man page. Or start the program and look. There are not many small linux programs- especially because of its open-source nature. Linux (kernel) itself is also pretty big,
Rule of Modularity: the 'simple parts' are not so simple- take any linux distribution and type 'man ls' and see how long that is, it will work for anything substituted for ls, certainly not simple.
Rule of Composition: Most new linux apps are not desined to be connected (through a pipe) to anything else-- they are either programs written with curses or for X and that means that they are not connectable
Rule of Parsimony: use ls -l
Guess they are pretty close, after all.
Sometimes, having computers around can be worse than not having them: For example, at my high school, since the teachers are encouraged to use the computer labs, my Spanish teacher brought us there and we took a vocabulary test in Word. If you have not figured that out yet, that means that we can see a red line the words we spelled wrong (the spanish dictionaries are turned on). If anyone thinks that newer technology is better for this, well, I just don't know what to say
You still have to learn the standard java libraries like you learned the AP code, the only difference is that Sun wrote the code and not the College Board. I spent a while trying to understand arraylists, etc. The Java Class refrence did just had the interfaces and they did not say whether or not .get() is O(1) (implemented as an array) or O(n) (implemented as a linked list). I am not even sure now and I don't care now either.
Even though I am not a big fan of Java, language does matter, not for learning CS, but for taking the test. As our CS teacher at my high school said, we can learn practically everything without a language, and any language can be used, but the people grading the Free-Response section do not know every programming language, and it would take even longer to get the test results.
I thaought the test was going to be much harder than it was, but I knew everything :). I did not have enough time to answer the last 6 multiple choice questions, but finished all of the free response. (This was my first AP, and I am a 9th grader)