Back To 'The Future of Programming'
theodp writes "Bret Victor's The Future of Programming (YouTube video; Vimeo version) should probably be required viewing this fall for all CS majors — and their professors. For his recent DBX Conference talk, Victor took attendees back to the year 1973, donning the uniform of an IBM systems engineer of the times, delivering his presentation on an overhead projector. The '60s and early '70s were a fertile time for CS ideas, reminds Victor, but even more importantly, it was a time of unfettered thinking, unconstrained by programming dogma, authority, and tradition. 'The most dangerous thought that you can have as a creative person is to think that you know what you're doing,' explains Victor. 'Because once you think you know what you're doing you stop looking around for other ways of doing things and you stop being able to see other ways of doing things. You become blind.' He concludes, 'I think you have to say: "We don't know what programming is. We don't know what computing is. We don't even know what a computer is." And once you truly understand that, and once you truly believe that, then you're free, and you can think anything.'"
Every time some stupid colleagues of mine told me I was doing it wrong, I kept thinking they were close-minded idiots.
Turns out, I was right all along!
Get free satoshi (Bitcoin) and Dogecoins
What, TFS wasn't short enough for you?
Tic-Tac-Toe, Global Thermonuclear War, and relationships all have the same winning move.
Yes and no, I think.
On the one hand, it is a good thing to prevent yourself from constrained thinking. I work with someone who thinks exclusively in design patterns; it leads to some solid code, in many cases, but it's also sometimes a detriment to his work (overcomplicated designs, patterns used for the sake of patterns).
Unlearning all we have figured out in computer science is silly, though. Use the patterns and knowledge we've spend years honing, but use them as tools and not as crutches. I think as long as you look at something and accurately determine that a known pattern/language/approach is a near-optimal way to solve it, that's a good application of that pattern/language/approach. If you're cramming a solution into a pattern, though, or only using a language because it's your hammer and everything looks like a nail to you, that's bad.
>> We don't know what programming is. We don't know what computing is. We don't even know what a computer is.
Aha - they found the guy who trains InfoSys employees.
The future of programming, from the seventies, it's all hippie talk...
"We don't know what programming is. We don't know what computing is. We don't even know what a computer is." And once you truly understand that, and once you truly believe that, then you're free, and you can think anything.'"
Next thing we can throw our chairs out and sit on the carpet with long hair, smoke weed and drink beer....
Unless of course you know you know what you are doing, because you also know to never stop looking for new ways of doing things.
Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
The most dangerous thought that you can have as a creative person is to think that you know what you're doing,' explains Victor.
Yeah. I bet Vincent Van Gogh thought he was total shit at painting, didn't know anything about paint mixing, brushes, or any of that. Look, I know what you're trying to say, Victor, but what you actually said made my brain hurt.
However, exploring new things and remembering old things are two different things. You can be good at what you do and yet still have a spark of curiousity to you and want to expand what you know. These aren't mutually exclusive. To suggest people murder their own egos in order to call themselves creative is really, really, fucking stupid.
You can, in fact, take pride in what you do, and yet be humble enough to want to learn more. It happens all the time.. at least until you're promoted to management.
#fuckbeta #iamslashdot #dicemustdie
Time for real apprenticeships in tech and not years of theory?
This is why no one ever reads patents before violating them. *ducks*
Summary of TFS: There is no spoon.
Ascalante: Your bride is over 3,000 years old.
Kull: She told me she was 19!
One reason I had so many patents relatively early in my career is I wound up doing hardware design in a much different area than I had planned on in school. I did not know the normal way to do things. So I figured out ways to do things.
Sometimes I wound up doing stuff normally but it took longer, this was OK as a bit of a learning curve was expected (they hired me knowing I didn't know the area yet).
Sometimes I did things a bit less efficiently than ideal, though this was usually fixed in design reviews.
But sometimes I came up with something novel, and after checking with more experienced folks to make sure it was novel, patented it.
A decade later, I know how a way to do pretty much everything I need to do, and get a lot less patents. But I finish my designs a lot faster:).
You need people who don't know that something isn't possible to advance the state of the art, but you also need people who know the lessons of the past to get things done quickly.
I need some more bong hits to fully consider this
You must be new here. That "pretentious philosophical BS" is like the spark in a fuel-and-oxygen filled chamber. It ignites into a heap of comments, and those comments are the actual story. Who needs an article when you can browse +5 funny / informative / interesting and -1 trolls?
As for the linked articles, that's just a cleverly disguised DDoS botnet setup. Some figured it out, but few seem to care the /. botnet is still operating. Heck, I'm even contributing people-time to it (on top of CPU cycles).
I agree having an open mind is a good thing. There is, of course, taking things too far. Just throw away everything we've spent the last 40-50 years developing? Is there some magical aura we should tap into, and rock back and forth absorbing instead? Should we hum esoteric tantras under the enlightening influence of various chemical enhancements awaiting Computing Zen?
Someone watched The Matrix one too many times. There is no spoon!
Read: Rabbit Rue - Free serial nove
.. is that C was seen as a major setback by Frances E. Allen and others.
Source:
Frances E. Allen
ACM 2006 Conference
http://www.youtube.com/watch?v=NjoU-MjCws4
The context here surrounds abstractions and not allowing users (programmers) to play with pointers directly (C, and later, C++), which is a setback concerning optimization, because of the assumptions/connections you make about/with the underlying machine.
If you want to learn more about the ideas of the 1960s and 1970s, I highly recommend looking up talks by Alan C. Kay ("machine OOP" which is Smalltalk in a nutshell), Carl Hewitt (actor model), Dan Ingalls, Frances E. Allen (programming language abstractions and optimization), Barbara Liskov ("data OOP" which is C++ in a nutshell), and don't stop there.
I think most companies would rather have the slavery of unpaid internships then actually have to train people.
We do know a number of things about programming. One is that it is hard and that it requires real understanding of what you intend to do. Another is that languages help only to a very, very limited degree. There is a reason much programing works is still done in C, once people know what they are doing, language becomes secondary and often it is preferable if it does not help you much but does not stand in your way either. We also know that all the 4G and 5G hype was BS and that no language will ever make the (today prevalent) semi-competent or incompetent programmer into a productive highly competent programmer. We know that OO done well (Eiffel, Python, some few others) is nice, but that it still requires real understanding from the people using it or it is worse than not having it. And we know that it is easy to get OO badly wrong (C++, Java, etc.) making it counter-productive. We also know that architecture and design can and often is more critical than implementation. And we know that many "modern" languages cause more problems than they solve because of performance issues, code bloat, bad readability, etc. (Yes, Java, I am looking in your direction.) We also know that design patterns are nice in theory, but do not hold up in practice, mostly because most people calling themselves programmers have no clue about them, but also because patterns do only solve part of the problem.
So, no, I don't think there is a problem with programming. I am however convinced that there is a problem with the majority of the people calling themselves "programmers' these days. A real eye opener is this: http://www.codinghorror.com/blog/2010/02/the-nonprogramming-programmer.html
Even those regarded as "competent" often take months to accomplish what really competent people can do in days or even hours. I this regularly.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
No. Time for real theory coupled with real experience. Apprenticeships only work when the profession is ruled by real craftsmen. The programmers today rarely qualify, hence real apprenticeships would only make things worse.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Here at /. I just look at the pictures. Playboy, now thats a different story.
I was intrigued until I noticed that where I put the quote marks, and where the quote marks actually were, were not the same place. So much for the "Mr. Perl Extreme-Fluxing Agile Capacitor."
and what about internships with out the university part.
Most people I worked with in the 80s (and learned from in the 70s) had a good feel for concepts like "stable systems", "structural integrity", "load bearing weight", and other physical engineering concepts. Many from engineering degrees (most of them weren't CS grads like me), and a lot from playing with legos, erector sets, chemistry sets, building treehouses (and real houses). These concepts are just as important in software systems, but I can only think of a handful of people I've worked with over the last 20 years who had a feel for the stability of a system (physical or software) or an ability to find system weaknesses when a bug is found rather than fix a programming error.
That's very important for development time and quality. To go fast you need to know where it's important to go slow. You have to know what's important to get right at the start (structurally) so you can change requirements as needed and not risk breaking the system or requiring a lot of rewriting (or refactoring). Your framework should be a stable "frame" for the system (like a building or car), not a set of libraries you cobble together for speed of implementation. After deploy, "bugs" are easy to fix but system weaknesses are not.
On the other hand, a lot of things have improved. Tools, methods, and specializations allow a team to be comprised of some people who understand systems (architects, senior developers) and others who specialize in certain areas (html, db, communication protocols, builds, etc). And there are many more people available who are capable in specific areas so far more teams can exist doing many more applications. If we only had the same percentage of people writing software now as in the 70s & 80s and those people had the backgrounds developers had then, we'd be producing better software but orders of magnitude less of it.
they hired me knowing I didn't know the area yet
Those days are long gone.
And it's interesting that you actually innovated while you were learning. That's something that corporate America should consider.
They won't.
Today is just same old same but different names and pseudo innovation. Coupled with old farts pretty much being thrown out, the youngsters actually believe the rehash tech they're working with is "new" and "innovative" - and then they wonder why they get sued for patent infringement.
It's not necessarily the IP laws: you're just reinventing the wheel and calling it a "ground synergistic scalable momentum enabling device" and the guy who owns the wheel patent has an issue with that.
Not always - but usually.
I find it interesting that people in software think they are the first ones to ever design complicated things. It seems there are so many arguments over design styles and paths. All they need to do is look at what other engineering fields have done for the past 100+ years. It's pretty simple. When you are working in a small project where the cost for failure and rework is low you can do it however you want. Try out new styles and push technology and techniques forward. When it comes to critical infrastructure and projects where people will die or lose massive amounts of money you have to stick with what works. This is where you need all of the management overhead of requirements, schedules, budgets, testing, verification, operation criteria, and the dozens of other products besides the "design".
I'm a mechanical and a software engineer. When I'm working on small projects with direct contact with the customers it's easy and very minimal documentation is needed. But as more people are involved the documentation required increases exponentially.
I love Jesus, except for his foreign policy.
So it was a TED talk?
Learn to love Alaska
http://en.wikipedia.org/wiki/Antikythera_mechanism
We don't even know what "employment" is, what a "salary" is, and what "benefits" are . . .
Wait, I thought Programming is Ruby, Computing is in the Cloud, a Computer is something you rent from Amazon! Who cares about the underlying 40 year old code that seems to just work and why it's there? I won't get any VC if I don't have a wacky logo and cloudy this and that.
So, we know what the computer does. It's this: List of x86 instructions. It executes those instructions. The device stores and executes instructions.
We think in terms of programming languages. The language abstracts away the complexity of manually generating the instructions. Then we build APIs to abstract away even more. So we can program a ball bouncing across a screen in just a few lines rather than generating tens of thousands of instructions manually, because of abstraction built upon abstraction.
In hardware, they build more complex circuits and give us more instructions. Perhaps one day mathematicians will come up yet a different device which can "do what we want", whatever that may be. The early computers were created to facilitate computation - calculation. Then people came up with programming languages (aka compilers) to generate the instructions automatically. The hardware was extended to do more things - draw a dot on a monitor for example. People discovered they could represent abstract concepts in programming languages. Then it was off to the races.
I think all complex systems are built evolutionarily. From single-celled organisms to eventually man. And it's done by taking the basic building blocks and building more and more complex systems from those building blocks. The basic stored instruction computer is settled (right?). We're doing all sorts of weird and interesting things with it, from playing Tetris, to emailing cat videos, to modeling hurricanes. And of course porn. Looking at porn.
Where does it end? Well, man can manage a certain amount of complexity (not much). He uses tools (in this case computers) to leverage his ability to manage complexity, as the device can represent all sorts of abstract concepts in code.
Won't change much. Even the "real theory" is half assed except in a select few colleges, usually (but not always) the high end ones. Then the professors that are good at the theory are usually impossibly terrible at the engineering aspect but still pass on their words as laws.
Its really an awkward situation.
What was surprising to me was the fact that something written in the 60's about software development is still very relevant today.
The engineers who worked on the IBM System/360 OS discovered software engineering through pure trial and error.
One of the classic insights from the book that I've seen companies (i.e. Microsoft) violate over and over is Brooke's Law. Brooke's law states that "adding manpower to a late software project makes it later." It is incredible how we reinvent the wheel everyday instead of taking time learn the from the trials and mistakes of others.
Another surprising insight to me at the time was the following. Although the engineers were working on a very technical problem, the biggest challenges they had to overcome were social/people challenges.
A major problem we have in computing is the Mess at the Bottom. Some of the basic components of computing aren't very good, but are too deeply embedded to change.
The Pascal/Modula/Ada family of languages tried to address this. All the original Macintosh applications were in Pascal. Pascal was difficult to use as a systems programming language, and Modula didn't get it right until Modula 3, by which time it was too late.
This guy is a ray of light from the younger generation. He's avoided grappling with the hard problem of shared memory latency, but other than that, he's doing pretty good. You have to deal with shared memory latency to handle a wide range of modeling problems, not the least of which is real-time multicore ray tracing like this.
Seastead this.
.... realize what IS! http://abstractionphysics.net/pmwiki/index.php
Ever heard of analog computers? They existed. There were a few made using tri-state logic too, and a lot of the early ones used base ten arithmatic in hardware via dekatron tubes.
It's an entertaining presentation, but I don't think it's anything nearly as insightful as the summary made it out to be.
The one thing I take away from his presentation is that old ideas are often more valuable in modern times now that we have the compute power to implement those ideas.
As a for-example, back in my university days (early-mid 1980s), there were some fascinating concepts explored for computer vision and recognition of objects against a static background. Back then it would take over 8 hours on a VAX 7/80 to identify a human by extrapolating a stick figure and paint a cross-hair on the torso. Yet nowadays we have those same concepts implemented in automatic recognition and targetting systems that do the analysis in real time, and with additional capabilities such as friend/foe identification.
No one who read about Alan Kay's work can fail to recognize where the design of the modern tablet computer really came from, despite the bleatings of patent holders that they "invented" anything of note in modern times.
So if there is one thing that I'd say students of programming should learn from this talk, it is this:
Learn from the history of computing
Whatever you think of as a novel or "new" idea has probably been conceptualized in the past, researched, and shelved because it was too expensive/complex to compute back then. Rather than spending your days coding your "new" idea and learning how not to do it through trial and error, spend a few of those days reading old research papers and theories relevant to the topic. Don't assume you're a creative genius; rather assume that some creative genius in the annals of computing history had similar ideas, but could never take them beyond the proof-of-concept phase due to limitations of the era.
In short: learn how to conceptualize and abstract your ideas instead of learning how to code them. "Teach" the machine to do the heavy lifting for you.
I do not fail; I succeed at finding out what does not work.
These days I like to work in C++. My usual MO is to write a class and unit tests for that class at the same time. If a problem arises in that class later, I can add a new test for it while I'm fixing it. With the C++11 standard, cppunit and a few boost libraries, C++ development really isn't any more difficult than Java development. If you write your own libraries with an eye toward building useful objects that you could use again later on, your development velocity should speed up over time (in either language.)
I've seen some horrific java projects too. Sure, your NullPointerException won't exit the program... IF you catch it. Or catch any exceptions. A lot of java projects I've seen don't. You go look at the logs and find an application has been crapping exceptions into the logs for the last 5 years and no one's ever bothered to investigate or fix them. You can still leak resources and memory in Java, as well. I see that a lot too. Adding any MQ server seems to pretty much guarantee it. I've also run across some very nasty gotchas in the language that typically wouldn't be a problem if you're not trying to use brute force and ignorance on a problem. Moral of this story is, just because you're using Java doesn't mean you can hire chimpanzees to write your code for you. Code written by bad programmers will suck no matter what the language, code written by good programmers will be great. That was as true in 1960 as it is now.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
The near ideal programming language was invented in 1959: Lisp. It has nearly open-ended abstraction ability via simple syntax: flexibility without clutter. It's a thing of design beauty.
However, nobody has figured out how to leverage it for team programming and fungible staff. Regimented languages just seem to work better for your standard cubicle teams.
Table-ized A.I.
*Re-reads summary in Laurence Fishburne's voice*
Try writing something like GIMP in Java, it will fail horribly. GIMP is OO C (yes, not C++), something that requires actual skill. This does not make people that have that skill slower, it makes them faster. Yes, I admit that I nowadays mix Python and C modules, because doing glue code that has low performance needs is easier in modern scripting, while the C classes give me the control and performance needed for many things.
But Java? That thing is an abomination. Neither fast nor simple. Neither well structured nor giving you a lot of freedom. Doing OO so badly, it is staggering. Full of syntactic noise that makes even the simplest things long and hard to read.
Java is a tool for cretins and the only reason it is getting the job done (badly) is that there are so many cretins writing software these days, nothing else.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Well said. One permanent problem with Java is that it is inherently slow and takes extraordinary skills to get to run fast. Most Java folks do not have that skill. I have seen really large, critical and expensive Java projects fail, because things were just to damn slow. The same thing could never have been slow in C, as it would have meant intentionally wasting inordinate amounts of CPU and memory. True, the team that wrote that Java would never have finished the code in C, but a much smaller team of people with good skills would have. And a really good team might even have written native code for the time-critical stuff an kept the Java interface. But there are very, very few people that can do that.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
I think he got it wrong why we got lost.
It's not because we didn't or don't know. It's because software was free back then. Hardware was so bizarly expensive and rare that no one gave a damn about giving away software and software ideas for free. It's only when software was commercialised that innovation in the field started to slow rapidly. The interweb is where it was 18 years ago because ever since simply because people are busy round the clock 24/7 trying to monetise it rather than ditching bad things and trying new stuff.
Then again, x86 wining as an archtecture and unix as software model probably does have a little to do with it aswell. We're basically stuck with early 80ies technology.
The simple truth is:
CPU and system development need's its iPhone/iPad moment - where a bold move is made to ditch out decade old concepts to make way for entirely new ones!
Look what happed since Steve Jobs and his crew redid commodity computing with their touch-toys. Imagine that happening with system architecture - that would be awesome. The world would be a totally different place in 5 years from now.
Point in case: We're still using SQL (Apollo era software technology for secretaries to manually access data - SQL is a fricking END-USER INTERFACE form the 70ies!!!) as a manually built and rebuilt access layer to persistance from the app level. That's even more braindead than keeping binary in favour of ASM, as given as example in the OPs video-talk.
Even ORM to hide SQL is nothing but a silly crutch from 1985. Java is a crutch to bridge across plattforms because since the mid 70ies people in the industry have been fighting turf wars over the patented plattforms and basically halted innovation (MS anyone?). The sceomorphic desktop metaphor is a joke - and allways has been. Stacked windowing UIs are a joke and allways have been. Our keyboard layout is a provisionary from the steam age, from before the zipper was invented (!!). E-Mail - one of the bizarest things still to be in widespread use - is from a time when computers weren't even connected yet, with different protocolls for every little shit it does, bizar, pointless, braindead and arcane concepts like the seperation of MUA, editor and seperate protocolls for sending and recieving - a human async communication system and protocol so bad it's outclassed by a shoddy commercial social networking site running from webscripts and browser-driven widgets - I mean WTF??? etc... I could go on and on ...
The only thing that isn't a total heap of shit is *nix as a system, and that's only because everything worthwhile being called Unix today is based on FOSS where we can still tinker and move forward with babysteps like fast no-bullshit non-tiling window managers, complete OpenGL accelerated avantgarde UIs (I'm thinking Blender here), workable userland and OS seperation and a matured way to handle text-driven UI, interaction and computer controll (zshell & modern bash).
That said, I do believe if we'd come up with a new, entire FOSS hardware arcitecture "2013" with complete redo and focus on massive parallel concurrency and build a logic-and-constraint driven touch-based direct-maniplation-interface system - think Squeak.org completely redone today for modern retina touch display *without* the crappy desktop - that does away with seperation of filesystem and persistance seperation and other ancient dead-ends, we'd be able to top and drop *nix in no time.
We wouldn't even miss it. ...
But building the bazillionth web framework and next half-assed x.org window manager and/or accompaning windows clone or redoing the same audio-player app / file manager / UI-Desktop toolkit every odd year from bottom to top again appears to be more fun I guess.
My 2 cents.
We suffer more in our imagination than in reality. - Seneca
I had the luck to have a really good theoretician do the introductory CS year at university for me and that he invested a lot of effort to find out how to do these things well in practice. I only later found out that the years before and after (they did rotate the introductory year) got a far, far worse education, either by bad practitioners or by theoreticians with exactly the problem you describe.
The bottom line is however that to be really good, you have to understand both theory and practice and you have to understand both well. The people that do can do things individually or in small teams that you require 100's of people to do otherwise and that then routinely fail. The problem really is that producing software is a game for highly qualified experts and not for the masses of "programmers" that currently do it. But the industry is way to immature to understand that. Compared to mechanical engineering, we are in the age where steam engines routinely explodes and otherwise performed badly. Now I had the pleasure to have a mechanical engineer to explain to me how steam pressure tanks are done today, and this is light-years from what they did back then. It is an absolute expert's game and nothing that would ever be given to an inexperienced junior engineer. But then, there are quality requirements, and if a pressure tank explodes, they will come after the engineers that messed up, because there is no excuse for that happening. Or take medicine. What goes on in software is that medical technicians do open-heart surgery. Completely unacceptable and bound to fail in most cases.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
And all such traditions have been vastly improved by subsequent paradigm shifts towards more willingness to experiment with radical ideas.
Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
I'm not sure how that proves traditional programming paradigms are better than some of the alternatives we have available.
Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
It's not even that the language is inherently slow. Its programmers just don't put much thought into storage or optimization. Just shove everything into a map and call it good. Or install a framework that shoves everything into a map for them. I've run across several cases where the programmer seemed to be trying to implement the least-optimum solution to his problem, and the company will just throw gigabytes of RAM at the VM without question because nobody seems to know any better. C, you HAD to roll your own, or stuff everything into a massive char* array and bludgeon it into submission. Everyone's so afraid of pointers in C because most people just did that instead of building proper structs and code to manage their memory access.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
What can be automated has been automated! When IT get's to the point of forming a schema for apprenticeships, it's at that very moment human beings will no longer be needed. Again, because now you have a template to automate the work.
Or to put it another way, IT is still staffed by people because the loop is still open. If the loop can be closed, you just need machines. And that's the entire point of development; to get to the point where you can close the loop.
Life is not for the lazy.
Well, yes and no. There is a lot of overhead in Java object instances. Sometimes you can avoid that and sometimes you cannot. But the thing is that in C you actually have to intentionally waste resources, while in Java it is very easy to do and very much non-obvious.
As to pointers in C, people that are afraid of them do not qualify as competent programmers in my eyes. Pointers are very reliable, very efficient and very elegant to use if you know what you are doing. With modern "quick fit" memory allocators (such as the one in the GNU C library) allocating and freeing lots of small memory pieces is extremely efficient and you need pointers to handle them. Of course, if you do not know what you are doing, pointers end up being the "goto" of data. I think people are just afraid of pointers because they separate the competent from the incompetent really fast.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
I thought only Koreans could major in CounterStrike! :-)
(All right, I'll admit — I don't think I know what the 'CS' stands for in the context it's being used in the summary. Are they talking about Cisco Systems? To be honest, I'm not really interested in watching the video to find out. I just wanted to make the above (probably-overused (and for that, I apologize)) joke.)
x86 CPUs have been mostly RISC since the 486. This became particularly true with the separation of the fast and complex pipes.
I think it would be fairer to say x86 turned out to be an OK instruction set for stack based compilers.
I'd like to see "Table Oriented Programming" explored some more, and perhaps dynamic databases. I learned a lot of interesting techniques using dBASE and its derivatives years ago. Sure, dBASE had some clunky parts, but it also allowed or simplified things that current tools make complicated. (Those who complained the most about dBASE tried to use it like C++, which is a mistake.)
Tables are often more visual and compact to encode certain kinds of information, such as Data Dictionaries to encode field and column info. Objects are too verbose for such.
Table-ized A.I.
Are you referred to as TopMind on a different forum?
"First they came for the slanderers and i said nothing."
Actually, I'm Batman, but don't tell anybody.
Table-ized A.I.
I've been reading things about table oriented programming on the c2 wiki, but I don't really understand it. I'm not sure if there is something somewhere that is a good introduction to the topic.......I'd be interested in learning more.
"First they came for the slanderers and i said nothing."
btw, I really like this quote of yours: "No programming paradigm, short real AI, will substitute for an unwillingness of humans to plan."
"First they came for the slanderers and i said nothing."
Here's some somewhat-simplified examples:
http://www.geocities.com/tablizer/prpats.htm
http://www.geocities.com/tablizer/cntrl1.htm
(This account will die soon, so copy it locally, or find the Reocities equivalent, which suffers formatting glitches.)
Table-ized A.I.
k, I'll check them out
"First they came for the slanderers and i said nothing."