Why Language Advocacy is Bad 212
richw showed us
an excellent story talking about why language advocacy is bad. Its an excellent piece, and although many of the points he writes about are specifically related to Perl Programming, many of them can be equally applied to the irrational ways that people approach things like politics or Slashdot discussions.
Yeah, but it's here to stay (Score:2)
I don't think anyone would argue that the often irrational language advocacy that we see here and in other technical forums is a bad thing, because it obscures the fact that different tools are good for different tasks. Rationally, that's obvious, but the programming community isn't really very rational when it comes to discussions like this...
It seems as though any time a group of people discuss something they can't help but to get defensive about their beliefs. Maybe it's indicative of the maturity level of a lot of coders, especially the more vocal ones that have the time to post a lot. After all, if you're old enough to act like a grown up then you've probably got a job and less time to waste on places like /. Which is why it seems as though most /. posters have the emotional maturity of 15 year olds I suppose.
Unfortunately this all means that what could potentially be a very useful discussion for people interested in picking up new techniques and ideas devolves into a firefight between people who have backed themselves into a corner and have no intention of getting out.
Why do programming languages generate such heated and zealous "discussions"? Maybe it's again because the people invovled are seeking some kind of group identity which they're lacking in real life. In lieu of having a social group of friends, they idenitfy themselves as "Perl hackers" or "Java programmers" or whatever. Then when their "group" is perceived as being under threat, they fight back to protect what they see as an instiution that legitamises them, even if it isn't really real.
Re:The Sapir-Wharf Hypothesis (Score:2)
Language Advocacy Is Great! -- for whom? (Score:2)
I agree that language advocacy is very useful to outsiders, but I think the point is that sometimes it can be bad for the practicioners, especially when it gets petty.
The language must fit the problem (Score:3)
People who are strong supporters one any one language are like carpenters who really like crowbars, so much so that they try to use them as hammers, saws, rulers, etc... and spend a very long time fighting with the wrong tool for the job. Needless to say, a carpenter that behaves like that is not a very efficient one, and not one you'd want to hire if you with to have your house completed in finite time.
Re:Language Advocacy Is Great! -- when done right. (Score:2)
I thought the entire Florida fiasco was criminal, for one reason and one reason only. No one ever mentioned how incredibly statistically insignificant the whole thing was, least of all the media.
Amen to that. What we had in FL is a tie to within any reasonable estimate of measurement error of the machine counts. I happen to think that if the possible irregularities had been raised in advance, before anybody had a specific stake in the outcome, standards for manual inspections of non-readable balots could have been agreed upon to reduce the margin of error significantly.
(laboring mightily to bring this back on topic)
This point of view seems eminently reasonable to me, but in all honesty I have to admit that I don't know whether I would have felt differently had things broken the other way. Having a stake in the outcome irretrievably pollutes my objectivity -- which is why these matters need to be decided in advance.
It is amusing how the debate about the whole taxonomy of chads does resemble a language war.
(veering wildly off course again)
Of course, the real problem with the system is winner-take-all plurality voting, which is a blunt and imprecise instrument. In terms of the "will of the people", the people don't particularly will one or the other of these candidates any more, even nationwide in the popular vote.
Who won? Bush, maybe. Who lost? We did. What are we going to do about it? Probably nothing. That's politics for you.
I don't think this process was, in itself, bad. Either way we would have had a president with limited legitimacy, no mandate, and a weak coalition. Whether this will change things -- well, things have a way of changing when you don't expect them to and not changing when you're sure they will. The great thing about this country is that no matter who's in there we seem to muddle through. We survived Nixon after all.
Re:The best kind of advocate (Score:1)
Re:Advocacy (Score:2)
Example 1: I purchased the C-64 because it was superior to the Apple II in the ways that were important to me. Cost, features, software availability and the fact all my friends had one.
Example 2: I spent 5 years of my professional career working with Microsoft products because I found them to be better than the competition.
Example 3: I'm a Democrat because I can't stomach the lousy arguments the Republicans put forth. This election fiasco only cemented my dislike of the party.
Keeping an open mind is fine, but once you've investigated the options and made a choice, you're not arguing to protect your position but rather because you are right.
Re:Pascal and the short sighted (Score:1)
I had heard of Ada when I knew Pascal, but I figured that I'd never be able to afford an Ada Compiler (or even find one...) and Turbo Pascal had object support anyhow, so what was I missing?
Of course C has its limits too, as does C++. But at least I had heard of those back then. And at least we have decent C compilers...
Also, WTF is Sather? I've played around with a few languages, but not *that* many...
---
pb Reply or e-mail; don't vaguely moderate [ncsu.edu].
Resume Advocacy (Score:1)
.
interviewie: "The langauges that I have years of experience with and am deeply familiar with are of course the best languages and most suited towards what ever job it is that you have in mind for me."
Re:It's all tribalism (Score:1)
the root of the problem is that we tend to organize ourselves into tribes
Being part of a tribe is one step up from being a single family. And being part of a nation is one higher than being a tribe... each larger organisation brings new potentials for good and bad ... so tribes aren't inherently bad, so long as the problems you're trying to solve can be solved at the level of the tribe.
Today we have an environmental problem, which cannot be solved at the level of the 'nation'. It transcends national boundaries, and demands a worldcentric identity/process/solution. Some problems can't even be seen until you transcend up a level. The car is not a problem to the individual motorist (it gets him from A to B), but it is a problem to the individual planet.
Using this approach, the linux/microsoft tribalism will persist until both 'tribes' can be united in a higher and broader perspective. Maybe the internet is that perspective. Maybe we're still waiting.
Re:Real world people are tied to their skill sets (Score:1)
Absolutely true. Its been mentioned around here many times that a "good programmer" is good irrespective of the languages he or she knows. However, even good programmers need to get past a HR person who has a sheet of paper on their desk that says "2 years PPL/ASD/SUA* programming in a KDF/HFG/SAFD* environment".
Subconsciously, I think a lot of people are hoping that their advocacy of a particular language/platform/etc. will boost the odds that the next cool job offer will have the the check boxes that match his or her skills.
The other motivator may be fear. If you DON'T advocate your favorite language, maybe in three years it will be as popular as writing TSRs for DOS**.
Finally, no one likes being on the "losing side". In depth knowlege of a defunct technology or language is the programmer equivalent of rooting for the Washington Wizards***. Unlike professional basketball, however, maybe rooting for the language may actually keep it in the public consciousness. And, if it's in the public consciousness, maybe your skills are still in demand.
I'm not defending mindless advocacy, but I do believe it involves more that the black and white statement "use the right tool for the job."
* random acronyms used for artistic effect :)
** Who knows? There were probably a few people who were happy they knew COBAL right around 1999.
*** Come on Jordan! Whip those guys into shape!
Re:Only novice or unprofessional developers (Score:1)
The main difference that I have found in Computer science (refeering just to programming side of thing, not algorithms and stuff. that's another topic) is that it's not important what language you use but how you accomplish your goal. A real experienced programmer will take a look at the job, and choose a language based on the task at hand. If not you end up with emulators written in java and web interfaces in assembler (well, not that bad).
I'm only about half done my CS degree, but find myself turning to different languages based on what problems I have to solve. Languages are tools. Let's use hammers to hammer in nails and screwdrivers for screws and not resolve to arguing about how much better a hammer is.
use a language where it's appropriate (Score:5)
The author is restating an extremely valid point that is realized by most decent programmers: use a language where it is appropriate.
I learned python before perl, and thought it was one of the coolest languages around (still do), and for about a year, did all my scripting in it. Then I had to debug some perl code, and doing so, managed to teach myself some perl. After learnign a bit more, I said to myself "hey, perl rocks!", and then proceeded to script solely in perl for the next 6 months or so.
Then I started noticing how each had advantages in certain domains. Doing any sort of work with serious data structures in perl is annoying. Perl's pseudo-typing, and automatic flattening of lists (because lists can only hold scalars.. dontcha know), really makes it annoying to handle heirarchical data. You have to start using references, which makes code ugly and hard to read. Python is much more suited for that sort of thing.
On the other hand, doing stuff like traversing the the filesystem quickly, munging text, ad-hoc parsing, is extremely sweet in perl. Python is just too verbose when it comes to those kind of things. My home machine is littered with perl scripts that automate administrative tasks.
Use a language where it's fit, and dont take it personally when people point out that a language is not fit for particular task (they're usually right).
-Laxitive
Re:But what about compounded-advocacy? (Score:1)
This type of "advocacy" extends to all areas of life these days. People assume that they have the only well-thought out opinions on life, the universe, et al. and don't take into account that others may have thought just as long and hard about things and come up with a different conclusion. Yes, it is possible for a clear-thinking individual to be pro-life. Yes, choosing Linux does indeed make sense in lots of situations. Yes, Visual Basic (and VB.NET) is a great language for certain tasks.
I think we should all respect each other and try to understand more about why another person has chosen the viewpoint that they have. It may serve to change our minds, or re-enforce our position, but either way we will be better people for it.
-----
Re:Language Advocacy Is Great! (Score:1)
I've always thought that Perl has a Lisp-spirit hiding in there somewhere, and I've programmed with it accordingly. Unfortunately the syntax is not meant to bring this forth, and it ends up as a mash of punctuation when one tries this programming style with it.
I've lately gotten very interested in Ruby, since it appears to have taken most of the good part of Perl and made it into a more logical language, with even more of the features of Scheme and Lisp. Unfortunately, even Ruby isn't meant to be used the way I like.
Re:The world should use... (Score:1)
"Homo sum: humani nil a me alienum puto"
(I am a man: nothing human is alien to me)
Re:Operating Systems and other software (Score:1)
Ummm scientist, logical... objective... Have you been to a grad school lately? When I think of scientists I think: grants, scheming, politics, building a grad student empire and attaching your name to all their papers.
Universities operate under some different rules nowadays (different from 30 years ago as well as different from the private sector). By and large, engineering and science curricula do not encourage subjectivity. Misrepresenting facts seems to be a convenient and occasionally necessary way to get the means to do the work, but this runs counter to good science.
Of course, it cuts the other way as well. Objectivity has been used as salve to the conscience for those working on projects that bring up ethical quandaries.
-Jennifer
On a similar theme (Score:2)
This applies to lots of other things... like OS (Score:2)
A lot of people learn a language, like it, and look for problems to solve with it. More objective people, often, I think, more experienced people, look for problems and then decide what tools to use to solve them. Children do this. You give them a hammer, they look for things to hammer. You look at a machinist, or a carpenter, and he looks at his problem and chooses or even invents the tools needed to do the job.
The same thing goes for operating systems. Linux zealots always try to tell you how you can do everything you need with linux. Isn't this the same thing exactly? Sure, linux can do anything. SO can perl. Nevermind that both were written in C
People who think syntax is unimportant... (Score:1)
...have never concatenated strings in VBScript. The semantics are no different from string concatenation in any other language, but the syntax has a major effect on ease of programming and code readability.
My Beautiful Report Language [sourceforge.net] does extend Scheme semantics, but the way it extends Scheme syntax is arguably the more useful aspect, especially in web/database app development.
Tail-call elimination seems to be part of the Sun Java implementation if not part of the spec, based on benchmarking of recursive/non-recursive methods.
Two extracted points (Score:1)
Someone below mentioned that advocacy by implementation is great, and works very well. Advocacy by implementation. What a great summary!
The other point was from the article: "Passion doesn't convince. Passion makes you look like an idiot or an asshole." I've been trying to make the same point for years, but never quite got it so succinctly. Bravo!
Re:advocate semantics, not languages (Score:1)
Using my terminology, You are actually making my point by lapsing into the "advocate language" trap that I'm advocating against. You will fail in anything like the short run to get programmers to change to the languages you are advocating. But, we could advocate and add tail recursive semantics to C and Perl, and programmers could immediately begin to use a semantic notion of iteration that becomes more functional and weans them from the need for "for" and "while" loops. Incrementally, we'd get to where you want to be more quickly.
Strangely, you probably think that you are thinking more "high level" than I am, and yet your thinking indicates that you dive right into compiler implementation rather than staying at the level of programmer semantics, though perhaps I set you off by using a term that you think refers to a compiler optimization. I'm pointing that out not to tweak your nose, but to advocate for how I think we can best educate programmers: teach them one semantic at a time. If I should use different terminology to make this point, I'd love to be educated.
Re:People who think syntax is unimportant... (Score:1)
BTW, having syntax be a variant property does make it unimportant.
Thanks for the info about Java's stack, though if they don't guarantee it, it would not be a good idea to rely on it. If they do guarantee it, Java programmers should be taught the semantic implications because they could write recursive, simpler to read and debug, code.
Re:Nationalism (Score:1)
neither tribalism nor relativism are correct (Score:2)
What an excellent article!
I especially liked the point at the end, that languages do have strengths and weaknesses and are not all created equal.
I firmly believe that we hackers at Evil Geniuses For A Better Tomorrow could not have implemented Mojo Nation [mojonation.net] as quickly as we did if we had been using Java instead of Python.
Nonetheless, Mark-Jason Dominus is exactly right that tribalism is not a sane or effective way to grow, as a professional or as an industry. Developers and users of other programming languages are not our enemies, they are our friends.
Regards,
Zooko
Re:There's always somebody (Score:1)
Re:Advocacy (Score:1)
For instance, you make an important distinction when you talk about purchasing a C-64 over an Apple ][ because it is superior in ways that matter to you. Acknowledging implicitly that the C-64 had shortcomings in areas where the Apple product shone, albiet areas not important to you. I would suspect that you would be able to maintain a reasonable level of discourse when you discussed the differences.
For an example of the kind of "oops now I have to protect my investment" advocacy I am talking about, check out www.planetdaikatana.com or www.dndmovie.com. These folks are desperately trying to convince themselves that their investment was a wise one. Not unlike your average TRS-80 owner back in the '80s.
Re: suggestion for BRL (Score:1)
Only novice or unprofessional developers (Score:2)
Scheme minimalism and getting used to Scheme (Score:1)
The Scheme standard is fairly minimal because its main use is in education, and they want it to be easy to implement a complete Scheme. Real implementations generally include things like xor. There's a movement [schemers.org] afoot to standardize such extensions among Scheme implementations.
The reason one doesn't totally get used to programming in Scheme even after a semester course is that the course is usually teaching a series of progressively more interesting CS principles, not giving you lots of practice at one level before moving on to the next. You have to use Scheme in real-world work for a while to get the kind of repetition that familiarizes you with the common constructs and techniques.
The Ironic Advocate (Score:2)
I seem to keep saying this, but your response is very ironic.
I'm assuming you read past the first sentence, so it is very ironic that you're copping the very attitude that Dominus is criticizing. He does not say advocacy is bad -- he says exactly the opposite. But he criticizes advocates who reduce all arguments to statments of the form "x is (good|bad)". Which is exactly what you're doing now.
__________________
Re:But what about compounded-advocacy? (Score:2)
---
Is Slashdot Broken (Score:2)
slashdot may have a db problem. I was reading
an article on Programming Advocacy, Hate,
however when I selected the link to read the
discussions on the article I found none.
I found some "fp" conversations, the Jon Katz is
gay code, and some topics on Bush's stupidity
and some Texas Gov. and Jesus.
If someone could please point me to the correct
discussion group pertaining to the above mentioned article, I would really appreciate it.
Thanks.
Re:The world should use... (Score:3)
________________________________
cis.SCRIPTOR
Damian Conway (damian@conway.org [mailto])
IUS TRANSCRIBENDI
Copyright (c) 2000, Damian Conway. All Rights Reserved.
This module is free software. It may be used, redistributed and/or modified under the terms of the Perl Artistic License (see http://www.perl.com/perl/misc/Artistic.html [perl.com])
MUTATIONES IN EDITIO 0.01
Initial release.
ADITUS
Lingua::Romana::Perligata has been uploaded to the CPAN and is also available from:
http://www.csse.monash.edu.au/~damian/CPAN/Lingua- Romana-Perligata.tar.gz [monash.edu.au]
_____________________
There you go. Isn't that a much saner, much more legible language? :-)
Re:Learning More Langauges Solves This (Score:2)
I'm all for people learning different kinds of languages, but not (just) to prevent them from saying silly things. Silly people will say silly things no matter how well-informed they are. (OK, so the subject of their silliness may move around a bit.) And it's certainly not to educate them about why language X, which they used productively for some time, is inferior to language Y in some regard (although that sounds a bit more like your argument). People should try different things because new experiences teach them about new problems and new ways to solve problems old and new. Even if they continue to use their favorite tools rather than the ones that a first principles analysis might suggest.
So, along the lines of this particular thread, it's a bit amusing to note that one of the best books on object-oriented programming I have ever seen is Damian Conway's Object-oriented Perl [monash.edu.au] book. And the reason for this is not because it's a perl book or even a book on OO, but because it's a book that shows you a mind-bogglingly large number of ways to look at problems in ways that can be usefully construed as being "object-oriented". And, from that, you get a much better idea about what objects really are. And it's fun. It turns out that the author, a CS professor who does research and teaching on OO things, found perl to be useful for this book due to its chameleonality. Yes, a person who knows more about Smalltalk and C++ and Self and Python and the rest of it than do most of us found that a good language to talk about all of these things was Perl, although it may well have been not the "best" language to use for any of them.
Not everything is clearly black and white (Score:2)
Periodically I've mentioned a shortcoming of a language, and I've been railed by people who are personally insulted. Why is it so hard to say language X is good here and language Y is good there?
This is similar to the OS "wars." If I say something good about Windows, I'm branded as a clueless Microsoftie. If I say something bad about Linux, I get flamed. Why I can't I use both?
I think the root of the problem is narrowness of experience. People advocate what they know and put down what they don't. That's stupid. Linux advocacy is being hurt by people who don't know anything about operating systems other than Linux and Windows. I would hardly listen to someone with such shallow knowledge. Similarly, people who get bent out of shape over programming language choice are not worth talking to.
Re:Operating Systems and other software (Score:2)
Advocacy vs. Stupidity (Score:2)
Sometimes people put down a language or consider it to be not good enough for use when they don't know what they're talking about. They will say things such as "JavaBeans can do this, and perl can't..." or something very similar but equally as silly. For example, I had a technician at a top-rated e-commerce applications software company send me an email with the following line just a week ago:
"You might have enough RAM. It's the Perl Module. Perl is used for text modification only. However, -APPLICATION- uses Perl for file transfer in the -WIZARD- and your files might be too large for Perl Module to handle. Thus, you'll have to manually copy those files; increasing RAM is not the solution."
If the author of this message had known anything about which they were speaking, they wouldn't have 1) said that perl was for "text modification only" (although it does it well), and 2) they would have realized that there are many ways to handle large file transfers with perl, without reading the entire file into RAM and then sending it over the network.
So my point is that while advocacy may be a negative issue, sometimes people have to stand up for a certain language because ill-minded, uneducated fools are circulating false information about the language that would prove hurtful to the userbase. And these views become popular especially in light of marketing a proprietary language such as VB and ASP in order to sell more of a product (VB and IIS). These marketing schemes sometimes hurt developers that are already established in a career because the language they program in becomes unpopular in the eyes of management (who are the worst people to chose a language), and they may lose their job if they cannot quickly expand their skill sets.
Bottom line is: advocacy is an evil, but it just may be a necessary evil.
Re:You Are Not A Member (Score:2)
Re:There's always somebody (Score:2)
One of the things that annoys me more than anything in online communities is that invariably, they devolve into a group of people who can't handle any dissent amongst themselves. Everything must be happy and fun , and any discussion that might actually cause conflict is met with derision and fear.
To these people, I say this: what is wrong with arguing? People are human. People have disagreements. And quite frankly, how else can you test your own beliefs other than defending them?
I'd rather have my beliefs challenged so that I am forced to actually examine them, instead of just blindly believing whatever the group wants me to. Unfortunately, it seems that most people don't agree with me. They see arguments as evil.
Of course, these are the same people that vote for the same party every year, because after all, "my parents were [X], and therefore so am I". To them, actually having a unique thought or examining the ideals of their political party is crazy talk. So really, I guess I can't expect much of them.
Still, it would be nice to see a forum where people can actually discuss things in a civilized manner. K5 does a decent job of this at times, but even there it can be difficult to do so. But hey, who knows, it may work out eventually. One thing is for sure though: it sure as hell won't happen on
Learning More Langauges Solves This (Score:5)
The problem is narrow-minded programmers who learn 1 langauge or 1 paradigm (functional, Object Oriented, procedural, etc) and refuse to open their minds to any alternatives no matter how well suited they would be to solving the task at hand.
Remember people, programming languages are merely tools and like most tools they are good at performing specific tasks and not-so-good at performing other. A hammer is great at removing nails stuck in a wall but would be useless at unscrewing the back of your VCR. Use the right tool for the job and keep in mind that your favorite tool is not always the right one.
Grabel's Law
Operating Systems and other software (Score:5)
You know, the same can be said for operating systems. Replace the bit about strong typing, etc. with scheduling, etc. and it should sound familiar. I guess the point is that everybody's going to have a certain way about solving a task and they're going to have prefered tools for doing it. Suggesting alternatives or comparing the way one tool works to another often leads to feelings of criticism, even where none was intended.
Funny that scientists are supposed to be logical and objective when engaged in their work but I guess programming always has been a mixture of science and art.
-Jennifer
Re:The language must fit the problem (Score:3)
However, here is a problem. If you do not know what language fits the problem, then you are destined to work with a language that is less efficient at solving the problem (in terms of time, space, complexity, all of the above). Compare writing a parser in C vs. writing one in Perl, or writing set operations (from scratch, not the STL) vs. using the built-in language support of Pascal, or writing a thread-driven program using C vs. using the language-centric thread features of Java. There is give and take, and there is general programming languages vs. specialty programming languages. However, the only way to really know what a language offers is through advocacy. Now I'm not talking fanatical advocacy, but rather discussions about the merits of one language over another. Its all about give and take. Find the language with the features you need to solve the problem at hand.
Re:There's always somebody (Score:2)
To be a really good debater, you've got to absolutely demolish your opponents argument, while remembering that you also want to go get a beer with them after you are done.
Re:It's all tribalism (Score:2)
We will never recognize our unity as "humans" until we have a non-human enemy to face, and we can all agree that it is an enemy.
Whether that enemy comes from earth or outside is meaningless. Our differences will continue to divide until we _NEED_ our similarities and unity to help us...
And in the sci-fi & cynic world, even then some "humans" will take advantage of that unity behind the scenes to advance themselves...
I liked this answer about language advocacy... (Score:3)
In 99% of the cases, programming language selection is dominated by business considerations, not by technical considerations. Things that really end up mattering are things like availability of programming environment for the development machine, availability of runtime environment(s) for the deployment machine(s), licensing/legal issues of the runtime and/or development environments, availability of trained developers, availability of consulting services, and corporate culture/politics. These business considerations generally play a much greater role than compile time performance, runtime performance, static vs. dynamic typing, static vs. dynamic binding, etc.
Anyone who argues in favor of one language over another in a purely technical manner (i.e., who ignores the dominant business issues) exposes themself as a techie weenie, and deserves not to be heard.
Identification (Score:3)
... is the problem. When I hear a criticism of my favorite tool/platform/OS/political party/religion/thing, I immediately become defensive. Why? Because I chose the thing, so any criticism of the thing becomes a criticism of my own intelligence, judgement, values or beliefs. And the more I invest in the thing, the more likely I am to identify and take offense with criticisms directed toward it.
To paraphrase and extend the article's last point, this identification is not necessarily a bad thing. The problem is that many (most?) people don't handle criticism very well, no matter how constructive. So we get defensive reactions which beget counter-offensive criticism and we devolve into useless shouting matches.
Re:As some old Texas politician used to say.... (Score:2)
It was "Ma" Ferguson IIRC, towards the beginning of the 20th (like before 1920). She was texas's first woman gov, again IIRC. Sorry, even though I live in Texas, Texas History doesn't interest me that much. :-)
--
Re:Language Advocacy Is Great! (Score:2)
I tend to think of it as "C++ Light" + binary portability.
Well that's my 2 cents.
(BTW, I used to do a lot of Pascal and Object Pascal (a language that I still like a lot) programming, and I used to do a tiny bit of C/C++ programming, but I'm badly out of practice now that I'm in cushy Java-land; I have two Peter Norton x86 assembly books sitting on my desk which I have been trying to learn something from, but so far it's been like squeezing water from a stone
Re:Language Advocacy Is Great! -- when done right. (Score:2)
But that would be something bad about the Language Advocates, and not necessarily the concept of Language Advocacy itself.
I agree with you, BTW; back in the day, I was involved in Pascal vs. C Syntax Flamewars over in 'comp.lang.pascal.misc'. What annoyed me the most was that it was all about syntax. I mean, there's a Pascal-to-C converter, for crissake! I even found one that tried to do it the other way around, although that's tougher. Arguing over 'begin end' versus '{ }' gets old really fast.
So basically, if I'm going to argue about a language, I try not to do it based purely on syntax, which is something the present "Perl vs. Python" flamewars seem to not grasp. Believe me, both languages are ugly in their own special way, but I'd still rather hear about actual language features, as in, after the code is tokenized, what can it do...
---
pb Reply or e-mail; don't vaguely moderate [ncsu.edu].
The Sapir-Wharf Hypothesis (Score:2)
This is a famous question in natural language linguistics, known as the Sapir-Wharf hypothesis. It posits that what humans can think about is limited by the set of terms in their language. So far, all of the experimental evidence disproves it, even though the idea sounds very intuitive. It appears that all human languages meet a certain level of expressivity that allows us to think and talk about anything, no matter the language used.
In computer languages, which are all artificial and of much smaller scope than any natural language, the question is still open. Anecdotally, programmers know that some programming languages make solving certain categories of problems easier than others, sometimes by orders of magnitude. It's been suggested on Slashdot before that a variant of the Sapir-Wharf hypothesis may hold true for computer languages, even if it doesn't for human ones.
Who'd'a thunk Philosophy and Computer Science would have anything in common?I've always felt that computer science is in many ways a field of applied philosophy. There are many crossovers between the two fields. Consider, for example, that the Boolean logic used as the basis of all digital computing was invented by a theologian as a way of answering questions in metaphysics and theology.
Re:Oh please! (Score:2)
You could come across some reference on the web, or there could be a presentation in a more general users' group. The point is a Perl users' group isn't appropriate to talk about strong typing and or ML. I like Linux but if I presented a talk about Linux to a Windows users' group, I wouldn't expect a positive reception even if I was polite and never slammed Windows in my talk. It just would be inappropriate.
Nowithstanding that the article describes using ML to illustrate a point, and precisely not to say ML is so great.
Yes, but in all his complaints about "tribalism" he doesn't seem to realize why his presentation may have been inappropriate to its venue.
I haven't actually got the first clue about ML specifically
It's a LISP variant -- not too bad as such things go, although I've never been much of a functional language fan myself. We used it briefly in a programming languages class.
but I've been through my share of languages over the years - substitute your favourite language you don't know about - Lua, Snobol, Forth
Me too. I've been into Forth and I played around with Lua briefly. Languages are fun.
Re:MS does suck (Score:2)
I agree wholeheartedly (Score:2)
Its very frustrating not to be able to carry on productive conversations with other people simply because they are set on making their language look good or your language look bad, simply for the personal gratification and the stability it brings. Tribalism is one unfortunate bug in humanity; it's too bad we can't exterminate it.
Re:Language Advocacy Is Great! (Score:2)
Conclusion
I don't really hate advocacy. I just hate the way we do it most
of the time. We do it in a dumb way. And I think the discoursive
habits we pick up as a result are going to impede the progress of
programming languages for a long time.
Advocacy is either good or evil (Score:2)
Advocacy is either good or evil!
You must choose one viewpoint or the other!
Advocacy in the OS world... (Score:2)
One of the websites I run has a bunch of documents linked off of it primarily in Word format _because that's what 100% of our customer base uses_; we set the standards. About three months ago I received an e-mail from a Linux user on the west coast stating that we should make the documents available in alternate formats to make it easier for non-Windows users to read them. Fine, good suggestion. But then he goes on for about half of a page ranting about how 'Windows People' always do this and why Windows sucks. Now this person probably also wonders why we don't use Linux. I wish he could have seen the look on my bosses face and heard the laughter as he pitched the printed copy in the trashcan.
Like the article says, when are people going to realize that there may be two right ways to do something?
ALG
Re:Language Advocacy Is Great! (Score:3)
In Scheme, you have to check what type something is. It isn't untyped, exactly, but you don't necessarily know what type a certain variable has until you check. If you don't check, bad things can happen. That's the disadvantage that this flexibility provides.
In Perl, you do the same thing for references, while other variable types are more explicit. I just wish those types had similar methods, but people have written this in too. (Since floats, ints and strings are all automatically converted in Perl, you have to basically write something to test if a string could also be a float or an int to see if it's a number originally. Unless there's another way to do it, of course.
I have nothing against either Perl or Scheme; I like them both. In fact, I was thinking about writing a Scheme interpreter in Perl, since Perl natively supports the features that Scheme requires. I just have to figure out a clean way to parse it all. The other advantages would of course be the extra libraries; Perl has a lot of awesome pre-written tools that Scheme generally lacks.
So, yeah, this sort of advocacy is fine until someone takes it the wrong way, and instead of listening to the arguments, has their feelings hurt. And I think that's all the article proves in the first place.
---
pb Reply or e-mail; don't vaguely moderate [ncsu.edu].
Crossing the line (Score:2)
Having your personal favourite tools for a job is one thing, and can actually be beneficial. It's something you're familiar with and proficient in. Even if it's not quite the best tool for the job, the fact that you're fluent in it will make up for small advantages that a different tool may have.
However, once you cross the line of "having a favourite" to "having only one" tool for everything, you've hurt yourself. Keeping an open mind towards new tools is essential. You may not always like them, and even if they are slightly better for a job, your familiarity with the old standby could still make up the difference. But refusing to try something different at all is going to extremely limit you. Even being aware of other tools and looking at their merits honestly, will teach you new things and new ways of thinking about a problem. You may even learn new ways of using your favourite tool by seeing the strengths of a different one.
Nobody wants to be obsolete (Score:2)
We start trying to come up with reasons why it's not really better: It doesn't give you enough control; it's not as efficient; it has fewer options...
PC vs. Mac. BSD vs. Mac. Mainframe vs. client-server. Command line vs. GUI. How many people were a little saddened to see MS-DOS fading into the mist, not because it was a great tool, but because they knew how to use it?
A language advocate needs [language X] to succeed, to be dominant, to be the best, because he has more status and more useful knowledge that way.
Bottom line, it's an ego thing.
it's about blind advocacy, not advocacy in general (Score:2)
The article is complaining about blind advocacy, in which people don't want to hear about advantages of other programming languages and don't want to know how their own might be improved. The article also complains about vague, uninformative, emotional advocacy.
Another useless form of advocacy is trying for a generalized comparison of two languages. There are so many different areas of programming in which the respective languages might have strengths/weaknesses that a meaningful discussion would take ages.
Useful advocacy takes one specific application and debates what language(s) would be best for it. In such a discussion, some amount of emotional attachment to a particular language can be helpful, provided it is translated into specific, informative words.
A better-suited language for a particular application won't be used if the app programmer doesn't know about it. In this context, advocacy is useful.
But then ... (Score:2)
even those guys over there, who we call the spawn of Satan, they might have a point. Yes, THOSE guys.
eeeeewwwwwwwwwwwhhhhhhh ......
Drink the KoolAid (Score:2)
Re:Oh please! (Score:2)
Or at least the person(s) in charge invited you to talk about strong typing. Fair enough. I rather assumed that they invited you for your well known Perl skills and you simply chose the topic yourself.
On the other hand, some of the complaints you dismiss as "tribalism" are quite relevant. "What's wrong with the way Perl does it?" is a perfectly valid question. You *should* have examples prepared that show how weak typing can lead to problems in certain cases. Otherwise why bother?
Re:Language Advocacy Is Great! (Score:2)
Re:Language Advocacy Is Great! (Score:2)
"Language Bigotry" = Destructive
I think Mark Dominus' article was an attempt to illustrate the dangers of the former drifting into the latter. Many of us tend to hang in the grey area between the two.
Re:Advocacy in the OS world©©© (Score:2)
--Parity
Re:Oh please! (Score:2)
That alone is an excellent reason to talk about strong typing and ML to Perl users. It's an excellent reason for Linux fans to learn about the strong points of alternate operating systems. Even Windows 2000 has some good ideas that might be worth investigating for Linux.
But if you were to get up in front of your average bunch of Linux programmers and talk about some of these good ideas in Windows 2000, everyone would get all defensive and immediately fall into the tribal warfare style of thinking which does no one any good.
Comments about "being the wrong venue" kind of miss the point.
Torrey Hoffman (Azog)
Re:Language Advocacy Is Great! (Score:2)
...and I think that you're trying to make the same point that I was: use the right tool for the job.
Part of advocacy has to do with presenting the facts. If you ask me if it's easy to do sytem programming tasks in C, I'll say "Hell yeah!"; if you ask me if it's easy to do threaded networked database access in C with a GUI, I'll say "Um... no, that's pretty tough, actually". And I might even recommend looking into Java, against my better judgement...
So, yes. Idiots are bad. Educate them. Ignore them. Flame them. But don't encourage them. And if someone asks you for your opinion, don't be an idiot either...
---
pb Reply or e-mail; don't vaguely moderate [ncsu.edu].
advocate semantics, not languages (Score:2)
and too bad more language advocates and language designers and language users don't understand that language semantics are the interesting thing.
Oh please! (Score:2)
Geeks are fundamentalists... (Score:2)
Unfortunately, it's human nature to lower a discussion to mudslinging. Done frequently enough, one starts casting aspersions on those who hold the opposite viewpoint. Compound that problem with the relative anonymity of [BBS, newsgroups, Slashdot], and it's easy for decorum to be neglected. As a result, people type things they would never say to someone's face. Earlier this week, I got into a donnybrook with an Eiffel programmer who, as far as I can tell, probably never considered the fact that some Slashdot readers use Visual Basic.
I have a page from a Dilbert calendar that sums things up quite nicely.
Dumb Guy on Bench: I teach my kids that these things are right and these things are wrong. Period. End of story.
Dogbert: Wouldn't that teach them to believe anything they're told without applying any critical thinking?
DGoB: I don't think about that.
Dogbert: Duh.
We're not scare-mongering/This is really happening - Radiohead
Language Advocacy is Good (Score:2)
I work in programming language research, and it stuns me daily how we are still stuck using ideas and languages from the 60s.
Listen, computing underground: You use linux or FreeBSD MacOS X or whatever because you think it's better, not because it's cooler or because The Man told you to or because you read an advertisement. So now, it is equally your responsibility to seek out programming languages and programming language concepts which are different. You are the people who turn great ideas in research into great ideas in practice.
By underground language, I do not mean more interpreted C clones with large toolboxes or domain-specific features (ie Perl, Python, Visual Basic, PHP, etc.) I mean genuinely different ideas; check out logic programming, functional programming, etc. Learn a language like Prolog, even if you never use it. Program something in ML or Haskell. Use an experimental research language like Cyclone or Tick-C. You'll probably find that they're lower on buzzwords and higher on actual useful features (or maybe you won't like their philosophy and can try a different one). There are plenty of places to read advocacy about languages like these, and without them, how can we hope to ever move to something new?
Re:Two extracted points (Score:2)
I've been passionately trying to make the same point for years, but instead of taking the point, people tend to just conclude that I'm some kind of idiot or asshole or something. Go figure.
--
They all suck. (Score:2)
All languages suck. Some suck more than others, some suck in different places or at different times, but they still all suck.
Unless I'm imagining things from the caffeinne wearing off, this would imply that committing to one language as the "One True Way" means committing to sucking.
T. M. Pederson
"...and so the moral of the story is: Always Make Backups."
Re:Hypocrite (Score:2)
advocacy vs. objectivity (Score:2)
substance, but the discussion of tribalism is somewhat
interesting.
Triabalism can be a problem all right. But I'd argue that
you want to keep the different tribes talking to each other,
even if it's only to engage in arguments.
The general trend in real discussion groups like
mailing lists or usenet is to engage in long, drawn out
wars that can either converge on enlightened compromise,
or harden into separate camps, but either way, the
people following the discussion will learn something
about the advantages or disadvantages of the two
approaches under discussion.
(Note: slashdot sucks for this purpose: discussions
die too quickly.)
My person feeling is that people who like to adopt a calm,
"professional" air tend to be kind of tedious and wishy-washy.
They're often so afraid to take a stand that they can barely
say anything useful.
But on the other hand, it might be worth considering the
possibility that both approaches toward discussion
("advocacy" and "objective consideration") may have their
uses, in the same way that different computer languages have
different uses.
It's gets your mind working in different ways...
As some old Texas politician used to say.... (Score:4)
(I think it was some governor from about 30 years ago... can't remember his name - at any rate, it is funny.)
Re:Language Advocacy Is Great! (Score:2)
And yes, once you start passing back references to anonymous functions in lists from other functions, it starts getting pretty ugly; and that's just the beginning. Then, when you try to see if that reference goes to a function, a number (or a string), another list, or something else, the fun continues...
Here was my original simple example; it gets uglier when you use more references for sublists, and then parse them. If you like native perl syntax, though, Data::Dumper works wonders...
Scheme:
(define descending
(lambda (n)
(cond
((zero? n) `())
(else (cons n (descending (sub1 n)))))))
(descending 10)
Perl:
#!/usr/bin/perl
$descending = sub {my $n = $_[0];
if (!$n){()}
else {($n, &$descending($n - 1))}
};
print "(", join " ", &$descending(10), ")\n";
Also, does this say something about Perl, or what?
Taco, you're on crack again! You couldn't post Slash to Slashdot even if you wanted to!!
...now pardon me while I insert extra text in my post to bypass the lameness filter. La de da de da...
---
pb Reply or e-mail; don't vaguely moderate [ncsu.edu].
Advocacy (Score:3)
Example 1. It's 1986 You just spent $900.00 kitting yourself out with a Commodore 64, 1541 Disc Drive, RGB Monitor, etc. etc. You are bragging about your new purchase around the watercooler, when some smartass begins to enumerate a thousand reasons that the Apple ][ outclasses the C-64. In order to "protect your investment" (i.e. continue to feel good about the $900.00 you just blew), you become a Commodore advocate.
Example 2. You have spent 5 years of your professional career working with Microsoft products exclusively. As a Microsoft professional, you now have a substantial investment of time into the operating systems and software Microsoft produces. Whenever you can, you will be pimping M$ to the max because it helps keep your investment's value high.
I think this also becomes apparent on a bigger scale, for example in the election fiasco you yankees just went through. Did anyone at any time who had any influence at all break party lines and say that they other side had a more convincing or righteous argument? Of course not, every step of the way, be it lawyers, judges, members of congress, election supervisors, whatever - every person's behaviour was dictated 100% by party politics. This is similar to the type of "advocacy" that the article's author was talking about, I think.
My solution (at least in terms of operating systems and programming) is to try to cover as many bases as possible and keep an open mind.
Re:Why Language Advocacy is Good (Score:2)
You don't change the wave (Score:2)
For example M$. Let me give a try...
Well Microsoft is a company like any other. It does OSes programs and other stuff. And has done this with relative quality.
Well almost... I remembered that first PC with that d... d.... Well with an experimental BASIC...
And windows 1.0. Yeah it was just buggy. First start anyway...
Yeah and there was that one with DOS 4.0. Yeah, a new step for Mankind, a good crash for the computer... Well, it happens...
Oooooh. Windows 3.0, 3.1, 3.11. How many work went into the... Well, how many things I lost...
And that surprise... "DOS will not be supported anymore". Yeah that one was great!..
And Windows95? Yeah good surprise. Couldn't have done it less buggy?
And that whoppla on NT? OOOOOOHHHHH MYYYYY!!! I remember when I administered a whole network. DAMN!
And the support... THAT DAMN user's support!!!! DAAAAAMNN!!!
And how many lost partitions, lost data, hours in the installation/revival/maintenance...
AND HOW MANY PROGRAMS GO TO LIMBO AFTER THE NEXT M$ UPDATE!!!!! THAT ONE WAS DAMN GREAT!
And how it wiped clean my OS/2 and Linux disks... YEAH GOOODDD!!!
And always eating, eating, eating, eating memory, disk space...
And the TAX!!!!! YEAH THE TAX. I ASKED FOR NT4 ONLY!!!!! WHY THE HELL I HAVE TO PAY FOR WIN95 ALSO?????
Oh? Ah? Microsoft advocacy? BASH IT! CRUNCH IT! FRAG IT! TERMINATE MAZDIEEEEEEEE!!!!!!!
Re:Language Advocacy Is Great! (Score:3)
OK, this is not a flame. But I think your post basically proves why Mark Jason Dominus really has a point in his article, and then some.
You start with a compliment about Scheme and it's type system, then the very next statement is in the spirit of why something else sucks. Now, granted, you were waaaay gentler than many people are, but the kid gloves get dropped by the third iteration on most of these threads.
Your post also points out a second real problem with most advocacy debates: both sides define the terms however they please, often indiosyncratically. And then they proceed to talk past each other until somebody points out that this is what is happening, then they argue about whose definitions of terms are more appropriate...you get the picture. In this particular case, I would point out that somebody who was interested in type systems might be pretty confused by your description of scheme and its type system, since scheme is often considered to be basically untyped (certainly compared to ML, which comes up in the target article).
I think the only useful kind of advocacy probably takes the form of seeing what the language can actually do. I have learned things when, for example, I saw that two languages differ in their solutions to one kind of problem, and that one or the other might make better sense in the context of other problems you had to solve. Dominus goes on to point out that perl, notably but not uniquely among currently developed languages, owes many or most of its features to some kind of agglutinizing proccess like this.
I am right, you are wrong - de Bono explains (Score:2)
He blames it all on our approach to looking for ultimate truths - there must be one language that is better than all others. We take this approach because it's how we've been taught to "think", derived form the teachings of old Greek philosophers. Very interesting books and if you're at all interested in this, go read it.
He also proposes a new approach to thinking about a problem - 6 Thinking Hats - which takes you through 6 stages about thinking about something. It's quite useful in a group for discussing technical subjects - but it's hard to get everyone to buy into this as an idea - of course they are right and you are wrong.
Ironic .SIG (Score:2)
Re:Language Advocacy Is Great! -- when done right. (Score:3)
Precisely so. I think your post supports what I read as the point of the article -- that language advocates can lose their objectivity and sense of proportion in the heat of battle. Language flame wars (even over brace vs. keyword) are interesting up to a point -- then those of us who haven't put too many chips on the table can go on to something else.
<offtopic> Speaking of politics, was I the only one struck in the now finished election by how reliably a person's preference in presidential candidate could be mapped to his or her attitude towards a manual recount? I'll admit I was one of those people -- I preferred Gore and thought there should be a hand recount.
Perhaps one or the other side was right, but the the infrequency with which people split their positions on this shows what a rare commodity fair mindedness is.
</offtopic>
Re:Oh please! (Score:2)
But what about compounded-advocacy? (Score:3)
The type of advocacy the author is talking about usually takes the standpoint of denying all the other tools available to fulfill a particular job, even at the expense of the weilders time, energy, and sometimes money. But what of when the user is reacting with his advocacy to his own tools and languages to a person sharing what they use. Maybe not to convert the other person. For whatever reason. Is it just straight out flaming that results when the person forces their own advocratic responses at the newcomer, or is it something more serious which needs to be addressed? I think this is much more of a problem than advocacy as presented by the article in question.
Case study 1: (shudder) Visual Basic. I dont shudder because of the language. I shudder because of all the advocacy going through the minds of a lot of the people reading (or not reading) this post. Visual basic is supposedly bloatware at its finest (or worst), it runs on and only compiles for Microsoft Windows, which is unacceptable to some people. But Visual Basic is, believe it or not, quite useful. Quite comparative to java, in a lot of aspects, because of speed, RAD and other useful features. For someone developing for windows, wanting the application quickly and easily without regard to speed, its invaluable. Yet time and time again, I see it shot down, flame, and torn to pieces. And its especially common among linux crowds.
Case Study 2: OS
I use windows. Sometimes. I find it a useful, fun, and enjoyable experience. Yes. I LIKE windows, and am not lying. Yet merely voicing any of its strong points is liable to bring me under a barrage of fire, filled with other peoples advocacy for other operating systems. And its not just Linux people, its NT people too, to exactly the same extent, they scream "Windows 2000 is solid", while hurling insults to my intelligence for choosing linux as my preferred operating system. Yes. My preferred operating system is Linux, even though I LIKE windows.
So what can we do about this? There has to be some way that we as a community can respond responsibly to this sort of thing as a whole. Or maybe its better off responded to individually.
---
Language Advocacy Is Great! (Score:5)
Everyone has their pet peeves, and their favorite features, and usually they have reasons for it. For instance, I don't like Java; I think it's unnecessarily bloated, contrived, and non-intuitive. So when someone showed me how simple it was to make a little GUI app, (far simpler than the text version, I might add) I was suitably impressed. I still hate Java, but I have a better idea of where it should be used, and what it can do, thanks to that advocacy.
When it comes to type systems, I like Scheme; it has a nice, clean type system. Perl can accomplish all the same nifty tricks as Scheme can, (it has closures, yay!) but you have to at least use a lot of references, and the syntax can get pretty grotty.
I used Pascal for a long time, and a decent programmer often spends a lot of time getting around the Strong Typing--it interferes with what they actually want to do a *lot*, like when they want to create a dynamic arry, for example. C at least doesn't bug you about it, but they can both pretty much accomplish the same things. I can't stand the Java type system; they definitely broke the notion of what should be an Object or not.
But that's just my opinion, and it doesn't stand in my way when I'm looking for a tool. Lately, I've been writing in C, because I've been doing Operating Systems programming for class, on Unix, in C, and it works quite well. But when I was doing web development and system administration this summer, I learned Perl and PHP, and it was far less work for what I was doing at the time. I also got to see how much work it is to implement a complex CGI in C, and although I think it'd be a neat experiment, I'd start out writing it in Perl, thankyouverymuch. I haven't had to use Java because I haven't done any real GUI programming, but I might try it out just because the API looks a little cleaner than some other GUI APIs I've seen. (I'm not about to write in straight XLib yet; even "Hello World" is huge!)
So yes, do your advocacy. Tell people which tools you like, and tell them why. Pick the right tool for the job. I don't think these things have to be incompatible. Just try to stay rational about it; that's why Linux has an Advocacy-HOWTO. When done right, it really isn't bad at all, it's quite informative, actually.
---
pb Reply or e-mail; don't vaguely moderate [ncsu.edu].
You Are Not A Member (Score:4)
(I wonder in how many years will "vote out of tribe" not be recognizable in the same way that "drink the Kool-Aid" is not recognizable by people who don't know the news story behind it)
Re:Advocacy (Score:3)
1. Thou shalt not GOTO
2. GO TO 1
--
Not a language problem really (Score:2)
Advocacy CAN be OK -- Why Mark-Jason Hates It (Score:4)
The author says, at the end of the article:
I don't really hate advocacy. I just hate the way we do it most of the time.
The article is not against advocating things. The article is about people's bad "discursive habits" -- the way we tend to discuss things. The author, for example, is not against discussing the advantages of the typing system in Standard ML. What the article *is* about is the curious fact that most people can't seem to do advocacy right.
We do it in a dumb way. And I think the discoursive habits we pick up as a result are going to impede the progress of programming languages for a long time.
And the progress of a lot of things. I wish more people understood this.
I Know How He Feels (Score:3)
Currently, I am digging into the beta release of Visual Studio.Net. All in all, I find the package very compelling. In particular, I find the concept of shared framework across many languages unified by common debugers and a single runtime to be a fascinating concept.
I've tried to enter into a dialog with both Java developers and a group that does C++ on Unix. I'd love to have an intelligent conversation on the merits of the dotnet approach vs. the direction of other areas of software development.
Unfortunately, the conversations have to get past "MS Sucks". They seldom do.
portability, GUIs, fast development, native code (Score:2)
Really? Is Java 2 even available for FreeBSD yet?
Zooko goes to check.
Looks to me like it is still in beta. I strongly doubt that we would have more platforms if we had used Java.
This is not even counting the fact that we developed faster in Python than we would have in Java (I say this based on spending one year working full-time on a Java app and getting basically nothing shippable, and then spending one year working in Python and getting, well, Mojo Nation.) (Not, obviously, that I wrote Mojo Nation all by myself, but the point remains that I've seen Python apps come together way faster than Java apps.)
And this isn't counting the fact that the standard libraries that we used are in C/C++ and are very mature and widely supported than their Java equivalents. Don't get me wrong, I love Cryptix [cryptix.com], not only because it was founded by some friends of mine, but because it enables cool tricks like hushmail [hushmail.com], but it would've been dog slow to do our crypto in pure Java. The crypto library we use, Wei Dai's Crypto++ [cryptopp.com] is about as fast as can possibly be (including hand-optimized assembly inner loops, if you are on x86). I know you can marry Java app code to native code (and I have done so, way back in the dark ages of Java 1), but the culture of Java frowns on this, whereas the culture of Python has fully embraced native-code integration from day one. Perhaps as a consequence of this, it seems easier to do in Python.
As to your comments about UI, I have to defer to your authority as a user. Personally, I like the HTML UI, and I would much rather have an HTML UI than an actual widget UI, but apparently most users in this world disagree, so you are right -- we should provide the latter.
To bring this conversation back to the topic at hand, has this argument been productive or destructive? I think that it has been useful to talk about the actual features offered by different languages / tools. It is good for programmers to learn from the experience of others. I do not think that Python is Good and Java is Bad. Java has several good features, such as integration with current browsers (allowing cool tricks like hushmail) and possibly good cross-platform UI (although I don't personally know how Swing compares to wxPython [wxpython.org]), and it has a security model that allows untrusted code, but cross-platform availability and rapid development are not among Java's strengths.
Regards,
Zooko
Re:Jesus didn't even speak Hebrew. (Score:2)
-Chris
...More Powerful than Otto Preminger...
Kuro5hin article (Score:4)
There's an recent article on Kuro5hin [kuro5hin.org] about fear of XHTML. The most relevent thing in it is how people will violently stick to what they know. They learned to use font tags instead of CSS, and so they like it that way. They fear that their pages will not work in the future, and they fear that they can't do the same things in XHTML as in HTML.
This is an example of how advocacy (in this case HTML over XHTML/CSS) is very bad for everyone involved. People do not want to leave HTML, so parsers will have to continue to be complex. Browser incomatibilities will widen even more.
I often see this kind of thing. A new standard comes out, and it solves more problems than before, but there is this inertia on the existing standard. It's almost as if people decide that they have learned enough for them to retire on.
*Most* Advocacy is Bad (Score:2)
This is Slashdot. We are self-professed "Nerds". One of my definitions of a nerd is someone who thinks that technology is interesting. Normal people aren't like that. They desperately want technology to be boring.
I wrote this article [sourcegear.com] a few months ago, but it might be of interest to the readers of this thread. Enjoy!
-- Eric W. Sink
It's all tribalism (Score:5)
I think Mr. Dominus hit the nail on the head when he said, "the root of the problem is that we tend to organize ourselves into tribes."
I suspect this is a deeply rooted social instinct to become part of a group, support the group and have the group support you. Possibly, from the time when humans associated themselves with a family unit and vied for resources among other such units. And attacking other groups meant a greater portion of the pie for your own group, more support for yourself, and more acceptance from within your own group.
Slashdot is one such group. Why do the Microsoft-related stories routinely attract postings that number in the five or six hundred range? It all has to do with how we define our tribe.
Is it a bad thing? I think it is, when it starts to obscure the fact that we are all part of a tribe called "the human race."
--
Many Tools In The Toolbox (Score:5)
I like to think of programming languages in much the same way. The best programmers have many tools they can draw from and understand the strengths and weaknesses of each for a given task... making it alot easier to use the best tool for a particular job.
The best programmers don't think of themselves as VB programmers or Perl programmers or the like... they just think of themselves as programmers.