POV-Ray : Newsgroups : povray.off-topic : Programming language development Server Time
13 Oct 2026 17:49:47 EDT (-0400)
  Programming language development (Message 1 to 50 of 108)  
Goto Latest 50 Messages Next 50 Messages >>>
From: Darren New
Subject: Programming language development
Date: 30 Sep 2009 20:50:13
Message: <4ac3fcc5$1@news.povray.org>
What comes after Object Oriented?

I mean, we started with assembler, then libraries, then HLLs, then portable 
HLLs, then interpreters, then structured programming, then a whole bunch of 
stuff that nobody really picked up (workspaces, LISP, self-modifying code, 
sophisticated macros, functional programming, etc), then Object Oriented, 
then .... nothing.

Why has programming language development been functionally stalled for 30 years?

-- 
   Darren New, San Diego CA, USA (PST)
   I ordered stamps from Zazzle that read "Place Stamp Here".


Post a reply to this message

From: Tim Cook
Subject: Re: Programming language development
Date: 30 Sep 2009 21:04:01
Message: <4ac40001$1@news.povray.org>
Darren New wrote:
> Why has programming language development been functionally stalled for 
> 30 years?

Because the current environment is well-suited to survival in its 
current form?

Why the societal fascination with, nay, *demand* for 'new and improved'? 
  "If it's old, it's bad!" is only valid if the current situation is no 
longer suitable for the old thing to exist.  Software development has 
pushed the expectation for Something New in an artificial and 
exaggerated way.

--
Tim Cook
http://empyrean.freesitespace.net


Post a reply to this message

From: Darren New
Subject: Re: Programming language development
Date: 30 Sep 2009 21:14:25
Message: <4ac40271$1@news.povray.org>
Tim Cook wrote:
> Darren New wrote:
>> Why has programming language development been functionally stalled for 
>> 30 years?
> 
> Because the current environment is well-suited to survival in its 
> current form?

Really??

> Why the societal fascination with, nay, *demand* for 'new and improved'? 

Because I program for a living, and 99% of the time it's tedious, error 
prone, and suckful.  And the hardware hasn't stopped improving. But I'm 
still using the same programming techniques I used on my 2MHz sparkstation 
with 4Meg of RAM.

-- 
   Darren New, San Diego CA, USA (PST)
   I ordered stamps from Zazzle that read "Place Stamp Here".


Post a reply to this message

From: Kevin Wampler
Subject: Re: Programming language development
Date: 30 Sep 2009 21:22:39
Message: <4ac4045f$1@news.povray.org>
Darren New wrote:
> What comes after Object Oriented?

Only time will tell, but my guess would be language features to help the 
compiler understand how to efficiently run a program in a highly 
parallel or even heterogeneous environment.  This has already started to 
a degree as there are now multiple programming languages targeted to GPUs.

It's not clear to me if this will require a major new programming 
paradigm to solve or if it can be shoehorned into existing techniques, 
but it seems like the best bet for what's next.  Also, I suspect that 
"everyone starts using pure FP" will not be the way in which this 
happens, although maybe some FP ideas will pay a role.


> Why has programming language development been functionally stalled for 
> 30 years?

I suspect it's because we reached the end of the low-hanging fruit in 
language design which also has a high payoff.  This is actually a 
somewhat testable hypothesis, since if it's true we should expect to see 
an increase in the development of useful tools to assist programmers 
(IDEs, source control, testing, collaboration, etc.) dovetailing  with 
the decrease in useful language developments.

I still think it's an interesting question if there's any really useful 
unexplored language paradigms (in fact I think there are), but I think 
the question is more fruitfully answered by considering both language 
advances and programming tool advances.


Post a reply to this message

From: nemesis
Subject: Re: Programming language development
Date: 1 Oct 2009 04:35:00
Message: <web.4ac46964c257e58f8d5c00870@news.povray.org>
Darren New <dne### [at] sanrrcom> wrote:
> Why has programming language development been functionally stalled for 30 years?

we've been to busy fixing old code. :)


Post a reply to this message

From: Orchid XP v8
Subject: Re: Programming language development
Date: 1 Oct 2009 05:15:58
Message: <4ac4734e$1@news.povray.org>
>> Why has programming language development been functionally stalled for 30 years?
> 
> we've been to busy fixing old code. :)

That's probably about right, you know...

-- 
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*


Post a reply to this message

From: Orchid XP v8
Subject: Re: Programming language development
Date: 1 Oct 2009 05:21:02
Message: <4ac4747e$1@news.povray.org>
Kevin Wampler wrote:

> Only time will tell, but my guess would be language features to help the 
> compiler understand how to efficiently run a program in a highly 
> parallel or even heterogeneous environment.  This has already started to 
> a degree as there are now multiple programming languages targeted to GPUs.
> 
> It's not clear to me if this will require a major new programming 
> paradigm to solve or if it can be shoehorned into existing techniques, 
> but it seems like the best bet for what's next.  Also, I suspect that 
> "everyone starts using pure FP" will not be the way in which this 
> happens, although maybe some FP ideas will pay a role.

Most programming languages I've seen tackle parallel programming using 
threads, locks and semaphores. These are not exactly ground-breaking 
techniques. Over in Haskell land, we have sparks, parallel arrays, 
software transactional memory... and also threads and locks if you 
prefer. I find all this very exciting.

Parallel arrays in particular look very suitable for the GPU... but 
then, how long has Haskell been claiming that running on the GPU is 
"just around the corner"? Hasn't happened yet. (Although I think this is 
due to lack of manpower rather than anything more fundamental. It seems 
there's barely enough people to keep GHC going. But hey, where are you 
going to get more people from?)

-- 
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*


Post a reply to this message

From: Warp
Subject: Re: Programming language development
Date: 1 Oct 2009 07:21:55
Message: <4ac490d3@news.povray.org>
Darren New <dne### [at] sanrrcom> wrote:
> What comes after Object Oriented?

> I mean, we started with assembler, then libraries, then HLLs, then portable 
> HLLs, then interpreters, then structured programming, then a whole bunch of 
> stuff that nobody really picked up (workspaces, LISP, self-modifying code, 
> sophisticated macros, functional programming, etc), then Object Oriented, 
> then .... nothing.

> Why has programming language development been functionally stalled for 30 years?

  I don't see it that language development has been stuck with OOP for 30
years.

  Instead, what has happened is that practical software development has
taken what's good about OOP (namely modularity) and moved a bit away from
what resulted to be not-so-useful-after-all (namely inheritance, dynamic
binding).

  If course many/most languages support some form of inheritance and
dynamic binding, but practical software development uses those tools
a lot less than was expected at the height of the OOP craze. They were
not, after all, the panacea of programming, nor are they very well
suited for the majority of problems.

  Modularity, on the other hand, is at a completely different level of
