SSUPII,

Java is poison for the mind

javasux,

I agree

SirQuackTheDuck,

That’s why I’m working in that area. Gotta give the alcoholism some competition up there.

Gormadt,
@Gormadt@lemmy.blahaj.zone avatar

Why do people feel this way?

I’m genuinely curious as I’d think having a wider swathe of coding experience would be a good thing wouldn’t it?

I don’t work in fields that use coding expertise, I drive a forklift so I’m out of my wheel house when it comes to coding.

PaperTowel,

Java in a large way has been eclipsed by most other languages, and developers kind of have a way of making fun of old technologies, like a lot of the same jokes are made about PHP which is still very popular but outdated. In reality Java is also still incredibly popular and knowing it is certainly a benefit. It’s just a collective joke.

ChickenLadyLovesLife,

I wish people would make fun of Visual Basic more but nowadays it’s like it never even existed. As somebody that started in VB I feel left out.

Transtronaut,

Not sure either. Best guesses are a combination of elitism, ignorance, preconceptions, groupthink, and insincere memeing.

Gormadt,
@Gormadt@lemmy.blahaj.zone avatar

NGL if I saw a job listing that said, “Don’t have experience in a specific field,” I wouldn’t apply even if I didn’t have experience in the field specified because my assumptions for why they’d say that basically are the reasons you said.

Or that they would want someone they could under pay for the position, but that’s more specific for what the job is and what they don’t want you to know beforehand.

Edit: Fixed wrong wording

amtwon,
@amtwon@lemmy.world avatar

If it’s a job that requires high-performance/low-level code (which seems to be the case from the other qualifications), this is probably their way of filtering out people who have primarily worked at a higher level where you don’t need to worry about the nitty-gritty details

nxdefiant,

I can almost guarantee that job post was written by a recruiter who had some engineers in a call. The recruiter probably said something like “What about Java? I hear Java is important” to which the engineer(s) likely jokingly responded “Oh, no, please no. MINIMUM POSSIBLE JAVA. Yeesh. Ideally none.” … and the recruiter took that literally.

gornius,

Java used to lack many features to make the stuff you wanted it to do, so most Java programmers adapted design patterns to solve these problems.

Honestly, older versions of Java are utter garbage DX. The only reason it got so popular was because of aggressive enterprise marketing and it worked. How can a language lack such an essential feature as default parameters?

So, anyway after the great hype Java lost its marketshare, and developers were forced to learn another technologies. And of course, instead of looking for language-native way of solving problems, they just used same design patterns.

And thus MoveAdapterStrategyFactoryFactories were in places where simple lambda function would do the same thing, just not abstracted away three layers above. Obviously used once in the entire codebase.

Imo the only really good thing about Java was JVM, while it was not perfect, it actually delivered what it promised.

Franzia,

This is the only necessary comment in the entire thread, thanks for explaining

31337,

I think most of those design patterns originated from C++ (Gang of Four). Java was designed to be a simpler, opinionated C++, and inherited many of the nuances of OOP-style C++. I actually kinda like Java. I think its restrictiveness is nice for large projects, so everyone uses the same programming paradigm and style (no mixing of template, procedural, and OOP programming). Code execution is relatively quick (compared to things like the Python interpreter). Don’t need to write header files or manually manage memory. Has fairly advanced features built in for multi-threading, concurrency, remote objects, etc.

I haven’t programmed in Java in many years, but I’ve been programming in C# lately, and it just seems like Microsoft’s version of Java.

WiseThat,

Object oriented programming encourages a number of anti-patterns

AMDIsOurLord,

Honestly, why people hate it so much? It’s better than most of the shit people use

blindsight,

public static void main string args

bdonvr,

I’m having compsci flashbacks help

kaffiene,

Oh bullshit

aiden,

Shush, grandpa. Go to bed already.

kaffiene,

Go fuck yourself

NickwithaC,
@NickwithaC@lemmy.world avatar

ability to bring up hardware

In conversation?

KnowledgeableNip,

No, they’re asking if you can get an erection

HiddenLayer5,
@HiddenLayer5@lemmy.ml avatar

They need someone strong enough ton drag up old servers from the basement.

jaybone,

You need to raise it suckling at your teet until you send it off to college.

deaf_fish,

As an embedded systems engineer, this is now my mental image anytime anyone talks about hardware bring up.

fallingcats,

Hardware bring up is when you design a pcb or something and there doesn’t yet exist any firmware for it. It would be the ability to debug the board and write firmware for it.

Agent641,

Real-time operating system implies the existence of a turn-based operating system.

Rossel,

