4 ms·
Java's tooling support blows Python's tooling support right out of the water. The static type system of Java allows faster refactoring and IMHO makes developmen
by foepys 9y ago
Java's tooling support blows Python's tooling support right out of the water. The static type system of Java allows faster refactoring and IMHO makes development of large applications easier and less error prone.
I use Python for simple scripts and often for data transformation. But e.g. at work we have a few million lines of C# that I would never ever want to manage if it was written in Python.
- kumarvvr 9y agoDo you mean tooling in the sense of Debugging support? Or is it code generation, etc? Just curious. I use PyCharm for medium to fairly complex projects and with Python 3 type hinting, I have not faced any particularly difficult development situations, tooling wise.
- foepys 9y agoWell, type hints are a relatively new addition to Python and while they are nice, not every code has them and you cannot rely on them 100%. Python in general is a cool language that you can build stuff fast in but is is also extremely dynamic which doesn't make it good for IDE support where you often want to know where stuff is coming from in one click. Large code bases can get very confusing and navigating in a module you don't know is easier with IDE support. Debugging in Python has gotten very nice but I feel like it's still easier in Java. I'm always very bad at finding examples, sorry :/
- joshuamorton 9y ago>you cannot rely on them 100% You can rely on them exactly the same amount as in Java though.
- ageofwant 9y agoI always find it peculiar that people seem to defend a million line code base, like that is something to be proud off. The days I walk out of the office with less code in some mature project's repo are the days I know I accomplished the most.
- foepys 9y agoSometimes it's not possible to do it in another way. Hacker News' web-focused world doesn't apply to most of the software world where software is deployed on customers hardware for the customer to work with by themselves as much as possible. If I had to deploy 10 microservices with 2 level caches and internal network routing on a whole server rack or in "the cloud", our customers would laugh in our face and choose one of our competitors that deploys on one or two on-site servers that can sit somewhere in the office and require minimal, if any, maintenance besides security updates.
- ageofwant 9y agoNo, you simply write your app in a language that does not force you to write millions of lines of code, a language like Python, for example. I don't understand what any of this has to do with 'web-based' vs whatever though. Yes most systems I tend to work on these days have browser-based front ends, but that's usually a trivial part of the system. About deployments: The fast majority of 'web-focused' apps I work on ships in a single docker container. The customer, another department in the big multinational I currently work for, deploys it on one of their docker hosts where it lives behind a nginx emperor with many - up to 30 other vassals. It happens automatically once a week on the release schedule. OK, these are usually trivial little CRUD things - but not always. Bigger systems tend to get their own VM or et of VM's. Every other third party vendor product I had to deal with in the last 5 years came in either a set of docker containers, a pre-built VM, or both.
- nhumrich 9y agoOne might argue that Python doesnt need as much tooling. In java you need tools to autogenerate code, refactor, etc. Because its so strict. But with python, you can use the language itself to do things, such as adding a parameter to a function without actually modifying any existing references. In other words, in java, the language is the canvas and the ide is the paintbrush, but in Python, your editor is the canvas, and the language is the paintbrush.
- Can_Not 9y agoThat works for single developers and tiny codebases, but for large teams and long term maintainence, Java's tooling is superior.