software design. It is an uber-tool which just works and is more or less
mandatory for any program of a significant size to remain manageable. The
larger your program is, the more important modularity is. I'd say modularity
is an essential programming design principle which transcends any single
programming paradigm. OOP is very heavily based on modularity, which explains
why it's so popular. Just the modular part of OOP makes large programs
manageable and maintainable.

  But otherwise I have seen a trend in programming design to move a bit
more away from pure OOP and more towards dynamic programming. Also
functional programming is trying to raise as a viable design strategy,
maybe because modern functional programming languages have quite a lot
of dynamic programming style in them (although I have my own doubts about
whether it will ever truely become mainstream).

  Dynamic programming could be, rather roughly, seen as a "more versatile
way of doing what inheritance and dynamic binding were supposed to do".
Where OOP (sans modularity) falls short, dynamic programming often offers
a much easier solution.

  Of course OOP will never die. It's just too useful for many situations.
(For example GUI programming in modern windowed systems is a situation
where OOP seems to be just perfect. It's like OOP was invented to solve
the GUI programming problem in the best possible way.) It's just that its
purest form has fallen a bit out of fashion.

-- 
                                                          - Warp


Post a reply to this message

From: clipka
Subject: Re: Programming language development
Date: 1 Oct 2009 10:58:36
Message: <4ac4c39c$1@news.povray.org>
Darren New schrieb:
> What comes after Object Oriented?
> 
> I mean, we started with assembler, then libraries, then HLLs, then 
> portable HLLs, then interpreters, then structured programming, then a 
> whole bunch of stuff that nobody really picked up (workspaces, LISP, 
> self-modifying code, sophisticated macros, functional programming, etc), 
> then Object Oriented, then .... nothing.
> 
> Why has programming language development been functionally stalled for 
> 30 years?

Because it hasn't.

There are languages out there, for instance, that support "design by 
contract", which was first mentioned no more than 23 years ago.

Aspect-oriented programming languages haven't been around for longer 
than 8 years.


But I guess the most pressing problem computer languages need to address 
is multiprocessing. At present, the number of languages /natively/ 
supporting multithreading (let alone distributed computing) is rather 
limited, while target platforms are already starting to enter consumer 
households on a large scale.


Post a reply to this message

From: Darren New
Subject: Re: Programming language development
Date: 1 Oct 2009 12:31:32
Message: <4ac4d964$1@news.povray.org>
Warp wrote:
>   I don't see it that language development has been stuck with OOP for 30
> years.

I haven't seen a new "wow, this is a great improvement" sort of thing 
happen, tho.

>   If course many/most languages support some form of inheritance and
> dynamic binding, but practical software development uses those tools
> a lot less than was expected at the height of the OOP craze. 

Agreed.  I think it doesn't solve most of the problems of "reusable 
software" it was supposed to solve.

The modularity is good, and transcends programming languages, yes.

>   But otherwise I have seen a trend in programming design to move a bit
> more away from pure OOP and more towards dynamic programming. 

What do *you* mean by the term "dynamic programming"? I know what I'd mean 
by it, but I don't know if your background would make it mean the same thing 
as mine does.

>   Of course OOP will never die. It's just too useful for many situations.

Sure. Structured programming never died - it's still inside each method, for 
example. It just doesn't scale to really big programs.

> (For example GUI programming in modern windowed systems is a situation
> where OOP seems to be just perfect. It's like OOP was invented to solve
> the GUI programming problem in the best possible way.) It's just that its
> purest form has fallen a bit out of fashion.

GUI and lots of kinds of data structures, but not really too much bigger 
than that.

I'm thinking something along the lines of LISP-power macros or other 
templating sorts of programming, or "aspect-oriented programming" might be 
next.

My guess is this:

Ignoring programing paradigms forced by hardware advances (like 
multiprocessing), I'd say the modularity has to keep getting increased. But 
the only way to do that is to have numerous bits of code in different places 
all be interacting at once. You need to separate out the error handling, the 
logging, the sanity checks, the assertions/preconditions/invariants, the 
performance hints, etc.  Sort of like the way SQL's performance information 
is separated out from the semantics - tables are tables, but index creation 
statements give you the performance you need.

I think you'll see things like the ability to say "log this message whenever 
this method gets called" or "that method can never get called with a null 
pointer", instead of having them inline in the code. Kind of like how C++ 
makes all the clean-up when there's an error be off in another bit of code, 
in the destructors of the local variables, instead of how you'd do it in C 
with an if statement or in Java with a finally clause.

-- 
   Darren New, San Diego CA, USA (PST)
   I ordered stamps from Zazzle that read "Place Stamp Here".


Post a reply to this message

From: Darren New
Subject: Re: Programming language development
Date: 1 Oct 2009 12:33:08
Message: <4ac4d9c4$1@news.povray.org>
Kevin Wampler wrote:
> It's not clear to me if this will require a major new programming 
> paradigm to solve or if it can be shoehorned into existing techniques, 

Both. ;-)  Trust me, it'll get shoe-horned into what's there, *and* there 
will be a decent language in case you don't want to use something like 
C-with-a-bag-on-the-side.

> I suspect it's because we reached the end of the low-hanging fruit in 
> language design which also has a high payoff.  

I disagree. I can think of a number of persistent problems with large code 
bases that aren't solved by todays languages or libraries.

-- 
   Darren New, San Diego CA, USA (PST)
   I ordered stamps from Zazzle that read "Place Stamp Here".


Post a reply to this message

From: Darren New
Subject: Re: Programming language development
Date: 1 Oct 2009 12:41:16
Message: <4ac4dbac$1@news.povray.org>
clipka wrote:
> There are languages out there, for instance, that support "design by 
> contract", which was first mentioned no more than 23 years ago.

Great. There's one language that supports it, and the compiler still sucks. 
:-) Sure, there are a couple other languages, probably, but nothing that you 
could point to a big company using. Nobody is betting their corporation on 
the benefits provided by "design by contract" is what I'm saying.

(I tried to get people to use Eiffel 15 years ago for a new project. They 
went with Java.)

> Aspect-oriented programming languages haven't been around for longer 
> than 8 years.

Name a language besides LISP that I can use to write production-quality code 
in that supports AOP?

I think AOP is a great idea, and it probably is the way going forward. I 
just don't see it showing up in mainstream programming languages. But try to 
create a language today that doesn't have OOP, and you'll get laughed at.

> But I guess the most pressing problem computer languages need to address 
> is multiprocessing.

Maybe. The power of modern computers to handle *one* task is sufficient for 
most everything. Stuff like games will get sped up by specialized hardware 
(graphics engines, physics engines, etc). Servers and scientific work will 
tend to parallelize along easy cleavage planes.

