3 ms·
My takeaway from this is that it’s extraordinarily important to try different tech stacks. I’ve primarily worked as a Java dev for the past 20 years, but I’ve
by JackFr 5y ago
My takeaway from this is that it’s extraordinarily important to try different tech stacks.
I’ve primarily worked as a Java dev for the past 20 years, but I’ve got significant time doing python and one non-trivial Rails app.
The funny thing is I’m most comfortable and I believe most productive in the Java ecosystem, but only because of the time spent working in other languages. Coming back to Java after python, one gets a better feel for what’s essential and what’s cruft. Similarly, when Rails first came out, it can’t be understated how revolutionary it was with respect to web development. Coming from the J2EE universe it was like the true essence of web development had been hidden from us with servlets, JSPs, wars and ears.
That being said - I’m happy being a Java - well JVM at least - developer. The ecosystem is alway changing and often improving, but I assure you it wouldn’t if not for the evolutionary pressures of things like JS & Node, Ruby & Rails and Python & Django.
- abraxas 5y agoThe Java space though unloved but the younger crowd is still super strong and Spring Boot gives all those competing platforms a run for their money leveraging the enormous JVM ecosystem. Java may not be the most concise of languages but I think many people would be surprised by how little boilerplate there is in modern Java and Spring.
- noisy_boy 5y agoSpring is pretty lean as long as your use case is typical and common - you can practically setup most of the foundation just via config. However, anytime you have to deviate from the typical, the complexity of the Spring framework underneath starts to show and the beans and boilerplate start to grow pretty fast - not unmanageable but not exactly lean either. Fully agree about the ecosystem.
- __jem 5y agoAt the same time, this flexibility is a core feature of Spring. In most other frameworks, when you have a use case that isn't supported, you're entirely on your own. Or, worse, end up with in-house patches and hacks to the framework itself. Spring is an integration framework, and so closer to a framework for building frameworks. It just so happens to have a bunch of well supported ecosystem defaults.
- noisy_boy 5y agoAgree on that too. I am yet to come across a use case that cannot be handled by overriding or injecting one's own factory.
- stepbeek 5y agoI'm in a similar boat to you - I've built non-trivial side projects in other tech stacks, but I'm a JVM developer at heart. I've been conflicted about whether to dig into ruby/rails more to jump ship recently because of the philosophy in the community. I love kotlin as a language and enjoy working with spring boot but the hype in the JVM community around JSON API + React SPA does make me wonder whether I'm moving away from it philosophically. I'm particularly excited by Spring Native right now. Having a Spring Boot app startup quickly and use less memory will fit heroku-like PaaS environments perfectly.
- regularfry 5y agohttps://devcenter.heroku.com/articles/moving-an-existing-rails-app-to-run-on-jruby https://devcenter.heroku.com/articles/moving-an-existing-rai... might interest you.
- stepbeek 5y agoThanks for sharing! This line made me laugh out loud: "JRuby is known to consume more memory than MRI. You may want to run standard-2x dynos for optimal performance."
- bestinterest 5y agoSame boat as both of you guys I find myself in this weird world of loving Go's simplicity, loving Rails get shit done mentality + community and Java reliability (but SpringBoot makes me sad). I'm glad I ventured out of my Java only mindset however. Lots of interesting things going on but decision paralysis sucks.
- RangerScience 5y agoSame same but different; I've worked in many, many different languages, but in my heart I'm a Rubyist. Definitely second the "things I've learned from other languages", so much so that I gave a talk about it: https://rubyconf.org/program/sessions#session-1198 https://rubyconf.org/program/sessions#session-1198 (I don't know when the recording goes up :P )
- throw_m239339 5y ago> Coming from the J2EE universe it was like the true essence of web development had been hidden from us with servlets, JSPs, wars and ears. 20 years ago, Java development wasn't that complicated. Big consultancy came in and complexified the ecoystem just for the sake making the entry level way too high. A Rails developer only needs to know Rails and Active record and maybe Capistrano and some server. A Java developer has to know Servlets, Glassfish, Tomcat and other containers, JSP,JNDI,EL, JSTL, JSF, JDBC, JPA, CDI, EJB, Hibernate, Spring, Maven, Gradle and God knows what to find a job. For a beginner, the documentation is also all over the place. Java the language is improving sure, but some people are still stuck with maintaining struts applications to this day, with tons of XML files...
- egeozcan 5y ago> servlets, JSPs, wars and ears Just reading these make me depressed. I'm taking over a JSF project that uses gradle these months which puts even the complicated old spaghetti gulp build files to shame in terms of complexity. Even more confusing is that there are some people who love that complexity. They are actually proud of it! Why would you have a globel gradle file in your $HOME that has project specific configuration? Why does your stupid project only run with some specific Eclipse plugins? Why does it take 2 days of depressing configuration work to have a running instance? I used to love Java! What happened when I wasn't looking!? They tell me "but you do it once!!", I digress.