POV-Ray : Newsgroups : povray.off-topic : The other OS : Re: The other OS Server Time
30 Jul 2024 14:31:05 EDT (-0400)
  Re: The other OS  
From: Darren New
Date: 4 Aug 2011 18:01:33
Message: <4e3b16bd$1@news.povray.org>
On 8/4/2011 13:01, Orchid XP v8 wrote:
> Anyway, point being, you can apply DbC to anything. It doesn't have to be OO.

Hmmmm. Not really.  I can't imagine how you'd apply it to old-school BASIC. 
Or C in any reasonable sense. (What would an invariant look like in C?)

Preconditions and postconditions apply to routines that have state. 
Invariants apply to routines that have state outside of the individual 
routines *and* which have instances. So none of those really apply to purely 
procedural or functional languages.

Exception management in the DbC way doesn't really apply to functional code.

> Emacs may be old and clunky, but to be fair, it worked perfectly out of the
> box.

It's a sad commentary when the normal state of software is "hey, I installed 
it, and it worked before I made any other changes!"

>>> Maybe it's "the best" in the same way as TeX. The output of TeX is quite
>>> simply the most beautiful thing I've ever seen.
>>
>> Hopefully they've improved it. TeX is probably OK as long as you don't
>> use it with metafont files, but the output with metafont is pretty sucky.
>
> I don't get what's "sucky" about Metafont. (Other than that nobody uses
> bitmap fonts anymore unless they really have to...)

The spacing sucks. The weight sucks. I'd have to show you two identical 
pieces of text, one set with metafont, one set on a real typesetter, for you 
to easily see the difference. But it's quite as much there as the jaggies on 
a 300DPI print-out compared to a 1200DPI print-out.

> With Unix, you can decide to use a completely different filesystem that you
> just made up, you can change the thread scheduling algorithm, and then you
> can change the implementation of the ARP cache from a hashtable to a linked
> list. None of which is possible with Windows.

That's not UNIX. That's Linux, and it's because you have the source code, 
not because it's UNIX. And yes, Windows you can use a completely different 
file system you just made up. And you can probably change the other stuff 
too - it just costs more.  And given that TCP/IP is an optional driver, I'd 
be very surprised to find you couldn't load your own version of that too if 
you wanted.

Kernel scheduling? Not so much, agreed.

But that sort of stuff isn't what I think of when I think of a "flexible" 
OS. I think of being able to do things flexibly, not the ability to change 
the source code because I happen to have the source code. I think of the 
ability to do things I couldn't do otherwise if the OS didn't have support 
or hooks for it.

> I have never, ever seen Linux crash unless I did something wrong. (E.g., it
> crashes because I just told it to format a device that's currently mounted.)
> My first Windows XP laptop crashed WITHIN 14 SECONDS of first being turned
> on. Didn't even finish the setup wizzard.

I've seen plenty of Linux crashes. You just didn't run it on flakey hardware 
like you did your XP, for example. (Or you just had a corrupted copy on your 
HD.)  Do you really think everyone who bought that laptop had it crash 
within 15 seconds of turning it on the first time?

> That said, over the years Windows has become more reliable. Our Windows
> servers basically never crash. I have to reboot them for some reason long
> before they fail.

Right.  Windows gets crufty if you keep dicking with it, basically.

> Still, if I was going to run, like, a nuclear enrichment program, I wouldn't
> want to use Windows. The malware implications alone would be... oh, wait.

No, I wouldn't used closed-source software for anything safety critical if I 
could avoid it.

> And Ctrl+B ("beginning") is already "back". And Ctrl+F ("first") is already
> "forward"...

That's exctly the problem with mnemonics.

> Well, yeah, I don't tend to open up a text editor and then press random key
> combinations to see if it activates a special feature I didn't know about.

Control right-arrow is a "random key combination"?

You know that holding shift while you move the cursor selects things too, right?

>>> (But then again, it's not exactly a feature you'd bother looking for.)
>>
>> Of course it is, especially if you're editing text.
>
> Can you give one single example of where you'd want to do this rather than,
> say, just jab the arrow key a few times?

Where I would want to search in a text file to find a word? You're kidding 
me, right?

I have the output from compiling a bunch of programs. The file is 4000 lines 
long. What was the command line used to compile firefox_scrollbar.c?

Heck, I have all the names and addresses in a text file. I want to look up 
my brother's fax number.

I have a program that's several screens long. I want to find everywhere the 
function LookForMe is used.

> I'm kinda surprised that there doesn't seem to be a "go to line 287"
> command. I mean, you can go to the top and then move down 287 lines. No,
> wait, that would take you to line 288. ARGH! >_<

There probably is. It was just an example.

>>> There's a section on "when Emacs is hung". What, you're actually
>>> expecting that to happen?
>>
>> If you're writing your own code, or you hand it a few megabytes and say
>> "go indent this".
>
> Wait, your own code can crash Emacs?

No, but it can hang emacs for long enough that you think it's crashed.

> Generally you don't expect, say, Firefox to die just because you feed it
> some bad JavaScript.

It doesn't, nor does emacs. That's why ctrl-G works, you see. Why do you 
think "interrupting my code where I accidentally wrote an infinite loop" is 
equivalent to "crashing emacs"? It's not crashed exactly *because* you can 
interrupt it.

> A typical editor session generally involves lots of typing, maybe a bit of
> scrolling, and periodically saving. So you'd expect the commands for editing
> and scrolling to be quick, as well as the command for saving.

You don't write a lot of code, do you? :-)

> These are all pretty rare, really.

I think it depends on what you do with an editor. :-) They're all pretty 
common for me.