I mean, we had 64-CPU boxes for our servers in 1992. We just ran more than 
64 processes on them independently. I'm not sure this isn't a viable 
alternative for quite some time.

I guess I'm saying the kind of task you can speed up for a home user is not 
going to get a big boost with 4 CPUs instead of 1, IMO. And servers scale 
almost linearly.

I think software reliability and flexibility in the face of changing 
requirements is a bigger motivator than taking advantage of multiple CPUs.

-- 
   Darren New, San Diego CA, USA (PST)
   I ordered stamps from Zazzle that read "Place Stamp Here".


Post a reply to this message

From: clipka
Subject: Re: Programming language development
Date: 1 Oct 2009 13:07:16
Message: <4ac4e1c4$1@news.povray.org>
Darren New schrieb:
> 
> I think you'll see things like the ability to say "log this message 
> whenever this method gets called" or "that method can never get called 
> with a null pointer", instead of having them inline in the code.

Such languages already exist. For instance, "Nice" allows you to 
formalize contract constraints (pre- and postconditions), and have them 
automatically checked at runtime in a debug version.


Post a reply to this message

From: clipka
Subject: Re: Programming language development
Date: 1 Oct 2009 13:27:29
Message: <4ac4e681@news.povray.org>
Darren New schrieb:
> clipka wrote:
>> There are languages out there, for instance, that support "design by 
>> contract", which was first mentioned no more than 23 years ago.
> 
> Great. There's one language that supports it, and the compiler still 
> sucks. :-) Sure, there are a couple other languages, probably, but 
> nothing that you could point to a big company using. Nobody is betting 
> their corporation on the benefits provided by "design by contract" is 
> what I'm saying.
> 
> (I tried to get people to use Eiffel 15 years ago for a new project. 
> They went with Java.)

Then "Nice" may be something to try. It compiles to Java bytecode.

>> Aspect-oriented programming languages haven't been around for longer 
>> than 8 years.
> 
> Name a language besides LISP that I can use to write production-quality 
> code in that supports AOP?

Hey, could you have named a language to write production-quality /OOP/ 
code 8 years after the concept was first mentioned?

> I mean, we had 64-CPU boxes for our servers in 1992. We just ran more 
> than 64 processes on them independently. I'm not sure this isn't a 
> viable alternative for quite some time.

No, because the home user will not normally have 64 processes to run, 
but he'll still expect his software to run 4 times as fast on a quad 
core system.

Game developers have already pioneered this area, and I guess as 
multi-core systems get ever more common, whatever mechanisms and 
languages the game developers have come up with will enter mainstream 
languages. It may take some time, but it will happen. And we may be 
surprised what software can then benefit from multithreading once it 
becomes easier to express process interactions.

> I think software reliability and flexibility in the face of changing 
> requirements is a bigger motivator than taking advantage of multiple CPUs.

This is probably the case in business software, which is a different 
animal anyway, but software quality hasn't been playing a /too/ big role 
in consumer software, and the challenges there come as not much of a 
surprise. The multi-processing challenge /is/ a surprise to software 
developers, as a decade ago nobody would have thought that the increase 
in computing power would take /this/ route in consumer computers. So 
there's a growing computing power "vacuum" waiting to be filled. And it 
/will/ be filled.

But maybe I'm a bit biased by working on POV-Ray :-)


Post a reply to this message

From: Captain Jack
Subject: Re: Programming language development
Date: 1 Oct 2009 13:33:40
Message: <4ac4e7f4$1@news.povray.org>
"Darren New" <dne### [at] sanrrcom> wrote in message 
news:4ac3fcc5$1@news.povray.org...
>
> Why has programming language development been functionally stalled for 30 
> years?

I remember predictions (from about 30 years ago, interestingly; 1980, 
specifically) that the computer world would move toward having a single 
programming language that everyone would use for everything, with something 
like little high speed translators that would make the code run on whatever 
platform it was on. I recall three different people (all academics, natch) 
making predictions of this sort. One said the "universal" language would be 
based on C, one cited Pascal, and the other one used the phrase "Super 
LISP", although he didn't really explain what would be super about it.

I recall that later I was discussing this with a friend of mine who was an 
engineering student and was, during the conversation, struggling with 
Fortran related homework. His comment was, "as long as it ain't COBOL, I'm 
happy."

:)


Post a reply to this message

From: Darren New
Subject: Re: Programming language development
Date: 1 Oct 2009 13:42:22
Message: <4ac4e9fe$1@news.povray.org>
clipka wrote:
> Darren New schrieb:
>>
>> I think you'll see things like the ability to say "log this message 
>> whenever this method gets called" or "that method can never get called 
>> with a null pointer", instead of having them inline in the code.
> 
> Such languages already exist. For instance, "Nice" allows you to 
> formalize contract constraints (pre- and postconditions), and have them 
> automatically checked at runtime in a debug version.

Yes, and Erlang does this too (invented the idea of hooking it into the 
language, eve). My point is that it isn't a mainstream kind of thing. 
There's all kinds of great research out there.  It just doesn't seem like 
any of it hit mainstream language design.

-- 
   Darren New, San Diego CA, USA (PST)
   I ordered stamps from Zazzle that read "Place Stamp Here".


Post a reply to this message

From: Orchid XP v8
Subject: Re: Programming language development
Date: 1 Oct 2009 13:42:37
Message: <4ac4ea0d@news.povray.org>
>> I suspect it's because we reached the end of the low-hanging fruit in 
>> language design which also has a high payoff.  
> 
> I disagree. I can think of a number of persistent problems with large 
> code bases that aren't solved by todays languages or libraries.

Such as?

And anyway, I think he's only saying that the stuff that's "easy" to fix 
has already been fixed, leaving only the less easy stuff.

-- 
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*


Post a reply to this message

From: Darren New
Subject: Re: Programming language development
Date: 1 Oct 2009 13:47:06
Message: <4ac4eb1a$1@news.povray.org>
clipka wrote:
> Hey, could you have named a language to write production-quality /OOP/ 
> code 8 years after the concept was first mentioned?

Sure. Both smalltalk and simula were used in production environments.

Just ... things moved on without them.

> No, because the home user will not normally have 64 processes to run, 
> but he'll still expect his software to run 4 times as fast on a quad 
> core system.

I think many users nowadays are happy with a 1MHz laptop and a 420RPM disk. 
Almost everything is I/O time.

> Game developers have already pioneered this area, and I guess as 
> multi-core systems get ever more common, whatever mechanisms and 
> languages the game developers have come up with will enter mainstream 
> languages. It may take some time, but it will happen. And we may be 
> surprised what software can then benefit from multithreading once it 
> becomes easier to express process interactions.

Yeah. That's definitely a change driven by new hardware paradigms, tho. 
Besides that obvious change, what else, tho?  What would make it easier to 
write documentation? To avoid security problems? To get multiple people 
interacting on one code base? Or the perennially favorite, "reusable code"?

