以文本方式查看主题 - Fortran中文网 (http://www.fortran.cn/bbs/index.asp) -- Fortran语言开发经验交流 (http://www.fortran.cn/bbs/list.asp?boardid=3) ---- 1真正的程序员使用fortran (http://www.fortran.cn/bbs/dispbbs.asp?boardid=3&id=226) |
-- 作者:齐东野人 -- 发布时间:2006/6/11 15:25:04 -- 1真正的程序员使用fortran 最早于1983年在UUCP-net(互联网的前身)上发表的一个编程笑话 Real Programmers Don\'t Use PASCAL Ed Post 真正的程序员不使用PASCAL Ed 发布(齐东野人翻译) Letter to the editor of Datamation, volume 29 number 7, pp. 263-265, July 1983 "Real Programmers Don\'t Use PASCAL" 真正的程序员不使用PASCAL ----------------------------------- Back in the good old days -- the "Golden Era" of computers, it was easy to separate the men from the boys (sometimes called "Real Men" and "Quiche Eaters" in the literature). During this period, the Real Men were the ones that understood computer programming, and the Quiche Eaters were the ones that didn\'t. A real computer programmer said things like "DO 10 I=1,10" and "ABEND" (they actually talked in capital letters, you understand), and the rest of the world said things like "computers are too complicated for me" and "I can\'t relate to computers -- they\'re so impersonal". (A previous work [1] points out that Real Men don\'t "relate" to anything, and aren\'t afraid of being impersonal.) 在那些以前的好日子-计算机的黄金时代-是很容易区别男人跟小男孩的(文学作品中有时候也称为真正的男人和吃乳蛋饼的)。在那个时候,真正的程序员是那些懂计算机编程的人,吃乳蛋饼的并不懂计算机程序。真正的程序喜欢说"DO 10 I=1,10"和"ABEND"(他们喜欢用大写字母,你明白的),那些吃乳蛋饼的说:“计算机对我来说太难了,我不用计算机,计算机太不人性了。” (早期作品[1]中指出真正的男人不害怕任何不人性。) But, as usual, times change. We are faced today with a world in which little old ladies can get computers in their microwave ovens, 12-year-old kids can blow Real Men out of the water playing Asteroids and Pac-Man, and anyone can buy and even understand their very own Personal Computer. The Real Programmer is in danger of becoming extinct, of being replaced by high-school students with TRASH-80\'s.
There is a clear need to point out the differences between the typical high-school junior Pac-Man player and a Real Programmer. If this difference is made clear, it will give these kids something to aspire to -- a role model, a Father Figure. It will also help explain to the employers of Real Programmers why it would be a mistake to replace the Real Programmers on their staff with 12-year-old Pac-Man players (at a considerable salary savings).
LANGUAGES 编程语言 The easiest way to tell a Real Programmer from the crowd is by the programming language he (or she) uses. Real Programmers use FORTRAN. Quiche Eaters use PASCAL. Nicklaus Wirth, the designer of PASCAL, gave a talk once at which he was asked "How do you pronounce your name?". He replied, "You can either call me by name, pronouncing it \'Veert\', or call me by value, \'Worth\'." One can tell immediately from this comment that Nicklaus Wirth is a Quiche Eater. The only parameter passing mechanism endorsed by Real Programmers is call-by-value-return, as implemented in the IBM\\370 FORTRAN-G and H compilers. Real programmers don\'t need all these abstract concepts to get their jobs done -- they are perfectly happy with a keypunch, a FORTRAN-IV compiler, and a beer. 最简单的从人群中认出真正的程序员的方法是他(她)使用的编程语言。真正的程序员使用Fortran,吃乳蛋饼的使用PASCAL。Nicklaus Wirth,设计PASCAL的人,当有人问你怎么叫自己的名字是,回答说:“你可以叫我的名字,Veert,也可以叫我的值Worth”。你可以马上得出结论Nicklaus Wirth是个吃乳蛋饼的家伙。真正的程序员认可的参数传递机制是call-by-value-return,就象BM\\370 FORTRAN-G and H 编译器实现的那样,真正的程序员享受着键盘穿孔机,FORTRAN-IV编译器,和一杯啤酒。 * Real Programmers do List Processing in FORTRAN. 真正的程序员用FORTRAN处理列表。 * Real Programmers do String Manipulation in FORTRAN. 真正的程序员用FORTRAN进行字符操作。 * Real Programmers do Accounting (if they do it at all) in FORTRAN. 真正的程序员用FORTRAN做会计工作,如果他们做这个工作。 * Real Programmers do Artificial Intelligence programs in FORTRAN. 真正的程序员用FORTRAN做人工智能程序。 If you can\'t do it in FORTRAN, do it in assembly language. If you can\'t do it in assembly language, it isn\'t worth doing. 如果你不能用FORTRAN做,那就用汇编语言做。如果你不能用汇编语言做,那他就不值得做。 |
-- 作者:齐东野人 -- 发布时间:2006/6/11 15:27:44 -- STRUCTURED PROGRAMMING结构化编程 The academics in computer science have gotten into the "structured programming" rut over the past several years. They claimthat programs are more easily understood if the programmer uses somespecial language constructs and techniques. They don\'t all agree onexactly which constructs, of course, and the examples they use to showtheir particular point of view invariably fit on a single page of someobscure journal or another -- clearly not enough of an example toconvince anyone. When I got out of school, I thought I was the bestprogrammer in the world. I could write an unbeatable tic-tac-toeprogram, use five different computer languages, and create 1000-lineprograms that WORKED. (Really!) Then I got out into the Real World.My first task in the Real World was to read and understand a 200,000-line FORTRAN program, then speed it up by a factor of two. AnyReal Programmer will tell you that all the Structured Coding in theworld won\'t help you solve a problem like that -- it takes actualtalent. 当我走出校门时,我自认为是世界上最好的程序员。我会编辑令人容忍的井字游戏程序,也能用 5种不同的计算机语言编写一个 1000行的WORKED程序。然后我进了 Real World 公司。我在 Real World 公司的第一个任务是阅读和理解一个 200000行的 Fortran程序,然后我使其运行速度提高了2倍。任何真正的程序员将会告诉你所有结构化编码将无助于你解决问题,需要的是天赋。 Some quick observations on Real Programmers and StructuredProgramming: * Real Programmers aren\'t afraid to use GOTO\'s. 真正的程序员不害怕GOTO * Real Programmers can write five-page-long DO loops without getting confused. 真正的程序员可以写5页的DO 循环页不混乱 * Real Programmers like Arithmetic IF statements -- they make the code more interesting. 真正的程序员喜欢算数的IF语句,这使代码更有趣。 * Real Programmers write self-modifying code, especially if they can save 20 nanoseconds in the middle of a tight loop. 真正的程序员编写自己修正的代码,特别是如果他们能它们能在一个紧凑的循环中节省20纳秒。 * Real Programmers don\'t need comments -- the code is obvious. 真正的程序员不需要注释,代码足够明显了。 * Since FORTRAN doesn\'t have a structured IF, REPEAT ... UNTIL, or CASE statement, Real Programmers don\'t have to worry about not using them. Besides, they can to simulated when necessary using assigned GOTO\'s. Data Structures have also gotten a lot of press lately.Abstract Data Types, Structures, Pointers, Lists, and Strings have become popular in certain circles. Wirth (the above-mentioned Quiche Eater) actually wrote an entire book [2] contending that you could write a program based on data structures, instead of the other way around. As all Real Programmers know, the on! useful. data structure is the Array. Strings, lists, structures, sets -- these are all special cases of arrays and can be treated that way just as easily without messing up your programming language with all sorts of complications. The worst thing about fancy data types is that you have to declare them, and Real Programming Languages, as we all know, have implicit typing based on the first letter of the (six character) variable name.真正的程序员使用数组一种数据结构,其他的数据结构都是数组的变体而已。 |
-- 作者:齐东野人 -- 发布时间:2006/6/11 15:28:14 -- OPERATING SYSTEMS操作系统 What kind of operating system is used by a Real Programmer?CP/M? God forbid -- CP/M, after all, is basically a toy operatingsystem. Even little old ladies and grade school students can understand and use CP/M. Unix is a lot more complicated of course -- the typical Unixhacker never can remember what the PRINT command is called this week --but when it gets right down to it, Unix is a glorified video came.People don\'t do Serious Work on Unix systems: they send jokes aroundthe world on UUCP-net and write adventure games and research papers. No, your Real Programmer uses 0S\\370. A good programmer canfind and understand the description of the IJK305I error he just got inhis JCL manual. A great programmer can write JCL without referring to the manual at all. A truly outstanding programmer can find hugs buried in a 6 megabyte core dump without using a hex calculator. (I have actually seen this done.) OS is a truly remarkable operating system. It\'s possible todestroy days of work with a single misplaced space, so alertness in theprogramming staff is encouraged. The best way to approach the system is through a keypunch. Some people claim there is a Tire Sharingsystem that runs on 0S\\370, but after careful study I have come to theconclusion that they were mistaken.真正的程序员使用UNIX |
-- 作者:齐东野人 -- 发布时间:2006/6/11 15:30:37 -- 真正程序员的工作 Where does the typical Real Programmer work? What kind ofprograms are worthy of the efforts of so talented an individual? Youcan be sure that no Real Programmer would be caught dead writingaccounts-receivable programs in COBOL, or sorting mailing lists forPeople magazine. A Real Programmer wants tasks of earth-shakingimportance (literally!). * Real Programmers work for Los Alamos National Laboratory, writing atomic bomb simulations to run on Cray I supercomputers. 真正的程序员给Los Alamos的国家实验室工作,写能在Cray I超级计算机上运行的核弹模拟程序。 * Real Programmers work for the National Security Agency, decoding Russian transmissions. 真正的程序员给国土安全局工作,解码俄国毛子的通讯。 * It was largely due to the efforts of thousands of Real Programmers working for NASA that our boys got to the moon and back before the Russkies. 因为NASA几千名真正的程序员的努力,我们的孩子在俄国毛子之前到了月球并且回来了。 * Real Programmers are at work for Boeing designing the operating systems for cruise missiles. 真正的程序员给波音公司设置循环导弹的控制系统。 Some of the most awesome Real Programmers of all work at the Jet Propulsion Laboratory in California. Many of them know the entireoperating system of the Pioneer and Voyager spacecraft by heart. Witha combination of large ground-based FORTRAN programs and small spacecraft-based assembly language programs, they are able to do incredible feats of navigation and improvisation—hitting ten-kilometer wide windows at Saturn after six years in space,Repairing or bypassing damaged sensor platforms, radios, and batteries.Allegedly, one Real Programmer managed to tuck a attern-matchingprogram into a few hundred bytes of unused memory in a Voyager spacecraft that searched for, located, and photographed a new moon of Jupiter. 许多值得尊敬的真正的程序员给加州喷气动力实验室工作。他们许多能记住先驱号和航行号宇宙飞船的整个操作系统。使用了大量的地名上FORTRAN程序和小型宇宙飞船上的汇编程序,他们创造了不可思议的壮举,6年之后,上万公里以外的土星运载火箭的上,修复了替换了损坏的传感器平台,无线电设备电池。据说一个真正的程序员,把一个类型匹配器程序塞入了航行号宇宙飞船没有使用的几百个比特的内存中,寻找,定位,并且拍摄了很多木星的卫星 |
-- 作者:齐东野人 -- 发布时间:2006/6/11 15:32:00 -- .................In short, a language designed to cripple the creativity of the typicalReal Programmer. Fortunately, the language adopted by DoD has enoughinteresting features to make it approachable -- it\'s incredibly complex, includes methods for messing with the operating system and rearranging memory, and Edsgar Dijkstra doesn\'t like it [6].(Dijkstra, as I\'m sure you know, was the author of "GoTos Considered Harmful" -- a landmark work in programming methodology, applauded by PASCAL programmers and Quiche Eaters alike.) Besides, the determined Real Programmer can write FORTRAN programs in any language.另外,一个真正的程序员可以用任何语言书写FORTRAN代码。 The Real Programmer might compromise his principles and work onsomething slightly more trivial than the destruction of life as we knowit, providing there\'s enough money in it. There are several RealProgrammers building video games at Atari, for example. (But not playing them -- a Real Programmer knows how to beat the machine every time: no challenge in that.) Everyone working at LucasFilm is a Real Programmer. (It would be crazy to turn down the money of fifty million Star Trek fans.) The proportion of Real Programmers in Computer Graphics is somewhat lower than the norm, mostly because nobody has found a use for computer graphics yet. On the other hand, all computer graphics is done in FORTRAN, so there are a fair number of people doing graphics in order to avoid having to write COBOL programs.另外一个方面,所有的计算机图形都是由FORTRAN实现的............................ |
-- 作者:齐东野人 -- 发布时间:2006/6/11 15:32:31 -- Even Unix might not be as bad on Real Programmers as it oncewas. The latest release of Unix has the potential of an operatingsystem worthy of any Real Programmer -- two different and subtly incompatible user interfaces, an arcane and complicated teletype driver, virtual memory. If you ignore the fact that it\'s "structured", even \'C\' programming can be appreciated hey the Real Programmer: after all, there\'s no type checking, variable names are seven, (ten- eight-) characters long, and the added bonus of the Pointer data type is thrown in -- like having the best parts of FORTRAN and assembly language in one place. (Not to mention some of the more creative uses for #define.)真正的程序员会欣赏C语言,他是FORTRAN和汇编语言的结合。 No, the future isn\'t all that bad. Why, in the last few years,the popular press has even commented or the bright new crop of computernerds and hackers ([7] and [8]) leaving places like Stanford and M.I.T.for the Real World. From all evidence, the spirit of Real Programminglives on in these young men and women. As long as there are ill-defined goals, bizarre bugs, and unrealistic schedules, there will be Real Programmers willing to jump in and Solve The Problem, saving the documentation for later. Long live FORTRAN! 在过去的几年中,很多书呆子离开了斯坦福和MIT到了真实的世界,真正程序员的精神在这些年轻人中间存在。虽然有错误的目的,炫目的bug,不现世的机会表,这些真正的程序员会出来解决这些问题。FORTRAN万岁! |
-- 作者:齐东野人 -- 发布时间:2006/6/11 15:33:01 -- ACKNOWLEDGEMENT--------------- I would like to thank Jan E., Dave S., Rich G., Rich E., fortheir help in characterizing the Real Programmer, Heather B. for theillustration, Kathy E. for putting up with it, and atd!avsdS:mark forthe initial inspiration. REFERENCES---------- [1] Feirstein, B., "Real Men don\'t Eat Quiche", New York, Pocket Books, 1982. 真正的男人不吃乳蛋饼 [2] Wirth, N., "Algorithms + Data Structures = Programs", Prentice Hall, 1976. 算法+数据结构=程序 [3] Ilson, R., "Recent Research in Text Processing", IEEE Trans. Prof. Commun., Vol. PC-23, No. 4, Dec. 4, 1980. 文字处理器的研究 [4] Finseth, C., "Theory and Practice of Text Editors -- or -- a Cookbook for an EMACS", B.S. Thesis, MIT/LCS/TM-165, Massachusetts Institute of Technology, May 1980. 文字处理器的理论和实践-或者-EMACS手册 [5] Weinberg, G., "The Psychology of Computer Programming", New York, Van Nostrand Reinhold, 1971, p. 110. 计算机编程心理学 [6] Dijkstra, E., "On the GREEN language submitted to the DoD", Sigplan notices, Vol. 3 No. 10, Oct 1978. 美国国防部使用的GREEN语言 [7] Rose, Frank, "Joy of Hacking", Science 82, Vol. 3 No. 9, Nov 82, pp. 58-66. 黑客的乐趣 [8] "The Hacker Papers", Psychology Today, August 1980. 黑客报告 [9] sdcarl!lin, "Real Programmers", UUCP-net, Thu Oct 21 16:55:16 1982 真正的程序员 The version at http://www.nikhef.nl/user/e07/misc/programmer.html includes a glossary. |
-- 作者:uckysky -- 发布时间:2006/9/22 10:56:51 -- 现在fortran可以做什么? 我学习fortran 是因为很多科学计算中需要使用fortran,fortran 除了在科学计算中的应用还有什么应用? |
-- 作者:vqimwr -- 发布时间:2006/10/8 13:41:12 -- 此帖顶之。搞笑,呵呵 [此贴子已经被作者于2006-10-8 13:52:47编辑过]
|
-- 作者:goots -- 发布时间:2006/10/16 10:39:49 -- ForTran让我们不需要数学头脑! |