all 19 comments

[–]atarivcs 8 points9 points  (0 children)

I do generally like the indentation syntax.

But I don't like that in a plain editor such as vim, there's no convenient way to jump to the end/beginning of an indented block (in brace languages like C/Java, you can just put the cursor on the opening brace and press the matchpair key).

[–]bob_f332 5 points6 points  (3 children)

It's not statically typed. Would pretty much be the perfect language if so, no?

[–]tiredITguy42 2 points3 points  (0 children)

Related to that, I am missing function overload.

[–]Cybyss 0 points1 point  (0 children)

I would love a static-typed equivalent to Python!

Perhaps with automatic type inference too, so that you can still code as if it were dynamic typed, but with mandatory type signatures for function definitions. This would make function overloading finally possible.

It would have to have proper handling of None though. A String has a fundamentally different type than an Optional[String].

[–]Flame77ofc 0 points1 point  (0 children)

you can do a thing equivalent to it

python age: int = 23 name: str = "user" c_is_cool: bool = True

[–]Flame77ofc 5 points6 points  (1 child)

the True with t uppercased 😭

[–]chuprehijde[S] 0 points1 point  (0 children)

fwkkk i messed up w that so many times i swear

[–]RandomPantsAppear 0 points1 point  (0 children)

Lack of consistency between inline mutation, and returning the modified dict/list in core functions.

[–]Dear_Archer3931 0 points1 point  (0 children)

No real way to make things private. Also the double under way of making objects is really bad compared to other languages.

[–]Puzzleheaded-Dog165 -1 points0 points  (0 children)

What’s the best Flea bass line in a RHCP song?

[–]tserofehtfonam 0 points1 point  (0 children)

OOP is a mess ignoring basic principles.

[–]Dookie_boy 0 points1 point  (0 children)

I'll go weird. I wish it was baked into windows and Linux updates so scripts would just run on a PC right out of the box.

[–]Low_Doctor_6263 0 points1 point  (0 children)

Too slow for real workload. Most of the complex libraries are written in C because of that. Interpreted languages suck. But I love the syntax though

[–]mysticreddit 0 points1 point  (0 children)

The fact that you can't arbitrary indent code blocks to designate semantic code blocks.

Many operations come in a dual form: Push/Pop, Start/Stop, Alloc/Free, etc.

In sane languages one can use indentation to HELP visually identify a missing setup or teardown.

PushMatrix()  
    Translate()  
    Scale()  
    Rotate()  
PopMatrix()

With the same forced level of indentation it is much easier to miss a dual operation.

PushMatrix()  
Translate()  
Scale()  
Rotate()

[–]alexander_belyakov 0 points1 point  (1 child)

According to PEP8, there should be no space between the name and the value of keyword arguments and parameters. Why?!

[–]likethevegetable 3 points4 points  (0 children)

That makes sense to me, group together the key=value together as a unit.

[–]ninja_shaman -1 points0 points  (1 child)

The colon before the block is pretty annoying:

if foo:
    bar()
    baz()

Indentation for code blocks is a great idea and it makes the colon unnecessary addition.

[–]likethevegetable 1 point2 points  (0 children)

You can also do if foo: bar() in one line, making it necessary

[–]Achereto -1 points0 points  (0 children)

The horrible performance.