> This is probably the case in business software, which is a different 
> animal anyway, but software quality hasn't been playing a /too/ big role 
> in consumer software, 

Possibly because it's too hard with current languages. Too easy to make 
mistakes that cost too much to find. But that's exactly the sorts of things 
that HLLs, structured programming, and OOP were supposed to help with.

> The multi-processing challenge /is/ a surprise to software 
> developers, as a decade ago nobody would have thought that the increase 
> in computing power would take /this/ route in consumer computers. So 
> there's a growing computing power "vacuum" waiting to be filled. And it 
> /will/ be filled.

That's a point.

I'm just hoping that .NET or C++ isn't the pinacle of software language 
design. ;-?

-- 
   Darren New, San Diego CA, USA (PST)
   I ordered stamps from Zazzle that read "Place Stamp Here".


Post a reply to this message

From: Orchid XP v8
Subject: Re: Programming language development
Date: 1 Oct 2009 13:47:55
Message: <4ac4eb4b$1@news.povray.org>
clipka wrote:

> The multi-processing challenge /is/ a surprise to software 
> developers, as a decade ago nobody would have thought that the increase 
> in computing power would take /this/ route in consumer computers. So 
> there's a growing computing power "vacuum" waiting to be filled. And it 
> /will/ be filled.
> 
> But maybe I'm a bit biased by working on POV-Ray :-)

Oh, with POV-Ray there's never a shortage of ways to use up CPU power. :-P

-- 
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*


Post a reply to this message

From: Darren New
Subject: Re: Programming language development
Date: 1 Oct 2009 13:57:54
Message: <4ac4eda2$1@news.povray.org>
Orchid XP v8 wrote:
>>> I suspect it's because we reached the end of the low-hanging fruit in 
>>> language design which also has a high payoff.  
>>
>> I disagree. I can think of a number of persistent problems with large 
>> code bases that aren't solved by todays languages or libraries.
> 
> Such as?

Interactions between large code bases with fundamental different design 
ideas. Documentation. Navigation. Intermixing of different kinds of concerns 
in the same code (logging, error handling, debugging info, actual code you 
care about, etc). Dependency management. Dynamic upgrading (as in, replacing 
code while it's running). Version management (as in, upgrading libraries you 
depend on with the assurance you won't break something, avoiding DLL hell, 
etc., which MS has started to address with the .NET and C# stuff). Modifying 
stored data to match new code.

Some of this is handled in some languages. Nothing popular really has a lot 
of this sort of stuff in it. (Other than, as I said, .NET taking the first 
steps.)

> And anyway, I think he's only saying that the stuff that's "easy" to fix 
> has already been fixed, leaving only the less easy stuff.

Sure. But heck, array indexing wasn't *easy* when it was invented. I'm just 
surprised I haven't seen too much mainstream improvement in how things work 
in so long. About the only things I can think of that got popular since OO 
are dynamic loading of code, libraries like CPAN and imitators, "sandboxing" 
code, and maybe scripting languages (embedded or not).  Generally, 20 years 
ago, programs were pretty well self-contained. Nowadays a lot of them are 
built from public parts.

-- 
   Darren New, San Diego CA, USA (PST)
   I ordered stamps from Zazzle that read "Place Stamp Here".


Post a reply to this message

From: Warp
Subject: Re: Programming language development
Date: 1 Oct 2009 14:07:41
Message: <4ac4efed@news.povray.org>
Darren New <dne### [at] sanrrcom> wrote:
> Warp wrote:
> >   I don't see it that language development has been stuck with OOP for 30
> > years.

> I haven't seen a new "wow, this is a great improvement" sort of thing 
> happen, tho.

  Was OOP a "wow, this is a great improvement" at the time it was introduced,
or was it a gradual shift, which we are now compressing into one big event
when looking back, 30 years after?

> >   But otherwise I have seen a trend in programming design to move a bit
> > more away from pure OOP and more towards dynamic programming. 

> What do *you* mean by the term "dynamic programming"? I know what I'd mean 
> by it, but I don't know if your background would make it mean the same thing 
> as mine does.

http://en.wikipedia.org/wiki/Dynamic_programming_language

-- 
                                                          - Warp


Post a reply to this message

From: Darren New
Subject: Re: Programming language development
Date: 1 Oct 2009 14:42:36
Message: <4ac4f81c$1@news.povray.org>
Warp wrote:
>   Was OOP a "wow, this is a great improvement" at the time it was introduced,
> or was it a gradual shift, which we are now compressing into one big event
> when looking back, 30 years after?

There was a tremendous amount of hype about how this would change software 
development. The biggest hype was with software reuse, and "Software ICs" 
and such. Which is why the hype about inheritance was about, and the fact 
that it didn't work out that way is related to the fact that people aren't 
using nearly as much inheritance as they expected to.

>>>   But otherwise I have seen a trend in programming design to move a bit
>>> more away from pure OOP and more towards dynamic programming. 
> 
>> What do *you* mean by the term "dynamic programming"? I know what I'd mean 
>> by it, but I don't know if your background would make it mean the same thing 
>> as mine does.
> 
> http://en.wikipedia.org/wiki/Dynamic_programming_language
> 

Cool. We agree on the definitions and I think we agree on the idea that 
dynamic programming is becoming a big thing. (Tcl, Python, Ruby, etc are all 
very dynamic in actual usage. Rails is basically one big dynamic programming 
library.)

While I think this is a good trend, I worry what it's going to do for 
maintenance. It makes putting together smaller programs a lot faster, but it 
can be a real headache when you're trying to understand only a piece of the 
code.

(I'm not sure I'd agree functional programming, closures, or continuations 
count as "dynamic programming", but it's a pretty informal definition.)

-- 
   Darren New, San Diego CA, USA (PST)
   I ordered stamps from Zazzle that read "Place Stamp Here".


Post a reply to this message

From: Stephen
Subject: Re: Programming language development
Date: 1 Oct 2009 16:06:22
Message: <6t2ac5d44jv0n6lq8ubjhhin5d8cb8podt@4ax.com>
On Wed, 30 Sep 2009 18:14:24 -0700, Darren New <dne### [at] sanrrcom> wrote:

>
>Because I program for a living, and 99% of the time it's tedious, error 
>prone, and suckful. 

I knew it! :-)
-- 

Regards
     Stephen


Post a reply to this message

From: clipka
Subject: Re: Programming language development
Date: 1 Oct 2009 16:52:38
Message: <4ac51696$1@news.povray.org>
Darren New schrieb:

> Yes, and Erlang does this too (invented the idea of hooking it into the 
> language, eve). My point is that it isn't a mainstream kind of thing. 
> There's all kinds of great research out there.  It just doesn't seem 
> like any of it hit mainstream language design.

Name any OO language that was mainstream 30 years ago.


Post a reply to this message

From: clipka
Subject: Re: Programming language development
Date: 1 Oct 2009 17:17:36
Message: <4ac51c70$1@news.povray.org>
Darren New schrieb:
> Yeah. That's definitely a change driven by new hardware paradigms, tho. 
> Besides that obvious change, what else, tho?  What would make it easier 
> to write documentation?

Docman? Javadoc?

Sure, Docman is not /really/ part of the core language, but it can be 
used as such. Javadoc comes closer to being part of the language, as it 
has been integral part of Sun's Java SDK since early days.

Doesn't C# include some mechanism along those lines, too?


 > To avoid security problems?

I guess this would require a proper definition of "security problems".


 > To get multiple people interacting on one code base?

You mean, something like version management built into the language? I 
guess there's no real need for that - external version management tools 
do quite a good job on this one, and modern IDEs do quite a good job at 
integrating them with the development.

Integrating them into the programming language would actually be 
counter-productive, as its scope would be restricted to the language 
source code, and make it difficult to also manage other resources needed 
to compile a program.


 > Or the perennially favorite, "reusable code"?

I think practice has shown that the benefit of core reuse is limited to 
some standard classes: Container libraries; GUI frameworks; stuff like that.

At the application level, it may actually be counter-productive: When 
you need a tool to put nails into wood, any attempt to re-use components 
of a screwdriver will prevent you from designing a proper hammer.

But it appears to me that as far as libraries are concerned, OOP has 
been a tremendous success regarding code re-use.


>> This is probably the case in business software, which is a different 
>> animal anyway, but software quality hasn't been playing a /too/ big 
>> role in consumer software, 
> 
> Possibly because it's too hard with current languages. Too easy to make 
> mistakes that cost too much to find. But that's exactly the sorts of 
> things that HLLs, structured programming, and OOP were supposed to help 
> with.

That may have been the motivation to /invent/ them. But in the realm of 
consumer software, their actual /use/ was much more motivated by 
allowing to write much more complex applications.

> I'm just hoping that .NET or C++ isn't the pinacle of software language 
> design. ;-?

Not bloody likely :-)


