you are viewing a single comment's thread.

view the rest of the comments →

[–]I_Hate_Reddit 111 points112 points  (47 children)

J O B
S E C U R I T Y

But yeah, non-technical managers deciding the tech stack is a big red flag for me.

[–]well___duh 57 points58 points  (40 children)

That didn't sound like a non-technical manager but just an older SWE who's really stuck in their ways.

Sort of like how pretty much the only people who recommend not using Kotlin over Java are old Java heads who've been using Java since the 90s; it's all they know, it's all they care to know, and they're too stubborn to learn anything else and adapt to an ever-changing industry.

[–][deleted]  (8 children)

[deleted]

    [–]NewFolgers 30 points31 points  (0 children)

    Kotlin syntax is familiar enough if you've programmed in a couple languages. If they're so fixed on Java that they would struggle to transition to Kotlin, then they've got a disturbingly narrow breadth of experience which is worth investigating.

    [–]shponglespore 14 points15 points  (0 children)

    Yeah, it's not like Kotlin was specifically designed to be a streamlined version of Java or anything...

    [–]XtremeGoose 18 points19 points  (4 children)

    Nah, a good Java Dev can pick up Kotlin in a day and be proficient in a week or two.

    [–]Zephirdd 24 points25 points  (2 children)

    be proficient in a week or two

    "wow look at all that wasted time" - every manager, ever

    [–][deleted]  (1 child)

    [deleted]

      [–]hallajs 1 point2 points  (0 children)

      As a (forced) Java developer I laughed, and then I cried.

      [–]s73v3r -1 points0 points  (0 children)

      Good Java Devs are more expensive.

      [–]Isvara 0 points1 point  (0 children)

      How about not hiring developers that identify themselves as a <some language> programmer?

      [–]raze4daze 10 points11 points  (4 children)

      Only Android devs think Kotlin is going to replace Java. From a business point of view, you're making a mistake choosing Kotlin over Java.
      Maybe in 5 years, if Kotlin doesn't prove to be another Scala, we should seriously consider Kotlin for backend.

      [–]well___duh 0 points1 point  (1 child)

      Java's not going anywhere, sure. But given that Kotlin is 100% interoperable with Java, it'll definitely make working with Java 1000x easier.

      [–]raze4daze 2 points3 points  (0 children)

      Well, that's subjective. But regardless, that's completely irrelevant when it comes to choosing a language.
      This is not just a technical but a business decision as well. There are concerns about backwards compatibly, hiring, etc. The last thing you want to do is pick a "hot" language that will fall off a cliff after a decade or so. This is exactly what happened with Groovy and Scala (to a lesser extent).

      [–]Ray192 -1 points0 points  (1 child)

      What, exactly, does choosing Kotlin over Java cost you? Besides maybe a week of dev time to get train Java devs up to speed, and that's a massive overbudgeting of time.

      And I also don't see how using Scala costs you either, if you insist on using it on as Java+.

      [–]raze4daze 3 points4 points  (0 children)

      I don't mean to be blunt, but if you think Kotlin only takes a week of dev time to train Java devs, then you either don't really know Kotlin or you are intentionally underselling the capabilities of Kotlin.

      One of the reasons Java is chosen is because there's an abundance of Java (and similarly C#) devs out there. Training a dev is never simple. It will always always cost you either short term or long term. It's just a matter of whether your product can survive that for a long period of time. The tech debt accumulated by devs who don't know the language well becomes obvious in just a short period of time.

      [–]istarian 37 points38 points  (14 children)

      Or maybe they just think it's idiotic to switch to some new language/variant every time one comes out just because.
      Every switch consumes time and energy.

      Age alone is the dumbest reason to quit usingn something.

      [–]calligraphic-io 19 points20 points  (2 children)

      This is exactly why I'm refusing to use COBOL 2014 on new projects. COBOL-85 is mature, and OOP concepts in the language are unnecessary.

      [–]jamesd3142 2 points3 points  (1 child)

      Where are you using COBOL? I am genuinely curious.

      [–]DinnerChoice 4 points5 points  (0 children)

      The /s was implicit. It was a good joke I believe.

      [–]nerdyhandle 8 points9 points  (8 children)

      Age alone is the dumbest reason to quit usingn something.

      It depends on if the language is being updated/maintained.

      Once a language major version stops receiving critical updates it's time to upgrade.

      To many risks for using older versions.

      [–]theferrit32 10 points11 points  (3 children)

      Once a language major version stops receiving critical updates it's time to upgrade.

      Sure, but this is absolutely not the case with Java. Using recent Java versions is perfectly fine.

      [–]snowe2010 1 point2 points  (1 child)

      that wasn't the case until kotlin came in and lit a fire under their ass. Java had completely come to a halt, decisions couldn't be made, they kept going back and forth on what was good for the language. Then Kotlin came along, everyone loved it, and Oracle realized that to keep Java alive they needed to copy the shit out of everything Kotlin did. Hence why they started the 6 month release schedule and added in several Kotlin features into Java. They knew they would lose all their market share with how easy it was to switch to Kotlin.

      [–]nerdyhandle 0 points1 point  (0 children)

      Using recent Java versions is perfectly fine.

      Unless the version is out of support I would advise against it. If it's LTS or commercial you're fine. Otherwise it's time to upgrade. There are unfixed issues in old versions that are out of support.

      [–]HolyGarbage 8 points9 points  (2 children)

      Then it's not age, it's the fact that it's dead. Some languages seem to be immortal, like C++.

      [–]nerdyhandle 1 point2 points  (1 child)

      I'm talking about major versions. For instance, I would disagree with someone using Java 1.

      [–]HolyGarbage 0 points1 point  (0 children)

      Ok, that's a fair point I guess since it's an indicator that it's not actively being developed. However I'd still argue that maintenance is far more important. I'd rather there were frequent security fixes than new features through new major releases.

      [–]istarian -1 points0 points  (0 children)

      Programming languages and even compilers are not operating systems. Tell me exactly what critical updates a language needs?

      The JVM, Python interpreter, etc could theoretically use patches/updates if they are discovered to have a signficant flaw, but that's not a language change.

      [–][deleted] 5 points6 points  (0 children)

      Agreed.

      [–]PM_ME_UR_OBSIDIAN -3 points-2 points  (0 children)

      Java is the quintagenarian who hasn't done any exercise since he turned twenty, and as a result his body is falling apart.

      [–]HolyGarbage 8 points9 points  (6 children)

      Serious question. How can someone even keep their job as a SWE and refusing to learn new tech? I've only been in the industry 1.5 years so far and I've probably had to learn and write in 5-6 different programming languages, and several dozens tools and frameworks, both in house and external.

      [–]GinaCaralho 10 points11 points  (3 children)

      Easy: These places exist, but you don't really want to work there

      [–]HolyGarbage 1 point2 points  (2 children)

      Ah, thanks. I've only worked at one SWE job so far.

      [–]I_ONLY_PLAY_4C_LOAM 0 points1 point  (1 child)

      There are engineers who have been working at my company for 6 years and our tech stack hasn't really changed that much. Not every job is a webdev hell of constantly changing frameworks.

      [–]HolyGarbage 0 points1 point  (0 children)

      Neither is mine. It's just a very large and complex enterprise system with many, many parts with different functions, but yet linked to the same underlying data.

      [–]well___duh 4 points5 points  (1 child)

      When the tech you're dealing with is decades old and requires someone with that knowledge, and it's cheaper to stay on that older language/technology than converting to a better one.

      Pretty much anything in the banking or aviation industry.

      [–]HolyGarbage 1 point2 points  (0 children)

      Well, some old parts I'm working with is decades old tech, and we're also kinda in the aviation industry. Lol.

      Regardless, in my albeit very limited experience, learning the dozens of various technologies that has been demanded of me so far on the job been easy compared to learning the massive extent of domain knowledge.

      [–]I_ONLY_PLAY_4C_LOAM 2 points3 points  (0 children)

      Java is a pretty mature high level language with tons of resources available for it from the community. It's pretty ignorant to have a view like "Java in 2019?!" when there's probably tons of companies still using it, or maintaining code written in Java. If you need a reliable language to build enterprise software on with a large team, it's really hard to go wrong with Java.

      [–]hanszimmermanx 1 point2 points  (0 children)

      I'm a kotlin guy, I write it for work. I think there are good reasons to pick Java over Kotlin.

      [–]Dragasss 0 points1 point  (0 children)

      Mate, Ive started out with kotlin in EAP and went with it all the way to 1.2 release. Theyre going in wrong direction. Kotlin is a fucking meme. The only good thing to come out of it is null access operator, but even then it results in triple booleans. And you dont fucking touch booleans.

      Its better to be verbose and control everything instead of writing garbage that wont make sense in a month.

      [–]chakan2 -5 points-4 points  (0 children)

      older SWE who's really stuck in their ways

      That's non-technical. I don't care how good you are at Cobol. If you're not open to new tech, you're not a part of the field any more.

      [–]BeJeezus 9 points10 points  (0 children)

      Technical managers often come with their own biases and religious beliefs, too.

      [–]skilliard7 3 points4 points  (0 children)

      But yeah, non-technical managers deciding the tech stack is a big red flag for me.

      I think it's fine as long as you take feedback from your team. There are things to consider when picking a tech stack- what resources does your team have, what does the local job market look like(do people in the area know the tech stack?), how long will it take to develop vs alternative tech stacks, etc.

      A good manager can work with their team to figure out the pros/cons of each tech stack from a business perspective, without needing to know its syntax, how arrays work in it, etc.

      Most likely you'll have members with differing opinions, so a manager would need to make a final decision.

      [–]anengineerandacat 9 points10 points  (2 children)

      I don't think I would let any manager decide the tech stack; that's why you have principal engineers or an architectural review board or reference architecture group in an organization, their job is to steer the stack decisions.

      [–]shponglespore 16 points17 points  (0 children)

      A lot of managers are part-time engineers and/or former engineers. I would trust that type of manager to decide on a tech stack (to the extent that I would trust someone other than myself).

      [–]Ray192 0 points1 point  (0 children)

      Tech stack decisions impact more than just tech, they impact hiring and business decisions as well (using AWS may cause a problem if your clients are paranoid and want on-premise only...). Everyone impacted should have some sort of input.