Fog Creek Software
g
Discussion Board




Application development without programming II

Well, it seems that I've struck a chord here. Thanks for everyone who has responded.

I think software should be a vehicle in and of itself for me to deliver my knowledge without the help of a third-person. I'm not saying to re-invent the bulb' just  that programming shouldnt be so inherently hard and based on arbitrary rules and expressions. 

Indeed, the methodology (how to code; syntax, etc.) should be ancillary to the delivery of the science (content). In other words, I want a programming language (OO) or tool that is based on some sort of universal structure (e.g, math) as opposed to non-structure (meaningless data).

Doc. Jason
Friday, April 23, 2004

Why not!

Evgeny Gesin /Javadesk.com/
Friday, April 23, 2004

Why dont you just use MS Access? I'm sure that will give plenty of flexibility and power for a prototype.

Anon-y-mous Cow-ard
Friday, April 23, 2004

++In other words, I want a programming language (OO) or tool that is based on some sort of universal structure (e.g, math) as opposed to non-structure (meaningless data).++

Awesome.  Welcome to the world of writing your applications in 'machine language' in other words, using nothing but 0s and 1s.  How's that for a universal structure?

While you're at it, I'd like to design a car from concept to production with a wizard-based tool so I can click "Next", "Next", "Next", "Finish"...

Right...
Friday, April 23, 2004

> In other words, I want a programming language (OO) or tool
> that is based on some sort of universal structure (e.g, math)
> as opposed to non-structure (meaningless data).

It's a bit hard for me to parse this statement, but I think a language like LISP might fit this description.

Michael Eisenberg
Friday, April 23, 2004

There are several mathematical formalisms for describing computation in general.  The rules and expressions of programming languages aren't any more arbitrary than other mathematical languages.

Kalani
Friday, April 23, 2004

Doc., buddy,

With all due respect, come back to Earth.

It's hard to understand what your reasoning is, first of all.
Second of all, it sounds like you're floating around some sort of expert system idea, which would still require a lot of "arbitrary" rules (and time) in your ebb and flow of trying to develop software.... Hire a programmer, is my advice. 

Besides, we need to make a living too.

Amused
Friday, April 23, 2004

"I'm not saying to re-invent the bulb' just  that programming shouldnt be so inherently hard and based on arbitrary rules and expressions."

Do you really believe that the last 50 years of Computing science has produced nothing but *arbitrary* rules and expressions?!?

Programming is inherently hard, sorry...

Almost Anonymous
Friday, April 23, 2004

This has to be a troll.  It's too perfectly crafted to be a real human being, relying on well-known (and universally hated) biases.

pds
Friday, April 23, 2004

'When someone says, "I want a programming language in which I need only say what I want done," give him a lollipop.' -- Alan Perlis

xil
Friday, April 23, 2004

" I'm not saying to re-invent the bulb' just  that programming shouldnt be so inherently hard and based on arbitrary rules and expressions.  "

Here's the problem that people who talk/write for a living face when they try to program:

The above statement makes you seem smart if speak or write it.

However, if you did the equivalent thing in software, you'd have a few syntax errors and a glaring logic error.

And that was just you "telling it what you want". The problem with just "telling it what you want it to do" is that you have to tell it E X A C T L Y what you want it to do.

Good luck.  Non-programmers can certainly become competent programmers. But only if they actually understand the task at hand.

You know a lot of buzzwords, but don't seem to actually understand programming.

Perhaps you're cut out for upper managment. For those folks "if I don't understand it, it must be easy".

Mr. Analogy
Friday, April 23, 2004

Nice vision, but hardly new.  People have been saying
the same thing ever since Turing wrote the first chess
program in the 1940's.

The problem is that computers require absolute precision,
and human languages - and humans themselves - aren't
typically up to the task without at least some knowledge
of instructing the computer.  One of the big underlying
problems is that computers have no "common
sense", and no mechanism to develop common sense, so
they must be instructed in complete detail in everything
they do.  Go read some books on artificial intelligence,
particularly some that discuss its history, to see why
these are really hard problems that were massively
underestimated by early AI researchers.

The good news is if you manage to solve this problem,
you'll be rich beyond the dreams of avarice.

x
Friday, April 23, 2004

Isn't this supposed to be the goal of Simonyi's Intentional Programming?

yet another anon
Friday, April 23, 2004