Post a reply to this message

From: clipka
Subject: Re: Programming language development
Date: 1 Oct 2009 17:21:25
Message: <4ac51d55$1@news.povray.org>
Orchid XP v8 schrieb:
> 
> Oh, with POV-Ray there's never a shortage of ways to use up CPU power. :-P

There /was/ with 3.6 :-)

(Or, let's say, there was some shortage of /convenient/ ways to starve 
the idle task :-))


Post a reply to this message

From: clipka
Subject: Re: Programming language development
Date: 1 Oct 2009 17:28:35
Message: <4ac51f03$1@news.povray.org>
Captain Jack schrieb:

> I remember predictions (from about 30 years ago, interestingly; 1980, 
> specifically) that the computer world would move toward having a single 
> programming language that everyone would use for everything, with something 
> like little high speed translators that would make the code run on whatever 
> platform it was on.

Uh-huh... bytecode, anyone?

But the single-programming-language prediction seems a /bit/ of a miss :-)


Post a reply to this message

From: Orchid XP v8
Subject: Re: Programming language development
Date: 1 Oct 2009 17:29:47
Message: <4ac51f4b@news.povray.org>
>> Oh, with POV-Ray there's never a shortage of ways to use up CPU power. 
>> :-P
> 
> There /was/ with 3.6 :-)
> 
> (Or, let's say, there was some shortage of /convenient/ ways to starve 
> the idle task :-))

I'm still using 3.6. I can easily drain both cores at once. :-P

Now, if I could somehow purchase a PC with dual hexacore processors...

-- 
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*


Post a reply to this message

From: Orchid XP v8
Subject: Re: Programming language development
Date: 1 Oct 2009 17:30:53
Message: <4ac51f8d$1@news.povray.org>
> But the single-programming-language prediction seems a /bit/ of a miss :-)

Aren't computers supposed to "program themselves" by now? Anyone 
remember that one?

-- 
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*


Post a reply to this message

From: Orchid XP v8
Subject: Re: Programming language development
Date: 1 Oct 2009 17:31:44
Message: <4ac51fc0@news.povray.org>
>> Yeah. That's definitely a change driven by new hardware paradigms, 
>> tho. Besides that obvious change, what else, tho?  What would make it 
>> easier to write documentation?
> 
> Docman? Javadoc?

Well now, there are basically two ways to do documentation:

1. Have the source code, and a seperate set of documentation files.

2. Have the documentation text mingled with the source code text.

Method #1 suffers from the problem that the source code inevitably gets 
updated more than the documentation, until the two end up being out of 
sync. Incorrect documentation is worse than absent documentation.

Method #2 suffers from the problem that there's so much chatter in the 
source file that you can't actually find the executable code any more. 
It makes small, simple modules look huge and complex.

I can't think of a good way to solve this. Sure, you could have some IDE 
where when you change a file, you can add a note to self to update the 
documentation. But if the human forgets to add that note...

-- 
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*


Post a reply to this message

From: clipka
Subject: Re: Programming language development
Date: 1 Oct 2009 17:37:21
Message: <4ac52111$1@news.povray.org>
Darren New schrieb:

> There was a tremendous amount of hype about how this would change 
> software development. The biggest hype was with software reuse, and 
> "Software ICs" and such.

Yes, but was that right after the /invention/ of OOP?


Post a reply to this message

From: clipka
Subject: Re: Programming language development
Date: 1 Oct 2009 17:44:46
Message: <4ac522ce$1@news.povray.org>
Orchid XP v8 schrieb:
>>> Oh, with POV-Ray there's never a shortage of ways to use up CPU 
>>> power. :-P
>>
>> There /was/ with 3.6 :-)
>>
>> (Or, let's say, there was some shortage of /convenient/ ways to starve 
>> the idle task :-))
> 
> I'm still using 3.6. I can easily drain both cores at once. :-P

Sure - if you start two instances of 3.6. But for people like me, who 
only work on one project at a time, and don't normally do any 
animations, it didn't fit my definition of "convenient".


Post a reply to this message

From: clipka
Subject: Re: Programming language development
Date: 1 Oct 2009 17:55:01
Message: <4ac52535$1@news.povray.org>
Orchid XP v8 schrieb:
> 
> Method #2 suffers from the problem that there's so much chatter in the 
> source file that you can't actually find the executable code any more. 
> It makes small, simple modules look huge and complex.
> 
My experience is that that's not the case.

To the contrary: Breaking up the source code with commenting blocks 
helps give the code more structure, even if you don't change a single 
statement.

> I can't think of a good way to solve this. Sure, you could have some IDE 
> where when you change a file, you can add a note to self to update the 
> documentation. But if the human forgets to add that note...