> And break compatibility with all the extensive library of code written for
> Emacs! :-D

The code for emacs doesn't get invoked thru the keyboard mappings, any more 
than the code for COM does.

> Fun thing: Open Firefox. Press F3. Start typing. It highlights the first
> match it finds, as you type. By pressing Next and Prev, you can make it
> select other matches. But it does /not/ highlight *all* of them at once. I
> haven't seen anything except Emacs do that.

vim and visual studio both do. I don't use much else besides those three.

> Last time I invoked Vi, I had to reboot the PC to get out of it again.

If the last time you ran vi was before windows had close boxes on them, I 
can understand why you might be nervous.

Did you try reading a tutorial first?

>  From what I can gather, Emacs was amoung the very first editors that let
> you SEE WHAT YOU'RE EDITING, and do this AT THE SAME TIME AS YOU EDIT IT.
> The other editors were apparently like that awful "sed" thing. I can see how
> this would be regarded as a massive leap forward.

Nah. emacs didn't work on hard-copy terminals, which were still the dominant 
way of interacting with computers for a long time. As soon as tubes were 
common, so were visual editors.

> Being able to view multiple files simultaneously on a VT100 would have been
> a significant technical achievement. It seems Emacs basically invented the
> multiple document interface / tabbed editing / whatever you want to call it.

I'll grant you that one. :-)

> Being able to invoke all your tools from within your editor and edit their
> output is again quite a powerful idea.

vi had that too, except it was *all* your tools, with no need to write 
macros to handle it.

> Visual Studio is an IDE. It works for (say) C++. But if I decided I wanted
> it to work for Haskell... tough. Cannot be done.

http://research.microsoft.com/apps/pubs/default.aspx?id=67496

Guess how the IDE interacts with it?  COM!

 > Not unless you hire a vast
> army of C++ programmers to write the necessary hooks and DLLs and God only
> knows what else to add the support to VS.

Uh, one Bulgarian intern, on the weekends.

> My current editor is SciTE. It supports many, many file formats. But Haskell
> is not one. I would have to compile it from source to add Haskell syntax
> highlighting (since none of the existing lexers are remotely similar, so I
> would have to add a new one).

Or you could use vim and haskell mode and see if it works.

http://projects.haskell.org/haskellmode-vim/

> I think there is probably still a place in the world for some kind of engine
> which is so configurable that you can build a complete development
> environment with it, for any conceivable target, without having to do really
> heavy stuff like writing low-level C code or compiling huge codebases from
> scratch.

That's exactly why Microsoft invented COM, IBM invented REXX, standards 
bodies invented COBRA, etc etc etc.

-- 
Darren New, San Diego CA, USA (PST)
   How come I never get only one kudo?


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.