ARTICLES | bespoke web | design | editor | works
readings | SNIPPETS | technology | toronto
biochem | cancer | canna | n n | net | other | plants | politics | social medicine | TECH | truths | pollution | biology
01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24

Amusing article for those who find such things amusing (topic is javascript programming) but it's from 2016, anyone know of an update? If not someone should write one. 6 Comments 11 Like
Andy Linton Ted Cizadlo
Bob Frankston been there done that and ...

Richard Sexton Don't get it. By 2005 js was stable. You don't need any of that other stuff.
By now poeple should have CSS widgets, you don't even need js to do screen stuff any more you can do most of it in CSS. That's why the frameworks went away and jquery (spit) went away.
Don't worry, css is no worse than OS/360 assembler except where it is. It's fucking terrible frankly, but it is faster than js (compare onmouseover to :hover for example, ok look the hover happens first lone before onmouse)
Plus you don't need to drag in the js engine to do css events.
If you can mimic a windows screen and have be be as fast as windows, you're doing good.
If you use that react shit it'll be as "good" as Facebook code.
js is the only language since C worth using. you'll use css because you have to. We should have done postscript instead, html never worked out, is a bad idea, and should be deprecated asap. It still can't do things ps did out of the box in 85.
arial findfont 100 setfont stoke showpage.
You can't do this in web code. You can fake it with a few pages worth but it looks like crap. Bob Frankston ES has vastly improved with Typescript, npm and node helping.
If you look at older JS code it contains strange "best practices". Being able to declare prototype sets (AKA classes though not quite like C++ classes) and module loading etc. make a big difference.
Knowing the zen of CSS also makes a big difference.
const lets you have a more applicative style than var.
And the tools ...
The good news is you don't have to repeat history and learn all the old work-arounds if you can work require recent browsers.
Barry Caplan Bob Frankston Maybe I need to take a new look at js. Worth it for server side stuff?
Bob Frankston Barry Caplan yes. JS is now a performance languase
Barry Caplan Any links to recommended stacks server side?
Bob Frankston Lots in the npm world such as express for writing a server though I often use raw http/https and even sockets. Huge libraries.
It's also evolving so you can share libraries server and client side.
Also should use Visual Studio Code. Alas, not sure where to look in a single place as it's evolving. Lots of legacy tooling to look past.

