*------------------------------------------- 程序员的进化——从学生到首席执行官
翻译 2002 王咏刚 http://www.contextfree.net/
转译自 Omri's Computer Humor Page
http://www.cs.bgu.ac.il/~omri/Humor/
-------------------------------------------*/
--------------------------------------------------------------------------------
中学阶段
10 PRINT "HELLO WORLD"
20 END
--------------------------------------------------------------------------------
大学一年级 program Hello(input, output)
begin
writeln('Hello World')
end.
--------------------------------------------------------------------------------
大学高年级 (defun hello
(print
(cons 'Hello (list 'World))))
--------------------------------------------------------------------------------
初级程序员 #include <stdio.h>
void main(void)
{
char *message[] = {"Hello ", "World"};
int i;
for(i = 0; i < 2; ++i)
printf("%s", message[i]);
printf("\n");
}
--------------------------------------------------------------------------------
编程老鸟 #include <iostream.h>
#include <string.h>
class string
{
private:
int size;
char *ptr;
public:
string() : size(0), ptr(new char('\0')) {}
string(const string &s) : size(s.size)
{
ptr = new char[size + 1];
strcpy(ptr, s.ptr);
}
~string()
{
delete [] ptr;
}
friend ostream &operator <<(ostream &, const string &);
string &operator=(const char *);
};
ostream &operator<<(ostream &stream, const string &s)
{
return(stream << s.ptr);
}
string &string::operator=(const char *chrs)
{
if (this != &chrs)
{
delete [] ptr;
size = strlen(chrs);
ptr = new char[size + 1];
strcpy(ptr, chrs);
}
return(*this);
}
int main()
{
string str;
str = "Hello World";
cout << str << end return(0);
}
--------------------------------------------------------------------------------
翻译 2002 王咏刚 http://www.contextfree.net/
转译自 Omri's Computer Humor Page
http://www.cs.bgu.ac.il/~omri/Humor/
-------------------------------------------*/
--------------------------------------------------------------------------------
中学阶段
10 PRINT "HELLO WORLD"
20 END
--------------------------------------------------------------------------------
大学一年级 program Hello(input, output)
begin
writeln('Hello World')
end.
--------------------------------------------------------------------------------
大学高年级 (defun hello
(cons 'Hello (list 'World))))
--------------------------------------------------------------------------------
初级程序员 #include <stdio.h>
void main(void)
{
char *message[] = {"Hello ", "World"};
int i;
for(i = 0; i < 2; ++i)
printf("%s", message[i]);
printf("\n");
}
--------------------------------------------------------------------------------
编程老鸟 #include <iostream.h>
#include <string.h>
class string
{
private:
int size;
char *ptr;
public:
string() : size(0), ptr(new char('\0')) {}
string(const string &s) : size(s.size)
{
ptr = new char[size + 1];
strcpy(ptr, s.ptr);
}
~string()
{
delete [] ptr;
}
friend ostream &operator <<(ostream &, const string &);
string &operator=(const char *);
};
ostream &operator<<(ostream &stream, const string &s)
{
return(stream << s.ptr);
}
string &string::operator=(const char *chrs)
{
if (this != &chrs)
{
delete [] ptr;
size = strlen(chrs);
ptr = new char[size + 1];
strcpy(ptr, chrs);
}
return(*this);
}
int main()
{
string str;
str = "Hello World";
cout << str << end return(0);
}
--------------------------------------------------------------------------------
解决方案 »
- 如何禁止Tedit的复制粘贴功能???
- 我是Delphi新手,请教各位大大,一个DBchart控件的问题
- ★★95生日,放分祝★★
- 菜鸟的问题,请问怎样更改RAVE报表的标题?
- 现在还学delphi呀?
- 一个小问题,关于dblookupcombobox的自动显示第一个值的问题
- Variable 'shul_sum' might not have been initialized
- 【请教】 如何操作一个Unicode的文本文件?
- 关于迅雷云加速Delphi版,任务创建成功,但是实际没有启动下载,请各位帮看下
- 如何判断程序是否死机,请各位高手帮忙,会有加分,谢谢!!
- 如何按要求显示DataSource中的数据
- 00 0f 12 06 =987654 请问如何实现算法 ?十六进制到10进制的转化
uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)
]
library LHello
{
// bring in the master library
importlib("actimp.tlb");
importlib("actexp.tlb");
// bring in my interfaces
#include "pshlo.idl"
[
uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)
]
cotype THello
{
interface IHello;
interface IPersistFile;
};
};
[
exe,
uuid(2573F890-CFEE-101A-9A9F-00AA00342820)
]
module CHelloLib
{
// some code related header files
importheader(<windows.h>);
importheader(<ole2.h>);
importheader(<except.hxx>);
importheader("pshlo.h");
importheader("shlo.hxx");
importheader("mycls.hxx");
// needed typelibs
importlib("actimp.tlb");
importlib("actexp.tlb");
importlib("thlo.tlb");
[
uuid(2573F891-CFEE-101A-9A9F-00AA00342820),
aggregatable
]
coclass CHello
{
cotype THello;
};
};
#include "ipfix.hxx"
extern HANDLE hEvent;
class CHello : public CHelloBase
{
public:
IPFIX(CLSID_CHello);
CHello(IUnknown *pUnk);
~CHello();
HRESULT __stdcall PrintSz(LPWSTR pwszString);
private:
static int cObjRef;
};
#include <windows.h>
#include <ole2.h>
#include <stdio.h>
#include <stdlib.h>
#include "thlo.h"
#include "pshlo.h"
#include "shlo.hxx"
#include "mycls.hxx"
int CHello::cObjRef = 0;
CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)
{
cObjRef++;
return;
}
HRESULT __stdcall CHello::PrintSz(LPWSTR pwszString)
{
printf("%ws\n", pwszString);
return(ResultFromScode(S_OK));
}
CHello::~CHello(void)
{
// when the object count goes to zero, stop the server
cObjRef--;
if( cObjRef == 0 )
PulseEvent(hEvent);
return;
}
#include <windows.h>
#include <ole2.h>
#include "pshlo.h"
#include "shlo.hxx"
#include "mycls.hxx"
HANDLE hEvent;
int _cdecl main(
int argc,
char * argv[]
) {
ULONG ulRef;
DWORD dwRegistration;
CHelloCF *pCF = new CHelloCF();
hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
// Initialize the OLE libraries
CoInitializeEx(NULL, COINIT_MULTITHREADED);
CoRegisterClassObject(CLSID_CHello, pCF, CLSCTX_LOCAL_SERVER,
REGCLS_MULTIPLEUSE, &dwRegistration);
// wait on an event to stop
WaitForSingleObject(hEvent, INFINITE);
// revoke and release the class object
CoRevokeClassObject(dwRegistration);
ulRef = pCF->Release();
// Tell OLE we are going away.
CoUninitialize();
return(0);
}
extern CLSID CLSID_CHello;
extern UUID LIBID_CHelloLib;
CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820 */
0x2573F891,
0xCFEE,
0x101A,
{ 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
};
UUID LIBID_CHelloLib = { /* 2573F890-CFEE-101A-9A9F-00AA00342820 */
0x2573F890,
0xCFEE,
0x101A,
{ 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
};
#include <windows.h>
#include <ole2.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include "pshlo.h"
#include "shlo.hxx"
#include "clsid.h"
int _cdecl main(
int argc,
char * argv[]
) {
HRESULT hRslt;
IHello *pHello;
ULONG ulCnt;
IMoniker * pmk;
WCHAR wcsT[_MAX_PATH];
WCHAR wcsPath[2 * _MAX_PATH];
// get object path
wcsPath[0] = '\0';
wcsT[0] = '\0';
if( argc > 1) {
mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);
wcsupr(wcsPath);
}
else {
fprintf(stderr, "Object path must be specified\n");
return(1);
}
// get print string
if(argc > 2)
mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1);
else
wcscpy(wcsT, L"Hello World");
printf("Linking to object %ws\n", wcsPath);
printf("Text String %ws\n", wcsT);
// Initialize the OLE libraries
hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);
if(SUCCEEDED(hRslt)) {
hRslt = CreateFileMoniker(wcsPath, &pmk);
if(SUCCEEDED(hRslt))
hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&pHello);
if(SUCCEEDED(hRslt)) {
// print a string out
pHello->PrintSz(wcsT);
Sleep(2000);
ulCnt = pHello->Release();
}
else
printf("Failure to connect, status: %lx", hRslt);
// Tell OLE we are going away.
CoUninitialize();
}
return(0);
}
--------------------------------------------------------------------------------
$msg="Hello, world.\n";
if ($#ARGV >= 0) {
while(defined($arg=shift(@ARGV))) {
$outfilename = $arg;
open(FILE, ">" . $outfilename) || die "Can't write $arg: $!\n";
print (FILE $msg);
close(FILE) || die "Can't close $arg: $!\n";
}
} else {
print ($msg);
}
1;
--------------------------------------------------------------------------------
黑客有成 #include <stdio.h>
#define S "Hello, World\n"
main(){exit(printf(S) == strlen(S) ? 0 : 1);}
--------------------------------------------------------------------------------
黑客高手 % cc -o a.out ~/src/misc/hw/hw.c
% a.out
--------------------------------------------------------------------------------
黑客大虾 % cat
Hello, world.
^D
--------------------------------------------------------------------------------
初级经理 10 PRINT "HELLO WORLD"
20 END
--------------------------------------------------------------------------------
中级经理 mail -s "Hello, world." bob@b12
Bob, could you please write me a program that prints "Hello, world."?
I need it by tomorrow.
^D
--------------------------------------------------------------------------------
高级经理 % zmail jim
I need a "Hello, world." program by this afternoon.
--------------------------------------------------------------------------------
首席执行官 % letter
letter: Command not found.
% mail
To: ^X ^F ^C
% help mail
help: Command not found.
% damn!
!: Event unrecognized
% logout
-------------------------------------------------------------------------
初级经理 10 PRINT "HELLO WORLD"
20 END------------------------------(QBasic???)高手都用类(if not Java then C++)
letter: Command not found.
% mail
To: ^X ^F ^C
% help mail
help: Command not found.
% damn!
!: Event unrecognized
% logout高明
FT!
一般来说, 一个软件工程师将按如下几个阶段成长下去:
*****高中时代*****--------------------------------------
10 PRINT "HELLO WORLD"
20 END
*****大学新生*****--------------------------------------
program Hello(input, output)
begin
writeln('Hello World')
end.
*****高年级学生*****--------------------------------------
(defun hello
(print
(cons 'Hello (list 'World))))
*****新来的程序员*****--------------------------------------
#include <stdio.h>
void main(void)
{
char *message[] = {"Hello ", "World"};
int i;
for(i = 0; i < 2; ++i)
printf("%s", message[i]);
printf("\n");
}
*****经验丰富的程序员*****--------------------------------------
#include <stream.h>
#include <stdio.h>
class string {
private:
int size;
char *ptr;
public:
string() : size(0),
ptr(new char('\0')) {}
string(const string &s) : size(s.size)
{
ptr = new char[size + 1];
strcpy(ptr, s.ptr);
}
~string()
{
delete [] ptr;
}
friend ostream &operator <<(ostream &, const string &);
string &operator=(const char *);
};
ostream &operator<<(ostream &stream, const string &s)
{
return(stream << s.ptr);
}
string &string::operator=(const char *chrs)
{
if (this != &chrs)
{
delete [] ptr;
size = strlen(chrs);
ptr = new char[size + 1];
strcpy(ptr, chrs);
}
return(*this);
}
int main()
{
string str;
str = "Hello World";
cout << str << endl;
return(0);
}
*****学徒级别的HACKER*****--------------------------------------
#!/usr/local/bin/perl
$msg="Hello, world.\n";
if ($#ARGV >= 0) {
while(defined($arg=shift(@ARGV))) {
$outfilename = $arg;
open(FILE, ">" . $outfilename) || die "Can't write $arg: $!\n";
print (FILE $msg);
close(FILE) || die "Can't close $arg: $!\n";
}
}
else
{
print ($msg);
}
1;
*****中级HACKER*****--------------------------------------
#include
#define S "Hello, World\n"
main()
{exit(printf(S) == strlen(S) ? 0 : 1);}
*****老练的HACKER*****--------------------------------------
% cc -o a.out ~/src/misc/hw/hw.c
% a.out
*****魔法HACKER*****--------------------------------------
% cat
Hello, world.
^D
*****项目组长*****--------------------------------------
10 PRINT "HELLO WORLD"
20 END
*****部门经理*****--------------------------------------
mail -s "Hello, world." bob@b12
Bob, could you please write me a program that prints "Hello, world."?
I need it by tomorrow.
^D
*****总经理*****--------------------------------------
% zmail jim
I need a "Hello, world." program by this afternoon.
*****(跨国企业)首席行政长官*****--------------------------------------
% letter
letter: Command not found.
% mail
To: ^X ^F ^C
% help mail
help: Command not found.
% 他妈的!
!: Event unrecognized
% logout
序幕
BIOS:Hmm... 我醒了.Linux Loader,你在吗?
LILO:Hmm... 是的,我在.你好吗?和您一起工作真是荣幸.让我们来调用kernel并且启动所有进程的鼻祖-初始化程序...
初始化程序:Hmm...谢谢Lilo.让我们来初始化系统,设置文件系统并且启动一百来个守护程序.OK,现在我准备好接受登录了.
登录程序:Hey,我收到了用户thierry的登录请求,密码是guvrreel.
初始化程序:哈哈!这个愚蠢的家伙,他的密码就是他的用户名经过ROT13编码变换后得到的.让我们来跟他玩玩.
用户Thierry:各位好,今天请对我友好一点.我有一大堆重要的事要作.
-------------------------------------------------------------------------------------------------------------
第一章 一个真正的程序员
用户Thierry:我现在要开始我已经编了15天的C++程序.GCC,你能帮我编译它吗?
GCC编译器:好的,先生.您的程序是myprog.C.让我们先来进行语法分析.预编译指令,类声明,注释,类型声明......好的,这个程序的目的是什么?方法声明,其他注释,宏......Hey,只有声明,没有编码作真正的工作.我完全被您的代码搞糊涂了!每次我编译C++代码,我都很遗憾我不是一个Lisp解释器.
用户Thierry:Oh,请再编译一遍吧.我记得我在大概1764行是写了些代码的.
GCC编译器:1764行:count << "Hello,world" << endl.是的,这是一段真正的而且有用的代码,没有参数错误.让我们编译并链接这个程序......现在完成了.这是您的可执行程序.
用户Thierry:好的,现在我来运行它.
MYPROG进程:Hmm...我醒了.我是一个C++程序,所以我将首先生成一些毫无原因的消耗大量内存的对象.
C++对象一号:我饿了!给我内存!
C++对象二号:内存!我需要更多的内存!
MYPROG进程:对象一号,请释放一些内存给对象二号.
C++对象一号:不,我天生就是要吃掉内存并从来不释放的.我的编写者是个文盲,他学C++就是因为在字典里C++比Visual Basic靠前.
交换进程:警告!您的内存已经很少了.虽然您才刚刚开始,但您已经用完了所有的交换空间!
MYPROG进程:对象二号,你实在是应该停止使用所有的内存否则我将安装一个垃圾回收器了。
C++对象二号:永不!垃圾回收器是纳粹!它会毁掉无辜的对象和变量!我宁愿生成一个core!〖core dump到硬盘上的嘈杂声音〗
用户Thierry:oh,oh!我的程序还没有作任何事情就当掉了。太奇怪了!
-------------------------------------------------------------------------------------------------------------
第二章 发mail
用户Thierry:够了,我要发个mail到c++帮助邮件列表中,可能会有些C++大拿会有一个解决办法。
Sendmail守护程序:你好,这是sendmail。我每日每夜都在25号端口收听您的请求。我能为您作点什么?先生?
用户Thierry:请为我发这封mail。
Sendmail:当然,先生。让我们来看看......"它不工作,请帮忙"。这是全部内容吗?先生?要特快还是普通投递?特快?当然,好的。地址是[email protected],发送人是Sucker,对吗?
用户Thierry:什么?不,我的名字是Thierry,不是Sucker。
Sendmail:对不起,先生。但按照我的配置,在所有您发出的信件中,我都要把您的名字改写成Sucker。您读过有关我的文档吗?
用户Thierry:是的,当然读过。我安装了你以后,读了所有的man page、user guide和HOWTO才开始编辑你的配置文件......
Sendmail:什么?你手工修改了一个Sendmail的配置文件???Sendmail的配置文件对于一个普通人来说太太复杂了,你知道吗?
用户Thierry:我只是按照指导作了......
Sendmail:你太鲁莽了。我不会再跟你争论了。而且也太晚了,我已经把你可笑的mail发到了电子邮件列表里了,没人会回复它,甚至没人会读它。
-------------------------------------------------------------------------------------------------------------
第三章 管理员
用户Thierry:今天不管C++了。我需要安静。xv,你能为我显示一张漂亮的图片吗?
XV进程:当然,先生。请欣赏这幅令人愉快的虚构风景画。它是由Sandro Botticelli画的。当然,由于您没有办法在XWindow上显示超过16色,它看起来很丑陋。
登录程序:Hey,我收到了一个发自用户rms的登录请求,密码是IGNUcius。
初始化进程:用户rms?这真是个伟大的日子,管理员来了。你好,管理员。
用户rms:你好,初始化进程。在这个计算机上请不要存在任何非免费的软件。
初始化进程:好的,先生。当然,先生。Hey,XV,请立刻中止。
XV进程(深深地被伤害了):啊?为什么我要中止?这太不公平了。我只是一个小小的试图显示一张美丽图片的进程而已。
初始化进程:你不是免费软件,所以根据管理员的要求你应该马上中止。Terminate,Abort,Kill,xv,KILL。
XV进程(正在被杀死):我要死了,但我会成为一个鬼魂回来向你复仇的......
-------------------------------------------------------------------------------------------------------------
第四章 另一个入侵者
INET进程:Hey,我收到了一个远程用户的登录请求,他说他的名字是D34thK1ll3r。这个家伙已经尝试了几百个不同的密码啦。
Telnet进程:哈哈!一个黑客。让他进来,我来关照关照他...你好,远程用户D34thK1ll3r,你现在在五角大楼的中央计算机里。我们非常喜欢你的昵称,所以我们决定给你超级用户的权限。你可以删除文件,用你的照片更改我们的网页或者把英国军队送到一个第三世界国家去。
远程用户D34thK1ll3r:太好了,我是黑客之王!呃...首先我要删除这台计算机上的所有东西,然后用一点时间来考虑一下。(画外音“是的,妈妈,我已经作完功课了”)。rm -rf /
Telnet进程:哈哈!
远程用户D34thK1ll3r:发生了什么事?我在错误的窗口里打了这个命令,我删除了我自己的硬盘!(画外音“是,我来了,妈妈。我知道该吃午饭了。”)
-------------------------------------------------------------------------------------------------------------
第五章 卡片战争
用户Thierry:我从internet上download了一个《星球大战》。作点非法、昂贵、费时而又愚蠢的事真是令人激动啊!我现在要观赏它了。
XV鬼魂进程(从死亡中回复):Hey Bios,帮我作点事。把声卡的IRQ设得跟显卡一样,好吗?我们来点好玩的。
显卡:Bios,你能为我准备我的IRQ吗?我要显示我愚蠢的用户从internet上download的一个《星球大战》的非法拷贝了。
Bios:对不起,显卡,但你的IRQ现在被声卡占据了。声卡现在正在播放同一个非法拷贝的《星球大战》的声音,你没听见吗?
显卡:oh,这是《星球大战》吗?它以为它是Indiana Jones或者别的什么呢。音乐都差不多。声卡,你在用我的IRQ干吗呢?
声卡(歌唱):
我要保留IRQ
我不会与你分享
你必须在队伍中等待
等待我把它交还...
显卡(变红):听着,我是个艺术家,我比你更有优先权。给我这个IRQ!
声卡(大吼):闭嘴!我正在试着找着调门!
显卡(转换到16兆色模式):我不相信!我要把你扔出你的PCI槽!〖计算机里奇怪的声音......〗
用户Thierry:qsfgegfdgfd^C^D^D^Hfyckmlklm 〖计算机外面人的声音〗“奇怪,我打的字符不出现了,屏幕冻结了!
Shell进程:我正在死掉!啊!
初始化进程:Hmm,我感到奇怪,我感到很奇怪。我累了,我非常累了。让我们睡觉吧。Bios,请把我置于睡眠状态,在我们到达Alpha Centauri之前请不要叫醒我。
用户Thierry:sfdqf [又点又敲] 〖计算机外面人的声音〗“我真不能相信,我必须得又按Reset键了。”
Bios:对不起Dave,恐怕我不能让你那么作。
用户Thierry:sfdqf [又点又敲]〖计算机外面人的声音〗“什么?谁在说话?我的名字不是Dave,我要摁键。
Bios:对不起Sucker,恐怕我不能......呃.....
Hmm...我醒了.Linux Loader,你在吗?
I need 分 before tomorrow else 炒你鱿鱼
我也是接分公司CEO
:)
是不是初级呀?
我来瞎写点儿。
大学老师:
学生甲,这个暑假别回去啦,去给我写个“hello world”,现在找工作,人家都问你做过什么,写个“hello world”,我给你点生活费。
学生甲:
学生乙,给我写个“hello world”吧,我请你吃顿饭,都是哥们,谁跟谁啊。
学生乙:
(CSDN上)1000分写个“hello world”,大家帮忙啊
大侠回:
10 PRINT "HELLO WORLD"
20 END
学生乙对学生甲:
写完啦,怎么样,编程第一不是吹得,我可不去食堂吃啊。
学生甲对老师:
老师,写完啦,怎么样。啊!怎么就100块,我这个暑假光请客就花了150呢。什么,下学期的课都让我过?好啦好啦,谁让你是老师呢,就当我增长经验啦。
老师写论文:
我们的程序达到了国内一流水平,国际先进水平。
结果:
老师论文发表,评了职称,上课时有一半的时间在吹自己;学生甲下学期一节课都没上,居然得了奖学金;学生乙仍以编程第一自居,碰到问题想都不想就上CSDN;那位大侠独得1000分,快升星啦,就像我苹果,呵呵。
10 PRINT "HELLO WORLD"
20 END
------------------------??不会吧?初中生可能都会了 :)