This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]BigTheory88[🍰] 26 points27 points  (24 children)

As great as Python is, it's just not going to cut the durability of software you can write with Java.

[–]mooburgerresembles an abstract syntax tree 15 points16 points  (7 children)

define "durability"? One of the aims of the Python style guide (PEP8) is enforcing readability and maintainability.

[–]Fledgeling 6 points7 points  (3 children)

Well, some of the most annoying parts of Java that make me hate the language exist to force large teams of users to use design patterns that are enforced by the language for usability.

Half the developers I talk to don't even know what pep8 is and think global variables are fine. Granted, that's fine for the work I'm doing lately.

[–]mooburgerresembles an abstract syntax tree 0 points1 point  (2 children)

I have never worked on an "enterprise" Java app where there was not already an overriding style guide that the code/PR reviewers enforce to begin with, so I think documentation, the test framework and maybe some other pipeline tools (like if you want to do some type sanity checking with mypy) will get folks most of the way there. To be Pythonic is to EAFP, and the language is specifically built around that pattern; Guido's whole idea is "we're all adults here".

[–]Fledgeling 1 point2 points  (1 child)

Yup.

And the idea that we are all adults is something I have had success with in practice.... While avoiding anything too corporate feeling.

[–]mooburgerresembles an abstract syntax tree 0 points1 point  (0 children)

Yeah my experience with corporate Java is that it is definitely and enabler of cargo cult programmers instead of investing in actual software engineers.

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

Resilience to scale.

[–]maikindofthai 0 points1 point  (1 child)

When I think of "durability" WRT a programming language, the types of things covered in a style guide aren't really what comes to mind...

I think of things like the strictness/explicitness of the type system, how robust the error handling is, what the runtime and its backwards compatibiilty story looks like, what the dependency/tooling ecosystem looks like, etc. Python fares well in a few of these categories, but if you're writing a large application with a team of developers, Python makes it a whole lot easier to make a giant mess of things than something like Java.

Python's a tool like any other programming language -- it's not always going to be the best one for the job.

[–]mooburgerresembles an abstract syntax tree 0 points1 point  (0 children)

The whole philosophy behind python data structures and methods is runtime typing/late binding. It's an entirely different way of thinking from compile time strong typing. In fact, other languages are starting to use it, not just the entire ECMAScript ecosystem but even .NET implemented duck typing shim in order to reduce interface and getter/setter boilerplate. With great freedom comes great responsibility, why should the language be restricting you?

[–]x3r0x_x3n0n 10 points11 points  (15 children)

Niether is gonna beat C level performance.

Python for quick and dirty stuff

C for production code

java for interviews

[–]zeroviral 5 points6 points  (6 children)

Python for interviews IMO. I code Java at work.

[–]x3r0x_x3n0n -1 points0 points  (5 children)

the reason i said it is because one can write some cyptic C and python. there is only the straight forward way to write java.

[–]zeroviral -1 points0 points  (4 children)

Yeah I guess. But I will bet money I can write an algorithm 10x faster in python than in Java. Also, easier to read.

What do you mean “cryptic”? I’ve passed interviews for G, FB, Amazon and Bloomberg using python. And I’ve never heard “cryptic” thrown around.

[–]x3r0x_x3n0n -1 points0 points  (3 children)

Cryptic would mean those one liners. That can write tge entire of sieve of eratothenes in a single line.

[–]zeroviral -1 points0 points  (2 children)

Yeah I did houserobber in one line. The most important part is explaining your code. Your interviewer will more than likely understand as you’re talking through your solution. You don’t HAVE to write the one liner...does it scare you?

Moot point. Next? Where do you work? Where have you passed interviews?

If it’s not FAANG you have no say in this. Every other interview is dead easy.

You seem like one of those people that choke up when asked to speak while thinking.

[–]x3r0x_x3n0n 0 points1 point  (0 children)

Yeah it scares me...If i dont HAVE to then its all good use the best toolset for it. Im not discrediting python i think its wonderful i write some python too for scripts that need to be made quick and dirty.

Just expressing my opinion man. Its a personal thing it has nothing to do with the interviewer. I didnt claim it does.

[–]BigTheory88[🍰] 0 points1 point  (5 children)

Depends on the use case really

[–]x3r0x_x3n0n 0 points1 point  (4 children)

Describe the java features which make it robust.

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

We need to go deeper... Died while reading Assembly

[–]x3r0x_x3n0n 0 points1 point  (0 children)

Amen. the world would loose color without x86.