Stallman/Torvalds Story, definition of 'Hacker'
/dev/random writes "I found this quaint little story by David Warsh about GNU, Linux, Opensource, and "hacker"s in the Globe today. I suppose it can pay off to read the business section. "
← Back to Stories (view on slashdot.org)
The writer has a nice style, but is very
...
... common denominators between them. Once he had a design
confused regarding the events.
> But first there would have to be tools. His first big achievement was EMACS, a compiler
and text editor that rendered possible
more ambitious programming. Other
programs followed.
The lisp thing not withstanding. I think he is
confusing emacs and gcc. gcc should be mentioned.
> decided to try an alternative
approach - a ''monolithic kernel,''
simpler, but far faster and already
Far faster is overstating the case.
>
for a certain task - for memory management, say - that would
be on the most popular chips, he put it out to an extensive list
of correspondent hackers to see how it could be improved. At
first it was written to suit just one architecture: the Intel 386.
> So Torvalds read up on the systems in use, in search of
common denominators between them. Once he had a design
for a certain task - for memory management, say - that would
be on the most popular chips, he put it out to an extensive list
of correspondent hackers to see how it could be improved. At
first it was written to suit just one architecture: the Intel 386.
> Gradually a kernel emerged that could control the most
popular microprocessors - the 68K, the Sparc, the Alpha and
the Power PC. Torvalds then combined his kernel with a good
bit of the GNU programs Stallman and his friends had
written, and presto! The operating system that has become
known as Linux - similar in spirit to AT&T's Unix system
but not based on it - was ready to be distributed and more or
less continually improved.
This is confusing. It makes it seem as if the
kernel were designed piece by piece, and then
assembled. Perhaps he is thinking of new designs being worked
out before replacing older ones.
The kernel was not developed for several
architectures and then released along with
GNU software. It was intimately bound with
GNU software from the beginning (first bash and gcc). Furthermore
complete distributions were available before
any ports were even considered. And the ports
were not gradual, of course, but were projects
that had definite beginnings.
The "linux is obsolete" thread, and
retrospectives by Linus are much more accurate
and informative than this piece. And some of
Linus's statements are rather brief (not this
brief, however)
To be fair, this piece is fairly typical.
John Lapeyre lapeyre@physics.arizona.edu
This tribute in the Boston Globe does not even provide a shadow of how great Linus is, and what he has accomplished. Linus succeeded in a field of battle still littered with the decaying corpses of those who tried and failed. Where other groups were torn appart by bickering and acrimony, Linus sowed strength and peace. He unified an army of like-minded programmers with his cool headed omniscient wisdom. He paved the road where none had gone before, with a success unlikely to be duplicated by any other in our time. He is as a crusader of old, retaking the sacred places from the Saracen horde.
The millenium is upon us, a millenium made less frightening and more hopeful thanks to this mighty self-effacing Scandinavian. This December, in the waning seconds of the old millenium, the genius of Linus Torvalds will be in the hearts and minds of millions upon millions of celebrators welcoming in a new dawn. He has given future generations a taste of what love and cooperation on a grand scale can achieve. He has given us more than the most successful operating system of all time. Linus Torvalds has given us a blueprint for a nobler society itself.
---
Well, I'm shure tons of people here have heard the term "hardware hacker" (hey, there even was a column in Popular Electronics I think called like that), so there is certainly a big prcedence for a type of hacking that involves things other than software.
---
So I'd say that my languages of choice would be the last two (or another LISP, maybe Common), depending on the app. Personally, I'd go with Python first, but a nice module system and tons of libraries in Scheme would level the field for me..
---
---
I think the "MINIX clone" part is a bit pretentious, though.
---
Really, a compiler is a device that associates a source program (in some language) to a semantically equivalent target program in another language (semantically equivalent == the two programs are "mean" the same thing, perform the same actions).
An interpreter is a device that directly associates a program in some language to its "meaning", that is, actually performs the actions that the program "means".
For example, Python is (has?) both a compiler and an interpreter. Source code written in the python language is compiled into semantically equivalent byte-code. Byte-code is interpreted.
---
I'm not shure if we can have a definition of what is a compiler that does no include some degree of arbitrariness.
For example, is TeX a compiler? I personally think not; however, it is built very nearly like a compiler is. Lexical analysis, syntactic analysis, semantical analysis, and then synthesis and code generation (I don't know if some analogue to optimization is present; I think not).
The difference is in the "meaning" of the sources processed by TeX; they specify boxes in a page, rather than actions. But technically speaking, it is not different from a compiler.
---
Any frenchmen out there can tell me how much of it is true and how much U.S. urban legend?
From my experience with the Spanish Language Academy, if the French one were to be similar, I would conclude that the stories are mainly legend (or at the very least exagerations, or citing a few kooks or reactionaries as an example). However, I know very little about the French Academy.
---
I think you hit the point far more precisely than you seem to show. The fight over the meaning of the word 'hacker' is not semantical, but political. It is not about what words actually mean (as ascertained by looking at the use of words in communities), but about what words whould mean.
Personally, I support not calling computer criminals 'hackers', no matter how much some people reply (correctly, but not satisfactory, IMHO) that it is usage that determines meaning, and that in general usage 'hacker' by now means 'computer criminal'. So what. There is a certain outlook on life, a certain world view, in general, a certain set of values that hackers attach to the word 'hacker', that I don't want to be silenced by a mass of script kiddies who have taken over the word, with the aid of a sensationalist and ignorant press.
I won't lose sleep over this, anyway.
---
Something of an oversimplification, as the original EMACS didn't run in stock TECO -- it required a special version of TECO that had the ability to address the full screen. Also, Guy Steele reportedly had a lot to do with that first version.
What does "true lisp" mean? Mocklisp was definitely a lisp dialect, albeit an even crummier one than elisp.
Gosling's contribution was the first version of Emacs that ran on Unix. It was also, I believe, the first version that was extended by a language other than the one in which it was written (C, Mocklisp.)
The first Emacs that was extensible using Lisp was Multics Emacs, by Bernie Greenberg.
I wrote up an Emacs timeline a while back, that I posted to comp.emacs. You can find it in DejaNews at http://www.deja.com/%3Ddnc/%5BST_rn%3Dps%5D/msgid. xp?MID=%3C36E42FA1.46F8E7B8@mozilla.org% 3E . (I don't know why Slashdot is changing that HREF to point to a different place -- anyway, if the URL above doesn't work (looks like it wrapped too, arrrgh!), search for ``emacs timeline.'')
On what do you base this insane statement? What is your basis for comparison? C?
Lisp is the single easiest language to learn, teach, or write. And this is in large part the reason for its bad reputation -- since it's easy to write, it's easy for people who have no clue to come up with something that barely works. (Whereas someone of a comparatively low skill level, faced with accomplishing the same task in C, probably won't ever get it to compile -- so you don't get to even see how crummy their C code is.)
Java is interesting in that it slips under the radar of the anti-Lisp bigots by being, essentially, a Lisp dialect with C's abhorrent syntax and bondage-and-discipline approach to data typing grafted on. An interesting hack -- giving up ease-of-use in order to get the rest of what Lisp brings to the party to be more widely accepted.
Well it seems to be (mostly) fixed now. There is still a length limit, but it's higher. For the record, that Emacs timeline I mentioned is "> here .
Then you have some funny definition of the word "compiler" that the rest of the world doesn't share. You seem to think that compilers targetted at virtual machines are not "real" compilers, but that compiler targetted at hardware machines are.
Ok, so I've got gcc, and it's emitting x86 code. Now I execute that code in an x86 emulator. Is gcc suddenly not a "real" compiler?
Now turn it around: I've got a compiler targetted at a virtual machine (the Emacs byte-code engine, the Java VM, whatever.) You say it's not a "real" compiler. Now someone builds a chip that executes that instruction set directly. Now suddenly, magically, it's a "real" compiler again?
Shades of Schrodinger's Cat! You can't know whether it is or isn't a compiler until you open the box?
Given that elisp only runs inside emacs, that's trivially true. I haven't seen a program using xlib that wasn't `just meant' for extending the X Window System
In the _interesting_ sense, though, how do you claim that a mail reader, a news reader or a web browser are extensions of a text editor?
I won't address your other comments about Lisp, as they're either flamebait or chronically ill-informed. If anyone else is more interested in learning things than pissing on them (someone mentioned 'hackers'?) could do worse than start at the ALU web pages
-dan
Well, almost anything is Turing complete (including, I believe, sendmail rewrite rules), so that's not a terrifically interesting basis to compare things on.
More interesting? Object-orientated, functional, imperative, reflective, introspective, non-deterministic - all these styles of programming and more are supported, and many were pioneered using Lisp as a prototyping vehicle. Incremental compilation, interactive debugging, native code, the first ANSI standard OO language ...
And it's not that slow either. I'll race my CMUCL against your Java any day. In fact, I'll race my CMUCL against your C and expect to see same order of magnitude times for the same problem.
Nor is it especially bloated by today's standards:
26214 dan 5 5 24976 23M 12236 S N 0 0.0 25.0 1:21 lisp
18935 dan 15 5 54096 18M 3944 S N 0 2.3 19.8 14:16 navigator-sm
219 root 8 0 13992 12M 1116 R 0 2.5 13.7 33:34 XF86_SVGA
26107 dan 5 5 10608 9M 2124 S N 0 0.0 10.6 7:47 emacs
One of those top two is a fully-programmable web server (comparable to apache/mod_perl except for the native code aspect) and the other is a glorified help browser with a sockets interface
I'll stop ranting now.
-dan
No, you are trivializing here; we can all agree that compiling takes some source code and translates it into another form and that this kind of translating process will eventually lead to code that can be executed. Things like word processors and spreadsheets, including bloated and flaky ones like Word and Excel, do not qualify.
There must be only a few people on /. who appreciate true hackers. To take an example from the Levy classic Hackers (p. 426):
For the clewbies out there, Greenblatt is also one of the greatest hackers of all time.
One of the other great hackers, Gosper, noted at that time:
"But wait a minute--Stallman doesn't have anybody to argue with all night over there. He's working alone! It's incredible anyone could do this alone!"
Yes, I am appealing to authority here, and if you cannot appreciate the likes of Greenblatt and Gosper (you can read about them in Part One and the Epilogue of Hackers), then you you certainly cannot appreciate any hacker, including Linus.
Finally, this ignorant bashing of LISP is so typical of clueless folk. To take a seldom-mentioned example of its performance feats, the STALIN scheme (variant of LISP) compiler has outperformed even FORTRAN on some numerical tasks.
With all do respect, you are dumb.
Lisp is every bit the real programming language. It is Turing Complete, and extremely powerful. Much software has been written in it. The flip side is that Lisp code tends not to be very fast at all, nor is it applicable to a lot of problems, thus it is less used than C.
That, however, does not make it "not a real programming language".
Furthermore, let it be pointed out that Lisp predates things like C by a number of years, and along with Fortran (and perhaps Cobol, though after Jan. 1 it won't be on the list) is really the only language from that era that I can think of still in use.
Lisp laid a lot of the foundation for the paradigm of functional programming.
javac stands for java-compiler. Have you ever tried to write a compiler Mr. Coward. It doesn't much matter if you output bytecode or machine code, unless optimization is what you're talking about.
I'd tend to disagree with the statement about Java. Java's more of a derivitive of Smalltalk, IMHO with the horrors of C syntax slaped on. As for the the person who thought Perl was Lisp derived, I'd tend to disagree with that too, since I find perl to be an extremely disorganized and poorly laid out, although useful, language.
I would agree, however, that lisp is one of the nicest languages around, sytactically and otherwise. I'm more partial to scheme out of lisp's children languages than elisp, but that's neither here nor there.
As for lisp being easy to learn, teach, and write, as someone who learned to program first in scheme, I'd agree that it works very well for getting people to think the right way about approaching programming. As for people of low skill writing ugly code in lisp, I used to grade that same course the semester before the course went from scheme to java, and the semester after. Let's just say, it got a lot more painful to read that code.
Languages aren't compiled or interpretted. Implementations do compilation or interpretation. Some perl implementations so it one way some other. All the Perl 5 implementations I've seen do runtime compilation, IIRC most of the Perl 4 ones I saw didn't. Could be wrong though, since I don't like perl particularly much. I know tcl/tk changed its implementation recently from interpretation to runtime compilation (not that I like tcl either).
Yes, as you may recall, Newton and company called themselves "Natural Philosophers" for lack of any other term.
And even today the word "scientist" hasn't been totally defined -- some people limit it to people in the big three natural sciences (physics, chemistry, and biology) and others define it more broadly to include basically any field in which the goal is to publish papers in overpriced journals.
wow, you just described Richard Feynman there...
Actually, Perl is compiled.
Every time you run it, anyways.
-- DrZaius - Minister of Sciences and Protector of the Faith
Actually I'd take out the "solutions to a given problem" and just define hacker as "anything clever." Aren't the stunts at MIT and CalTech called "hacks?" They certainly weren't solutions to any problems. And the more clever it was, the greater the hack. Just my $0.02.
FRB
Scandinavia
region of N Europe, consisting of NORWAY and SWEDEN (on the Scandinavian Peninsula), DENMARK, and usually also including FINLAND, ICELAND, and the FAEROE ISLANDS. Its people share similar histories and cultures, and most, except for the Finns and Lapps (see LAPLAND), speak closely related Germanic languages.
I don't know where you learned *your* geography, Coward, but keep your mouth shut if you don't know what you're talking about...
\
Warsh is savvy. I really like the guy's take on things, especially Monicagate and comparing the assertions that polticians make about the economy to what has actually happended in the past.
Unfortunately, that cruel truth made it hard to sell even during the AI-mania of the 80s. I worked for one of the MIT-spinoff Lisp Machine companies (LMI, the other was Symbolics), and while commercial AI was overhyped, I beleived (and still do) that Lisp is a great purpose for building and maintain all kinds of complex systems, "intelligent" or otherwise.
And, by the way, I actually worked a bit with Stallman in those days. First, at MIT, trying to bring some sense to the MIT (non-Symbolics) branch of the system software would do network file access (it was fine for its "native" network system but was awkward for adding the new TCP-based access methods that were coming out), and at LMI, doing TeX and other document-processor hacking (a long story). Some of the latter work might still survive as texinfo -- are the TeX macros still there or is everydone done in elisp now ?
Anyway, the joke at LMI had to do with the way our workstation competitors at Sun, Apollo, and so on would refer to Lisp processor as "special" purposes machines. Poppycock ! Their CPUs and memory systems were only good for modular arithmetic and chasing pointers, while Lisp processors could dispatch on byte fields (useful for dynamic type checking), support generational garbage collection, and in general support all kinds of data structures easily, not to mention numbers that behaved like mathematical entities instead of PDP-11 registers.
So there !
Well, you can compile e-lisp code (EMACS's dialect of lisp) into a sort-of e-lisp bytecode. Check your site-lisp directory; it probably has a mixture of .el and .elc files - the .elc ones are precompiled.
Did it really take them that long to #define the word "scientist"?
Perhaps we still have a realistic chance to get "hacker" into the mainstream, in thirty years to come...
--
"The use of COBOL cripples the mind.
Its teaching, therefore, should be
Anyone ever read Schrodinger's Plague? Short story by Greg Bear?
JG
Am I the only one who caught the bit about portability? Didn't Linus himself say that it probably couldn't be ported to other archetectures due to it's inherent dependence on i386 archetecture?
Yes, we know we overcame that a long time ago, but it wasn't in the original design.
This is just like television, only you can see much further.
Most amusing.
--
--
The Internet is the Suppository of All Knowledge. You get it in the end.
Hee hee! For those of you lucky enough to have the Globe's dead-tree edition handy, check out the article. There is a HILARIOUS caricature of Stallman on the front page. I especially like the bird sitting on his head }:-D
iSKUNK!
Ditto almost any other licensing scheme.
*almost*. Considering the amount of licensing schemes out there, my statement is still correct. In some cases, the BSD with advertisement clause demands this. The licenses that don't require rewritting, often have their own disadvantages.
The GPL isn't viral if it's used inhouse.
With the GPL, their code used in the GPL product can also be used in proprietary products, provided the GPL'd code isn't, or a waiver is made.
Excel and word are compilers. They "compile" data into different formats.
Considering that the current internationally used calendaring system is man-made, you're right. I just hope to be around for the beginning of the 3rd millenium in the muslim calendar.
I know! That's why I'm hoping to see it.
I like the advertising clause, It would just be easier if it allowed a text file recognition.
Well, lets not forget that emacs can be used to call gcc, but thats hardly saying that compiler is built-in.
I wouldn't count the lisp psuedocompiler as a "real" compiler, either. That would be like saying that MS Excel or Word are "compilers." (Think VBA)
My journal has hot
LOL! Don't forget the built-in Web browser, e-mail client, oh...wait...those ARE in there... :-)
My journal has hot
Oh absolutely. Even in computer technology, there are people who are referred to as "hardware hackers." In fact, I had a buddy of mine modify an old video board (before they were multisync-capable), to use an even older monitor. We considered the board "hacked."
Even my dad, who is totally clueless about technology, pronounced the modification another friend of mine and I made to my car a "hack." (We diked-out a sensor that controlled the fan and replaced it with a toggle switch as the sensor was like $300 and the car wasn't really worth it...)
My journal has hot
No, non-monolithic kernels are not far faster. But on average, they do perform at least a little faster than their microkernel counterparts because they are one big program, as opposed to a bunch of independent components talking together through tightly-controlled communications.
The article is right in its main advantage, though and that is monolithic kernels are easier to implement than microkernel systems.
My journal has hot
And Vice Versa:
swear AT them as well
------- Oh damn.... the Sigfile escaped... -Great OM
Since this is Slashdot, I would assume that he's talking about Perl, which of course is famous for its straightforward syntax and elegant readability.
Did emacs once contain a compiler? I know it's big, but THAT big? :-)
Indeed. This link's definately going into the "Give to everyone who want's to /do/ linux" section of my bookmarks.
I know that Emacs is a very powerful piece of software, a Lisp interpreter in a text editor disguise, but a compiler, it ain't :p
For instance, before a road trip 5 years ago, my friends muffler was draggin on the street. So we got a thick piece of wire, and looped around the muffler to an anchor point under the frame, and were able to stabilize the muffler up. It worked great, though it wasn't necessarily clever.
Technically speaking, that's a Kludge, not a Hack. A kludge is a fix that does the job effectively, but not necessarily elegantly. The terms are often (incorrectly) used interchangeably. Had it been a true hack, the manufacturer would have given you both engineering jobs upon your return. : )
Okay, I'll bite: Where is the compiler in EMACS that is refered to in the article? How does one use it? Does it really have a compiler, or can you simply call GCC os EGCS from EMACS after hacking on your code? Could someone clear this up please?
"I have no respect for a man who can only spell a word one way." - Mark Twain
"Going to war without France is like going deer hunting without your accordion." - Jed Babbin
oh, GOD, please! shut this idiot boy up!
Emacs includes a LISP compiler which compiles LISP into some byte code to execute it faster. Have a look at those .el and .elc files on your system.
--
Weasel
--
Weasel
Yes, but what if you want to multithread in a parallelizing system?
In that case, monolithic won't really cut it...
Bruce M. Simpson Unix/Network Bod & Win32 Developer
The author got a few details wrong (e.g. Linux wasn't initially portable, GNU Emacs doesn't have a compiler), but the general thrust of the article was spot-on.
-russ
Don't piss off The Angry Economist
It is written in the holy books that Linus himself (all praise Linus) said that the memory management system was written around LDT/GDT and was not particularly portable.
If the author meant that emacs has an elisp "compiler", then I can claim that Freemacs has a MINT "compiler".
-russ
p.s. it doesn't, and it doesn't (you get to figure out which it means what).
Don't piss off The Angry Economist
I believe that RMS wrote the first set of functions, but it was Steele who gathered them together into a single package. (Hmm, doesn't make much sense, but that's what I've read...)
/. eat an HREF before. Wierd. The link (obviously) doesn't work, and Deja can't the post. The Gods of computing seem to be cranky today.)
(I've never seen
I'm pretty sure that origionally 'hacker' and 'hack' related solely to programming, but as with many words it got spread about and applied to all sorts of things both computer related and otherwise.
Personally I've always thought of the nouns 'hack' and 'hacker' not necessarily being related.. a 'hack' is, to me anyway, anything done to take care a problem that isnt the accepted solution. In programming this usually tends to be a kludge that works for now and will eventually need to be fixed.. but i've also seen cases that would defenitly qualify as a hack that were Better than the accepted solution. In other things it varies as well.. as another poster mentioned, tying the muffler back onto your car is a hack in the 'kuldge that works for now' sense.. but then were you to throw together something that replaced the muffler and did as good or better a job, i'd probably call it a righteous hack.
The word 'hacker' however, i view as not being applicable to any specific type of person. One may be a programmer.. most likely they'll know a programming language or two no matter what, but it may not necessarily be their main occupation. A 'hacker' to me is anybody with a thirst for knowedge above and beyond that which is considered normal. Computers tend to draw them because there's so Much knoweldge to be had.. that's why I said they would likely know a language, because they couldnt resist knowing how the thing works. Anyone who calls themself a hacker shouldnt Just know computers though.. i've never found a person that's generally known as a hacker (in the good sense) who didnt know a reasonable amount of philosophy, theology, literature, and a smattering of all the sciences. A hack isnt necessarily clever or simple.. but a hacker is defenitly clever, quick-thinking, and has a desperate thirst for knowledge.
So my idea of the conclusive defenition?
Hacker: ha-kur n. One who desires to know the inner workings of everything he surveys and has the ability to apply that knowledge.
Dreamweaver
"If a man hasn't discovered something he will die for, he isn't fit to live" -- MLK, Jr.
When I was 12 years old, I got a 16K RAM extension to my Zx81. However, it turned off the 1KRAM that was already present. So I cut the PCB and rewired it including adding some off-PCB chips to put the 1K RAM at 8192-8192+1K which was unused. I put the fast-tape-loader in there because the "OS" didn't reset that part of RAM when restarted (through my own added reset-button). Does that qualify me for the term "hacker" :)
;)
Hey, cmdr taco & friends, can we start a ZX81 and ZX spectrum hardware hackz thread
Living is a horizontal fall
As for myself, I rather like the inclusive definition of doing something clever.
I agree. I couldn't sit here and say I'm a hacker, that's for sure, but I'd like to think that hacking extends far beyond the world of programming. There are billions of things in this world that can be hacked, taken over, changed, and dominate, only for the same thing to be done the next moment.
Insert mind here.
I know not of one OS that fits your discription for you to have been able to draw this conclusion from the usage of.
If you are just randomly pulling this conclusion out of your @ then please don't be bothering us with your baseless opinions
-- The act of censorship is always worse than whatever is being censored. Always.
That article hit the Linux scene pretty dead on, or at least it seemed to... Hats off to that author!
Canar
So what is a hacker, after all? Eric Raymond offers this definition in the third edition of his New Hacker's Dictionary: ''A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum necessary.''
;-)
If this is actually true, then even I could qualify for the title to a small extent...I think a lot of us could.
Back when I read alt.hackers on a regular basis (early 90s) the general consensus seemed to be that it involved not necessarily programming, but pretty much any clever solution to a given problem. Sometimes it might involve rewiring power tools, sometimes writing/changing code, maybe even just pounding pieces of wood together...
So basically, are we changing the definition of "hacker" again? Or was it always meant to just relate to programming? One thing is for sure, the denizens of alt.hackers certainly agreed that any negative connotation it had was the fault of the press, and wasn't what they were about.
As for myself, I rather like the inclusive definition of doing something clever.
Ahem... The "waning seconds of the old millennium" are next December - the new millennium begins in 2001.
Our wretched species is so made that those who walk on the well-trodden path always throw stones at those who are showing a new road.
I'm guess I'm one of those silly practical people that say that the common use of the word is the meaning of the word. I mean you can yell all you want that barbecue is a verb and grill is a noun but I'm still gonna say, 'You guys want to grill up some hot dogs at my barbeque on sunday?'
As a aside, one of the silliest things about the French is how they have committee to stop words like CD from infecting the purity of the language. How far away from that is this overly pendatic assertion that 'hacker' must never mean 'cracker'?
Wow, they actually got the definition of hacker right.