Gun laws reflect a society's general property rights, and drug laws their intellectual freedom.
86 karma · joined March 22, 2008
Gun laws reflect a society's general property rights, and drug laws their intellectual freedom.
Contemporary "political news" is propaganda carefully crafted by concerned corporations to misinform the viewer, both targeted "reverse lobbying" on specific issues and general-purpose anti-participation tactics. The idea seems to be to get voters to act against their economic and/or ethical interests either by convincing them to mis-vote (compared to how they would if they were more informed) or not vote, via manufactured dissent, character assassination, blurring of issues and facts, and irrelevant/impossible campaign promises (e.g. archaic issues like gender and reproductive rights and "border control" that's thinly veiled racism (and won't happen because companies want the illegals and they pay better)).
Call it reverse advertising. We've gotten so good at PR techniques that they've become invisible. Everything stays the same, but we rebrand it and view the world through the lens of the internet, detached from empathy with the bitter natural world, in a cocoon suckling the nectar of porn-- over-processed information.
This is why startups have only yet caused negligible political change. Software, and by extension most programmers, are effectively "brains in a vat." Shows how machines have already "taken over" the world, and haven't displaced us in the process. The singularity already happened, but we're still large, hairless bipedal rodents-- and computers are not. Human bodies need different stuff than machines, so we don't have to be competitive.
Likewise, hackers just want to have fun, and -- as this comment bears witness -- we just talk about it online instead of doing anything about it. Hackers aren't competitive with suits any more than computers are to biology. Suits want software, so nerds get paid, but then turn around and re-invest their money, move to Singapore and live it up, go on perma-vacation, etc. There are many brilliant hackers, many of them also more than charismatic and wealthy enough to get into national office. Instead they build the programming language they've always wanted, or take up cycling, or reconnect with nature.
When we do look beyond the bubble of hedonism, we're comparable to people who pray for things out of their control, i.e. asking for something, instead of either making adjustments to gain control or accepting that control is ultimately undesirable or impossible. Self-directed prayer (meditation), where one looks inward and develops a dialog with 'eir layers of consciousness, is something different, but other-directed prayer is the single-player version of "happy news" (porn), be it cat pictures or startup drama or gadget announcements or sports or esoteric programming language design.
I didn't mean to suggest riding the wave of new, distinct, non-progressive technologies. Their is a progression; it seems clear to me that PG was right, that we (as an industry) are slowly moving toward Lisp. He also said that he felt Lisp and C represent the two "clean, consistent" programming models, and I agree. And that's the reason that JS isn't just another passing wave (although my previous comment did seem to make that suggestion).
JS is something different; it's (1) a good-enough balance of C and Lisp and (2) available on every platform. To me, the situation is clearly that JS will form a solid, durable layer over C. Then the language designers and industry hype machine will shift to langs that compile to JS. This is already happening, naturally, it's just not evenly distributed.
> Like what?
We're still in the early days of compiling to JS, and being able to use it as a modern server-side environment. I don't know what the results will be, but I think the difference will stem mostly from development time. Even though it could be done, in practice you don't end up with the same app if using Fortran, Java, and CoffeeScript, because doing so would take a month versus a week versus a day. To paraphrase Linus from his Tech Talk on Git, speed doesn't mean you do the same thing faster, it changes behavior.
Apps will get written that wouldn't've. I'd argue that Facebook succeeded mostly because of PHP, and in turn, that they'll eventually fail because of it, too. They beat MySpace because MySpace used the MSFT stack; it's like England's victory over Spain due to more nimble war ships. Same thing'll happen to FB unless they evolve when necessary.
This is what Yegge was getting at back in '06 [Dreaming in a Browser Swamp]. He mentioned "Scheme on Skis" and "JavaScript on Jets", which might turn out to be ClojureScript and Express or Railway. Well on our way, and he was entirely right in retrospect (even though a shocking number of smart hackers don't want to accept it and keep on with archaic tech that's becoming rapidly endangered, but that's life).
Light Table is an early example of an app that's happening because of ClojureScript. And many exiting CoffeeScript apps are quite impressive: https://github.com/jashkenas/coffee-script/wiki/In-The-Wild
I think it comes down to being able to focus on design and make fast changes, without needing to worrying as much about the lower layers of abstraction.
Software is a product of the platform(s) it was built with, in the same way a novel is a reflection of the writer's language more-so than the writer. Microsoft's software is what happens when you use C and .NET; Google with C++, Java, and Python; Facebook with PHP; 37signals with Rails; etc. There are apps that will be built because they could only be built with a unified JS platform. There will be new kinds of software that directly result from the new possibilities of Node, CoffeeScript, Meteor, Firebase, Parse, etc.
Different tools yield fundamentally different results. Once a platform is "mainstream", it's to late, the big opportunities have already passed and the innovation is elsewhere. There's still a chance to be the "DHH of Node"; that spot's obviously already been taken in the Ruby world.
Becoming complacent is a risk. OTOH, most people are alienated, synchronous workers. They don't have control over the means of production, don't have equity or profit-sharing, and earn a wage for their time itself rather than their products. Many HN'ers are post-capitalists, and are naturally becoming more and more distant from that world. I know I am. I visit family, or go see old non-technical friends, and fuck, so much complaining about things they wish they could control, lusting for things they wish they could afford, and hyper-attachment to their existing life and possessions. I remember the onset of that feeling, when I had stayed to long at a non-software job after college.
I don't think working remotely and earning a decent salary makes me out of touch, just ahead of the curve. Same for Google and Facebook. We don't need to "get in touch with the common man"; it's like suggesting Rome should've reverted to a violent warrior culture to combat the tribes.
What Rome actually did is what Google is doing. Rome didn't fall; as they had gone from Kingdom to Republic to Empire, they continued evolving, into Church. The Roman Church was able to achieve way more than the Empire, since they got an information advantage over the tribes and could conduct invasions non-violently (and way more successfully) as "missionaries" instead of military. Christianity proved to be a cultural advantage over paganism.
In turn, Google is making self-driving cars. Your own traveling mini-Googleplex. They'll buy an airline in the next few years. Facebook will start building places for more people to get online, to breed new hackers. They're starting a HS internship program in Menlo Park. They'll realize, if they haven't already, that it's cheaper to make smart kids into engineers than hire them out of college. And so on.
As the merchants overthrew the nobility, we're watching the hackers overthrow the capitalists.
I'm basically just asserting that objects (should) == hashtables. This is quite literal in JavaScript. Other languages bend the metaphor in different directions, and obscure it to that no one even knows what "object-oriented" really means beyond particular idiosyncratic syntax in this language or that.
PG of course talked about this before, in Why Arc Isn't Especially Object-Oriented:
> I've done a lot of things (e.g. making hash tables full of closures) that would have required object-oriented techniques to do in wimpier languages ...
I'd argue that he was employing genuine object-oriented techniques, but just didn't have classical syntax and didn't consider what he had an "object." Other languages make a point about it, and use special syntax, which fogs the whole thing. Perhaps some people in "OO" mindsets have the kind of naivete that C-only hackers I've met have about first-class functions.
Actually, I just realized the whole reason C++, Java, C#, and co. have "methods" in the first place is just compensation for not having first-class functions you can stick in a hashtable.
I'll just go through my probably plebeian understanding. Arrays are to lists as hashtables are to objects. An array, in my mind, is a list that only contains one type and is indexed with enumerated integers. On the other hand a list can contain any type, but is also indexed with enumerated integers.
In JavaScript:
array = [1, 2, 3]
list = ["one", [[array], 3]]
array[0] == 1
list[20] = 23 // list indices aren't necessarily a linear enumeration
Of course, arrays and lists are both technically Arrays in JavaScript (a bad naming choice; I'd have called them Lists). Now a hashtable is typically just a list that uses strings for indices instead of integers. hashtable = {
"today":20080403,
future:function(x) { return this.today + x }
}
A "method" is just a value that happens to be a function. Usually hashtable-oriented languages choose to abstract away the string, and treat it as a variable. hashtable["today"] == hashtable.today
hashtable.method(23)
Like with lists/arrays, JavaScript gets hashtables/objects almost exactly right, but again is subject to some questionable naming choices.RE: trees and graphs -- I was getting at the relationships between nodes, not the actual computations, but I'm not comfortable enough with the terminology to explain exactly what I meant.
Edit: I don't mean these are "failures" now, just that they're doomed in the long run. Does anyone think they'll be able to stand any of these languages in 2018? I don't they'll have evolved much by that point either. The older a language gets, the harder it is for it to evolve. And if it tries to make too big a leap, people simply don't go for it (PHP5, Perl 6).
Lists confine one to rigid hierarchies, which have to be compensated for with dirty (but sexy) hacks like in-language macros. Meanwhile the index of hashtables is arbitrary, which allows you to do naturally the things you have to patch in Lisp.
Though hashtables are more powerful and easier to grok, for one reason or another nearly all (popular) hashtable-oriented languages are total crap (C++, Java, C#), but in some regard a step up from deformed languages like C (in all seriousness, how does anybody get by without first-class functions and hashtables?). My tentacles have only found two decent hashtable-oriented languages: JavaScript >~1.5 and Io.
Anyway, why is Lisp unpopular? Because it's harder for most programmers to think in lists than hashtables. Then, why does the lang have a cult following? Because it's well crafted and consistent, which seems to cause some people to overlook its shortcomings, even to the extent of seeing design flaws as features.
But as far as I'm concerned the Language War is over anyway. JavaScript won.
The only (!) thing Lisp has to do is efficiently and absolutely abstract away XML, CSS, and JavaScript. No Lisp is going to get any uptake otherwise. We could do this with Arc.
Holiday sex searches skyrocket, news stories plummet: http://www.google.com/trends?q=sex%2C+porn&ctab=0&ge...
Ramadan? http://www.google.com/trends?q=sex%2C+woman&ctab=0&g... (note the Saudi news correlation)
Edit: No coding over Christmas: http://www.google.com/trends?q=html%2C+php%2C+javascript%2C+...