cpressey
But at least one thing I can see is that in PR, you need to fix the upper bounds of the loops (/recursion depth) ahead of time, not "on the fly". If you're doing some kind of iterative approximation, you probably don't know what those bounds "should" be, because you're going to terminate on some other condition, like, the change in the value has become negligible. Your upper bound will be a worst-case estimate -- which you have to do extra work to compute -- and I don't see how it differs much, in practice, from a timeout, which has the advantage (again from a systems perspective) of being measured in clock time rather than cycles.
Not sure about parallelization. PR doesn't suggest any advantages to me for that offhand, but then, I haven't thought about it.
* from a systems point of view, an infinite loop is no worse than a routine that doesn't return after a reasonable amount of time. PR is a huge complexity class (it contains NEXP); just because a function always terminates doesn't mean it's efficient (or as efficient as you would like/need it to be.)
* PR functions are somewhat easier to reason about than general recursive functions (no need to mess around with bottom and domain theory) but I haven't seen a lot of evidence that that translates to making them easier to aggressively optimize.
* In fact, I have heard many PR functions have a more efficient GR equivalent, and I don't know of any way to automatically derive the GR version from the PR; and I expect (just on hunch) that no perfectly general PR->GR conversion could exist.
* Granted, a function can be shown to be total without necessarily being PR, but then you have the burden of proving that it is total, and it seems inelegant to move that burden to hardware. Maybe it's not, maybe that's just "normal science" talking.
* In practice, if I want to run an interpreter for an existing TC programming language on this architecture, it has to treat the architecture as TC (i.e. conceptually break its separation between executor and evaluator) anyway.
"Hodgson Gestation Services, LLC"
(Yes, this is sarcasm.)
Ouch!
btw, I think "fill the screen with @'s" must be the "Hello, world!" of Commodore machine-language programming. (Back when you could call it "ML" and not get it confused with a functional programming language, too.)
Descriptivistically, the "Mount Gox" backronym seems to have more currency. (pun intended, but immediately regretted!)
I tend to think it's a more general effect where humans actually want a certain amount of irregularity in their languages/notations, to act as markers or error-detecting codes of some sort. e.g. "he", but "him" in accusative case. But who knows; English gets by with "you" being both singular and plural...
This is kind of a confusing statement to me. Most instruments called "trumpets" where I come from are valved instruments which are fully capable of producing chromatics. (Maybe this is technically incorrect and we should be properly calling them "cornets" or something, I don't know.)
My point is, you certainly don't have to go to a museum to find one, and I expect, in a museum (of history anyway), any trumpet you'd find would be more likely to to be valveless and non-chromatic.
Whether it helps one when reading music is another matter. I remember learning to play an electric organ as a youngster with a book of sheet music that came with the organ; being aimed at beginners, each note head had the note letter written inside it. Hummingbird is basically using the same idea, just replacing the letter with a symbol. It probably does make it easier to learn. Whether it would be of any use for an experienced musician, I kind of doubt. (I certainly outgrew expecting the note head to contain the note letter, myself.)
Some would call it "narcissism", which (with an appropriately nuanced meaning) I think is more accurate than "bragging".
I strongly agree with the article. Sharing your experiences with social networking isn't necessarily about needing to get validation from others on your experience in order for the experience to feel complete for you... but for some people, it is. And I have to wonder, the more prevalent social networking becomes, are more and more people going to use it as their image-of-self crutch? And I have to wonder, what does such a society look like after a few decades? It's a bit like Warhol's "15 minutes of fame", except minutes are the wrong unit of measure. Everybody's a 15 milligram celebrity...
Video Games: 14 in the Collection, for Starters
(Yes, I know that's still science-fiction, but is it really that much more of a stretch than the AI/robot/automation "software will eat the world" firm-belief that you see daily on HN?)
Farming is a lot more like "software engineering" than "programming". You can't pause a farm. It's an "engine" that you have to keep running, no matter what calamity occurs (weather, breakdowns, etc.)
You could say analysis is a theoretical form of programming, or correspondingly, that programming is an applied form of analysis -- specifically, applied on computers.
I guess my main reservation is that if kids' first exposure to analysis is through programming, there's a risk of skewing their perception towards looking for solutions that use computers. ("When all you have is a hammer, everything looks like a nail.")
In my experience, I've seen problems that have been approached like: We're doing X too slowly, and it's costing us; what kind of computerized tool can we build to let us do X more quickly? And after the tool has been built, it introduces a new set of processes with its own set of burdens, and X is not really done significantly more quickly. My conclusion is that you often need to step back and re-examine what people are actually doing (and why), and what they actually want to accomplish (and why.)
(And a significant obstacle with that is that people develop habits, and they get comfortable with them, and don't want to change them -- so, without knowing the details of the problem, the first step in "How can I speed up harvesting?" would probably be to have some willingness and flexibility to try out variations in your methods of harvesting.)
If we can find ways of teaching kids to program that build their problem-solving skills while also not clouding their heads with the idea that computers are necessarily part of the best solution, I'm all for it.
I would call the ability to understand and solve those kinds of problems analysis, not programming. It used to be the case that "systems analyst" and "programmer" were two different job titles; at this point, they've largely merged, but I still see them as two different skill sets. (And then there's "software engineer" which is a whole other can of worms.)
My hobbies are what I do for fun. I don't give one whit if they're ultimately "successful". I engage in them because I find them intrinsically interesting.
After reading this, I feel like there is a peer pressure, however slight, to have hobbies that have "momentum" which will ultimately make them "the future". (Like, oh no, maybe I'm engaging in the "wrong" hobbies, because I'm pretty sure than in 10 years, still not everyone will be building ships in a bottle.)
This sort of pressure completely defeats the point of having a hobby, sucks all the fun out of it, and will leave me personally feeling discouraged and apathetic (for this morning at least -- until I can flush this mild poison from my system.)
So that does seem like the ballpark figure, with the following 2 caveats: I don't know how reliable Monster is for this kind of data, and I picked three cities off the top of my head roughly in the middle of the USA that I don't think of tech centres but I don't know how out-of-touch I might be in that regard.