Well, that’s… not wrong. The time-sharing OSes take turns assigning resources too tasks.

LazaroFilm,
@LazaroFilm@lemmy.world avatar

Do you have a link to this job posting? That’s exactly me. Not a joke.

bus_factor,

Looks like the company is www.winterwinds.io, but they do not appear to have any open job listings at the moment. I assume this is an older screenshot.

Sanyanov,

And that’s how hopes die…

bus_factor,

If they’re a good enough fit, the company might hire them despite not having any open positions. It happened to me once.

Pantherina,
@Pantherina@feddit.de avatar

Initiative?

ReveredOxygen,
@ReveredOxygen@sh.itjust.works avatar

I saw this screenshot ages ago yeah

troyunrau,
@troyunrau@lemmy.ca avatar

Maybe they want to avoid java coding patterns. FactoryFactoryGenerator kind of stuff. Maybe they want to teach their own java coding patterns and want someone coming in with a blank slate so they don’t have to unlearn habits. Maybe they’re tired of diploma mill programmers applying and are using this as a resume filter tripwire.

pennomi,

Definitely. Horror story time.

We had an outside contractor bring us some code once that was thousands of lines of Python to do a very simple job. I was perplexed. I dove in to figure out what the problem was, and somehow I was looking at the most Java-esque Python code I could imagine. What’s worse is that he implemented his own “Java style” property getters and setters for all the Python classes, which obviously aren’t needed because you can simply access properties directly. In the end I took an 80 line snippet of his code (which actually did the work we needed), swapped out all the getters and setters, and deleted all the rest.

BaskinRobbins,

You can always tell when someone’s been a career contractor because they never adhere to any of the established patterns/styles in the codebase.

gribodyr,
@gribodyr@lemmy.ml avatar

I disagree. Good career contractors should learn to write in the code style of the project. And the real pros do.

troyunrau,
@troyunrau@lemmy.ca avatar

That’s not to say that python coding habits are the best either – certainly they’re terrible when translating outside of python (most of the time). And even within python, someone who is used to with only the base modules will write it differently than writing PyQt and still completely different than someone doing numpy code… because the styles of coding of the underlying system change your coding mode. Like, my variables are all CamelCase when doing user interfaces with Qt because it makes sense there, stylistically.

Potatos_are_not_friends,

This is pretty common with outside contractors.

We just come in, say we’ll pay them x dollars and they give us code that passes the test. But that code will not at all align with any prior patterns.

I absolutely know I’m guilty of it when I do freelancing. Sorry.

jasondj,

Did you pay by the SLOC?

Potatos_are_not_friends,

I originally thought it was the former.

But now I’m strongly hoping it’s the latter! Pretty smart move.

Zeth0s,

Definitely the first. I work in ML, and I find for instance people with background mainly in c# to be the least fit for my field, particularly if they have long experience. So I understand this kind of requests

ook_the_librarian,

It might be to see who is reading the posting and tailoring their reply. Kinda like a “no green M&Ms” rider.

ChickenLadyLovesLife,

It was brown M&Ms. Only a psychopath would say no green M&Ms.

frobeniusnorm,

Ruling Javascript and Python programmers out would be more sane imho. Java sucks, but at least its typed and doesn’t implement weird semantics.

javasux,

You called?

anton,

Had to work with a python programer on a small java project (in uni). I passed some (handcrafted) strings in an Optional to be explicit an first thing he does is check whether they are empty (sending on empty strings would not have been problematic). Also he had compilation errors on his branch that lasted over a week. What python does to someone.

grue,

That guy was shitty at Python, then. Python is all about EAFP instead of LBYL.

lostme,

Eat ass fast paced instead of lay back your lettuce?

grue,

“Easier to Ask Forgiveness than Permission” vs. “Look Before You Leap.”

In other words, in Python you should just write the code to do the thing and then put an exception handler at the bottom instead of cluttering up your function with guard code everywhere.

Elderos,

I worked under a self-proclamed Python/JavaScript programmer, and part of the job involved doing rather advanced stuff in various other typed languages like c# and c++. It was hell. The code review were hell. For every little tiny weenie little things we had to go through “why coding c++ like it is python” is a very bad idea.

What is crazy about developers who exclusively work with scripting languages is that they have no conception of why general good practices exist, and they often will make up their own rules based on their own quirks. In my previous example, the developer in question was the author of a codebase that was in literal development hell, but he was adamant on not changing his ways. I’d definitely be wary of hiring someone who exclusively worked with scripting language, and sometime it is less work to train someone who is a blank slate rather than try to deprogram years of bad habits.