Richard Sexton Node is what enabled JS to work on the server side, because of implicit asynchronous I/O, it's faster than C. Node was created when a 17 year old kid took Google's newly open sourced V8 Javascript engine and made it work under unix.
Javascript is easy and sensible. Just watch all of Doug Crockford's videos, in order and you'll understand the elegance of it and why it's better than C in some cases. I saw that as a C programmed since 1975 who has never found another language with using and having written a few).
CSS and HTML are the work of incompetent dangerous lunatics and their use can not be deprecated fast enough. Anything real is a pdf and there's a reason for that.
Keep in mind html and css wee realy just en extension of roff which was just to print man pages.
By 1987 postscript and the gui from NeXT had already won and even now they're still trying to make this work on the web a sthey outperform html/css by a large fator never mind the fact you can't do stuff in html/css that ps could do out of the box in the 80s. It's the only thing worse than x86 smiles and an otter atrocity.
You can replace it all with js and ps and it's only a matter of time until this happens.
If people try enough as well or as instead of home.html or their index.html/htm equivalent, then browser writers will have the metric they need to advance this. So do it. You might be surprised as to what works.
Is there anybody in the world that understands CSS really? All of it? Anybody know anyone that claims so? It's become the tower of babel for digital publishing. Fortunately typesetters still to PS and not anything else.
I'm still trying to figure out whose shinde Sir Tim was on frankly. What he did was not the way the world was going.
Barry Shein And, indeed, Babel is a package (transpiler) which helps one's javascript work with different implementations.
EN.WIKIPEDIA.ORG Babel (compiler) - Wikipedia
Barry Shein There are actually 2017 and 2018 versions of that article by others but they're boring. Mostly "it's easier now!" and "use my package!" I didn't save the links.
Barry Shein All you need is to watch this 3m video:
YOUTUBE.COM A Day at the Races 1937 720-HD.mkv.mp4 1 Like
Bob Frankston Listened to Bjarne Stroustrup this morning (here in Tokyo) talking about C++ you can't escape change. He's very focused on machine efficiency as opposed to addressing new concepts in what programming is but I decided not to get into that conversation. The talk was defensive - his view that harping about C++ were complaining about the old C++. ANd many are. But my issue is with the focus on machine level optimization vs. higher level views of programming. And the related war over GC.
I share some of the frustration as I had to get up to speed. And could still do one but too busy embracing the new stuff.
Barry Shein It's like the thinking that gave us Common Lisp (CL). Sure it was a nice idea to standardize a lot of features which were mostly only gratuitously different between, e.g., MacLisp and Interlisp.
But a constant thread in the CL design was that it'll never be a major language unless they could show it runs as fast as Fortran on the sort of code people used Fortran for, mostly indexed arrays, loops, and arithmetic expressions.
So we got static typing and shallow binding and other features which didn't really help the programmer so much as made the programmer help the compiler.
The worst story I heard from someone involved was that the reason they threw multiple return values (what a weird idea as designed*) was because Symbolics had a 256 word fast hardware stack and this way they could put more return values on it without "wasting" space on pointers.
Wow. They couldn't teach the compiler to optimize returning a simple list and flatten it out into an array. No, make the programmer do the optimization work with multiple-value-return and multiple-value-let etc.
* When I got Rutger's CL on our 2060 I typed something simple in and it just typed out something like:
1 2 3 4
which was a weird result I thought so I reported it as a bug. I was pointed at the multiple-value-return documentation.
Bob Frankston There's a great video on V8 -- the JavaScript engine from Google that explains the power of runtime dynamic optimization over C++ static optimization. The runtime optimizer can tune for special cases rather than having to anticipate edge cases and other issues.
And, of course, do you optimize for the CPU or the larger scope.
Barry Caplan I used to have the same discussions regarding machine optimization with your brother wrt i18n. My feeling is generally, unless there is good reason, is there really a need to use engineering effort to squeeze out every ounce of performance on some metric when the real market for the product is next year's new generation pc anyway? That didn't always meet with his agreement, but he was the boss.
Richard Sexton There were two languages developed at Bell post C. C++ was not the good one. Fleming bought the rights to the other one.
He sent me a compiler once written in itself. The source fit in a small email message. Barry Shein I don't know which two you're referring to but there were probably more than that but whatever. Sometimes it depends on one's definition of "programming language" (do awk, lex, or yacc count? How about RATFOR)
Icon, successor to SNOBOL was sort of Bell Labs tho Griswold was at Univ of Arizona at the time. I was pretty excited when I first saw icon because I was a fan of SNOBOL but like everyone else on the planet earth never quite got around to using it much. 1
Barry Caplan Well that was a trip down memory lane lol
Barry Caplan RATFOR!
Barry Shein C++ started life as a pre-processor which turned your code into C and then fed it into the C compiler.
What a problem that caused on our Encore!
They used the Greenhills C and it would not accept one of the common idioms the C++ pre-processor spit out.
As I remember it basically wrapped an if() block around cases in a switch like (I'll use leading dots to format):
switch(expr) { first: ........code; ........./* FALL THRU */ ..if(cond) { second: ........code; ........break; third: ........code; ........break; ..}
....more cases and default... }

I remember looking at that and thinking wow is that TWISTED and NO I have no idea if it's technically legal (Greenhill's error) or not (C++'s pre-processor's error.)
And no that's not Duff's device as people always say thinking that's a smart thing to say, it could contain Duff's device of course but that's not really what's going on there. Barry Shein When I ran the Harvard chemistry computing center RATFOR had some big fans, almost everything else was done in Fortran (on VMS.) I remember occasionally dealing with RATFOR bugs or quirks for people.
I thought it was ok but came to appreciate transparency as an important factor in software engineering.
That's the main reason I disliked C++, you couldn't say with any certainty what "a = b+c;" would actually do, '+' could be overloaded to be a device driver and b,c just parameters passed to move the building's elevator. Or maybe it added two numbers.
Barry Caplan Yeah, I prefer code where the meaning of things like operators doesn't change. I'd ratgher have a function or object name or whatever, saving a few keystrokes to require nearly superhuman insight from an engineer on maintenance or debugging or testing or integration sees like a poor tradeoff to me.
As for RATFOR, iirc I played with it, or we may have used in in production, on sastellite attitude ground control systems at NASA. That would have been on OS/360 MVS remote terminals (JCL, the whole nine yards)
But I could be misrembering, it could have been a bit later on PDP-11 scientific image processing for Internet Ultraviolet Explorer.
Potentially it was pre-launch scientific image processing for Hubble Space Telescope.
Or all of the above, there were a lot of connections between those groups.
Barry Shein RATFOR was pretty straightforward, mostly just C-like (ok one can say Algol-like) syntactic sugar on top of Fortran. For example back then Fortran didn't have if-then-else you had to sort of simulate that by hand.
Then F77 with things like if-then-else grew in popularity and later versions, F90, and RATFOR became mostly irrelevant, but an interesting historical note.
As I'd often say about things like RATFOR:
When caught in a trap an animal will gnaw off its own foot to escape.
Richard Sexton ratfor begat watford, watfiv and watfiv-s which was c with marticies. Uniwat ran with it.
meanwhile, in a different office on the second floor of the math building at Waterloo this guy was writing C for rsx, which became decus C which became gcc. jon says it was a clean rewrite but I had a login on his machine ans saw dgc's comments there. He was paid to write it by a Canadian company called Teklogix, OI worked there in summers while going to Waterloo. It seems I was the beta tester and first user. Back then we'd take the assembly output, see it it was ok, modify the source if it wasn't and bob's yer uncle. This was 76 or so.
dgc went to dec, then ms, far as I know he's still there in the research department which is as clever as the marketing department is dumb.
David G., Conroy, summer of 1977. He has the light blue T shirt.

(I'm the idiot in the bike togs, I rode 30 miles there, bald guy on the right is the guy who hired us. Beaded guy is Gord something, EE type.)

Remember me, buy my shirts!
pop art MBZ