POV-Ray : Newsgroups : povray.off-topic : The other OS : Re: The other OS Server Time
26 Sep 2024 23:36:44 EDT (-0400)
  Re: The other OS  
From: Orchid XP v8
Date: 4 Aug 2011 16:01:59
Message: <4e3afab7@news.povray.org>
>> (Although they also tacked on Design By Contract, which isn't strictly
>> anything to do with OO.)
>
> If you didn't understand why DbC is fundamental to "perfect" OOP, you've
> missed a major point of the development of it. DbC *is* the OO. The
> actual bodies of the methods are an implementation detail. :-)

Or rather, the method bodies are the actual delivered application. DbC 
is merely a testing framework. ;-)

Anyway, point being, you can apply DbC to anything. It doesn't have to 
be OO.

>> A perfect language... shame the implementation sucks arse, eh?
>
> True. The first time I tried it, and this is like version 5.2 or so, you
> started a new project and it gave you a Hello World skeleton to start
> from. If you started a new project, then clicked "compile" without
> touching anything else, the compiler bombed out.

Epic fail.

I still chuckle at how if you ask GHC to compile your program with 
dynamic linking rather than static, it fails out of the box. No mention 
of this in the documentation, no discussion on how to fix it, no 
indication that it might even be a problem. (And no discussion on where 
the heck it actually looks for the DLLs...)

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

>> 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...)

>> Or perhaps it's "the best" in the same way that Unix is: It's ancient and
>> basically obsolete, but nothing can match it for reliability, flexibility
>> and compatibility with a large library of existing stuff.
>
> I'd argue that Windows may have better flexibility (modulo not actually
> having the source to it, and not counting "portability" as
> "flexibility") and a larger library. It's certainly not a slam dunk for
> Unix. Plus, Unix isn't really all that reliable, either.

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.

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.

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.

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.

>> Suffice it to say, Emacs is /ancient/. From what I can gather, it's even
>> older than Unix
>
> The first versions were. I don't think it was called emacs at the time.
> It was also originally developed on an OS other than Unix, so the "meta"
> key was actually a separate key from "alt".

I gathered. ;-)

>> Ctrl+A ("aahhh... wuh??").
>
> Because Ctrl-H is help, you see.

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

> That's the thing that always killed *me* about Emacs. The key mappings
> were half mnemonic and half abbreviation and half based on keyboard
> position. On the other hand, Wordstar I still remember every keystroke,
> in spite of not having used it since 1982 or so.

It wasn't actually as hard as I'd imagined it would be. Mostly. A few 
really common things have obscure commands.

>> Interestingly, while Ctrl+F moves the cursor one character forward, Alt+F
>> moves it one /word/ forward. (And similarly for Ctrl+B vs Alt+B.) I've
>> never seen a text editor that can do that.
>
> Really? Even notepad does that: ctrl-rightarrow. Every editor does this.

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.

>> (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?

> It depends on the mode. A "word" is one token.

> Again, it depends on the mode. If you're editing a program, it's one
> statement, one s-expr, etc.

Figures. I only tried editing text; I figured anything else would be too 
hard.

>> (Presumably because on a
>> VT100 there's no way to turn off the cursor. :-P )
>
> No, it's because VT100s don't have scrollbars.

Sure. But there's no reason why Ctrl+V should move the cursor rather 
than let it scroll off the screen. Still, windows would mitigate the 
need for this. (If I could work them.)

>> Apparently by typing Ctrl+U 8 Ctrl+F, I can move the cursor exactly 8
>> characters left. I'm left wondering why in the name of God I would *ever*
>> want to do this.
>
> Because you want to draw a line of 30 hyphens across the screen. Or you
> want to skip to line 287 in your file.

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'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?

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

Oh, wait am I saying? Your own code *is* Emacs!

>> Now, get this: Apparently a very rare operation such as "search" is
>> Ctrl+S,
>> but an extremely common operation like "save" (arguably the single most
>> important command that any file editor can ever have) is Ctrl+X Ctrl+S.
>
> I'm not sure why you think you'd save a file more often than you search.
> It boggles my mind to think you think searching for text in a file is
> highly specialized and uncommon. Oh, wait, this from the guy who doesn't
> use google. ;-)

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.

I'm trying to think of an instance where you'd actually want to search 
for something. Perhaps to find a given function name? To check whether a 
misspelt word appears anywhere in your text? To check that you replaced 
all occurances of something? These are all pretty rare, really.

>> ...which seems reasonable, although some of their decisions about what
>> constitutes "common commands" are /highly/ dubious!
>
> That's why you can remap the keys as you like. ;-)

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

>> Having tried the incremental search I discovered something quite nice: it
>> actually /highlights/ everything on the page that matches your search. A
>> trivial feature, but one which I haven't seen in any other software.
>
> Damn, man, you gotta get out more. I haven't seen any decent editor
> since Win95 that doesn't do that. Sure, not notepad, but everything else.

IMHO, Notepad doesn't even qualify as a "text editor". More like "thing 
I use if nothing better is available".

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.

> Nobody uber enough to use emacs would stoop to editing web pages with
> embedded javascript. ;-)

Riiiight. And I guess they also wouldn't edit C code with SQL embedded 
in it, or Makefiles with Bash scripts embedded in them. Or Lisp code 
that contains TeX fragments...

> Really, the code that recognises that stuff just needs to be updated.

The syntax highlighting works out of the box, which is nice. But the 
whole major mode / minor mode thing seems to preclude sorting out nested 
languages properly.

>> The HTML highlighting is actually nicer than most.
>
> You should check out VIM if you want a somewhat more rational editor
> that does all this stuff emacs does.

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

Actually, that's not true. I discovered that by pressing a certain 
keyboard combination, you can access "virtual terminals", which allow 
you to run "ps", search for the PID of vi, and issue a "kill" command. 
That way, you can exit without rebooting.

>> In short, after spending a few days playing with Emacs, I'm still not
>> finding anything that makes me to "wow!"
>
> Many of the nice features of emacs become redundant in an environment
> with windows, and especially in an environment with IDEs customised for
> the specific languages you're using.

>> I suspect you could probably make something /like/ Emacs, but with a
>> modern design, and it would work well.
>
> Yes. They call it an IDE. ;-) Or "a windowed desktop."

These.

 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.

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.

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

But you know what? All these things are basic features that *all* 
software has now. It's not revolutionary any more. It seems to me that 
Emacs just isn't /relevant/ any more.

The one thing I would say is that a good IDE is far better than Emacs 
will ever be. But every IDE I've seen has been massively beaurocratic 
and complicated to use. And usually there's almost no possibility of 
changing it. The one thing that Emacs appears to have got right is total 
customisibility.

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. 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.

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).

Emacs doesn't support Haskell out of the box. But I know for a fact that 
there's several people who have developed major modes for it. If I 
actually cared, I could probably spend a day or two getting basic syntax 
highlighting to work.

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.

Actually, the reason I'm looking at Emacs today rather than some other 
day is that I saw a rant online about how bloated and useless IDEs are 
and how Emacs is superior in every possible way. The rant concluded by 
saying "IDEs aren't a threat to Emacs. Firefox is."

If that sounds crazy, consider that a third party write an IRC client 
for Firefox. As far as I know, it's just a bunch of XML and JavaScript 
that the Firefox scripting and rendering engine runs. But it's a working 
(if minimal) IRC client.

Unlike Emacs, Firefox has a proper, grown-up GUI and excellent graphical 
capabilities. If you could make it configurable and scriptable to the 
point where you could build arbitrary applications with it... that would 
be pretty insane.

-- 
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*


Post a reply to this message

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