1,283 karma · joined July 25, 2013
Is this true even for procedures? I was recently playing around with Scheme and was disappointed that once a procedure is defined, it got internalized and didn't have a textual representation other than #<proc> or the like.
In TCL, procedure signatures and bodies are stored within the runtime. You could essentially dump the entire state to a TCL file.
It's something that's been consumed for millennia. There are societies based on pastoralism where milk is a huge part of the diet. I'd hardly classify it as being an obsession.
I'm still learning about Scheme/Lisp, but doesn't hot-loading have to do with the size of "compilation units?" Isn't a single s-expression treated as a compilation unit whereas in a language like Java, the compilation unit is an entire Class?
Rich Hickey touched on this in a comment here on HN (2nd paragraph): https://news.ycombinator.com/item?id=2467809
I've been diving back into Scheme and one thing I found out was that in Scheme, procedures don't normally have an "external representation." I.e., once a procedure has been defined, I don't think there's a way to get that definition back out.
Tcl is really interesting in this aspect since procedure definitions (names, argument lists and bodies) can be viewed using the "info" command.
With that in mind, I'd say it's actually more homoiconic than Scheme.
In Hay's book, he talks about modeling not just Object Classes, but how you can go about modeling ObjectClass classes (the metadata). In Smalltalk, this metadata is automatically available via the Browser.
In reviewing the CQL Tutorial, the Typesides' "java_functions" specification section made me think of the Method Finder (wherein you could provide an input value and the expected output value and methods that satisfied the transformation would be shown). I'm not sure if in CQL you'd be able to search for a function that satisfied criteria, but that may beyond the scope of what that system is trying to provide.
In any case, interesting threads of thought to be followed and explored.
I'll let the gripe about plugins pass because I think it's a bad metric for measuring how popular a framework is. How many of the plugins from 1.x and 2.x are even relevant anymore?
>...and no-one's started new projects
This is a ridiculous claim. It's just spreading FUD.
Over the last couple of years, I've been collecting passages that touch on this point. I'm always surprised when I come across them. Two of my favorites that I've randomly come across (and from non-political books):
>It would be in the interest of kings, czars, nobles, and so forth that the masses be educated in a way that renders them slavelike in mentality. The language of wrongness, should, and have to is perfectly suited for this purpose: the more people are trained to think in terms of moralistic judgments that imply wrongness and badness, the more they are being trained to look outside themselves—to outside authorities—for the definition of what constitutes right, wrong, good, and bad. When we are in contact with our feelings and needs, we humans no longer make good slaves and underlings. [0]
>...the very media we have mentioned are so designed as to make thinking seem unnecessary (though this is only an appearance). The packaging of intellectual positions and views is one of the most active enterprises of some of the best minds of our day. The viewer of television, the listener to radio, the reader of magazines, is presented with a whole complex of elements — all the way from ingenious rhetoric to carefully selected data and statistics — to make it easy from him to “make up his own mind” with the minimum of difficulty and effort. But the packaging is often done so effectively that the viewer, listener, or reader does not make up his own mind at all. Instead, he inserts a packaged opinion into his mind, somewhat like inserting a cassette into a cassette player. He then pushes a button and “plays back” the opinion whenever it seems appropriate to do so. He has performed acceptably without having had to think. [1]
[0] "Nonviolent Communication" by Marshall B. Rosenberg
[1] "How to Read a Book" by Mortimer J. Adler
(1) applying the "analytical reading" rules defined in "How to Read A Book" to a code base. One of those rules, as Olikas said, is formulating hypotheses and questions and "actively engaging" with a code base (or any text).
(2) Compare and contrast a similar project (i.e. using the same language and framework) to figure out whether the structure of the project in question is following a general layout or not (e.g. Maven projects in Java).
"Thinking in Systems: A Primer" by Donella Meadows changed how I approached designing/troubleshooting software systems as well as changed how I think about political policy decisions and their results.
"Object Thinking" by David West dramatically altered how I approach designing OO systems. I especially liked the chapter(s) where he used different real-world metaphors for designing systems. For example, asynchronous communication (email) is often more appropriate than synchronous communication (calling someone on the phone). Delegation of tasks without "micromanaging" (i.e tell don't ask).
"Ever Wonder Why?" by Thomas Sowell gave me an insight into some of the underpinnings of Conservative thought. I'd never had the opportunity to hear any of the arguments he brings up in college or in my own liberal social groups.
- The amazing SQL library - HTML builders (there are XML builders too) - Literal collections (lists and maps)