On Jan 6, 2015, at 5:07 PM, Les Mikesell <lesmikesell at gmail.com> wrote: > On Tue, Jan 6, 2015 at 5:07 PM, Warren Young <wyml at etr-usa.com> wrote: >> >>>> There are more JavaScript interpreters in the world than Dalvik, ART,[2] and Java ® VMs combined. Perhaps we should rewrite everything in JavaScript instead? >>> >>> I'm counting the running/useful instances of actual program code, >> >> I rather doubt you’ve done anything like actual research on this. > > Not really, but start with the number of running android devices - and > I think it is reasonable to assume that they are running something, > checking gmail, etc. It's safe enough to say that's a big number. Sigh… I said I didn’t want to get into Oracle’s bogus 3 billion number, or how it’s exceeded by actual JS deployments. Just take it as read that I’ve thought through it, and I’m still sure JS has more deployments. Then apply my Tiobe argument to JS instead of Java: even if JS is significantly bigger than Java, it *still* doesn’t prove anything because it’s still a minority player, so there will continue to be a pressure to use something incompatible with it. There. Is. No. Nirvana. > it pretty much owns the phone/tablet space and the > examples of elasticsearch (and other lucene-based stuff), jenkins, > etc. show it scales to the other end as well. :shakes head in disbelief: What continuum is a smartphone the other end of, exactly? The one in my pocket has multiple general-purpose GHz-class CPU cores, a few specialized coprocessors, several hundred megs of RAM, dozens of gigs of fast local storage, and several high-tech radios. Its raw processing power is on the order of 100 GFLOPS. This is the low end of…what…the Top 500 List from 1998? …except that my phone achieves that parity on a few watts, and doesn’t require a staff of acolytes to tend to its needs. This is a device that would make Captain Kirk jealous, but it’s just one of a billion. Booooring. We are *so* spoiled. You want to talk about stupid-high deployment numbers? Let’s talk embedded. 18.1 billion eight-bitters shipped *last year*. http://goo.gl/UTXhuV The PIC10F200 is somewhere near what *I* call the low end: 16 bytes of RAM and a bit under 256 usable words of program memory. http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en019863 It’s definitely not the actual bottom, though. They still make 4-bitters. > node.js seems like the worst of all worlds - a language designed _not_ > to speak to the OS directly with an OS library glued in. JavaScript’s a better language than a lot of other scripting languages that have found widespread use. (Please, don’t ask. I *still* don’t want to start an advocacy flamewar.) The economic drive behind it is making it uncommonly fast for a dynamic scripting language. And if the resource hits of dynamic programming are a problem, why were we just talking about Perl? :) > But it is a > good example of how programmers think - if one says you shouldn't do > something, it pretty much guarantees that someone else will. No, the thing you should not do is Jaxer: http://en.wikipedia.org/wiki/Aptana#Aptana_Jaxer node.js is a vastly better plan. >> it isn’t the Fedora development community’s fault that we have not yet achieved this nirvana. > > Really? How have they made it any easier to manage your 2nd machine > than your first? I didn’t ask them to solve that problem. My company already solved it adequately, years ago, in a massive shell script. Thus my thoughtful treatment of the problem of the gap between shell and C; it was on my mind prior to this exchange. I’m kind of surprised to find that Puppet and Chef are not in EL7, though. I don’t really need either, having solved my particular automatic deployment problem already, but I thought they achieved sufficient popularity before the EL7 feature freeze. Oh, and in case you were wondering, yes, that massive shell script did require some adjustment to move it from EL5 to EL7. It took me a day or two, during which time I was also working on portability differences in the rest of the software. A few days of work to get back on track for the next 7 years; not too shabby. Look, I doubt I’m any happier about how they moved my cheese than you are. I’ve just chosen to go hunt down the cheese and hack a few blocks off, instead of yelling about how they shouldn’t have moved it. >> Software is “pure thought-stuff,” to quote Fred Brooks. We have very little constraint on the scope and range of things we can create in software. Any attempt to package software up into a usefully-small set of precisely-characterized little black boxes is a Quixotic dream. > > It is also purely reproducible. Do something right once and no one > should ever have to waste that thought again. Arguably Smalltalk was GUIs and OO done right. Go spin up a Squeak VM and see if you still feel at home in that world: http://www.squeak.org/ Not only does technology change, so does our perception of what “good technology” looks like. I suspect most of those using Squeak are using it for the same reason that I continue to pour a lot of time into Apple ][ emulators: nostalgia, not utility. >>>> Why even bother with ksh or Bash extensions, for that matter? The original Bourne shell achieved Turing-completeness in 1977. There is literally nothing we can ask a computer to do that we cannot cause to happen via a shell script. (Except run fast.) >>> >>> Well, Bourne didn't deal with sockets. >> >> BSD Sockets didn’t exist in 1977. > > Precisely. Once there was close to a 1-1 mapping of shell and > external commands to system calls. Now there isn’t. What’s your solution to that? Never invent sockets, because Saint Thompson didn’t think of it first? I can already predict that you didn’t like the other plan — Plan 9, that is — where they redesigned Unix to include sockets, ioctls and more at the filesystem level: http://goo.gl/amRJSg Plan 9 broke compatibility, after all. Bash fakes /dev/tcp (http://goo.gl/bbRysJ) but Bash isn’t everywhere, and you’re likely to run into problems if you try to share that socket with another program, since it isn’t a real /dev node. >> No nc-alike here? Okay, echo the machine code to disk for an ELF binary that makes the necessary syscalls, using octal escapes. No, don’t cheat and echo out a C or assembly language program, go straight to the metal, you softie. > > I might have done that for 8-bit z80 code, but I've since learned that > it is rarely worth getting that intimate with the hardware. That was a reductio ad absurdum argument. The point is that if backwards compatibility is the be-all and end-all of software design, we had everything we needed decades ago, so why not just fire up a 4.3BSD VM, and do everything that way? >> You can’t just wish it away by telling everyone to switch to Java, or JavaScript, or whatever else. All you’re going to do is create another “standard” in the XKCD sense: >> >> https://xkcd.com/927/ > > Well no, at this point you can't say that java is yet another new > thing What’s it really accomplished? It’s still just a big fish in a pond full of many other fishes, smaller than some, and not all that much bigger than a lot of others. That sounds like XKCD’s “soon” scenario to me.