4 ms·
Started my career with Java and I will never work with it again. It is mostly the culture around Java. Most Java code is verbose to an extreme but the devs them
by DogLover_ 4y ago
Started my career with Java and I will never work with it again. It is mostly the culture around Java. Most Java code is verbose to an extreme but the devs themself will say it makes the code readable. They will say the language is functional because of lambdas but anyone that has used a functional programming language will know that it feels nothing like it, again because of its verbosity. It is so complex that you can't really work with it without having to use an IDE.
- sandGorgon 4y agoi totally hear you. i have faced this issue on /r/java a lot. Especially the conceptual overhead of DAO/DTO, etc seems very religious in nature.
- seer-zig 4y agoHow do you suggest getting rid of DAO/DTO? This has nothing to do with Java, but with the domain at hand. I worked on several golang projects where protobuf was used, and the same dichotomy showed up in the code. There were three types even, protobuf types, internal types, and DB types, with manual mappers and validators having to be written between them. Quite a bad, verbose, and error prone experience, especially that golang itself is quite verbose.
- sandGorgon 4y agohere's my thought - and ill be the first to admit that i may not be correct. its the front loading of a huge number of patterns which ends up being the barrier. An argument is made for "future proofing". Its not unlike Python whitespace indentation or golang's unused variables restriction. But the design pattern complexity is far more harder than all these things. There is a certain degree of complexity when all of this starts making sense. Or maybe do what Redux did ... and abstract everything out to somewhere else.
- vips7L 4y agoCurrently working on a project that doesn't use DAO's or DTO's it's horrendous, I wouldn't give up proper view models for anything now.
- sandGorgon 4y agocould you talk more about this ? because in most other languages, there is no forcing of DAO/DTO. u used the word "viewmodel", so are we talking about android ?
- seer-zig 4y agoI don't get the "don't need to use an IDE" excuse. Almost any present day project is big enough that you need an IDE, regardless of how simple a language is. This is even more so for dynamic languages. Who doesn't want immediate type checking, safe and effective refactoring, call stack lookup, and the many other features an IDE provides? Do people making that claim write code in notepad or something? Modern Java isn't really any more verbose than other languages it gets compared against. It is very nicely balanced between expressiveness and readability.
- jhbadger 4y agoNo. The choice isn't limited to an IDE or Notepad. There's also the choice of a reasonably powerful text editor like Emacs, Vim, or VS Code. Those have many of the advantages of an IDE while still being more flexible and not trapping you into an IDE platform that is often hard to move way from (generally by intention by the IDE creators who want lock-in).
- seer-zig 4y agoThe poster was saying that Java is so complex that you need an IDE. People use VS Code to write Java today, does that mean that they're not using an IDE? As long as the same features are offered in VS Code and IntelliJ/Eclipse/NetBeans/etc., then the distinction is really nothing worth talking about.
- frant-hartm 4y agoVS Code is an IDE.
- jhbadger 4y agoThen Emacs is an IDE and Vim is an IDE. VS Code is just a text editor that has extensions for specific programming languages, just like Emacs and Vim. The confusion is just because it happens to be named after an actual IDE Visual Studio, which it has little to do with just for marketing purposes (like how JavaScript has little to do with Java).
- kaba0 4y ago> They will say the language is functional because of lambdas but anyone that has used a functional programming language will know that it feels nothing like it That is such bullshit. There are plenty of very functional libraries written entirely in Java, it has a surprisingly adapt type system that makes plenty of things expressible (not monads themselves, but you can almost get there with purely generics). Vavr, jool, immutables. And what exactly is complex? Java is on the leaner end of language complexity, just compare its number of keywords to.. any other mainstream language.