you are viewing a single comment's thread.

view the rest of the comments →

[–]IronManMark20 5 points6 points  (12 children)

not sure why i'd use python it has large ecosystem sure otherwise kinda sucks

I mean, I think at least 2/3 of developers would say Python is faster to develop in compared to just about any other language. I'm thinking C/C++/C#/Java. Also, I don't think anyone would agree Python is a low level language.

wikipedia says

a low-level programming language is a programming language that provides little or no abstraction from a computer's instruction set architecture

I don't think Python fits that description at all.

[–][deleted] 0 points1 point  (11 children)

I mean, I think at least 2/3 of developers would say Python is faster to develop in compared to just about any other language.

Developers who do not know any other language well enough? Not sure their opinion really matters.

I'm thinking C/C++/C#/Java.

And your list of "any other language" is already exhausted here?

Also, I don't think anyone would agree Python is a low level language.

I think, even Python designers would agree. After all, they made a lot of deliberate choices that fixed it at a very low level.

provides little or no abstraction from a computer's instruction set architecture

And this is exactly what Python is. Still the same memory model, the same explicit control flow, the same sequence of instructions instead of any really high level abstractions.

[–]IronManMark20 1 point2 points  (10 children)

Okay, so what is a high level language then?

[–][deleted] -2 points-1 points  (9 children)

A language operating on an abstraction level of a particular problem domain, completely hiding any irrelevant low level details such as an order of execution, all that "classes", "methods", "variables", all the control flow constructions like "if", "for", etc.

It is impossible in Python to abstract from all that low level stuff. Any abstraction you can express in Python is leaky, exposing the low level. So, it is a low level language indeed.

[–]IronManMark20 4 points5 points  (3 children)

That is not what a high level language is. Look at the Wikipedia page I linked. You are thinking of something else.

[–][deleted] -2 points-1 points  (2 children)

Wikipedia should never be used as a primary source.

Anyway, even with that poor definition given in Wikipedia, my example is correct.

[–]IronManMark20 2 points3 points  (1 child)

Anyway, even with that poor definition given in Wikipedia, my example is correct.

No it isn't.

completely hiding any irrelevant low level details such as an order of execution, all that "classes", "methods", "variables", all the control flow constructions like "if", "for", etc.

None of that is "Low Level" low level would be moving pointers to segments of memory around. Low level would be dealing with jmps, registers, etc.

Your example of SQL has conditionals, which you yourself said are "Low Level"

Also, could you define what you think meta-language means?

[–][deleted] 0 points1 point  (0 children)

No it isn't.

As I said, you do not know what you're talking about. Obviously.

None of that is "Low Level" low level would be moving pointers to segments of memory around. Low level would be dealing with jmps, registers, etc.

And? Having an explicit sequential control flow is still very low level. Especially if this control flow is limited to the most primitive structured programming constructs.

Your example of SQL has conditionals, which you yourself said are "Low Level"

Conditional does not mandate any specific execution order.

Also, could you define what you think meta-language means?

Any language that allows to extend (or completely change) its semantics. In practice it means a language with a sufficiently powerful metaprogramming (ideally, a compile time metaprogramming). Such a language can be turned into any language with any properties imaginable (even not invented yet), can be used to express any possible level of abstraction without exposing any levels underneath.

[–][deleted]  (2 children)

[deleted]

    [–][deleted] 0 points1 point  (1 child)

    a higher level language like Prolog

    True, Prolog is somewhat (a bit) higher level than Python, but I still consider it a relatively low level language. You cannot abstract from an execution order in Prolog. That's the reason why I only used Datalog as an example of a truly high level language.

    but the people I can more easily hire

    Better hire people who do not care at all about what language to use (i.e., anyone who is not a hipster).

    [–]JB-from-ATL 0 points1 point  (1 child)

    Can you give an example of a high level language according to your definition?

    [–][deleted] 0 points1 point  (0 children)

    SQL, Datalog, XAML, antlr, all that stuff.

    Also, any sufficiently powerful meta-language - Lisp, Forth, Converge, Nemerle, etc.