|
|
128972 Beiträge & 5926 Themen in 20 Foren |
Keine neuen Beiträge, seit Ihrem letzten Besuch am 25.11.2024 - 10:39.
|
|
|
|
|
Autor |
|
|
|
|
C und UNIX ein schlechter Scherz?
In einem in der Computerindustrie Aufsehen erregenden Vortrag haben Ken Thompson, Dennis Ritchie und Brian Kernighan zugegeben, daß das von ihnen entwickelte UNIX-OS und die Programmiersprache C von ihnen ursprünglich als Aprilscherz gedacht war, der sich aber seit über 20 Jahren am Leben erhält. In einer Ansprache auf dem kürzlich stattfindenden UnixWorld Software Development Forum äußerte sich Thompson wie folgt:
"1969 hatte AT&T gerade die Arbeit an dem GE/Honeywell/AT&T Multics Projekt beendet. Brian und ich hatten gerade begonnen, mit einer frühen Form von Pascal zu arbeiten, das von Professor Nichlaus Wirths Lehrgebiet an der ETHZ in der Schweiz entworfen wurde. Wir waren von der eleganten Einfachheit und Mächtigkeit der Sprache sehr beeindruckt. Dennis hatte gerade das Buch "Der Herr der Augenringe" zu Ende gelesen, eine urkomische Parodie auf Tolkiens großartige Trilogie "Der Herr der Ringe". Zum Spaß begannen wir, eine Parodie auf die Multics-Umgebung und Pascal zu erstellen. Dennis und ich waren für die Umgebung verantwortlich. Wir schauten auf Multics, und entwarfen das neue System so komplex und kryptisch wie möglich, um die Frustration gewöhnlicher Benutzer so hoch wie möglich zu machen, und nannten es UNIX als Parodie auf Multics, ebenso wie einige andere Anspielungen innerhalb des Systems. Dann begannen Dennis und Brian an einer wirklich verzerrten Version von Pascal zu arbeiten, genannt 'A'. Als wir merkten, daß andere tatsächlich vorhatten, Programme mit 'A' zu entwerfen, fügten wir rasch zusätzliche kryptische Eigenschaften hinzu, und entwickelten daraufhin B, BCPL und schließlich C. Wir hörten auf, als es uns gelang, den Ausdruck
for(;P("\n"),R--;P("|"))for(e=C;e--;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);
fehlerfrei zu compilieren.
Zu denken, daß moderne Programmierer versuchen würden, eine Sprache zu benutzen, die derartige Ausdrücke zuläßt, lag weit außerhalb unseres Verständnisses. Wir dachten daran, das ganze an die Sowjets zu verkaufen, um den Fortschritt ihrer Computerwissenschaft um 20 Jahre zurück zu werfen. Man stelle sich unsere Überraschung vor, als AT&T und andere US-Firmen begannen, es mit UNIX und C zu versuchen! Es kostete sie 20 Jahre, um genug Erfahrung zu sammeln, um wenigstens halbwegs nützliche Applikationen mit dieser Parodie der 60er-Jahre zu erstellen., aber wir waren erstaunt von der Zähigkeit des gewöhnlichen UNIX- und C-Programmierers. Auf jeden Fall haben Brian, Dennis und ich in den letzten Jahren ausschließlich auf dem Apple Macintosh in Pascal programmiert und wir fühlen uns wirklich schuldig an dem Chaos, dev Konfusion und der wirklich schlechten Programmierarbeit, die wir mit unserem unsinnigen Scherz vor langer Zeit angerichtet haben."
Die wichtigen UNIX- und C-Verkäufer und -Nutzer, einschließlich AT&T, Microsoft, Hewett-Packard, GTE, NCR und DEC, haben zum jetzigen Zeitpunkt jede Stellungnahme abgelehnt. Borland International, ein führender Hersteller von Pascal- und C-Tools, einschließlich dem populären Turbo-Pascal, Turbo-C und Turbo-C++, äußerten, daß sie dies bereits seit einiger Zeit vermutet hätten und in Zukunft ihre Pascal-Produkte weiter verbessern wollten, bei gleichzeitiger Einstellung jeglicher Entwicklung für C. Ein IBM-Sprecher brach in unkontrolliertes Lachen aus und mußte eine hastig zusammengerufene News-Konferenz über das Schicksal der RS-6000 aufschieben - lediglich mit der Aussage "VM wird nun wirklich bald zur Verfügung stehen". In einer kryptischen Aussage bemerkte Professor Wirth vom Institut der ETHZ, Vater der strukturierten Sprachen Pascal, Modula2 und Oberon, lediglich, daß P.T. Barnum richtig lag.
In einer ähnlichen Meldung, die vor kurzem hereinkam, sagten üblicherweise zuverlässige Quellen, daß ein ähnliches Geständnis bald von William Gates gemacht werden wird, betreffend das MS-DOS- und Windows-Betriebssystem. Und IBM-Sprecher haben zu leugnen begonnen, daß auch die virtuelle Maschine (VM) ein interner Streich ist, der nach außen gedrungen ist.
Aus: COMPUTERWORLD, April 1st, in freier Übersetzung
Der englische Originaltext ist unter “c-hoax.txt” im Web zu finden.
|
Ich pausiere auf unbestimmte Zeit. |
|
Beitrag vom 27.02.2006 - 17:21 |
|
|
Die 14 Evolutionsstufen eines Programmierers: |
|
|
|
Die 14 Evolutionsstufen eines Programmierers:
Stufe 1: Schüler
10 PRINT "HELLO WORLD"
20 END
Achtung, ohne Garantie, daß die Beispiele alle fehlerfrei laufen...
Stufe 2: Das erste Studienjahr
program Hello(input, output)
begin
writeln('Hello World')
end.
Stufe 3: Im Hauptstudium
(defun hello
(print
(cons 'Hello (list 'World))))
Stufe 4: Der 1. Job
#include <stdio.h>
void main(void)
{
char *message[] = {"Hello ", "World"};
int i;
for(i = 0; i < 2; ++i)
printf("%s", message[i]);
printf("\n");
}
Stufe 5: Erfahrener Softwareentwickler
#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:perator=(const char *chrs)
{
if (this != &chrs)
{
delete[] ptr;
size = strlen(chrs);
ptr = new char[size + 1];
strcpy(ptr, chrs);
}
return *this;
}
int main(void)
{
string str;
str = "Hello World";
cout << str << endl;
return 0;
}
Stufe 6: Chefentwickler
[
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("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 "thlo.h"
#include "pshlo.h"
#include "shlo.hxx"
#include "mycls.hxx"
int CHello::cObjRef = 0;
CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)
{
cObjRef++;
}
HRESULT __stdcall CHello::PrintSz(LPWSTR pwszString)
{
printf("%ws\n", pwszString);
return ResultFromScode(S_OK);
}
CHello::~CHello()
{
// when the object count goes to zero, stop the server
cObjRef--;
if (cObjRef == 0)
PulseEvent(hEvent);
}
#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 "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\n", hRslt);
// Tell OLE we are going away.
CoUninitialize();
}
return 0;
}
Stufe 7: Lernender 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;
Stufe 8: Erfahrener Hacker
#include <stdio.h>
#define S "Hello, World\n"
main(){exit(printf(S) == strlen(S) ? 0 : 1);}
Stufe 9: Ausgebuffter Hacker
% cc -o a.out /src/misc/hw/hw.c
% a.out
Stufe 10: Guru Hacker
% cat
Hello, world.
Stufe 11: Neuer Manager
10 PRINT "HELLO WORLD"
20 END
Stufe 12: Mittleres Management
mail -s "Hello, world." bob@b12
Bob, could you please write me a program that prints "Hello
world."?
I need it by tomorrow.
Stufe 13: Gehobenes Management
% zmail jim
I need a "Hello, world." program by this afternoon.
Stufe 14: Geschäftsführer
% letter
letter: Command not found.
% mail
To: ^X ^F ^C
% help mail
help: Command not found.
% damn!
!: Event unrecognized
% logout
|
Ich pausiere auf unbestimmte Zeit. |
|
Beitrag vom 27.02.2006 - 17:25 |
|
|
|
|
/* Windows '98 source code */
/*
TOP SECRET Microsoft(c) Code
Project: Chicago(tm)
Projected release-date: Summer 1998
*/
#include "win31.h"
#include "win95.h"
#include "evenmore.h"
#include "oldstuff.h"
#include "billrulz.h"
#define INSTALL_HARD
char make_prog_look_big[1600000];
void main()
{
while(!CRASHED)
{
display_copyright_message();
display_bill_rules_message();
do_nothing_loop();
if (first_time_installation)
{
make_50_megabyte_swapfile();
do_nothing_loop();
totally_screw_up_HPFS_file_system();
search_and_destroy_the_rest_of_OS2();
hang_system();
}
write_something(anything);
display_copyright_message();
do_nothing_loop();
do_some_stuff();
if (still_not_crashed)
{
display_copyright_message();
do_nothing_loop();
basically_run_windows_3.1();
do_nothing_loop();
do_nothing_loop();
}
}
if (detect_cache())
disable_cache();
if (fast_cpu())
{
set_wait_states(lots);
set_mouse(speed, very_slow);
set_mouse(action, jumpy);
set_mouse(reaction, sometimes);
}
/* printf("Welcome to Windows 3.11");*/
/* printf("Welcome to Windows 95"); */
printf("Welcome to Windows 98");
if (system_ok())
crash(to_dos_prompt);
else
system_memory = open("a:\swp0001.swp",
O_CREATE);
while(something)
{
sleep(5);
get_user_input();
sleep(5);
act_on_user_input();
sleep(5);
}
create_general_protection_fault();
}
|
Ich pausiere auf unbestimmte Zeit. |
|
Beitrag vom 27.02.2006 - 17:26 |
|
|
|
179 Beiträge - Hardcore-Larper
|
|
|
ich fiinds gut, dass deine beiträge nicht so lang sind, das macht das ganze schön übersichtlich.
Edit: Rechtschreibung
|
Feuerelementarist aus Leidenschaft.
Und Scheiterhaufen erleuchteten seinen Weg.
Großmeister des Elementaren Konzils zu Ascaron
|
Dieser Beitrag wurde 1 mal editiert, zuletzt von Narthan am 28.02.2006 - 08:38.
|
Beitrag vom 27.02.2006 - 19:17 |
|
|
|
|
Und dennoch habe ich es meistens geschafft, dass meine Beiträge mehr Platz einnehmen als mein Avatar oder meine Signatur. Faszinierend, oder?
|
Ich pausiere auf unbestimmte Zeit. |
|
Beitrag vom 27.02.2006 - 19:33 |
|
|
|
|
Die Elefantenjagd ist klasse... insbesondere wenn man gerade Mathe- und InfoLK hat...
|
Cifer AKA Teskariel AKA Arras Wendelbogen
I haven`t lost my mind. It`s somewhere on a back-up disc! |
|
Beitrag vom 27.02.2006 - 23:19 |
|
|
|
297 Beiträge - Hardcore-Larper
|
|
|
Sparmaßnahmen an der Universität. Der Präsident spricht mit dem Dekan der Physik und erklärt ihm, dass sie unbedingt sparen müssten:
"Ihre ganzen Gerätschaften sind einfach viel zu teuer, auf Versuche müssen in Zukunft verzichtet werden. Machen Sie es doch so wie die Mathematiker - die brauchen nur Papier, Bleistift und nen Papierkorb. Oder besser noch wie die Philosophen: die brauchen nur Papier und Bleistift."
|
Beitrag vom 28.02.2006 - 11:33 |
|
|
|
1422 Beiträge - Qualitätslarper
|
|
|
@cobelius ich hatte jetzt keinen drang mich durch deine beiträge duchzuarbeiten vorallem da ich als leihe in schen computer und Programierung sowieso nicht durchgesehen hätte
haste davon mal ne kurzfassung das auch so ein dummschen wie ich es bin das verstehen und darüber lachen könnte???
|
Ot sitze ich hier grad und masturbiere, It braue ich dir grad einen Trank!!
Wer zuletzt Lacht denkt am Langsamsten!!!
|
|
Beitrag vom 28.02.2006 - 20:14 |
|
|
|
|
Überleg doch mal, würde das nicht den Sinn des Witzes vollkommen zerstören?
|
Ich pausiere auf unbestimmte Zeit. |
|
Beitrag vom 08.03.2006 - 09:43 |
|
|
|
1422 Beiträge - Qualitätslarper
|
|
|
ARRRRRRRRRR das ist ja das problem welcher witz *sich den kopf rauf*
|
Ot sitze ich hier grad und masturbiere, It braue ich dir grad einen Trank!!
Wer zuletzt Lacht denkt am Langsamsten!!!
|
|
Beitrag vom 08.03.2006 - 16:48 |
|
|
|
|
Siehst Du!
|
Ich pausiere auf unbestimmte Zeit. |
|
Beitrag vom 08.03.2006 - 21:09 |
|
|
|
|
Heisenberg fährt in einem Auto und wird von einem Polizisten angehalten. Der Polizist fragt aufgebracht: "Wissen Sie, wie schnell Sie gefahren sind?". Heisenberg erwidert: "Nein, aber ich weiß wo ich bin!"
|
Ich pausiere auf unbestimmte Zeit. |
|
Beitrag vom 13.05.2007 - 21:57 |
|
|
|
4610 Beiträge - JackassLarper
|
|
|
Wow, ein Physikerwitz!
|
Beitrag vom 13.05.2007 - 22:00 |
|
|
|
2297 Beiträge - Qualitätslarper
|
|
|
Spam hat viele Darstellungsformen!
|
I'm back! |
|
Beitrag vom 14.05.2007 - 07:06 |
|
|
|