In any case I guess we agree that the problem of documentation needs to 
be addressed not by programming /languages/, but by programming 
/environments/.

I guess the ideal solution would be an IDE that is capable of managing 
hypertextual RTF documents alongside with code, highly integrated with 
the version management software, and for each change would ask: "What 
was the nature of your code change, Dave?" - being smart enough to 
identify which functions were actually changed, and also which ones 
might be affected indirectly.


Post a reply to this message

From: clipka
Subject: Re: Programming language development
Date: 1 Oct 2009 18:11:15
Message: <4ac52903$1@news.povray.org>
Orchid XP v8 schrieb:

> Aren't computers supposed to "program themselves" by now? Anyone 
> remember that one?

Well, in a way they do: Think about code optimization.

The only illusion was about the level of abstraction that could be 
obtained. I guess the problem there is that natural human language is 
ill-suited for specifying even the problem to be solved with a computer 
program (let alone the algorithm to solve it): As soon as precision is 
required (and with computers that's obviously the case), it quickly gets 
overly verbose and cumbersome (every scientific paper gives testimony of 
this fact).


Post a reply to this message

From: Darren New
Subject: Re: Programming language development
Date: 1 Oct 2009 19:22:59
Message: <4ac539d3$1@news.povray.org>
clipka wrote:
> Name any OO language that was mainstream 30 years ago.

I dunno. But we got something new every 5 to 10 years for the first 40 years 
or so. :-)

-- 
   Darren New, San Diego CA, USA (PST)
   I ordered stamps from Zazzle that read "Place Stamp Here".


Post a reply to this message

From: Darren New
Subject: Re: Programming language development
Date: 1 Oct 2009 19:23:27
Message: <4ac539ef$1@news.povray.org>
clipka wrote:
> Yes, but was that right after the /invention/ of OOP?

I wasn't really following it right after the invention of OOP. I'm not 
*that* old.

-- 
   Darren New, San Diego CA, USA (PST)
   I ordered stamps from Zazzle that read "Place Stamp Here".


Post a reply to this message

From: Neeum Zawan
Subject: Re: Programming language development
Date: 1 Oct 2009 19:27:24
Message: <4ac53adc$1@news.povray.org>
On 10/01/09 13:42, Darren New wrote:
>>> What do *you* mean by the term "dynamic programming"? I know what I'd
>>> mean by it, but I don't know if your background would make it mean
>>> the same thing as mine does.
>>
>> http://en.wikipedia.org/wiki/Dynamic_programming_language
>>
>
> Cool. We agree on the definitions and I think we agree on the idea that
> dynamic programming is becoming a big thing. (Tcl, Python, Ruby, etc are

	Somehow, I thought you may be thinking of:

http://en.wikipedia.org/wiki/Dynamic_programming

	Because that's what people normally mean when they use that phrase.

	Although it was obvious from the context that's not what Warp meant.

-- 
Why a man would want a wife is a big mystery to some people.  Why a man
would want *two* wives is a bigamystery.


Post a reply to this message

From: Darren New
Subject: Re: Programming language development
Date: 1 Oct 2009 19:29:15
Message: <4ac53b4b$1@news.povray.org>
clipka wrote:
> Docman? Javadoc?

Were that helpful, it might fit the bill. :-)  As it stands now, it seems 
more often an excuse to not write documentation than a tool for writing it.

>  > To avoid security problems?
> I guess this would require a proper definition of "security problems".

Code doing things the author didn't want it to do because malicious people 
intentionally caused it to happen.

>  > To get multiple people interacting on one code base?
> You mean, something like version management built into the language?

I don't know. If I knew, I wouldn't be throwing these things out as "this is 
what we don't have yet."  I think there's more to having multiple people 
working on a code base than "don't clobber each others changes."

Stuff like the ability for me to know that my change hurt your code. 
Something like unit testing, only built into the language, say.

>  > Or the perennially favorite, "reusable code"?
> 
> I think practice has shown that the benefit of core reuse is limited to 
> some standard classes: Container libraries; GUI frameworks; stuff like 
> that.

To some extent, but why is that?  Is it because we're missing something 
fundamentally obvious in the programming paradigm?  Clearly an OO library is 
helpful when you have something that behaves like objects. But you try to 
interface it to something that behaves like (say) SQL records, and you get 
all kinds of ugly mismatches.

> But it appears to me that as far as libraries are concerned, OOP has 
> been a tremendous success regarding code re-use.

Ehn, to some extent. How many of the libraries you use would work just as 
well without OO, or with faked OO (like C's stdio fakes OO)?

-- 
   Darren New, San Diego CA, USA (PST)
   I ordered stamps from Zazzle that read "Place Stamp Here".


Post a reply to this message

From: Darren New
Subject: Re: Programming language development
Date: 1 Oct 2009 19:30:20
Message: <4ac53b8c$1@news.povray.org>
Orchid XP v8 wrote:
> Well now, there are basically two ways to do documentation:

You already lost. If you're not documenting things that have no place in the 
source code to put the documentation, you've already failed at documenting 
your system.



-- 
   Darren New, San Diego CA, USA (PST)
   I ordered stamps from Zazzle that read "Place Stamp Here".


Post a reply to this message

From: Darren New
Subject: Re: Programming language development
Date: 1 Oct 2009 19:40:30
Message: <4ac53dee$1@news.povray.org>
Neeum Zawan wrote:
>     Somehow, I thought you may be thinking of:
> http://en.wikipedia.org/wiki/Dynamic_programming

No. It's just that C++ uses a lot of terms in ways that aren't <twitch> 
*right* <twitch> sometimes, so I wanted to make sure it didn't mean 
something like "lots of templates" or some such when Warp used the term. :-)

-- 
   Darren New, San Diego CA, USA (PST)
   I ordered stamps from Zazzle that read "Place Stamp Here".


Post a reply to this message

From: Darren New
Subject: Re: Programming language development
Date: 1 Oct 2009 19:43:44
Message: <4ac53eb0$1@news.povray.org>
clipka wrote:
> Docman? Javadoc?

To clarify, I'm thinking maybe something more along the lines of the 
BON<->Eiffel equivalence, where something that looks like UML can be turned 
into source code and back again with the appropriate tool.

Something beyond the name of the function and the types of its arguments.

Plus, documentation that covers something besides the individual functions 
to be called, that covers what you cannot for now deduce from the source 
code itself.

I know javadoc (and similar) is supposed to cover that. In practice, it 
gives you a place to write that stuff down, but does nothing to make it 
useful to the author to do so. So documentation even of that type becomes a 
cost rather than a benefit.

How many projects have you seen with the doxygen or javadoc or whatever have 
either obvious cut-and-paste errors or no documentation beyond what you can 
gleen from the source at all?