Your (Doc's) mythical software that lets you tell the computer what to do without programming cannot exist. The reason is fairly simple: The computer-software combination is less able to follow your instructions than I am, and I like to think that I am both more intelligent and more knowledgable than any computer and/or software out there.

It sounds like what you are looking for is an application generator. I use one every day and it's a great tool. However, it has it's own learning curve. Having programmed using actual 1s and 0s all the way through to various types and levels of programming languages, I can tell you that learning the application generator is more like learning programming than learning auto-mechanics (and I used to work as a mechanic before I got the computer bug).

There are wonderful tools available, but you still have to learn the tools, but you still have to learn how to model some real-world activity or knowledge in a way that produces valid, consistent results. That modelling is what programmers do and any tool you might care to use must have a way to let you describe that model. Any sufficiently flexible modelling 'language' is likely to be conceptually equivalent to a general purpose programming language and will therefore require approximately the same effort to learn.

This is why much software is written using teams. There are domain experts (i.e. doctors), modellers (architects, requirements analysists, data structure analysts, etc.), and coders (programmers, database implementors/administrators, etc.).

Ron Porter
Friday, April 23, 2004

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man." -- George Bernard Shaw

has
Friday, April 23, 2004

Guys, this is obviously a troll.  Hats off to you, Doc.  Very well done.

vince
Friday, April 23, 2004

I just looked up troll.

And troll, I am not. There has to be some form on instruction- giving that is open, clear and concise, based on domain experts' or even layman's language - and not arbitrary, unstructured language rules. If the latter existed, it would simply development for initial and subsequent use. 

I do not mean to insualt anyone; and will now go to the library.

Doc. Jason
Friday, April 23, 2004

Please excuse the mistake and typos. Should be, If the "former" existed [above].  Thank you.

Doc. Jason
Friday, April 23, 2004

Here I go, feeding the troll again!

Layman's language == arbitrary and unstructured.

Computer languages are precise, structured, and entirely unarbitrary.  Which is actually what you need to do to program a computer. they are, after all, just big dumb calculators!

Almost Anonymous
Friday, April 23, 2004

Jason,

If you actually want to explain what you are after a bit clearer.  I mean, your entire first-post here is full of big words that don't really mean anything.  Let's deconstruct:

"I think software should be a vehicle in and of itself for me to deliver my knowledge without the help of a third-person."

So you want some kind of software that will create other software without a programmer?  Sorry, not invented yet! 

"just  that programming shouldnt be so inherently hard and based on arbitrary rules and expressions."

What makes you believe that programming is based on arbitrary rules and expressions?  This seems to be your central point, but you don't really explain it or back it up. 

"Indeed, the methodology (how to code; syntax, etc.) should be ancillary to the delivery of the science (content)."

You need syntax to express the content.  This is no different from natural languages.  You have a thought in your head, but you need language (English) to express it.  If you want to express your ideas in Chinese, you'll need someone fluent in Chinese and English to translate it for you.  Programming can be thought of as translating ideas into computer-thought -- which is very much unlike human-thought.

"I want a programming language (OO) or tool that is based on some sort of universal structure (e.g, math) as opposed to non-structure (meaningless data)."

All programming languages are based on math, alegra and logic.  What sort of universal structure do you envision for such a programming language?

Almost Anonymous
Friday, April 23, 2004

And one last thing Doc,

We are all mostly professional software developers here.  It's our job to turn people's domain-specific ideas into working software products.  We essentially bridge the gap between the idea and computer.  Since you have an idea and you don't have time to learn to code (I have a degree in computing science and umpteen years experience -- it does take some time) I suggest you look into hiring someone to work with you.

In fact, if you posted a bit more about your idea here in the forums I bet many of this extremely intelligent people will point you in the right direction.

I do hope you reply...  this is certainly one of the most interesting topics on this board right now.

Almost Anonymous
Friday, April 23, 2004

Yes.  Little syntax in the way of your semantics.  I believe you are thinking of Common Lisp.

You deal with abstract lists of "things," such as text, numbers, filenames and symbols.  When you ask the Lisp system to treat one of these lists as a program, it will arbitrarily consider the first item special -- an operator to apply to the rest of the items.

This is what such a list would look like if you represented it in text.
(+ pi 1 2 3)
becomes 9.141592653589793238...

(simplify+ pi 1 2 3)
becomes (+ pi 6).

Lingusts might appreciate this:
http://lambda.pentaside.org/article/symbols.html

Composers apparently have a graphical one which can represent musical scores (I haven't tried it though):
http://lemonodor.com/archives/000466.html

I think this captures the sprit of mathematical notation, where one invents the most appropriate domain notation.

Some lisp-using professionals meet for dinner regularly; I often visit the ones in Amsterdam and Cologne.  There's also NY and Bay Area meetings, maybe others.  If you're interested in visiting one, I can email you information.  Someone can likely answer any skepticism you have.

Tayssir John Gabbour
Friday, April 23, 2004

Yuo should probably take a few CS courses, learn som functional programming (Haskell, ML, whatever) and read up on formal computer science. Programming languages are not more arbitrary in math in any way...

Marc
Friday, April 23, 2004


Jason,


Have you noticed the trend in both the threads you created? Poster after poster tried to explain to you that what you are after is currently impossible. Every poster gave you reason(s) why it is not currently possible.

There are two possibilities here. Let me spell them out: Either all these people posting here, who do application development for a living, are wrong, OR *you* are missing something. I think you know the answer.

Maybe you should go back to the drawing board at this point in time. Save the two threads, reread all the posts, and create a new plan before you blurt out "Application development without programming III".

By the way, no you didn't struck a chord. You struck a nerve! ;)

grunt
Saturday, April 24, 2004

i'm in the 'go try it yourself for a bit' camp.

find HyperCard. (can anyone here suggest a truly suitable replacement? if there isn't one, you'll need an old mac, or an old mac emulator.) anyway, it lets you draw screens with drawing tools, and use a language which is remarkably like english to write what code needs to be written.

once you've used it for a bit, you'll understand what the problems are, why many of us here suggest sitting down with someone for a few hours (for the cost of beer or whatever), etc.

but you will either need to develop experience or work with someone who has it to generate something which really works.

mb
Saturday, April 24, 2004

See, this is one of the important failings of programming as an occupation.

If anyone posted an equivalent question to a medical or lawyers' list, the response would have been to tell them to go see a doctor or lawyer.

Hey
Saturday, April 24, 2004

Hypercard replacement --> http://www.runrev.com/

I think that is as easy as its ever going to get. Its like platform independent VB with a verbose scripting language.

Eric Debois
Saturday, April 24, 2004

The cure for "why can't I have a programming language where I just tell it what I want" is to try and write down what an imaginary program in that language might look like.

Matthew Lock
Saturday, April 24, 2004

> I think software should be a vehicle in and of itself for me to deliver my knowledge without the help of a third-person.

It already is: telephone network software, for example, will do that for you.

> programming shouldnt be so inherently hard

It isn't so hard. It's undoubtedly easier than learning English, for example, which takes a decade or more.

In an earlier post, you said "I have never written one line of code in my life". Perhaps you're not well-informed on this subject, then.

> and based on arbitrary rules and expressions.

I foresee no sea to see. <shrug> Garbage in, garbage out, in any language.

> Indeed, the methodology (how to code; syntax, etc.) should be ancillary to the delivery of the science (content).

Isn't that like saying that the methodology of a clinical trial is ancillary to getting the desired results from the trial? Or like saying that you'd just like people to get well, without your needing to know anything about medicine?

Anyway, if the software understood the science that you're trying to deliver, then it would be Artificial Intelligence, but Artificial Intelligence of that kind doesn't exist, and therefore "delivery of the science" cannot be a goal of the software.

It *can* be a goal of the programmer.

> In other words, I want a programming language (OO) or tool that is based on some sort of universal structure (e.g, math) as opposed to non-structure (meaningless data).

Programming languages *are* structured.

Christopher Wells
Saturday, April 24, 2004

>>Programming languages *are* structured.

Indeed, at the core, its all just sequencially structured math. All you ever really do in programming is A) move numbers around, and B) math.

Programming is difficult, not because of the syntax and structure of the code (there are alot of different styles of that available) but because of the complexity of what the resulting program must do. I dont think it will get any easier untill we start using an entirely new computing paradigm.
(But then again, the next paradigm will probably be quantum computing so I suspect it wont get any easier for a long long time.)


BTW: Maybe what the op is looking for a physics modeling program or something?

Eric Debois
Saturday, April 24, 2004

"Hey," I'm not worried about this.

- Doc Jason's arguing a kind of Leibnizian belief about reducing everything to symbol manipulation.  Well, that just reduces things back to programming, doesn't it? ;)  That is precisely what we do.  Doesn't mean everyone has the temperament.

- In mathematical terms, programming IS hard.  Computational complexity theory is about defining "hard."  Let's see how well naively written O(n!) programs scale.  Give people a simple loop or recursion, in comes the Halting Problem.

- Many programs like CityDesk interpret or compile interaction languages to lower-level ones, like XML and HTML.  Doc Jason's really arguing for this kind of sofware targeted at verticals like medicine.

Tayssir John Gabbour
Saturday, April 24, 2004

If what Doc Jason wanted existed, there wouldn't be over a million programmers earning a living all around the world.  And there definitely wouldn't be hundreds of thousands of them in the USA earning $50K or more per year.

T. Norman
Saturday, April 24, 2004

Why does everyone assume Jason is a medical doctor? He might have a PhD in some mickey mouse discipline.

I think he's either a really good troll, or........ let's just say that it's hard to get the big picture when he has such a small screen.

RB
Saturday, April 24, 2004

He said he's a physician.


Saturday, April 24, 2004

*  Recent Topics

*  Fog Creek Home