POV-Ray : Newsgroups : povray.off-topic : Web frameworks : Re: Web frameworks Server Time
29 Jul 2024 16:22:22 EDT (-0400)
  Re: Web frameworks  
From: Orchid XP v8
Date: 19 Nov 2011 15:35:19
Message: <4ec81307@news.povray.org>
>> Is it actually true that the /entire/ phone system is Erlang? I know
>> Ericson
>> use it, but is it really running *everything*?
>
> I don't know. It runs the critical 100%-uptime infrastructure.

Sometimes, people make it sound like Erlang is some kind of silver 
bullet that makes everything perfect. I think I can pretty much 
guarantee that all that 100% uptime stuff has a crapload of coders, 
testers, and on-call fault diagnostics engineers behind it. It's not 
like you just write the code in Erlang and it magically becomes reliable.

>> I should think that /any/ system is eventually going to come to a point
>> where you need real documentation. There are those who say "the source
>> *is*
>> the documentation". But looking at Yesod, with almost 100 packages, I
>> wouldn't want to have to read all that lot to try to /guess/ what the
>> designer's intensions were. :-P
>
> I find it annoying when I get 50 source code files, and there's not even
> a single sentence anywhere saying "this file deals with users" or "that
> file handles cookie storage" or something. How f'ing lazy do you have to
> be?

Well, if there's a module named "Cookies", then it's a pretty good bet 
what that does. Then again, if you're looking for the bit that lets you 
pretend that HTTP is stateful, is that in the Cookies module, or the 
HTTP module, or somewhere else? Sometimes it's not very obvious. No 
module ever does just *one* thing - and yet it must have just *one* name.

> I got complemented on my comments the other day. They asked which tool I
> used to generate them. I said "Easy: I write the comments first to tell
> me what I need to implement."

Yeah, that could work. I mean, it wouldn't work with my usual iterative 
prototyping method, but hey...

>> "The fmap function must satisfy fmap id == id and fmap (f . g) == fmap
>> f .
>> fmap g". Or you can say "fmap applies a function to every element of a
>> container without affecting the structure of the container itself". The
>> latter tells you what the function is *for*.
>
> Yes. I usually include both. But unit tests tell you the first, so the
> people who tell you that unit tests serve as documentation are also
> wrong. :-)

Heh, yeah. And for that matter, some properties are too hard to write 
unit tests for. (E.g., you can test that two different functions produce 
the same result for every input you can think of, but it's rather harder 
to *prove* that it works for *all* inputs.)

>> It's also news to me that ASP.NET is compiled. I thought it was just
>> another scripting language.
>
> ASP was. ASP.NET is C# or VB.NET implementing the logic.

Oh, I see.

>>> Heck, GWT takes Java code and compiles the half that runs on the browser
>>> into optimized javascript.
>>
>> That's pretty hardcore, right there.
>
> It's really quite insane, yes.

It's actually the sort of thing I've been thinking about trying to do 
myself. As a matter of fact, there is apparently an extension for one of 
the more experimental Haskell compilers that compiles Haskell to JS 
rather than machine code. (If the compiler can compile it at all, that 
is... It's still experimental, after all.)

>>>> I'm not seeing how type erasure is in any way related to the ability or
>>>> inability to dynamically load new code.
>>>
>>> If you don't know what types are in the code you're loading, how do you
>>> load it?
>>
>> Doesn't seem to stop C. :-P
>
> That's because C isn't strongly typed.

OK. So before you erase the types, note down enough information to allow 
dynamic loading. It's not that hard. [People have managed to do it for 
Haskell, for example.]

>> Well, yeah, being able to smoothly transition from one to the other is
>> much
>> nicer. I suppose you might perhaps be able to do that by having multiple
>> physical servers and bouncing them one at a time? (I'm just trying to
>> think
>> of obvious ways that might go wrong...)
>
> Yes. That's my point. If you don't have enough servers you can do that,
> then you don't have enough servers that you can repair your hardware.

OK.

>> Required XKCD quote: http://www.xkcd.com/934/ [Esp. the alt. text.]
>
> Indeed. He missed HTTP fumblingly reinventing all the stuff that others
> had already implemented, like persistent connections, chunked downloads,
> etc etc etc.

Unfortunately, every PC on Earth has a web browser installed. If you 
want to use some other protocol, you have to have the software for it 
first. That's why Hotmail got started. (And as best as I can tell, 
that's where this whole crazy idea originated.)

>> But WTF do I know?
>
> I agree entirely.

Irony? ;-)

>> I am *definitely* not one of those people. I doubt I'll ever write
>> anything that actually gets hit by more than 2 users concurrently.
>
> Not at your current job, for sure. :-)

I hadn't thought of that. Yeah, I guess we sometimes have more than 2 
users log in at once while I'm scanning their profile folders. :-P

>> Dude, accountants *invented* the concept of "transactions"! :-D
>
> Heh. Pretty much, yes.

Ooo, and recording everything twice, for error recovery. (They call it 
"double-entry book keeping". We call it "write-ahead logging".)

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