Ah well. I get the impression the core Nxt devs are dead set against AT, so I'll stop arguing about it.
It's a wrong impression.
Perhaps; but Jl777, kushti and now you all seem to want something which is not Turing Complete.
From a practical point of view, would you rather solve a crossword puzzle that is (1000 x 1000) or (10 x 10)?
Nobody is against solving the giant puzzle, but it just seems much more practical to solve the smaller puzzle first.
ATs can be limited to (10 X 10). And then they can grow to (11 x 11) when that proves desirable, and to (12 x 12), all the way up to (1000 x 1000), at whatever rate we feel comfortable with. Where as switching from SC to AT involves a change of language.
P.S. If we had pre-canned solutions to all useful things an AT can do, then it seems quite a good approach especially if it avoids the incalculable risks of allowing free running code.
Agreed. However, as I understand it, SC does not provide pre-canned solutions. It will be a language, albeit a simpler and less capable one. We will have to learn how to read and write smart contracts in this language. It won't - can't - be so simple as to eliminate bugs.
Also, part of the argument in favour of AT is the claim that it can be done safely. It isn't "free running code". It doesn't embed Java bytecodes into transactions, or anything uncontrolled like that.
(Incidentally, I'm not opposed to functional languages. Or even to using one that is initially not Turing Complete, provided that TC-ness can be added later. I do think that Turing Completeness will be needed in the long run, and I think it would be shame to end up having to learn 4 languages to use Nxt: Java,
Kushti's pattern-matching state machine, Come-from-Beyond's SQL SELECT scheme mentioned here, and Automated Transaction opcodes when they eventually get done.)
(I'm also not opposed to pre-canned solutions. Although implementing such is in some ways harder and slower; anything that goes into the core needs to be bug-free, and it needs to fill a lasting need. The core devs need to accept it, and all the nodes need to be upgraded for it. If we had AT, effective new features could be added with it quickly, safely, with only client changes. The best ones could be integrated more efficiently into the core later; foolish ones could be discarded.)