thanks for the feedback.
This is my point of view as a Java developer 😉I did some Polyglot projects and have written my summary here from 2011:
In the beginning I was a fan of "use the right language for the right problem" but at the end I saw the problem in maintenance and as we all know, maintenance is the hardest part of software development. Building from scratch is always easy and fun. This presentation from Netflix is also very interesting: https://youtu.be/W3HkCF0jBZA - Key message: Polyglot is expensive. As I wrote my summary in 2011 I always thought that all the problems in maintenance is because my projects were always mid-size and such a problem would not exist in Google, FB, Netflix... but the presentation from Netflix from 2018 told me something different 😁
I know and IMHO I think TypeScript is a very good language + transpiler + tooling. But today I'm very careful to introduce new programming language, new tooling, frameworks and ecosystem. If I cannot see the clear advantages I won't do it. Just because you could write the code in more compact or functional way, it won't give you the advantages you hope.
So, to come back to the discussion, yes my opinion is biased but I hope I'm not dogmatic, this should not happen in our domain or elsewhere since I hope that we could always learn new things and adapt the good things and learn from the bad things 😉
BTW. I find it also interesting that Angular offers DI and it looks really like all the patterns we had in GWT... and I found Mocking is very important, I see a lot of developers cannot "localized" the problem to fix bugs faster. In today environment with Microservices it is a very important work to make everything in "small" part / "make everything running locally" so you could enclose the problem and fix it.
t.br...@gmail.com schrieb am Dienstag, 29. September 2020 um 13:45:56 UTC+2:
- We use Java as the languageIs Java objectively the best language out there to be used as an argument that way?
- We have the best ecosystem like libraries, frameworks, build system and IDEs.Please define in which way they're "the best".In terms of dependency management, NPM and Yarn are probably better than Maven (but not Gradle, which looks unrivaled on that point).In terms of build systems, I hope you're not trying to compare anything to Maven; but I also wonder how you're going to do things like PostCSS, Imagemin, SVGO, etc. do with a J2Cl toolchain. GWT does some of those (not all), but the JS frontend ecosystem is the clear winner on that point.VS Code, and probably (I never used them for non-JVM projects) IntelliJ IDEA / WebStorm, and I suppose Visual Studio too, are absolutely great IDEs too for JS and/or TypeScript (and Go, and probably many others).
- We know best design patterns to make our apps maintainable like Dependency Injection, Mock Testing and many other just take a look at: http://bit.ly/DesignPatternsJavaWow, how condescending!BTW, as already pointed by Rodolfo, design patterns are language independent. The "GoF" Design Patterns book has all its examples in C++ and Smalltalk, not Java; and that link you give lists exactly those patterns from the book.I do miss Dependency Injection from time to time in JS devs, but if you really want/need it, there are ways to do it (React Context for example); and Angular does DI: https://angular.io/guide/architecture-services#dependency-injection-diMocking is overrated, but far from impossible in JS, including for network access: https://mswjs.io/ and even though I personally rarely do automated testing of frontend devs (and that's true of GWT too), the JS ecosystem has some quite good libraries as well (testing in a browser environment with GWT is quite "outdated" in comparison: HtmlUnit or the defunct SeleniumRC, or manually launching your browser; fortunately we're doing better with J2Cl by leveraging Selenium/WebDriver).
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firstname.lastname@example.org.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/35e6f4dd-5a16-451b-a2d5-35d5031bbb35n%40googlegroups.com.