-- 
   Darren New, San Diego CA, USA (PST)
   I ordered stamps from Zazzle that read "Place Stamp Here".


Post a reply to this message

From: clipka
Subject: Re: Programming language development
Date: 1 Oct 2009 22:32:21
Message: <4ac56635$1@news.povray.org>
Darren New schrieb:
> clipka wrote:
>> Docman? Javadoc?
> 
> Were that helpful, it might fit the bill. :-)  As it stands now, it 
> seems more often an excuse to not write documentation than a tool for 
> writing it.

That's not a problem of the tool, but the person using it. Those people 
taking it as an excuse wouldn't do any docuentation at all otherwise, 
unless forced at gunpoint.

As far as making life easier for people who do have the honest desire to 
document properly, I think integrating the documentation with the source 
code is a good way to go, and docman and javadoc make good tools for hem.

Then again, maybe it's the approach taken from the wrong side, and the 
true proper way would be embedding the source code in the documentation, 
not vice versa - if only for the psychological effect.


>>  > To avoid security problems?
>> I guess this would require a proper definition of "security problems".
> 
> Code doing things the author didn't want it to do because malicious 
> people intentionally caused it to happen.

There's no general way around it, because malicious people of this type 
are highly intelligent and inventive. Whatever you'd integrate into the 
language itself would just give you a /false sense of/ security.

The only truly safe computer system would be an isolated computer locked 
in a stainless steel safe, with the key thrown into the Atlantic, and 
the safe sunk in the Pacific. Which would somewhat limit its usefulness 
I guess :-P

The only thing you can do about it is /defensive/ programming - but 
that's a paradigm you probably cannot support with language features I 
guess. Well, maybe stuff designed for contract-oriented programming 
would help with this.


> Stuff like the ability for me to know that my change hurt your code. 
> Something like unit testing, only built into the language, say.

That seems to go into a similar direction as contract-oriented design.


