Python is DOOMED! Again!
wxjmfauth at gmail.com
wxjmfauth at gmail.com
Wed Jan 28 10:40:25 EST 2015
Le mercredi 28 janvier 2015 16:04:35 UTC+1, Mario Figueiredo a écrit :
> In article <54c83ab4$0$12982$c3e8da3$5496439d at news.astraweb.com>,
> steve+comp.lang.python at pearwood.info says...
> >
> > Mario Figueiredo wrote:
> >
> > > Static analysis cannot and should not clutter executable code.
> >
> > (1) It isn't clutter. The human reader uses that information as well as the
> > compiler, interpreter, type-checker, IDE, text editor, correctness tester,
> > etc.
> >
> > (2) Algol, Ada, Boo, C, C#, C++, Cobol, Cobra, D, F#, Fantom, Fortran, Go,
> > Haskell, Java, Julia, Kotlin, Oberon, Pascal, Rust, Scala and dozens
> > (hundreds?) of other languages disagree with you.
> >
>
> Sorry. Somehow I missed this post. Only realized now from the Skip
> answer.
>
> This is simply not true!
>
> For most of the strongly typed languages (e.g. static typed languages)
> in that list -- C, C++, C# and Scala, the ones I know best from that
> list -- require little to no annotations in the code (and certainly no
> new explicit function or class based syntax) in order for static
> analysers to perform their thing, except perhaps on the most exotic
> static analysers.
>
> Being a strongly typed language, there is no need for added information
> in the function signatures. From that list you can safely exclude all
> strongly-typed languages.
>
> For dynamically typed languages, what I have seen being implemented on
> almost all cases is doc-like features for type annotation. Of the list
> you provide (few there are dynamically typed, btw) Julia is the one I
> know of. Julia implements a similar type annotation to type annotations
> in Python. In fact I see a lot of Julia in PEP 484. But with different
> objectives:
>
> function add(a::Int, b::Int)
> a + b
> end
>
> Here the :: annotation is meant to attribute a type in an otherwise
> dynamically typed language and that function signature is executed at
> runtime with all the implications of a statically typed signature.
>
> Static analysis in Julia admitedly can only be performed if those
> annotations are present, and of the entire list you provide this is the
> only example language that more closely matches your argument. The
> others simply are not true.
>
> But in any case, in Julia type annotations, contrary to Python, are
> evaluated at runtime. It then makes all sense for them to coexist with
> the language syntax.
I toyed with Julia (0.3.0rc3) only to see what this language
has to offer on the side of Unicode. A very good
suprise.
Contrary to Python, it works.
jmf
More information about the Python-list
mailing list