* 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 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 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
* 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 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 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
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