Slashdot Mirror


User: jonadab

jonadab's activity in the archive.

Stories
0
Comments
5,933
First seen
Last seen
Profile
(view on slashdot.org)

Comments · 5,933

  1. Re:Yeah! on IBM tells SCO to Put Up or Shut Up · · Score: 1

    > One thing I really respected about them is that they throw tons of money
    > into research and development, even if that R&D doesn't seem to have a
    > real financial payoff in the future.

    R&D does have real financial payoff in the future, though, and IBM knows this
    I'm sure. Any individual R&D project may or may not pay off, but if you have
    an R&D budget and do various R&D stuff, some of it will pay off enough that
    as a whole it was worth doing the R&D. The reason they do some R&D projects
    that may not pay off is because it's very hard to accurately predict *which*
    ones are and aren't going to pay off. You can play the odds, but ultimately
    you just have to do some R&D and figure some of it will pay off. Any well-run
    large company does this, *especially* a technology company. You can be
    certain that Microsoft does R&D work. For that matter, so does McDonald's,
    though in that case it's a very different kind of R&D from what IBM does.

    > However, woe be unto you if you cross them.

    This is a defensive strategy: set a precedent as a deterrent to future
    attacks. If it's done right, it can actually work fairly well. One of the
    tricks to make it work right is that you can't be arbitrarily nasty (at least
    not publically) to entities who clearly haven't crossed you. If you are,
    people just hate you. If you're only nasty to people who clearly were
    picking fights, the dynamic is different: people are afraid to fight you.
    It's the difference between a bully with lots of enemies versus a mostly
    benign tough guy nobody wants to cross. People gang up against the bully;
    the tough guy they want on their side. Applied sociology.

  2. APC on Worst Explanation From Tech Support? · · Score: 2, Interesting

    My horror story of tech support is from APC, from whom I solemnly vow *never*
    to buy or recommend *anything*. We had an ongoing issue for *months* with the
    software for one of their UPS units. I'm home ATM and don't recall the exact
    model number. The issue was an annoying intermittent one, wherein from time
    to time the software would decide for no particular reason that the UPS was
    operating on battery power (when in fact it was not) and activate five-minute
    automatic shutdown sequence. This was happening at night, causing many of
    our overnight backups to fail, and it was happening first thing in the morning
    when I (the only IT person on staff) am not normally there, causing a lot of
    panic among the staff (this system is *the* computer, the *one* that matters,
    the single mission-critical point of failure that CANNOT be down during the
    day), and I was told in no uncertain terms this had to be fixed *NOW*, but
    APC was totally unhelpful. I must have spent a hundred hours on the phone
    with them. Every *single* time I called, I had to wait while the tech
    support rep did a web search to find out what VMS was. On more than one
    occasion I was told that the product we were using (PowerChute for OpenVMS)
    did not exist, and that VMS was not supported. Also, despite that the
    trouble ticket CLEARLY stated the problem was with PowerChute for OpenVMS,
    were were told that we would have to purchase PowerChute for OpenVMS, since
    the problem we were having was due to having the Windows version of
    PowerChute installed on VMS, which was not supported. I was given Windows
    instructions and on one occasion Unix commands to follow. I was told that
    the problem was with the city's power grid. I was told that the problem
    was with our application software. Various people told me that they would
    research the issue and get back to me, but the only one who ever did told
    me that the problem must be the PC's serial port, despite that I had already
    explained numerous times to numerous people that the cable from the UPS plugs
    into LTA16, an RJ45 port on a DECServer terminal server. I called and I
    called and I called and I got *nowhere* every single time. I asked on one
    occasion to please speak to someone who knows VMS, but it never happened.
    We ran for weeks at a time on several occasions with the PowerChute software
    disabled, meaning that if the power went out at night we'd have an unclean
    shutdown -- unacceptable, but far less likely than the problems we were
    having with PowerChute enabled. The problem was never properly resolved.

    Needless to say, I will never buy an APC product again, and neither will
    the library as long as I work there.

  3. Re:Cabling on Worst Explanation From Tech Support? · · Score: 1

    > "Okay, take the ethernet cable out of the modem and the computer, reverse
    > it, plug it in, and then let's try it!"

    There's a reason for this. It doesn't have anything to do with the ends of
    the cable being different. It's because if you tell most people to make sure
    both ends of the cable are plugged in solidly, they'll just glance at them and
    tell you they did it. If you tell them to try unplugging them and plugging
    them back in, a lot of people will think you're stupid -- why would doing
    something and then undoing it have any effect? You'd be putting it right
    back the way it started, obviously futile -- so they just tell you yep, they
    did it, but they make if anything only a halfhearted attempt to actually do it.

    If you tell them to swap the ends, stupid people think this actually serves
    a purpose potentially, so they do it; smart people know what you're really
    getting at, and they do it. Either way, both ends of the cable get checked.

  4. Re:Tech support explanations... on Worst Explanation From Tech Support? · · Score: 1

    > I had an elderly woman using a Mac who asked if the ISP could send her a copy
    > of IE 5.5 for Mac on CD because that version was required by her bank's web
    > site.

    You need to refer her to either Microsoft tech support or the bank's tech
    support, possibly both. In this case, it actually IS the other guy's problem!

  5. Re:Please Press 6 If You Have a Clue on Worst Explanation From Tech Support? · · Score: 1

    > The hard part is making a big bank of questions that clueless people will
    > mistake for regular diagnostic questions

    Come to think of it, maybe some of them could instead be cleverly disguised
    as marketing-survey questions...

    "If you were to buy an Apple Powerbook system that is on the market today,
    which one would you be most likely to buy? If you would probably buy a
    Powerbook Laptop with Windows 98, press 1. If you would probably buy a
    Powerbook Laptop with Windows XP, press 2. If you would probably buy a
    Powerbook Laptop with MacOS or Linux, press 3. If you would buy a Powerbook
    desktop model, press 4. If you are unsure, press 5. For End User Tech
    Support, press Star. To hear these options again, press the number or
    pound sign."

    Sure, if you don't know what an Apple Powerbook is or what comes on it,
    it sounds like one of those while-we-have-you-on-the-line-give-us-data
    questi ons marketroids ask -- dumb, but harmless, and they'll feel smart
    and superior for knowing what you're up to, and they won't notice that
    they've been put in the Tier 1 queue. (It's not like the person who
    answers will say, "Welcome to Tier 1, how may I annoy you?")

  6. Re:Please Press 6 If You Have a Clue on Worst Explanation From Tech Support? · · Score: 2, Insightful

    > > Why can't we have advanced tech support?
    > Because everyone will choose that.

    Quite so. There's a solution to this: make 'em pass a quiz. Use a bank of
    100 questions and give them _three_; if they get all three right, you give
    them tier-two support immediately. If not, you send them to Tier 1. Of
    course, you should only make people spend time taking this quiz if they want
    to get to Tier 2 without going through Tier 1. Normal people would just go
    through Tier 1 instead, but in case they try the quiz, you want to word it
    in such a way that they don't realize that they're failing and being sent
    to Tier 1. I imagine it might go something like this...

    Recording: "Thank you for calling BigCompany. If you know your party's
    extension, press 1 now. For Sales, press 2. For End User Tech Support,
    press 3. For Advanced User Tech Support, press 4..." [User presses 4]

    Recording: "To help us diagnose your problem more quickly, please answer
    these simple questions."
    Recording: "What version of Internet Protocol are you using? If you are
    using IP version 1, please press 1. If you are using IP version 2, press
    2. If you are using IP version 3, press 3. For End User Tech Support,
    press Star."

    At this point if the user presses 1, 2, 3, or *, he gets thanked in a nice
    recorded voice and put in the queue for End User Tech Support, otherwise
    known as Tier 1. If he hits 4 or 6, he goes on to the next question...

    Recording: "Which program do you normally use to edit your registry?
    If you use Internet Explorer to edit your registry, press 1. If you
    export the registry, use Notepad to edit the REG file, and then import
    your changes, press 2. If you use Outlook Express to edit your registry,
    press 3. If you use Microsoft Word or Excel to edit your registry,
    press 4. For End User Tech Support, press Star."

    Again, if they choose any of the wrong answers, a polite recorded voice
    thanks them for this valuable information about their internet connection
    and asks them to hold for the next representative, and they go into the
    Tier 1 queue. If they get it right, they get a third random question
    from the bank, and if they get the third one right they go into the Tier
    2 queue.

    The hard part is making a big bank of questions that clueless people will
    mistake for regular diagnostic questions but the sufficiently cluefull will
    always be able to get the right answer. There will be a *handful* of people
    in the middle who will know what's going on but maybe not know all of the
    answers, but they can call a second time and hope to get easier questions,
    and in any case they'll be *way* in the minority, if the questions are
    written properly. (You have to write them so the wrong answers are very
    obviously wrong only if you understand the question and seem to make sense
    otherwise.)

    Unfortunately, I don't think it's possible to write 100 questions as good
    as the IP version question. That one's impossible for a techie to get
    wrong, so impossible for a techie to get wrong that the correct answers
    don't even have to be listed as one of the options, meaning basically
    nobody will get it right if they don't know. Most of the questions will
    be more like the second one; end users might possibly be able to guess them
    correctly, which is why I think there should be three questions, not just
    one. If many clueless people get through to Tier 2 only to find out
    the circuit the computer's on tripped a breaker, the system fails. The
    reason for the bank of course is so people in the know can't easily tell
    morons "the secret" to get Tier 2 support; each person has to prove for
    *himself* that he knows more than the Tier 1 support reps.

    The risk inherent in this system is a PR risk; some end users might notice
    that the questions are different each time, and, if they're smart (yes,
    there are smart people who aren't knowledgeable about

  7. Re:I'll strangle the fscker! on Worst Explanation From Tech Support? · · Score: 1

    > The box under the monitor that you put the CD in is not the hard drive,
    > it's the MODEM

    "Hard drive" and "modem" are synonyms. They both mean exactly the same thing
    as "CPU". Don't let the technical jargon fool you. Also, don't confuse
    "Hard drive" with "Hard disk". A hard disk is one of those little square
    things about three and a half inches across that you stick in the slot on
    the CPU/harddrive/modem, the slot that's usually right under the CD-ROM tray.

    All the cool people these days are putting the harddrive/modem/CPU under
    the desk, so that on top of the desk they only have the computer (that is,
    the part with the screen), the keyboard, the mouse, and speakers.

    One of the most popular operating systems is Microsoft 97. Windows is a
    popular word processing software, which allows you to create programs by
    typing them up. Another popular operating system is Dell, but in addition
    to being an operating system Dell is also an Internet Service Provider.
    Dell is better than Microsoft 97 because it runs faster.

    HTH.HAND.

  8. Re:I work in tech support.... on Worst Explanation From Tech Support? · · Score: 1

    > I went to buy an ethernet hub and was asked if I wanted a 1 or 2 port hub.

    The correct approach to that sort of question is to treat it as boolean
    and answer "Yes" or "No". HTH.HAND.

  9. Re: Mebibytes and Megabytes on Worst Explanation From Tech Support? · · Score: 2, Insightful

    > Actually calling 1024 'kilo' and 1024^2 'mega' has always been insider jargon

    All of the terms in question, "bit", "byte", "nybble", "word", "double word",
    "quadword", "kilobyte", "megabyte", "gigabyte", "terabyte", and so on and
    so forth, are *all* inherently jargon. End users don't have any clue what
    any of them mean (and shouldn't have to, in this era of hard drives large
    enough to store more documents than you have time to create before the sizes
    have inflated so much that your drive is so hopelessly tiny it belongs in a
    museum). Just because they're jargon terms is no reason to change their
    meaning.

    > What 1024 bytes are _really_ called now is a Kibibyte

    *WAY* fewer people use that terminology than the traditional terminology.

    The 1000-byte "kilobyte" and the million-byte "megabyte" were devised by hard
    drive manufacturers who want to inflate their size numbers. No operating
    system by *any* vendor uses this type of "kilobyte" or "megabyte", nor does
    any bandwidth provider of which I'm aware, nor any common throughput-measuring
    software or device, nor any popular application software I'm aware of. Pretty
    much just the hard-drive manufacturers.

  10. Re:I don't want to view your crappy ads on Firefox/Thunderbird Plugins: Is Less More? · · Score: 1

    > I get to the actual content of pages without constantly being distracted

    Amen, preach it. (But it's not just advertisements I don't want distracting
    me; anything blinking or flashy MUST DIE, and that goes for the <blink> tag,
    Flash, looping animations, inane marquees in the statusbar, and anything else
    of the sort.)

    > Being ADD means that flashing ads REALLY annoy me because it's virtually
    > impossible for me to concentrate on the article with the ads flashing in my
    > peripheral vision.

    I don't think being ADD has anything to do with this; I'm virtually the
    opposite of ADD, the sort of person who can spend eight hours on one task,
    standing up from time to time to stretch my legs but still thinking about
    the thing I'm doing, working out how I'm going to tackle the next part of
    it, or whatever, the sort of person who gets engrossed in a book and doesn't
    even *notice* that several hours have gone by. (I have to be careful about
    this, setting alarms for myself in the daytime if I have somewhere to be
    later.) I'm the sort of person who has absolutely no comprehension of how
    ADHD people think, the sort of person who scores well on standardized tests
    (such as the SAT) because while I'm taking the test I don't notice anything
    else that's going on in the room, the sort of person who ten minutes after
    a conversation is still contemplating things that were said and constructing
    or revising a working theory on that topic. In other words, I'm pretty
    focused.

    But yet, blinky flashy things on web pages still distract me, and I have
    to disable them. So I don't think it's just an ADD thing. I could probably
    ignore them if they were further away from what I'm reading, like, say, on
    the other side of the room -- but having them right there on the screen,
    right next to what I'm trying to read, is a serious problem. So: animated
    GIFs play once; Flash is not installed, and I don't read sites that use the
    <blink> tag (unless someone can point out an easy way to disable that too).

    I allow scripts to change images, because rollovers are the *main* use of
    that, but occasionally I run into a site that abuses it to do looping
    animation (*WHY* not just use GIF, WHY?), and so it would be handy if it
    were possible to allow images to be changed only on mouseover, mouseout,
    and so forth but not in response to a timer. However, I suspect this is
    probably quite a difficult feature to add; it *sounds* hard to get right,
    to me, though I don't know jack about the internals of Mozilla's ECMA
    scripting implementation.

  11. Re:Obligitory.... on 71% of Spam Servers are Located in China · · Score: 1

    > Let's take away their internet rights!

    I already filter all incoming mail that's written in the GB2312 character set.
    This is my single most effective filtering rule by a wide margin, incidentally,
    and it has zero chance of ever causing a false positive, since I don't know
    how to read those characters anyway. I know of people who block China's entire
    IP range, but I haven't gone that far yet; that could potentially block a
    message I'm actually capable of reading, and *theoretically* it could block
    a legitimate non-spam message, if someone from China ever tried to contact me.
    (It's not *that* far-fetched; I've received legitimate mail from all seven
    continents at one time or another.)

  12. Re:no, not in this decade. on Worst Explanation From Tech Support? · · Score: 1, Interesting

    > a byte is 8 bits, a nibble (no, I'm not making that up) is four

    Nitpick: nybble is spelled with a y. It was originally defined as half a
    byte, IIRC, but these days we usually call a nybble a "hex digit", because
    it holds the same amount of information as one digit in a hexadecimal number.
    Also, you forgot to mention doublewords and quadwords ;-)

  13. Re:I like the last bit on Andy Tanenbaum on 'Who Wrote Linux' · · Score: 1

    The real win would be getting the kernel into hardware (i.e., making it part
    of the CPU's microcode). Then you could claim that your operating system
    software doesn't even *need* a kernel!

  14. Re:I just read this too! on FSF Subpoenaed by SCO · · Score: 1

    > If SCO is going after everything unix, why haven't they touched osX yet?

    Their lawyers can only work so fast. Give them time to work, man.

  15. Re:Perl ... on Non-English Programming Languages? · · Score: 1
    > ... completely without letters if you do it right! ;-)

    Or, with nothing _but_ letters. This still looks nothing like English. Of course, that's a deliberate obfuscation; normal Perl code is considerably more English-based than that. But with Perl6 you'll be able to define your own grammar, so it ought to be easy to make a version based on another language.

  16. Re:whitespace on Non-English Programming Languages? · · Score: 1

    > I havent seen nobody mention whitespace, it has no english keywords whatsoever

    Other examples along these lines include Unlambda, Remorse, and Malbolge.

  17. Mitigation on How to Protect a Network Against Lightning? · · Score: 3, Informative

    Prevention (of a lightning strike) is impossible, or at least too expensive to
    be practical. What you want is to minimize the amount of stuff (equipment,
    data, ...) that it destroys whenever it hits. For starters, you need to split
    your network into segements in such a way that data can travel between the
    segments but lightning won't. Wireless is one option, but I think there are
    other ways to accomplish this. Some UPSes have data line protection...

    Then there's data. One word: backups.

  18. Re:One word: Don't. on Learning C++ for Java Programmers? · · Score: 1

    > Move away from C++ to what exactly.

    To VHLLs, of course. I thought I was clear on that point.

    > The only other languages you mentioned where[sic] Perl, Python, Ruby, or

    > Scheme. I have yet to use Ruby or Scheme, but I did look up some things

    > on them.

    Try learning one of them.

    > Most of those languages are scripting lanugages and aren't really what

    > you'd program a major application in. I know I user perl for sys admin

    > tasks and quick hacks to just 'get things done'

    A good language is flexible enough to be used for "quick hacks" as you

    put it or for full-blown applications. In fact, often a quick hack to

    get something done ends up turning *into* a full-scale application over

    the long haul. All four of the languages I listed are rapidly gaining

    recognition as excellent choices for large-scale application development,

    due largely to the excellent ratio of results to programmer time. (C and

    C++ get a slighly better ratio of results to CPU time, but CPU time is

    cheaper than programmer time and these days is almost never the bottleneck

    for most categories of applications.)

    > Those languages are solid, and fast. You can do most anything with them.

    Congratulations, you've discovered Turing equivalence. Of course you *can*

    do almost anything with them. The more useful questions are, how long does

    it take you to write and debug the code, and how easy is it for someone else

    to read and understand it? On the first question, C and C++ get abysmal

    scores compared to e.g. Perl; the second question, as you point out, relates

    a lot more to programming style and is largely independent of language. A

    good programmer can write good code in pretty much any language he has taken

    the trouble to learn, with certain obvious exceptions which deliberately defy

    good programming practice. (For example, befunge is deliberately designed so

    that data and code are not separate; this violates one of the basic principles

    of maintainable code, so it's very hard to write good code in that language.

    Similarly, unlambda is designed so that even simple problems cannot be solved

    in conventional ways, but only by mind-bending paradigm gymnastics. SPL is

    designed to be so absurdly verbose that no problem of any significant scope

    can be solved in a section of short enough to read in one sitting. Nobody

    writes good code in these languages, but it doesn't matter; that wasn't

    their purpose.)

  19. One word: Don't. on Learning C++ for Java Programmers? · · Score: 0, Troll

    Seriously. Java isn't the best and most modern language in existence, but C++
    is substantially worse in an assortment of ways. The *only* thing it has going
    for it over Java is performance, which is mattering less and less as fewer and
    fewer people are trying to function on the 486SX systems with 1MB of RAM that
    were prevalent when Java got its reputation for slowness.

    If you want to diversify from Java and learn more languages, that's good, but
    C++ isn't a good choice anymore. People are moving *away* from C++, for good
    reasons. Learn Perl or Python or Ruby or Scheme, something that actually
    provides some facilities Java doesn't.

  20. Re:Yeah..you're telling me... on Sasser Worm Disruption Growing · · Score: 1

    > Aren't "centralized" and "distributed" opposites?

    Well, that just depends how much holistic synergy you've got. HTH.HAND.

  21. Re:Hit the mirrors? on Knoppix v3.4 Hits The Mirrors · · Score: 1

    > Out of curiosity, why would you want to use anything other than bittorrent?

    I tried BitTorrent on four systems and couldn't get it to work on any of them.
    Of course, two of these systems are behind NAT gateways, which prevents them
    from being addressible from the internet, which could be a problem for BT
    (dunno; if someone knows how to get BT to work through IP Masquerade, either
    by doing something different with BT or by changing some iptables rules on
    the IP Masq box, let me know), and the other two are running older distros
    that don't have a sufficiently up-to-date Python for BT's tastes. So the
    problems aren't *all* BT's fault... but it should be noted that these
    problems have absolutely no impact on using wget to retrieve the thing from
    a traditional ftp or http server. (Well, wget has to be configured to use
    passive ftp, but that's easy enough.)

    When common, popular, ubiquitous, easy-to-use tools start supporting torrent,
    then I'll be able to use it. For example, if there were a drop-in Mozilla
    plugin for it that would be easy to install, or if there were a client that
    doesn't require a recent release of Python (e.g., something written in pure
    Perl that will run on 5.003 or later), ... then I'd be able to use it.

    Though, I'm still not so sure about using it at home, on a shared dialup
    connection. I'm pretty sure getting it off a mirror is a better solution
    there. (Of course, in the case of Knoppix I can put it up on a mirror at
    work... I could easily justify that, since Knoppix is something I actually
    use at work. That's not true of everything I'd want to download at home.)

  22. Re:So they've not renamed it? on Mozilla Thunderbird 0.6 Released · · Score: 1

    > I nominate Thunderbunny as the new name.

    At one point I actually suggested Screaming Flaming Rabbit.
    (I was only halfway serious, though.)

  23. Re:Sigh. It's not a "feature" of other languages.. on A Glance At Garbage Collection In OO Languages · · Score: 2, Interesting

    > Any compiled language by definition can't create functions on the fly

    This is flat-out false. There are various compiled languages (compiled as
    in compiled to native machine code, yes) that not only allow creating functions
    on the fly but actively encourage it. Common Lisp is just one example. Yes,
    garbage collection gets compiled in. (This is no weirder than compiling a
    memory-management library into a C program, and actually being standardized
    is an advantage.)

    Besides that, the whole compiled-versus-interpreted-languages argument is
    getting fairly blurry these days. It's no longer as simple as C and C++ on
    the one extreme, which take hours to compile and then run on systems that
    don't even have a compiler, and BASIC on the other extreme where you can stop
    the program while it's running, change some variables and maybe some lines of
    code, and set it running again (possibly at a different line) in-progress
    with the state intact. There are all kinds of in-between cases now, Perl
    and Java and Python and so on, which technically are both compiled and
    interpreted or neither or somewhere in-between. Java runs on a virtual
    machine, okay, and Perl6 will, but what do you do with Perl5 and others like
    it, which don't really run on a vm per se but have separate compile-time and
    run-time phases yet allow more code to be compiled later at run time (through
    eval and things like it), ... and then there's JIT compilation... and then
    you have compilers that take languages designed to compile to a virtual
    machine and instead compile them to native machine code for a specific
    platform...

  24. Re:Sigh. It's not a "feature" of other languages.. on A Glance At Garbage Collection In OO Languages · · Score: 2, Insightful

    > > I'm trying to imagine a programming language that doesn't let you
    > > create functions on the fly but is powerful enough for writing real
    > > applications.
    >
    > C, C++, Java.

    [Scratches Java off list of languages to learn.]

    I know C and C++ have been traditionally used for writing applications, but I
    have long been of the opinion that they're not really powerful enough for the
    job. It takes several times as many programmer-hours as it ought to to do
    anything, from prototyping to new feature work to debugging, which IMO means
    that "powerful enough" is a real stretch. These languages get by and continue
    to be used at this point mostly because a lot of people know them.

    In the past, these languages were selected because programmer time was cheaper
    than computer resources (with which they're more miserly than a higher-level
    language), but that's no longer anywhere near true, as the article points out;
    the *average* computer has enough RAM to run three horribly-inefficient
    extreme memory-hog applications at the *same time* without needing any swap,
    and newer models are coming with more and more. You talk about GC screwing
    up virtual RAM algorithms, but it's really not an issue on most systems; if
    a process grows to three or four *times* the size it needs to be, it doesn't
    actually have any user-noticeable impact on performance. Memory leaks are
    actually much worse, because in that case the wasted memory doesn't ever get
    collected and eventually it becomes a problem, after a couple of hours of
    use. (Actually, a very small memory leak can go for days without being a
    problem, but those aren't the ones we notice so much.) In 1996, when most
    consumer-grade operating systems were so stable that you had to reboot every
    few hours, memory leaks weren't such a big deal (provided you had lots of
    swap space), but now that almost any modern OS (and most applications) can
    run for weeks and weeks if not months or even years without being restarted,
    memory leaks are now a big deal. It's okay to continually use five times as
    much RAM as you technically need; it's not okay for your memory requirements
    to keep growing as a function of how long you've been running, because that
    can get to be *way* more than five times what you need.

    Back to creating functions on the fly, I'm just a little bit surprised to
    learn that Java doesn't have such an important feature; I had been lead to
    believe it was a relatively high-level language with fairly high-level
    features. It runs on a virtual machine, for crying out loud; I had imagined
    it would be fairly modern and flexible in its design. Are you sure it can't
    create functions on the fly, or is that just something you don't know how to
    do in Java? That's a pretty serious accusation to level at a language,
    almost as bad as saying it can't allocate extra memory on the fly.

  25. Re:Sigh. It's not a "feature" of other languages.. on A Glance At Garbage Collection In OO Languages · · Score: 3, Interesting

    > By "correctly," I'm specifically leaving out memory leaks.

    What a thing to leave out. Memory leaks are one of the hardest-to-track-down
    and most annoying kinds of bugs that we perpetually see in application after
    application. Okay, crashes are more annoying and pervasive, sure. And
    buffer overruns (which are not a problem in most languages that have GC,
    albeit GC is not the reason they're not a problem). But memory leaks are
    high on the list.

    > And in functional programming, you're creating functions on the fly.

    I'm trying to imagine a programming language that doesn't let you create
    functions on the fly but is powerful enough for writing real applications.
    The only thing I can come up with is that you could write what basically
    amounts to an interpreter so that you wouldn't have to write "functions"
    in the implementation language but could write them in the interpreted
    language instead. But that seems like a really ugly hack, just to avoid
    including real memory management in the compiler/interpreter/vm/whatever.

    It is possible to get around the need for closures (i.e., anonymous routines
    that hold references to otherwise-out-of-scope lexicals), if you have a
    sufficiently powerful object system. But again, it seems like a questionable
    goal; sometimes closures are really the most convenient way to accomplish
    something. (Sometimes they're not, of course... that's why I favour
    multiparadigmatic languages.)

    > So for all those languages, it's not an "ease of use" thing. It's a
    > "there's no way for a programmer to do even do it manually at all" thing.
    > GC is the only option.

    Strictly *theoretically*, the programmer can do all that stuff in any
    Turing-complete language; it's possible to do functional programming in
    8086 assembly language, for example, if you're willing to go far out of
    your way to do it. But in practice, neither assembly language nor C
    really makes that easy or practical, no. But then, there are actually
    quite a lot of things that those languages don't make easy or practical.