I'm happy to hear that. I already made light table my main IDE for tinkering and solving 4clojure assignments. For the most part I've dumped emacs/SLIME for everything but lazy seq stuff which is problematic to run in light table - and for saving and managing project files.
Good documentation with examples, especially integrated R/W documentation is absolutely essential. Integrated clojuredocs etc.
I don't think PHP would be still around if the docs were more like docs in other langs. People can give additional examples there, describe bugs, differences in various versions, even small programs demonstrating the intended use or a workaround. It could be a lot better technically but it's very clear that it is super useful and a great time saver.
Really nice summary, Chas ;). I hope I haven't spoiled the statistics by filling in "just started" - the same response as the last year.
I guess some of us are start over all the time. But at least this time I've read through a half of Clojure in Action and going through 4clojure exercises to "finally get started".
This time using instarepl by Chris instead of LaClojure or Emacs/Slime (where just a tiny subset works for me).
And it's fun! If only errors were not such a drag. I guess complains from 2011 will repeat on those...
Writing tree structures is always fun. Writing it in an optimized way is a lot of work though. And what's worse one needs to reimplement quite a few things if the problem solved by the particular tree changes.
To avoid that issue Tarjan and Werneck designed self-adjusting trees so the user doesn't have to understand implementation details while still having access to an
effective data structure. There is a free implementation (with relevant papers linked) so if you don't want to reinvent the wheel have a look :)
I remember a paper that compared fast implementations of treaps, AVL, and red-black trees, and found that they are approximately equally well suited. rbtrees are best at insertion, AVL at selection, treaps at overall performance (if I recall correctly). I don't have the reference though...
That result surprises me. Red-black trees do their work at insertion time, and AVL trees split the work between insertion and selection. This should make red-black trees faster at selection and AVL trees faster at insertion, and both should do a set of insertions and selections in the same time.
(A red-black tree is a plain-old binary search tree for everything but modifications.)
I read a paper in the spring that purported to compare, among others, red-black trees and treaps. It found that treaps were better for ordered operations but worse for random operations.
edit: For the actual comparison between the three: treaps give no guarantees. Red-black trees sacrifice some lookup speed in favor of insertions.
If RAM clocked higher and pushed closer to a processing cpu would make everything 50 times faster it'd still need 20 times as much silicon. Considering ideal heat dissipation such a system would still need let's say 20x100w = 2kW of input power. Which is about what a fast boiling kettle needs. How much realistic is that?
Where do you get the 20 times as much silicon number? For example, SRAM typically uses 6 transistors per bit, as opposed to 1 transistor for DRAM. What are the other 14 transistors doing?
I wonder how many of (quite a few) unique newspeak features will Dart sport. My gut feelings are that Google will try to please mainstream instead. That'd be unfortunate but if things like no namespace or modularity were alike it'd be still cool as a wider scale experiment.
Fantom (http://fantom.org/) also compiles to javascript. However this platform is supported via direct AST transformation not runtime bytecode generation as for JVM or CLR.
Disregarding some unsuccessful attempts in BASIC on a ZX-81 clone I learned programming from a Borland´s Turbo C manual (a Christmas present for our new shiny AMD 386). I was 15 or so and playing computer games all day wasn't interesting enough anymore.
Yeah, a post like that would be really great. I do that for my side projects and the slow down caused by having normal working hours and not all weekends "free" for work is just terrible.
A project which would normally be released in two months can take a year or so - I can't really imagine doing business this way.
Good documentation with examples, especially integrated R/W documentation is absolutely essential. Integrated clojuredocs etc.
I don't think PHP would be still around if the docs were more like docs in other langs. People can give additional examples there, describe bugs, differences in various versions, even small programs demonstrating the intended use or a workaround. It could be a lot better technically but it's very clear that it is super useful and a great time saver.