On Wed, Jul 27, 2011 at 3:41 AM, BGB <cr88...@gmail.com> wrote:

> a non-turing-complete IL is too limited to do much of anything useful with
> WRT developing "actual" software...
>

You aren't alone in holding this uninformed, reactionary opinion.

Consider: Do we need Turing power for 3D apps? No. Because we want *
real-time* 3D apps, and that means we don't perform arbitrary computations
per frame.  There is *no* "actual" software that needs Turing power for
functions.

Anyhow, I did not suggest being rid of Turing power for the whole
application, only moving and controlling access to it externally.  ("We
might in the general case need Turing power, at the topmost level of a
service or application... capable of drawing arbitrary images if given
enough resources (time, resolution, et cetera) but the decision on how many
resources to provide is external")

That is, we do need software that can 'run forever' and 'compute arbitrary
functions'. We just don't need that power in the middle. A top-level loop,
based on passage of time, will do the job quite well.



> the usual strategy is to use runtime checks for anything which can't be
> determined at compile time.
>

For a language or IL as finicky as C++, the usual strategy is to sandbox the
whole runtime. This offers better performance on the off-chance things are
written well, though it does force developers to use obtuse means of
communication between extensions and subprograms.


>
> "better" would be to disallow conversions between pointers and integers,
> these are in-fact fairly useful operations.
>

With dependent typing, pointer arithmetic can be safe. Adam Chlipala's
'Bedrock' supports it. To get dependent typing, you first remove unnecessary
power.


>

these idioms are the defined ways of doing things.
>
a language which doesn't support these idioms would be invariably rejected
> by most programmers.
>

Your language will also, invariably, be rejected by most programmers. If
you're going reject ideas that won't be popular, you should give up on
language design and find another hobby.

But I think you're wrong. People will accept new tools and idioms, if:
* they see or are shown how to utilize them to solve today's problems
* they are motivated by a sufficient gain in features or reduction of pain
* there is good support for legacy systems, so they can transition cheaply
* the tools are readily accessible, open source, and easy to use and install

Acceptance won't happen all at once, but it doesn't need to.


> spreadsheets are not programs.
> in the same way, SQL databases, ... are not programs.
>

You are incorrect. I think you would be surprised at how many people will
speak of 'spreadsheet applications' as common-place.

But I agree that spreadsheets and SQL are not sufficiently powerful to
develop many useful domains of services and apps.


>
> however, dataflow-like constraints are a nifty feature, and one of my
> earlier languages had them (they are sort of like values, but their apparent
> value will change whenever one of the input values is modified, ...). IIRC,
> a flush/recalculate model was used.
>

Ah, another of those declarative languages with imperative glue?

For dataflow to really serve as a language of its own, it must be both
bi-directional (effect and observe, push and pull, effective state
management) and contingent (some form of if/then/else internal to the
dataflow) and eliminate need for imperative bindings in the middle. We'll
still need imperative for legacy adapters, but the idea is to slowly creep
and replace the legacy.


> non-algorithmic software is generally not, by definition, software.
> more correctly it can be described as data and file-formats.
>

You have an odd definition of 'software'. I suppose you go around claiming
that BGBScript programs aren't "software", it's just file format containing
data that can be interpreted?

Software is what describes behavior for programmable hardware. "Algorithmic"
software is software that focuses on the internal computation of a function,
as opposed to workflows or control relationships.


> there is nothing really wrong with the current methodology, more just it
> needs more features
>

If there was nothing wrong, then error and buggy code would not be *systemic
* problems, patches and upgrade would not need human intervention, clients
could put useful code on servers to abstract new protocols, and distribution
would be straightforward.


>
> I am thinking more like traditional application software coming down over
> the internet (say, in a manner partly between the Web and something like
> Valve's Steam). or, maybe sort of like Android Market or similar...
>

The idea of rich internet applications appeals to me, too. But I think the
real win will be zero-tier architecture: we write our services and apps
together, and the appropriate amount of the service (i.e. the stuff that
twiddles the video) is downloaded to the client. And other parts move to
resources owned by the client, in the cloud - e.g. storage that is intended
to survive loss of the machine.

One of my interests is market integration. I find Nick Szabo's work on
e-markets quite fascinating.


>
> unnecessary or drastic change may often be seen as evil.
>
> hence, the status quo is king...
>

A despotic king, perhaps.

I do agree with the need for a smooth transition strategy. "Drastic" change
simply doesn't happen, and trying to force the issue causes people to panic
and do stupid things.


>
> the best thing is to keep everything just as it is, so that older
> programs/methodologies/... continue to work until which point they fade away
> on their own (sort of like Fortran and COBOL...).
>

For things to 'fade away', you must be transitioning to something
new. Change requires reaching for something 'different'. Progress requires
reaching for something 'better'. Trying to "keep everything just as it is",
if you were successful (which you won't be), would not result in anything
fading away.


>
> the program would not be running in the browser anyways, but simply
> distributed partly via the browser, and then run primarily on the host
> computer (as standalone applications).
>

I do not believe the future will support a strong distinction between
browser apps and standalone apps. But apps that run offline, I think are
likely.
_______________________________________________
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc

Reply via email to