comp.lang.ada
 help / color / mirror / Atom feed
* Is Python higher level than Ada?
@ 2016-11-16  0:36 Victor Porton
  2016-11-16  6:56 ` Paul Rubin
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Victor Porton @ 2016-11-16  0:36 UTC (permalink / raw)


Is the following statement correct?

"Python is a higher level programming language than Ada."

The purpose of my question is not to start a holy war, but to get better 
understanding of what "higher level programming language" phrase may mean.

I have good knowledge of both Python and Ada.

My question is not about particular features, but about which features are 
considered in definition of "higher level".

One feature I may think of, is that Python may be more easily integrated 
with databases by using dynamic fields or attributes. Does this feature 
contribute to what deserves to be called "higher level"?

Also Python 3 has metaclasses but Ada doesn't. Is it essential for 
definition of a very high level programming language?

-- 
Victor Porton - http://portonvictor.org

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Is Python higher level than Ada?
  2016-11-16  0:36 Is Python higher level than Ada? Victor Porton
@ 2016-11-16  6:56 ` Paul Rubin
  2016-11-16 13:01   ` G.B.
  2016-11-16 16:08   ` Jeffrey R. Carter
  2016-11-16  9:12 ` Dmitry A. Kazakov
  2016-11-16 15:23 ` Maciej Sobczak
  2 siblings, 2 replies; 10+ messages in thread
From: Paul Rubin @ 2016-11-16  6:56 UTC (permalink / raw)


Victor Porton <porton@narod.ru> writes:
> My question is not about particular features, but about which features
> are considered in definition of "higher level".

I don't know that "higher level" is a well-defined term.  I think of it
as meaning the language abstracts away more machine-level details for
you, letting you think of the problem more naturally.  

Python has native datatypes for lists, dictionaries, arbitrary-precision
integers, etc., and it has automatic memory management.  It generally
takes much less Python code than Ada code to implement similar
functionality (though the Python version will run orders of magnitude
more slowly).  So in this sense, I'd say Python is higher level than
Ada.  

To support this notion of "high level", here's an essay on why the
switch statement is C's highest-level feature, because it can choose
among a range of algorithms depending on the inputs:

   http://prog21.dadgum.com/166.html

There's a highly theoretical paper by M. Felleisen about the expressive
power of programming languages (one could think "more expressive" =
"higher level"):

   http://ccs.neu.edu/racket/pubs/scp91-felleisen.ps.gz

I've looked at it but don't understand it.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Is Python higher level than Ada?
  2016-11-16  0:36 Is Python higher level than Ada? Victor Porton
  2016-11-16  6:56 ` Paul Rubin
@ 2016-11-16  9:12 ` Dmitry A. Kazakov
  2016-11-16 15:23 ` Maciej Sobczak
  2 siblings, 0 replies; 10+ messages in thread
From: Dmitry A. Kazakov @ 2016-11-16  9:12 UTC (permalink / raw)


On 16/11/2016 01:36, Victor Porton wrote:
> Is the following statement correct?
>
> "Python is a higher level programming language than Ada."
>
> The purpose of my question is not to start a holy war, but to get better
> understanding of what "higher level programming language" phrase may mean.
>
> I have good knowledge of both Python and Ada.
>
> My question is not about particular features, but about which features are
> considered in definition of "higher level".

Yes, you start with a definition of.

"high" refers to the distance from the computational substrate and the 
"direction". Which itself is ambiguous as it may refer machine code, 
Turing machine ... or human way of thinking about computation where tons 
of paradigms come in (procedural, OO, functional, domain-specific x 
number of domains). "Direction" should mean reduced size/complexity.

> One feature I may think of, is that Python may be more easily integrated
> with databases by using dynamic fields or attributes. Does this feature
> contribute to what deserves to be called "higher level"?
>
> Also Python 3 has metaclasses but Ada doesn't. Is it essential for
> definition of a very high level programming language?

See above. For OO paradigm it might be important, assuming Python 
implements them correctly, which I honestly doubt.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Is Python higher level than Ada?
  2016-11-16  6:56 ` Paul Rubin
