In the last 5-10 years, some researchers from the Human-Computer Interaction (HCI) and security community have gotten interested in the intersection of these two things. We're calling it "HCISEC". If you'd like more info about it, search for it on ggogle.
I agree, but I think you missed my point: that if what he wants is for people to write programs in his language, choosing to use GPL for his compiler/interpreter needn't affect commercialization at all. I can write code, compile it with a GPLed compiler, gcc for example, and sell the resulting binary as a commercial product just fine, without having to release the source code for my program.
If what the article author wants is for companies to develop the compiler/interpreter itself and sell *that*, then your comment is entirely on point.
I agree with all of the parent's comments, but wanted to put in another plug for antlr. I've used it for small projects and it works well. It has built-in support for traversing the parse tree, which lex/bison do not (at least, last time I used them), and it comes with a visualization of the parse tree, which is quite handy.
If you're designing a new language, I don't see that the compiler and/or interpreter being GPL'ed would be a hindrance. For example, gcc is GPL'ed, but places no restrictions on what you do with code you compile using it.
If, OTOH, you want to encourage people to modify the compiler/interpreter and sell *that*, then the GPL might not be the best choice.
Re:How about just a literacy test
on
IT Literacy Test
·
· Score: 1
I wish I was exaggerating but I am not.
Let us all mourn the continuing slow death of the subjunctive.
(Normally I wouldn't bother, but the parent is about literacy.)
I've used Netbeans (v3.6, I think) and emacs on the same project. Emacs always notices when I've changed something from NB (of course, it's emacs:) ), and as far as I can remember, NB never got confused about edits from emacs.
I used NB mostly for GUI layout, and some for debugging, and used emacs for everything else.
If you're doing a lot with GUIs, I think it's a lot easier to use an IDE like NB than emacs (speaking as someone with a.emacs of ~2200 lines).
P.S. I use past tense because I'm coding in C++ and Python these days. Next time I use Java, I'll be keen to check out the improvements.
Re:Old school hackers vs. new school hackers.
on
Good Bad Attitude
·
· Score: 1
The only way they "encourage creativity" is by allowing folks like me to profit from our endeavors.
I agree. Although it's not the case in some countries, in the US copyright and patent are purely pragmatic: "to promote the progress of science and useful arts" [US Constitution, Article 1, 8]. Creators do not have an intrinsic right to anything. However, to induce them to create in the first place, they are given limited rights so they can profit from their creations.
However, if creators are given too many rights, it's bad for society as a whole, because it inhibits new creations and productive uses of existing ones (and as someone else pointed out, may reduce the motive for the creator to create more than a small number of works).
In short, I think the optimal point is a balance between creator's rights and the rights of everyone else.
I really like strategy games, and many of the games I like don't appeal to people who aren't really into games. Settlers of Catan is a great game in part because it appeals to people who aren't "gamers".
I think part of the appeal is that it is pretty simple to learn. Also, although it is competitive, it is not very confrontational or combative compared to most other strategy games. For example, stuff you build (settlements, roads, cities) can't be destroyed by other players. (At least in the basic game set). And, you have to cooperate in the form of trading resources with others, at least in the beginning, or you'll never get anywhere.
I wouldn't say that it's all that hard to master, esp. compared with games like Tigris & Euphrates or Vinci, but it definitely has a high enough level of strategy to be fun even for fairly hard-core gamers.
I don't know if this is intended to be a troll or flamebait (which it was mod'ed as), but I'll reply anyway.
This is why you cant either really "draw window contents while dragging" or true transparency; both work by taking a screenshot and drawing that.
If the window manager is written to allow it, there's no reason you can't draw window contents while dragging them in X. I'm not sure if any WMs today do that, or if they just let you see the static contents of the window while dragging. But it's not a limitation in X.
This doesn't mean we should abandon X. (Not that the parent advocated this, but there's some noise about it from others who make similar comments.) It means we should continue developing it (and apps and WMs that run on it) to be better.
What the fuck is a MIT-MAGIC-COOKIE-1?
It's used for authenticating clients, so you can do things like run the app on a different computer than the one you're sitting at. If you use tools like ssh to remotely log in, which automatically handles the authentication, you shouldn't ever see this.
However, according to this reasoning, book publishers (and newspaper publishers, and other producers of print media) should have control over lights in my environment, because I'm using them to read their stuff.
I prefer this approach: Part of the "terms of service" of making content publically available on the World Wide Web is accepting that someone can fetch that content and browse it in any reader they want.
X doesn't even provide a way to serialize its own settings back to disk.
I don't understand. What settings are you talking about?
What happens when an X application has unsaved data and you tell the system to shut down? It doesn't even try to help you with an orderly shutdown so you can get your data saved. Everything instantly disappears!!!
These are not problems with the architecture of X. In fact, some applications we have right now save their state if X goes away. I just tried it with emacs, and even if you kill the X server out from under it, it saves recover files for any changed buffers.
I don't think Ctrl-Alt-Backspace is especially "easy", but it's not hard to disable if you don't like it.
[We're wandering a bit afield of the actual article, and this is buried so deeply I don't know if anyone will read it, but...]
The parent (and gp) bring up an issue that I think is really important re morality: Is morality relative or absolute?
Judaism and Christianity are clearly on the moral absolutism side. (AFAIK other religions are, too, but I'm not as familiar with them, so I'll only talk about these two.) These religions claim that morality is not related to culture or society, but is part of the nature of the universe (and ultimately from God). Adherents of these religions may disagree on what they are, and even what evidence or data are valid for determining what they are, but they agree that whatever morality is, it is something that is Out There for us to discover/understand, not something we invent.
On the other side is moral relativism. I'm not in this camp, but from what I understand it's basically that morality is not a property of the universe, or handed down from (a) god(s), or anything like that. I'm not sure if all moral relativists believe that morality is a construction of people/culture/society, but that's the form I've seen most often.
there's no reason to believe the structure [two party system] cannot change once again (and there are some indications this may well happen).
Although literally I agree, I think you're overstating the probability of party change. There's no proof it cannot change, but there is good reason to think the US is unlikely to ever have anything but a two-party system: Duverger's law. Thanks to the US winner-take-all voting system, it's extremely difficult for 3rd party candidates to be elected.
I agree with the parent (and disagree with the gp).
2001 is really good in parts, but overall it bored me. The book is much, much better. The movie has too many slow sections.
Both the book and the movie raise interesting, and very sci-fi-y issues, but the movie just wasn't all that entertaining. Other movies have raised similar issues and done so much better, like Blade Runner (as others pointed out).
As to its scientific accuracy, someone else already debunked that, but I think it's irrelevant. I can't think of a movie example right now, but there are great sci fi books that have bad science or no science, such as The Left Hand of Darkness by Le Guin, or The Moon is a Harsh Mistress by Heinlein, or The Martian Chronicles by Bradbury.
I do like it when sci fi handles the science well (for example, the star fury maneuvers in B5) and cringe when it doesn't (mitochlorians in SW I), but the other aspects of the book, movie, or TV show are so much more important.
Eckel's articles are interesting and thought-provoking. I think he has a great point about testing, and looking at type checking as just another kind of test is a new perspective for me.
But I think he misses a really, really important point about both checked exceptions and static typing. In a data structures class in college, the professor suggested that we think about a program not as a way to tell the computer what to do, but as a way to tell other people what we wanted the computer to do. In this regard, checked exceptions and static typing are a huge help.
I've been a big Python fan for years, and I recently used a big Python codebase for a project. I found it hard to figure out what was going on and how I should use it, in large part because I didn't know what the constraints were on parameters to pass to functions. If they'd been typed, I would have known what methods they needed to implement. Of course, I could read the code, and that's what I did, but it's a lot harder than reading the javadoc (or docbook or pick your favorite automatically generated docs for C/C++ or Java).
Similarly for exceptions: if there are no checked exceptions, then as a user of a piece of code, I have no idea what exceptions it might throw. (Yes, if unchecked exceptions exist, I'll never know when they can be thrown.)
Of course, we could overcome all these problems with documentation. And if you believe that, I've got a bridge to sell you...
I kept watching even though I was initially unimpressed because I was a huge fan of Buffy and Angel, so I expected Joss to do more stuff that I liked. Also, series often get off to bad starts but turn out to be really good (e.g., ST:TNG).
BTW, I do have a Tivo, so recording it was pretty easy. I think I saw all the ones that were on Fox, but it's possible I missed a few.
And maybe if it had gone on longer or if I'd seen them in the proper order (as opposed to the aired order), I have liked it more.
No complaints about the effects. The characters were likable enough, but I thought the writing wasn't nearly as good as for Buffy & Angel. (Overall, that is.)
Ok, I may get flamed into oblivion for this, but I'm genuinely curious, so:
What's the big draw of Firefly? I loved Buffy and Angel, but I just don't see why so many people seem so taken with Firefly. I saw all the eps that aired on TV and it just seems mediocre to me. Is it that I'm not a big western fan?
You're right that usability includes more than just learnability by novices. However, I'm glad to see people studying learnability for Linux because it's something that's really hard for the developers to get right on their own (they know the software so well it's hard to see it with the midset of a novice). Also, programs for Unix and X are traditionally pretty expert-friendly, but often novice-hostile. So I think it's good that learnability is being studied, as a sort of balance.
It would be better to call it a "learnability study" than a "usability study", though.
As usual when this topic comes up, there are a lot of comments about graphical user interfaces (GUIs) vs. command line interfaces (CLIs). If you want to read some good papers about this topic, I recommend finding these in your local library (or if you or your company/school are an ACM member, the first is available in their digital library):
Philip Cohen.
The role of natural language in a multimodal interface.
In Proceedings of the ACM Symposium on User Interface and
Software Technology (UIST), pages 143-149. ACM, ACM Press, November 1992. In ACM DL
Lists advantages & disadvantages of direct
manipulation vs. natural language.
Ben Shneiderman.
Human Factors for Informatics Usability, chapter 14, pages
325-342.
Cambridge University Press, 1991.
Compares menu selection, form fill-in, command
language, natural language, and direct manipulation. Gives guidelines for
using each, and for choosing which style based on task and user skill level.
Although the first focuses on natural language, many points apply to CLI, too.
But people should NOT bash the first-person perspective at all. Done right, it really allows for more impressive graphics, and it doesn't all have to be about how fast you can click.
I agree, 1st-person perspective does not have to equal twitch. One of the Might & Magic games (#8?) was 1st person with realtime non-combat and the option of turn-based or realtime during combat. And Wizardry 8 was also realtime outside combat and turn-based in combat. I thought that worked well in both of those games.
Deus Ex was also a great game for us non-twich players, too, even though it was 1st person and all realtime.
Still, I hope they keep the 3rd person perspective for Fallout 3. I like managing tactics in a multi-person party, and that would be hard to do in 1st person.
Originally, OSs like Linux and *BSD weren't at all usable by ordinary people. They're a lot more novice-friendly now, and becoming moreso all the time. I think file formats are still the single largest barrier. Apps like OpenOffice and AbiWord have put a lot of effort into MS compatibility, but it's still not 100%*.
And there are some apps that people need that just don't exist for other platforms.
Inertia is also a big factor.
* I applaud their efforts so far, and recognize that it's a really hard problem. I just OpenOffice whenever possible.
I've been using Netbeans off and on for a few years (along with emacs), and like it pretty well. I tried Eclipse a few months ago, and I found it a lot harder to use, and I didn't like the look & feel as much in general. Some people prefer the Eclipse UI, I guess. YMMV.
I'm running on a 2.2GHz machine, so Netbeans seems plenty responsive to me most of the time. I can understand why people on slower hardware might prefer Eclipse.
I completely disagree with Hyde about the importance of efficiency. Sure, I'd like apps to be smaller and faster. But 99% of the time, what I want to be improved in apps I use are:
* Usability * Security * Learnability
As a developer, I also rarely care about efficiency. I'd much rather developers spent more time making their code:
* Readable * Maintainable * Debuggable
I also agree with other comments that even if you think efficiency is important, assembly by itself does not help very much in understand what's efficient. That's because so many other factors besides the lines of code impact how your program runs, such as:
* Compiler and runtime environment (e.g., JVM) * OS implementation (e.g., scheduler, virtual memory management) * CPU architecture (e.g., pipeline, cache, superscalar execution)
Would knowing assembly be better than not knowing it? Sure. But considering all the things that it would benefit a programmer to know, how important is assembly? For the vast majority of applications out there, I think assembly is not nearly as important as many other things.
In the last 5-10 years, some researchers from the Human-Computer Interaction (HCI) and security community have gotten interested in the intersection of these two things. We're calling it "HCISEC". If you'd like more info about it, search for it on ggogle.
I agree, but I think you missed my point: that if what he wants is for people to write programs in his language, choosing to use GPL for his compiler/interpreter needn't affect commercialization at all. I can write code, compile it with a GPLed compiler, gcc for example, and sell the resulting binary as a commercial product just fine, without having to release the source code for my program.
If what the article author wants is for companies to develop the compiler/interpreter itself and sell *that*, then your comment is entirely on point.
I agree with all of the parent's comments, but wanted to put in another plug for antlr. I've used it for small projects and it works well. It has built-in support for traversing the parse tree, which lex/bison do not (at least, last time I used them), and it comes with a visualization of the parse tree, which is quite handy.
If you're designing a new language, I don't see that the compiler and/or interpreter being GPL'ed would be a hindrance. For example, gcc is GPL'ed, but places no restrictions on what you do with code you compile using it.
If, OTOH, you want to encourage people to modify the compiler/interpreter and sell *that*, then the GPL might not be the best choice.
Let us all mourn the continuing slow death of the subjunctive.
(Normally I wouldn't bother, but the parent is about literacy.)
I've used Netbeans (v3.6, I think) and emacs on the same project. Emacs always notices when I've changed something from NB (of course, it's emacs :) ), and as far as I can remember, NB never got confused about edits from emacs.
.emacs of ~2200 lines).
I used NB mostly for GUI layout, and some for debugging, and used emacs for everything else.
If you're doing a lot with GUIs, I think it's a lot easier to use an IDE like NB than emacs (speaking as someone with a
P.S. I use past tense because I'm coding in C++ and Python these days. Next time I use Java, I'll be keen to check out the improvements.
I agree. Although it's not the case in some countries, in the US copyright and patent are purely pragmatic: "to promote the progress of science and useful arts" [US Constitution, Article 1, 8]. Creators do not have an intrinsic right to anything. However, to induce them to create in the first place, they are given limited rights so they can profit from their creations.
However, if creators are given too many rights, it's bad for society as a whole, because it inhibits new creations and productive uses of existing ones (and as someone else pointed out, may reduce the motive for the creator to create more than a small number of works).
In short, I think the optimal point is a balance between creator's rights and the rights of everyone else.
I really like strategy games, and many of the games I like don't appeal to people who aren't really into games. Settlers of Catan is a great game in part because it appeals to people who aren't "gamers".
I think part of the appeal is that it is pretty simple to learn. Also, although it is competitive, it is not very confrontational or combative compared to most other strategy games. For example, stuff you build (settlements, roads, cities) can't be destroyed by other players. (At least in the basic game set). And, you have to cooperate in the form of trading resources with others, at least in the beginning, or you'll never get anywhere.
I wouldn't say that it's all that hard to master, esp. compared with games like Tigris & Euphrates or Vinci, but it definitely has a high enough level of strategy to be fun even for fairly hard-core gamers.
This is why you cant either really "draw window contents while dragging" or true transparency; both work by taking a screenshot and drawing that.
If the window manager is written to allow it, there's no reason you can't draw window contents while dragging them in X. I'm not sure if any WMs today do that, or if they just let you see the static contents of the window while dragging. But it's not a limitation in X.
This doesn't mean we should abandon X. (Not that the parent advocated this, but there's some noise about it from others who make similar comments.) It means we should continue developing it (and apps and WMs that run on it) to be better.
What the fuck is a MIT-MAGIC-COOKIE-1?
It's used for authenticating clients, so you can do things like run the app on a different computer than the one you're sitting at. If you use tools like ssh to remotely log in, which automatically handles the authentication, you shouldn't ever see this.
I agree that the content does not belong to me.
However, according to this reasoning, book publishers (and newspaper publishers, and other producers of print media) should have control over lights in my environment, because I'm using them to read their stuff.
I prefer this approach: Part of the "terms of service" of making content publically available on the World Wide Web is accepting that someone can fetch that content and browse it in any reader they want.
I'll throw out some of my favorites, too:
Anchor Steam Ale. Amber, with just the right amount of hops (IMHO). My favorite beer. Based in San Francisco, but available in many parts of the US.
Anchor Steam Porter. If you want something on the dark side, but not as heavy as Guiness.
Kirin Ichiban. One of the lightest beers I like.
Pyramid beers, esp. the Apricot Ale, which is one of my favorite summer beers.
I'll second the Sam Adams and Sierra Nevada Pale Ale recommendations.
Alaskan Amber Ale. Only ever saw it in the Seattle area, but have been looking for it ever since. Yum.
I don't understand. What settings are you talking about?
What happens when an X application has unsaved data and you tell the system to shut down? It doesn't even try to help you with an orderly shutdown so you can get your data saved. Everything instantly disappears!!!
These are not problems with the architecture of X. In fact, some applications we have right now save their state if X goes away. I just tried it with emacs, and even if you kill the X server out from under it, it saves recover files for any changed buffers.
I don't think Ctrl-Alt-Backspace is especially "easy", but it's not hard to disable if you don't like it.
[We're wandering a bit afield of the actual article, and this is buried so deeply I don't know if anyone will read it, but...]
The parent (and gp) bring up an issue that I think is really important re morality: Is morality relative or absolute?
Judaism and Christianity are clearly on the moral absolutism side. (AFAIK other religions are, too, but I'm not as familiar with them, so I'll only talk about these two.) These religions claim that morality is not related to culture or society, but is part of the nature of the universe (and ultimately from God). Adherents of these religions may disagree on what they are, and even what evidence or data are valid for determining what they are, but they agree that whatever morality is, it is something that is Out There for us to discover/understand, not something we invent.
On the other side is moral relativism. I'm not in this camp, but from what I understand it's basically that morality is not a property of the universe, or handed down from (a) god(s), or anything like that. I'm not sure if all moral relativists believe that morality is a construction of people/culture/society, but that's the form I've seen most often.
I think a more analogous response would be to refuse to operate, and to destroy the contents of the trunk (for example, setting fire and/or crushing).
Although literally I agree, I think you're overstating the probability of party change. There's no proof it cannot change, but there is good reason to think the US is unlikely to ever have anything but a two-party system: Duverger's law. Thanks to the US winner-take-all voting system, it's extremely difficult for 3rd party candidates to be elected.
I agree with the parent (and disagree with the gp).
2001 is really good in parts, but overall it bored me. The book is much, much better. The movie has too many slow sections.
Both the book and the movie raise interesting, and very sci-fi-y issues, but the movie just wasn't all that entertaining. Other movies have raised similar issues and done so much better, like Blade Runner (as others pointed out).
As to its scientific accuracy, someone else already debunked that, but I think it's irrelevant. I can't think of a movie example right now, but there are great sci fi books that have bad science or no science, such as The Left Hand of Darkness by Le Guin, or The Moon is a Harsh Mistress by Heinlein, or The Martian Chronicles by Bradbury.
I do like it when sci fi handles the science well (for example, the star fury maneuvers in B5) and cringe when it doesn't (mitochlorians in SW I), but the other aspects of the book, movie, or TV show are so much more important.
But I think he misses a really, really important point about both checked exceptions and static typing. In a data structures class in college, the professor suggested that we think about a program not as a way to tell the computer what to do, but as a way to tell other people what we wanted the computer to do. In this regard, checked exceptions and static typing are a huge help.
I've been a big Python fan for years, and I recently used a big Python codebase for a project. I found it hard to figure out what was going on and how I should use it, in large part because I didn't know what the constraints were on parameters to pass to functions. If they'd been typed, I would have known what methods they needed to implement. Of course, I could read the code, and that's what I did, but it's a lot harder than reading the javadoc (or docbook or pick your favorite automatically generated docs for C/C++ or Java).
Similarly for exceptions: if there are no checked exceptions, then as a user of a piece of code, I have no idea what exceptions it might throw. (Yes, if unchecked exceptions exist, I'll never know when they can be thrown.)
Of course, we could overcome all these problems with documentation. And if you believe that, I've got a bridge to sell you...
I kept watching even though I was initially unimpressed because I was a huge fan of Buffy and Angel, so I expected Joss to do more stuff that I liked. Also, series often get off to bad starts but turn out to be really good (e.g., ST:TNG).
BTW, I do have a Tivo, so recording it was pretty easy. I think I saw all the ones that were on Fox, but it's possible I missed a few.
And maybe if it had gone on longer or if I'd seen them in the proper order (as opposed to the aired order), I have liked it more.
No complaints about the effects. The characters were likable enough, but I thought the writing wasn't nearly as good as for Buffy & Angel. (Overall, that is.)
Ok, I may get flamed into oblivion for this, but I'm genuinely curious, so:
What's the big draw of Firefly? I loved Buffy and Angel, but I just don't see why so many people seem so taken with Firefly. I saw all the eps that aired on TV and it just seems mediocre to me. Is it that I'm not a big western fan?
You're right that usability includes more than just learnability by novices. However, I'm glad to see people studying learnability for Linux because it's something that's really hard for the developers to get right on their own (they know the software so well it's hard to see it with the midset of a novice). Also, programs for Unix and X are traditionally pretty expert-friendly, but often novice-hostile. So I think it's good that learnability is being studied, as a sort of balance.
It would be better to call it a "learnability study" than a "usability study", though.
The role of natural language in a multimodal interface.
In Proceedings of the ACM Symposium on User Interface and Software Technology (UIST), pages 143-149. ACM, ACM Press, November 1992. In ACM DL Ben Shneiderman.
Human Factors for Informatics Usability, chapter 14, pages 325-342.
Cambridge University Press, 1991.
Although the first focuses on natural language, many points apply to CLI, too.
I agree, 1st-person perspective does not have to equal twitch. One of the Might & Magic games (#8?) was 1st person with realtime non-combat and the option of turn-based or realtime during combat. And Wizardry 8 was also realtime outside combat and turn-based in combat. I thought that worked well in both of those games.
Deus Ex was also a great game for us non-twich players, too, even though it was 1st person and all realtime.
Still, I hope they keep the 3rd person perspective for Fallout 3. I like managing tactics in a multi-person party, and that would be hard to do in 1st person.
Originally, OSs like Linux and *BSD weren't at all usable by ordinary people. They're a lot more novice-friendly now, and becoming moreso all the time. I think file formats are still the single largest barrier. Apps like OpenOffice and AbiWord have put a lot of effort into MS compatibility, but it's still not 100%*.
And there are some apps that people need that just don't exist for other platforms.
Inertia is also a big factor.
* I applaud their efforts so far, and recognize that it's a really hard problem. I just OpenOffice whenever possible.
I've been using Netbeans off and on for a few years (along with emacs), and like it pretty well. I tried Eclipse a few months ago, and I found it a lot harder to use, and I didn't like the look & feel as much in general. Some people prefer the Eclipse UI, I guess. YMMV.
I'm running on a 2.2GHz machine, so Netbeans seems plenty responsive to me most of the time. I can understand why people on slower hardware might prefer Eclipse.
I completely disagree with Hyde about the importance of efficiency. Sure, I'd like apps to be smaller and faster. But 99% of the time, what I want to be improved in apps I use are:
* Usability
* Security
* Learnability
As a developer, I also rarely care about efficiency. I'd much rather developers spent more time making their code:
* Readable
* Maintainable
* Debuggable
I also agree with other comments that even if you think efficiency is important, assembly by itself does not help very much in understand what's efficient. That's because so many other factors besides the lines of code impact how your program runs, such as:
* Compiler and runtime environment (e.g., JVM)
* OS implementation (e.g., scheduler, virtual memory management)
* CPU architecture (e.g., pipeline, cache, superscalar execution)
Would knowing assembly be better than not knowing it? Sure. But considering all the things that it would benefit a programmer to know, how important is assembly? For the vast majority of applications out there, I think assembly is not nearly as important as many other things.