6 ms·
A competent Java programmer is not slower than a competent Python programmer. Time to market won't suffer. There is definitely a higher barrier to entry with J
by _skel 4y ago
A competent Java programmer is not slower than a competent Python programmer. Time to market won't suffer.
There is definitely a higher barrier to entry with Java, and starting new projects involves a bit more setup, but that is never the bottleneck. You start a project once. You work on it every day after that. The time it takes to set up the build system is a drop in the bucket compared to the rest of the work. Maybe it will take your company a few more hours to get to market because of that? Big deal.
- deleted 4y ago[deleted]
- jeroenhd 4y agoIntelliJ comes with a step by step GUI to set up Spring Boot for you with all kinds of bells and whistles, with the choice between Gradle or Maven for your build chain (last time I checked, maybe they're moving away from Maven at this point). You follow the steps and get going. You can set up a project as fast as the time it takes to Google the exact name of that npm/pypi package. Sure, you'll want to check your settings before pushing your first code to prod, but the same is very much true for any other "default" deployment. The same is very much true for other "boring" platforms as well, such as dotnet these days. Getting started is quick and easy. Java will have a significantly longer setup process if you decide to throw out all the work that's been done for you and implement your own boutique web server and routing system, but that's not a realistic scenario for most companies. I imagine most of the Java horror stories people recall come from the days where there were no good Java libraries and everyone was reinventing the wheel. Sometimes there are weird dependencies that stop being maintained and rather than fix the problem, companies opt to stick to ancient versions of Java and the JVM, but that's not really a Java problem either, that's a supply chain issue. I don't understand what the higher barrier to entry is supposed to be like in practice. If you know the basics of backend development in any language, you can get started. Learning to place annotations on top of endpoints is a five minute tutorial process, not dissimilar from how setting up routes in any other language takes reading a page or two to get right. The only barrier to entry I can think of is that you probably want the full version of IDEA which costs money, though you can use all of its features for free by sticking to the EAP release if you're tight on money.
- RexM 4y ago> I imagine most of the Java horror stories people recall come from the days where there were no good Java libraries and everyone was reinventing the wheel. My memory of java is from about 2007 and I had a pretty negative memory of it. I recently joined a company that primarily does java development and it's amazing what 15 years of progress can do. It's night and day. Using IntelliJ instead of eclipse alone is a big jump. The thing is, as a C#/.NET dev, those tools weren't that great 15 years ago, either. But I'd been keeping up with the progress in that ecosystem, using it day to day, so it's easy to forget.
- eternalban 4y ago> There is definitely a higher barrier to entry with Java This is what is missing from the conversation. Most of us Java fans have been doing Java for a while. I started in '96. We know the JVM. We grew up with Java and were exposed to various aspects of this platform for over 2+ decades. Java the language is not that hard to pick up, but the platform in its total glory is formidable to those new to the language. I myself never realized this until a few years ago when in course of quizzing a very vocal anti-Java front-end dev in a startup, he blurted "it intimidates me". And I think this is really the issue.
- _skel 4y agoIt's always sad to see people in the tech industry who are opposed to learning things. Quite a lot of the anti-Java, anti-abstraction, anti-complexity crowd seem to actually just be people who are one step above a sysadmin in their mental model of programming, don't see how large-scale programming is different from imperative scripting, don't understand that complex problems sometimes require complex/systematic solutions, and resist leaving their comfort zone. There are certainly valid arguments against everything I just said, but quite often they are not the true motivation.
- eternalban 4y agoI have come to form a strong opinion regarding software development people: In general we are more comfortable with operational complexity than conceptual complexity. (A somewhat wider sense of conceptual, to include architecture, structure, etc.) Some of us, like me and possibly you, are more comfortable with conceptual complexity but abhor operational complexity. This [division] mirrors the society at large, imo, but was masked during the early days a couple+ of decades ago when software geeks were truly geeks. That subset of demographics never was upset by complexity per se, only un-necessary complexity was a cause for getting upset. The general demographics is bothered by complexity, period. Companion theory partly based on this opinion is that as the community grew by orders of magnitude from say late '80s to '10, it began to more closely resemble the general population. So the degeneration of keep it simple, stupid (KISS) to mean keep it stupid and simple is an economic and social phenomena. We are workers in a field with an arts and craft mentality on the production side and global industrial demand on the consumer side. The factory worker plugin iPhones together is not asked to think conceptually. The factory worker making software widgets in some IT department however has to come up with an ad-hoc 'assembly-line' with his or her teammates. Of course they are going to poo poo conceptual complexity. What does it bring to the table for them or the production line? In contrast, learning (or copy/pasting) n chants for m different infra-beasts to get your widget online seems far more reasonable and far more bangs for mental bucks.
- raverbashing 4y ago> A competent Java programmer is not slower than a competent Python programmer. Time to market won't suffer. Really, really doubt this. 100%. Not blaming the developer, surely, but even modern java is more complicated than running something in node.js > The time it takes to set up the build system is a drop in the bucket compared to the rest of the work It's not just a one-off, Maven will make your development slower every day of the week. Every build, every unit test run, etc
- kaba0 4y agoIn what way? Sure, gradle can build faster, but the amount of compilation time the frontend need that barely does anything is orders of magnitude more than any maven run.
- ReflectedImage 4y ago"A competent Java programmer is not slower than a competent Python programmer. Time to market won't suffer" It takes 2.5x time to develop a program in Java rather than Python. It's been measured. So you will reach market in 2.5 years instead of 1 year. Bit of a difference to say the least.
- deterministic 4y agoDo you have a link to the study making those (very hard to believe) claims?
- ReflectedImage 4y agoWhy exactly do you think the claim is hard to believe? People use scripting languages like Python due to faster development times. They certainly don't use them for resulting code performance :p Youtube vs Google Videos: https://books.google.co.uk/books?id=eulODwAAQBAJ&lpg=PA136&dq=google+video+vs+youtube+python+story&pg=PA136&redir_esc=y#v=onepage&q=google%20video%20vs%20youtube%20python%20story&f=false https://books.google.co.uk/books?id=eulODwAAQBAJ&lpg=PA136&d... Youtube's 20 developers using Python were able to out compete Google's several hundred developers using a more traditional language. Here's a study for you: https://games.greggman.com/game/dynamic-typing-static-typing/ https://games.greggman.com/game/dynamic-typing-static-typing...
- deterministic 4y agoBecause nothing in Python is magic. There isn’t a single language feature in Python that somehow magically makes you more productive. All of the Python language features are also present in other languages. And productivity to me is not how fast I can bang out a solution to a small problem. I can do that in many languages no problem. Productivity to me is being able to effectively maintain very large (million+ lines) code bases. Not having types is a productivity killer in that scenario. And Python being a slow languages (when not calling C libraries) makes it even worse. But hey if you feel more productive using Python that’s great! More power to you.
- hbrn 4y ago> A competent Java programmer is not slower than a competent Python programmer. Time to market won't suffer. A fast horse is not slower than a fast car. Languages and ecosystems shape how people think. For example, you will find that Java and Python programmers have very different values and principles. Given same options, they will make extremely different choices. Clearly this is going to have at least some effect on time to market. I found Java to be a land of overengineering, verbosity, and anti-patterns. The infamous "Hammer Factories" [1] post screams Java to me. [1] https://www.danstroot.com/posts/2018-10-03-hammer-factories https://www.danstroot.com/posts/2018-10-03-hammer-factories