@ 2016-11-16 13:01   ` G.B.
  2016-11-16 13:46     ` Dmitry A. Kazakov
  2016-11-16 16:08   ` Jeffrey R. Carter
  1 sibling, 1 reply; 10+ messages in thread
From: G.B. @ 2016-11-16 13:01 UTC (permalink / raw)


On 16/11/2016 07:56, Paul Rubin wrote:
> letting you think of the problem more naturally.

John von Neumann has reportedly commented on a predecessor
of Fortran, classifying it as a waste of valuable human
resources (comparing to direct control of the computational
apparatus). So, thinking of a problem in terms of a particular
language is perhaps tied to one's particular nature.

Then, there are the old levels up to declarative style logical
database evaluators; also, there are formalisms that will incur
paradoxes, e.g. lambda calculus, in contrast others like FOL, IINM.
CLOS has had metaclasses for a long time (Smalltalk, too?),
also EVAL and COMPILE, but still isn't any lower or higher
than the competition, I think. The Shen language's type
system is Turing complete. Does that make it higher level?
Formally, is there something high above types?

Maybe, specifying "reduced size/complexity" (Dmitry), the level
of a language becomes higher whenever things are taken away from it,
such as detail, control of computational operations, control of
concurrent execution, addressing I/O specifics, ...

The highest level language will be that which allows
a PHB to express both the problem description and its
solution in just one speech bubble addressing Dilbert.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Is Python higher level than Ada?
  2016-11-16 13:01   ` G.B.
@ 2016-11-16 13:46     ` Dmitry A. Kazakov
  2016-11-17  2:52       ` Randy Brukardt
  0 siblings, 1 reply; 10+ messages in thread
From: Dmitry A. Kazakov @ 2016-11-16 13:46 UTC (permalink / raw)


On 16/11/2016 14:01, G.B. wrote:

> Formally, is there something high above types?

Type types, generics, categories.

> The highest level language will be that which allows
> a PHB to express both the problem description and its
> solution in just one speech bubble addressing Dilbert.

The highest level procedural language has single statement:

   do it

The highest level declarative language has single declaration:

   let it be

(:-))

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Is Python higher level than Ada?
  2016-11-16  0:36 Is Python higher level than Ada? Victor Porton
  2016-11-16  6:56 ` Paul Rubin
  2016-11-16  9:12 ` Dmitry A. Kazakov
@ 2016-11-16 15:23 ` Maciej Sobczak
  2 siblings, 0 replies; 10+ messages in thread
From: Maciej Sobczak @ 2016-11-16 15:23 UTC (permalink / raw)


On Wednesday, November 16, 2016 at 1:36:51 AM UTC+1, Victor Porton wrote:
> Is the following statement correct?
> 
> "Python is a higher level programming language than Ada."

According to the classification of languages into "generations", both Ada and Python belong to the 3GL category:

https://en.wikipedia.org/wiki/Third-generation_programming_language

See also these for a better perspective from both sides of this classification:

https://en.wikipedia.org/wiki/Second-generation_programming_language
https://en.wikipedia.org/wiki/Fourth-generation_programming_language

Ada and Python are different, sometimes in extreme sense (like static vs. dynamic typing), but I would not consider one of them to be "higher level" than the other.

> The purpose of my question is not to start a holy war,

This group is notoriously lazy in this regard. You might want to try the same question on some Python group instead. ;-)

> but to get better 
> understanding of what "higher level programming language" phrase may mean.

This: http://www.wolfram.com/language/video.html

:-)

-- 
Maciej Sobczak * http://www.inspirel.com


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Is Python higher level than Ada?
  2016-11-16  6:56 ` Paul Rubin
  2016-11-16 13:01   ` G.B.
@ 2016-11-16 16:08   ` Jeffrey R. Carter
  2016-11-16 17:23     ` Dmitry A. Kazakov
  1 sibling, 1 reply; 10+ messages in thread
From: Jeffrey R. Carter @ 2016-11-16 16:08 UTC (permalink / raw)


On 11/15/2016 11:56 PM, Paul Rubin wrote:
> Victor Porton <porton@narod.ru> writes:
>> My question is not about particular features, but about which features
>> are considered in definition of "higher level".
>
> I don't know that "higher level" is a well-defined term.  I think of it
> as meaning the language abstracts away more machine-level details for
> you, letting you think of the problem more naturally.

I had a somewhat different introduction to the concept. Typically, one 
understood a problem and then translated that understanding into a solution 
implemented in a programming language. Ada was the 1st language I experienced in 
which it was possible to model the problem in the language, and that model was 
the solution. The translation step needed with every other language I'd used 
could be eliminated. So that is what I consider "high level".

Essential feature for this to be possible seem to me to include:

1. Modules with separation of interface and implementation

2. The ability to express the constraints of the problem space

3. The ability to model the concurrency present in many problems

Feature 2 means the language can model things like "these values cannot be < 0 
or > 42" and "the light can be one of 3 colors: red, yellow, or blue". McCormick 
ranked this as the most important feature in explaining why his C-fluent 
students could succeed with Ada but not with C.

Python is missing some of these, and so would seem, by this definition, to not 
be a high-level language.

-- 
Jeff Carter
"You a big nose have it."
Never Give a Sucker an Even Break
107

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Is Python higher level than Ada?
  2016-11-16 16:08   ` Jeffrey R. Carter