naught,

Are you referring to Python and JS as scripting languages? The two most popular languages on the planet? Ones which are capable of building almost any kind of app imaginable? Surely you don’t apply your limited experience with a single dev to a group of millions of developers doing extremely varied things, right?

Gormadt,
@Gormadt@lemmy.blahaj.zone avatar

Kinda sounds like they’re adamant about not changing their ways in response to things not working as they expect.

Elderos,

Python and Js are by definition scripting languages in the classical sense. I am not using the term in a derogatory way and I myself learnt programming this way as a 90s kid. No offense but I think you took my comment way too personal.

naught,

What is the “classical” sense? What are you implying when you say they are “scripting” languages? What you are imparting to me is that they are less-than other, real languages. I don’t take personal offense, but I do take issue with the mischaracterization and implication that those languages are somehow less serious or less broadly useful.

No hard feelins! (:

effward,
@effward@lemmy.world avatar

en.m.wikipedia.org/wiki/Scripting_language

A scripting language, or interpreted language, is interpreted at runtime, rather than compiled.

It is not derogatory, and is simply a fact about languages like Python and JS.

naught,

If someone on the internet calls something a “scripting language,” it’s hard to take that in a vacuum. I’ll accept that there is overlap between “interpreted” and “scripting” languages, but they aren’t synonymous, particularly in my experience interacting with developers online. The typical discourse does indeed trivialize the so-called scripting languages, and my only intent is to say that they are a lot more than what they began as.

effward,
@effward@lemmy.world avatar

Most scripting languages are interpreted, not compiled. It’s not a criticism of them, but it is a tradeoff that is good to understand.

It seems like you are the one who is conflating terms like “script kiddie” with “scripting language” and adding some negative connotation that isn’t necessarily implied.

Scripting languages are usually easier to learn, have simpler syntax, and abstractions that hide complexity. These make them easier to get started in, but the downside is they are generally slower (performance-wise) than their compiled counterparts.

naught,

I’m certainly replying from my own perspective! Again, I don’t think the original reply was intended to be negative. I am just discussing the language used and what it implies to me and perhaps others from a similar background and time. I think, to me, a clearer and more modern way to describe these languages is as “interpreted” or other words describing the nature of the languages rather than saying it is a language for scripting, which carries a connotation (at least to me, in my corner of the internet)

Elderos,

There is a nuance though, because a language simply being interpreted does not mean it is being used as a scripting language. Take for example Java and C#, those languages are interpreted by default which allow you to ship platform-agnostic binaries and a bunch of other neat features. C# can be used as a scripting language, whenever it is interpreted, but it does not have too. It is an important nuance and this is why you can’t just replace the term “scripting language” entirely. You can also compile C# directly into machine code, skipping the interpreter entirely. Technically, there is nothing stopping you from writing an application that use C# as a scripting language even without the interpreter, since you can compile c# to machine code and simply dynamically load the library at runtime (kind of like Unity does). I guess you could call those “embedded languages”, and it would mean almost exactly the same thing, but then, aren’t we back to the same problem of some developers taking offence from that? I mean, it does imply that the language does not stand on its own without machine code just as well, which is true. This is one weird hill to have a bruised ego over for those developers you’ve met. Words have meaning and this one just happen to be a right fit given the description. I have a feeling from this whole exchange that you didn’t know what scripting languages were, considering how you replied to my first post. I worked in development for over a decade and I have never seen it be used with negative implications. I really just think you personally projected your own feeling onto a term you didn’t understand. No offence intended, it happens.

naught,

I get what you’re saying. Are you saying also that you haven’t ever encountered anyone using the term as a pejorative? My original reply is earnestly asking what was meant because the original post was ambiguous to me. I’m talking about connotation and you’re talking about the textbook definition. I know what a scripting language is, and it’s pretty dismissive to say otherwise imo. To call JS and Python scripting languages puts them up there with bash, lua, and perl. Interpreted or not, do you think these languages are equal? Can a developer as easily create a fully featured app or website equally with all of them? Can you land a perl job as easily as a JS one? I don’t think so. It’s not a matter of bruised ego so much as I want to combat the notion, especially for newer developers, that JS and Python and friends are somehow less-than, whether or not that was the original intent of the post.

Elderos,

There are definitely people out there shitting on all sort of languages, and JS is a huge target, but those have been referred to as scripting language for as long as they existed. It stern from the fact those languages are embedded into existing applications, as opposed to being built into binaries. Nowadays you have hybrids like C# which can used as either a scripting language or to build native app (or in-betwee), so it is really just a matter of the context you’re using the language in. There is inherently no hidden meaning or elitism in the term. It is a very old term and I think you simply got the wrong impression from your internet experiences. It is how those languages are defined basically everywhere. Even some of those languages official definition from their own website self-define as scripting languages. There is no ambiguity here at all.

naught,

I’m merely saying that to me, and to probably a large group of devs, it sounds like a dig. I totally take that it is an appropriate designation and there was no ill intent though. I think the fact that we’re having this conversation is enough to prove that there is at least a little ambiguity given the right context and experience with the term. Cheers

FooBarrington,

I’d change this slightly - the problem isn’t exclusively working in scripting languages, but dynamically typed ones. There are people who write great code in Python (with typing) and in Typescript, and they usually can work well in other languages too. But people who don’t type their programs are in my experience simply bad developers, the way you describe.

Elderos,

True that, this was pretty much the intended meaning of my reply but you worded it better.

FooBarrington,

Ah, good!

I feel like there is a fundamental difference between developers with a data-centric perspective, and a function-centric perspective.

The function-centric one is about adding functionality, and it’s what developers start out with. You have functions that do things, and if requirements change or the thing should be re-used - no problem, I can quickly add a new toggle parameter here or bolt it on over there. I’ll be done in 5 minutes, no problem!

Then, over time, you learn that functionality isn’t that interesting or difficult. Instead, the hard parts are the ones concerning the flow of data through your application. What do I know about the shape of my data in this part of my application? What can I be sure of regarding invariants over there? This forces you to build modular software without interdependencies, because - in the end - you just build a library that has small adapters to the outside world.

I like scripting languages a lot, but it’s way too easy to become “good” at that style of programming, and the better you get at it, the harder it will be to actually move forward to a data-centric perspective. It’s a local maximum that can trap people, sometimes for their whole career. That’s why I try to look at typing experience when evaluating candidates for positions.

Elderos,

I freaking love you and I’ll try to write a worthy reply when I am home.

FooBarrington,

<3

Elderos, (edited )

I wanted to get back to you, because you are so very right, and I spent the last 10 years or so trying to evangelize the fact that implementing algorithm and logic isn’t the hard part, it is a trivial concern really. Everything that go wrong with development usually involve the flow of data, and figuring out how to get this data from over here to over there without making a big mess. To do that, you absolutely need to write small module with few dependencies. You gotta think about the life-cycle of your objects, and generally follow all the principles of s.o.l.i.d if you’re doing OOP. Personally, I really love using dependency injection when the project allows for it.

It is as you said really, you can have thousands of hours of programming experience but if you never tried to solve those issues you’re really limiting yourself. Some devs think designing software around your data instead of your algorithms is overthinking it, or “overengineering” as I have been told. Well, I would not hire those people for sure.

I have seen clean project made up of small modules, with clear boundaries between data, functions and the lifecycle configurations. It is night and day compared to most code bases. It is really striking just how much of the hidden, and not-so-hidden complexity and goo and hacks and big-ass functions in most code base really just exist because the application life cycle management is often non-existent. In a “proper” code base, you shouldn’t have to wonder how to fetch a dependency, or if an object is initialized and valid, and where to instantiate your module, or even what constructor to invoke to build a new object. This take care of so much useless code it is insane.

To close on this, I like scripting languages a lot as well, and you can do great things with some of them even if lot of developers don’t. JS has Typescript, ReactiveX, dependency injection framework, and etc. It is a great language with a lot of possibility, and you’re not forced into OOP which I think is great (OOP and functional programming are orthogonal solutions imo). But the reality is that the language is really easy to misuse and you can definitely learn bad traits from it. Same as you, I would be wary of a developer with no experience with strongly-typed languages, or at the very least TS. I am very happy to hear this take randomly on the internet, because in my experience, this is not how most developers operate, and imo it is demonstrably wrong to not design applications around your data.

FooBarrington,

You put it very well!

gandalf_der_12te,
@gandalf_der_12te@feddit.de avatar

That’s true.

It’s also true in other fields. For example, take far-eastern fighting skills:

Young students will try to hit someone, to beat someone up, to hit a target, to become “stronger”.

Experienced teachers, however, don’t really care about hitting a target. It’s all about the posture. How you stand. How you carry out your movements.

evranch,

I wouldn’t call this a “python thing”.

I grew up with C and C/++ is still my main language, checking for empty strings is instinctive to me. It’s cheap insurance and what does it cost, a couple cycles?

Though you won’t find me using bare cstrings these days unless there is a damn good reason for it. So much extra work to handle them. Even in embedded work, String classes have superceded them.

seth,

JS -> Typescript, let the transpiler do its job

Python -> mypy + from typing import blahblah

ez pz

Sunrosa,
@Sunrosa@lemmy.world avatar

Did NOT expect to see Rust mentioned. Happy it’s getting recognized.

unexposedhazard,

Isnt there Rust in the linux kernel now? Would be kinda crazy if it didnt get noticed by now…

null,

Rust is the Celeste of programming languages.

Agent641,

Whos celeste?

sysadmin420,

The only Celeste I know is a difficult video game where I always get stuck when playing

null,

Celeste is a critically acclaimed indie game. It became a meme to call it a “hidden gem” because for a while it was being brought up constantly on various forums as some underrated game, even though it was quite well-known and highly rated.

seth,

I’ve been meaning to take a gander at Rust and Go for about a year now and poke around, this is a good reminder for me to stop putting it off, so t4t. I did walk through a Go implementation of some authentication RFC a couple years ago and it was very straightforward.

force,
kaffiene,

Java is a great language.

cordlesslamp,

Sure it is, grandpa. Now let’s take your pills and go to bed.

kaffiene,

Go fuck yourself

JulianRR,

Yikes

deaf_fish,

I don’t know what’s worse being told to go f*** yourself or to be told you’re a grandpa based on your language preference.

On one hand the go f*** yourself is crude but at least it’s direct. Being called a grandpa is kind of insidious but it’s more pleasant.

To anyone passing by this comment. Which insult directed it you would you prefer?

I must be feeling introspective today.

drislands,

I’d rather be told to go fuck myself in response to me saying something rude, because I’d deserve it.

sysadmin420,

I’d rather be called daddy than grandpa 🤣

hydrospanner,

Depends who’s saying it.

I remember many moons ago I was on a hike with my scout troop and one night we camped in this group campground with a lot of…well…super rednecks, most of which appeared to just live there.

Anyway, one of these little redneck kids (maybe 6 or 7 years old) for whatever reason picks one of our scouts (who was maybe 15?) and just basically starts following him around the campsite calling him “Daddy”.

It was hilarious…to everyone except him.

I wish I could say that was the weirdest thing that’s ever happened on one of those hikes.

sysadmin420,

That’s funny shit love it. Haha

pythonoob,

Ay papi

bradv,

This is a perfectly rational response to being called Grandpa. Especially if you’re a grandpa who likes Java.

DieguiTux8623,

Like in the old days “No previous exposure to FORTRAN” required.

riwo,

reading this just gives me the biggest imposted syndrom and reminds me of how underqualified for any job i feel, even after my software development apprenticeship

naught,

Don’t feel that way. This is a highly specific role with a ton of not-necessarily-connected tech. Python, C++, Rust and calling out Java? Strange. You don’t need to know any of this stuff to be successful. If you just know javascript, that’s enough for many, many roles.

Youll find that if you understand the patterns you’re using in JS, you can apply them to many other languages. Other languages will have different syntaxes and maybe slightly different patterns, but you can always apply what you know, which will make it easier to add more languages to your arsenal.

You’ll feel like you have no idea what you’re doing for a long time, but all the while you have picked up a ton of knowledge and experience that you will still probably discount. Just be eager to learn and don’t sell yourself too short.

yum,

I know this was’t intended for me but thank you so much for this comment!

naught,

It was for you, too (っ^_^)っ

IBurnedMyFingers,

This looks like a more hardware focused job listing, so if you have a typical CS background you probably lack some of the expected skills for it. Note the mentions of RTOS, embedded, hardware schematics/bring up, and ARM core knowledge.

xlash123,

Damn, that sounds like a cool job. I would like to do more Rust at work, but alas, everything here is either Python or Java.

JayDee,

Git hygiene is important for avoiding Git-Transmitted Infections (GTIs) such as Vim

MashedTech,

Git hygiene is important because git dirt has destroyed our lives as developers

edinbruh,

Once I asked a professor to participate in a project. So he interviewed me and asked me about my skills, as they do, and one of the questions was “do you know oop? Java?”, me: “just the basics”, him: “even better”.

bitwolf,

Wait… Can you send me this job listing OP? 😅

lowleveldata,

I can always act like I don’t speak Java

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • uselessserver093
  • Food
  • [email protected]
  • aaaaaaacccccccce
  • test
  • CafeMeta
  • testmag
  • MUD
  • RhythmGameZone
  • RSS
  • dabs
  • oklahoma
  • Socialism
  • KbinCafe
  • TheResearchGuardian
  • SuperSentai
  • feritale
  • KamenRider
  • All magazines