>> But it appears to me that as far as libraries are concerned, OOP has 
>> been a tremendous success regarding code re-use.
> 
> Ehn, to some extent. How many of the libraries you use would work just 
> as well without OO, or with faked OO (like C's stdio fakes OO)?

It's not a question of how well they would work - it's a question of how 
easy they were to implement, and how easy they are to use.

Try implementing and using generic container classes in a non-OO language.

Then try to refactor your application to use a deque container instead 
of a stack for a certain job. Or a tree-backed map instead of a 
hash-table-backed one someplace else.

You won't have much success without implementing verbosely what OO 
languages do for you behind the scenes.


Post a reply to this message

From: Darren New
Subject: Re: Programming language development
Date: 1 Oct 2009 23:07:04
Message: <4ac56e58$1@news.povray.org>
clipka wrote:
> That's not a problem of the tool, but the person using it. Those people 
> taking it as an excuse wouldn't do any docuentation at all otherwise, 
> unless forced at gunpoint.

Not necessarily. As I said elsewhere, a tool that would make the high-level 
documentation generate source code (and where the changes to the source code 
would be reflected in the HDL) would help. It would let people who are 
designing the system document it as part of the progress forward.

The problem with writing code documentation is that it doesn't help the 
coder. It only helps the people who come after. So it's seen as a waste 
unless the coder understands the business reason for it.

Imagine something like TDD, except with documentation instead of tests.

Or imagine a block diagram with arrows showing data flow between the blocks, 
where that's *actually* the code.

> As far as making life easier for people who do have the honest desire to 
> document properly, I think integrating the documentation with the source 
> code is a good way to go, and docman and javadoc make good tools for hem.

If you're documenting the *code*, yes. I'm wondering if it's also possible 
to design a language that makes it easy to document the intention, the 
architecture, etc as part of building the code.  Tangle and weave, anyone?

> Then again, maybe it's the approach taken from the wrong side, and the 
> true proper way would be embedding the source code in the documentation, 
> not vice versa - if only for the psychological effect.

Yes, exactly something like this.  We probably won't get there as long as 
the primary form of source code is ascii strings.

> There's no general way around it, because malicious people of this type 
> are highly intelligent and inventive. Whatever you'd integrate into the 
> language itself would just give you a /false sense of/ security.

Hard to say. Certainly having a language with bounds checking is safer than 
a language without bounds checking. How far can that go?

> The only thing you can do about it is /defensive/ programming - but 
> that's a paradigm you probably cannot support with language features I 
> guess. Well, maybe stuff designed for contract-oriented programming 
> would help with this.

Yeah, that's the sort of thing I'm thinking.  Or like the C part of ACID.

>> Stuff like the ability for me to know that my change hurt your code. 
>> Something like unit testing, only built into the language, say.
> 
> That seems to go into a similar direction as contract-oriented design.

To some extent, yes. That, or typestate analysis, or some such. I don't know 
the answer.  I just know it's a problem looking for a better answer.

> Try implementing and using generic container classes in a non-OO language.


> Then try to refactor your application to use a deque container instead 
> of a stack for a certain job. Or a tree-backed map instead of a 
> hash-table-backed one someplace else.

I can't imagine changing a queue to a stack without needing to rewrite a 
fair amount of the code using that structure.

C++ seems to do pretty well, and its not using any OO for the STL.  Python 
and LISP also do pretty well without actually using the OO portions of the 
language, as would Ada I think. Erlang (and Hermes) both handle this just 
fine as well, and that's not OO. You just need good encapsulation, not 
inheritance or dynamic binding or anything like that.

> You won't have much success without implementing verbosely what OO 
> languages do for you behind the scenes.

Sure. OO is pretty good at data structures and GUIs. But what about other 
libraries? What about math libraries, HTTP libraries, networking libraries, 
databases, etc? None of those types of libraries tend to be designed for you 
to subclass the instances.

-- 
   Darren New, San Diego CA, USA (PST)
   I ordered stamps from Zazzle that read "Place Stamp Here".


Post a reply to this message

From: Orchid XP v8
Subject: Re: Programming language development
Date: 2 Oct 2009 06:25:20
Message: <4ac5d510$1@news.povray.org>
>> Well now, there are basically two ways to do documentation:
> 
> You already lost. If you're not documenting things that have no place in 
> the source code to put the documentation, you've already failed at 
> documenting your system.

That too.

I'm thinking about documenting a library API, but if you wrote an 
application and want to write a user manual for it... the user isn't 
going to give a damn about why you have to register a callback after 
creating a button.

-- 
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*


Post a reply to this message

From: Orchid XP v8
Subject: Re: Programming language development
Date: 2 Oct 2009 06:31:21
Message: <4ac5d679$1@news.povray.org>
>> Method #2 suffers from the problem that there's so much chatter in the 
>> source file that you can't actually find the executable code any more. 
>> It makes small, simple modules look huge and complex.
>>
> My experience is that that's not the case.
> 
> To the contrary: Breaking up the source code with commenting blocks 
> helps give the code more structure, even if you don't change a single 
> statement.

You'd *think* it would help, but in general it just gets in the way. 
When you're trying to edit the documentation, there's all these lumps of 
code in the way, and when you're trying to edit the code, there's chunks 
of documentation in the way. (Plus, in Haskell in particular, the 
documentation tends to be vastly longer than the code.)

> In any case I guess we agree that the problem of documentation needs to 
> be addressed not by programming /languages/, but by programming 
> /environments/.

Yeah, pretty much. (The documentation is usually comments, after all. 
All languages support this.)

> I guess the ideal solution would be an IDE that is capable of managing 
> hypertextual RTF documents alongside with code, highly integrated with 
> the version management software, and for each change would ask: "What 
> was the nature of your code change, Dave?" - being smart enough to 
> identify which functions were actually changed, and also which ones 
> might be affected indirectly.

Yeah, that sounds about right. Something like Google's SideWiki.

-- 
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*


Post a reply to this message

From: Orchid XP v8
Subject: Re: Programming language development
Date: 2 Oct 2009 06:41:18
Message: <4ac5d8ce$1@news.povray.org>
>>>  > To avoid security problems?
>>> I guess this would require a proper definition of "security problems".
>>
>> Code doing things the author didn't want it to do because malicious 
>> people intentionally caused it to happen.
> 
> There's no general way around it, because malicious people of this type 
> are highly intelligent and inventive. Whatever you'd integrate into the 
> language itself would just give you a /false sense of/ security.

As far as I can tell, 98% of all security issues are buffer overruns - 
trivially fixable, yet nobody seems to think it's necessary.

Then there are things like data tainting (which could be enforcible at 
compile-time with no run-time overhead). Hell, in Haskell land, people 
regularly attempt to write code which is *provably secure*. (But then, 
you have to define "secure" first... It's easy to prevent buffer 
overruns, but not so simple to prevent glitches where access denied 
messages inadvertantly reveal information indirectly.)

>> Stuff like the ability for me to know that my change hurt your code. 
>> Something like unit testing, only built into the language, say.
> 
> That seems to go into a similar direction as contract-oriented design.

Yeah, that's a nice idea. Doesn't seem very popular though...

> Try implementing and using generic container classes in a non-OO language.
> 
> Then try to refactor your application to use a deque container instead 
> of a stack for a certain job. Or a tree-backed map instead of a 
> hash-table-backed one someplace else.
> 
> You won't have much success without implementing verbosely what OO 
> languages do for you behind the scenes.

Tried using Haskell recently? Haskell is not OO.

Sure, you need encapsulation, and you need polymorphism. You also need 
dynamic binding *if* you want to change your mind about which data 
structure you're going to use *at run-time*. But you don't necessarily 
need implementation inheritance, or mutable state for that matter...

-- 
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*


Post a reply to this message

From: Orchid XP v8
Subject: Re: Programming language development
Date: 2 Oct 2009 06:44:43
Message: <4ac5d99b$1@news.povray.org>
>> Aren't computers supposed to "program themselves" by now? Anyone 
>> remember that one?
> 
> Well, in a way they do: Think about code optimization.
> 
> The only illusion was about the level of abstraction that could be 
> obtained. I guess the problem there is that natural human language is 
> ill-suited for specifying even the problem to be solved with a computer 
> program (let alone the algorithm to solve it): As soon as precision is 
> required (and with computers that's obviously the case), it quickly gets 
> overly verbose and cumbersome (every scientific paper gives testimony of 
> this fact).

I think what happened is that somebody invented Prolog, and it makes it 
almost seem like the computer is "thinking". It lets the computer solve 
logical problems as if by magic (i.e., it doesn't look like a regular 
algorithm, it looks like real insight). And people thought that in a few 
years' time, somebody would come up with a set of predicates to describe 
the operation of a computer program, you'd put in a mathematical 
description of what the program is supposed to do, and Prolog would 
magically compute the most efficient sequence of machine instructions...

...which would just mean writing programs as mathematical statements 
rather than lists of instructions. It would just be another programming 
language. And, you know, people have argued that programming in Haskell 
is like programming with mathematics, so...

[One might also mention Mathematica.]

-- 
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*


Post a reply to this message

From: Le Forgeron
Subject: Re: Programming language development
Date: 2 Oct 2009 09:44:13
Message: <4ac603ad$1@news.povray.org>
Orchid XP v8 a écrit :

> mathematical description of what the program is supposed to do

Ahahah. even the simple "description of what the program is supposed to
do" is usually a long painful phase between the requester and the
programmer.

Users do not know what they want. When they do, they usualy fail to
express it. And should it happened, there would be some misunderstanding
at some stage.

Remember, the "What" is not only the purpose, but also often the how.
and the devil is in the details.

"I want a raytracer..." is not a specification. Too ambiguous.

I want the program to output "Hello, world!", now, that's enough.


And for the nice one: "I want a proof of the Fermat..."

-- 
A: Because it messes up the order in which people normally read text.<br/>
Q: Why is it such a bad thing?<br/>
A: Top-posting.<br/>
Q: What is the most annoying thing on usenet and in e-mail?


Post a reply to this message

From: Darren New
Subject: Re: Programming language development
Date: 2 Oct 2009 12:49:51
Message: <4ac62f2f@news.povray.org>
Orchid XP v8 wrote:
>>> Well now, there are basically two ways to do documentation:
>>
>> You already lost. If you're not documenting things that have no place 
>> in the source code to put the documentation, you've already failed at 
>> documenting your system.
> 
> That too.
> 
> I'm thinking about documenting a library API,

It's fine for the details. But try to document (say) the BSD interface to 
TCP by documenting only the listen(), accept(), bind(), and connect() calls. 
Without understanding what an IP address is, or a socket, or how DNS works, 
etc you're still not going to win.

Or take something like a big windowing system, or a 3D graphics system, or a 
physics library, and try to document *just* the routines without documenting 
the architecture of the system.  You'll spend three days trying to find out 
where to start reading the documentation.

-- 
   Darren New, San Diego CA, USA (PST)
   I ordered stamps from Zazzle that read "Place Stamp Here".


Post a reply to this message

From: Darren New
Subject: Re: Programming language development
Date: 2 Oct 2009 12:51:06
Message: <4ac62f7a$1@news.povray.org>
Orchid XP v8 wrote:
> As far as I can tell, 98% of all security issues are buffer overruns - 
> trivially fixable, yet nobody seems to think it's necessary.

The three biggest are buffer overruns, SQL injection, and XSS injection.

-- 
   Darren New, San Diego CA, USA (PST)
   I ordered stamps from Zazzle that read "Place Stamp Here".


Post a reply to this message

Goto Latest 50 Messages Next 50 Messages >>>

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.