@ 2016-11-16 17:23     ` Dmitry A. Kazakov
  0 siblings, 0 replies; 10+ messages in thread
From: Dmitry A. Kazakov @ 2016-11-16 17:23 UTC (permalink / raw)


On 2016-11-16 17:08, Jeffrey R. Carter wrote:

> I had a somewhat different introduction to the concept. Typically, one
> understood a problem and then translated that understanding into a
> solution implemented in a programming language. Ada was the 1st language
> I experienced in which it was possible to model the problem in the
> language, and that model was the solution. The translation step needed
> with every other language I'd used could be eliminated. So that is what
> I consider "high level".
>
> Essential feature for this to be possible seem to me to include:
>
> 1. Modules with separation of interface and implementation
>
> 2. The ability to express the constraints of the problem space
>
> 3. The ability to model the concurrency present in many problems

Not to disagree, but I want to point out that features listed belong to 
different aspects of programming:

#1 is [large] code base management/development

#2 is handling domain-specific abstractions, physical entities in your 
example

#3 is concurrent programming

There are lots of other aspects of maybe lesser, maybe bigger importance 
(e.g. type system, polymorphism etc), which may be better or worse 
handled by Ada or Python. Then importance itself may be subjective. So 
"high level" is, and at best any discussion would be probably fruitless 
if your points don't ring bells by the opponent as they do to me (and 
these are not all bells by far).

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Is Python higher level than Ada?
  2016-11-16 13:46     ` Dmitry A. Kazakov
@ 2016-11-17  2:52       ` Randy Brukardt
  2016-11-17  3:11         ` Paul Rubin
  0 siblings, 1 reply; 10+ messages in thread
From: Randy Brukardt @ 2016-11-17  2:52 UTC (permalink / raw)



"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
news:o0hnv3$k96$1@gioia.aioe.org...
> The highest level procedural language has single statement:
>
>   do it

<Grin>

For our debugger development, we used to have (as an unreachable goal) a 
"find bug" command. Then someone suggested that it really should be "fix 
bug". Customers are *never* satisfied. ;-)

                                      Randy.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Is Python higher level than Ada?
  2016-11-17  2:52       ` Randy Brukardt
@ 2016-11-17  3:11         ` Paul Rubin
  0 siblings, 0 replies; 10+ messages in thread
From: Paul Rubin @ 2016-11-17  3:11 UTC (permalink / raw)


"Randy Brukardt" <randy@rrsoftware.com> writes:
> For our debugger development, we used to have (as an unreachable goal) a 
> "find bug" command.

   https://www.st.cs.uni-saarland.de/dd/

> Then someone suggested that it really should be "fix bug". Customers
> are *never* satisfied. ;-)

Haskell has something like that:

   $ ghci
   GHCi, version 7.4.2: http://www.haskell.org/ghc/  :? for help
   Loading package ghc-prim ... linking ... done.
   Loading package integer-gmp ... linking ... done.
   Loading package base ... linking ... done.
   Prelude> :m Control.Monad.Fix
   Prelude Control.Monad.Fix> fix error
   "*** Exception: *** Exception: *** Exception: *** Exception: ***
   Exception: *** Exception: *** Exception: *** Exception: *** Exception:
   *** Exception: *** Exception: *** Exception: *** Exception: ***
   Exception: *** Exception: *** Exception: *** Exception: *** Exception:
   *** Exception: *** Exception: *** Exception: *** Exception: ***
   Exception: *** Exception: *** Exception: *** Exception: *** Exception:
   *** Exception: *** Exception: *** Exception: .....

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2016-11-17  3:11 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-16  0:36 Is Python higher level than Ada? Victor Porton
2016-11-16  6:56 ` Paul Rubin
2016-11-16 13:01   ` G.B.
2016-11-16 13:46     ` Dmitry A. Kazakov
2016-11-17  2:52       ` Randy Brukardt
2016-11-17  3:11         ` Paul Rubin
2016-11-16 16:08   ` Jeffrey R. Carter
2016-11-16 17:23     ` Dmitry A. Kazakov
2016-11-16  9:12 ` Dmitry A. Kazakov
2016-11-16 15:23 ` Maciej Sobczak

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox