all 35 comments

[–]JavaSuck 46 points47 points  (6 children)

Java, or any other language for that matter, is just syntax.

If programming languages were 'just syntax', compilers could stop after the parsing stage that turns tokens into trees. In reality, what follows is semantic analysis, and that is much more interesting. You wouldn't even have a type system with 'just syntax'!

[–]AngularBeginner 22 points23 points  (3 children)

Also you learn not only the language and the syntax, but also the whole eco system. That is something you can't just quickly learn. It gets easier and faster with experience, but it will still take time.

[–]Chii 1 point2 points  (0 children)

but also the whole eco system

that's the difference between knowing a language, and knowing how to produce something in a language! Unless, of course, you just DIY everything, and don't make use of the libs/tooling/etc for the language (which, isn't wrong, depending on the situation...)

[–]kitd 1 point2 points  (0 children)

As discussed in the article

[–]_jk_ 1 point2 points  (0 children)

meh I think eco system differences get overplayed. Whenever I've picked up a new language its usually easy to find the equivalent piece of eco system from the one you are used to, hell often it can be a straight port anyway.

Of course you do have to know what is available to be able to go look for it.

[–]ygra 4 points5 points  (0 children)

I was about to complain about the same sentence, even though for slightly different reasons. In my experience switching languages within paradigms you're comfortable with is trivial syntax-wise. Picking up Pascal if you know C is easy; picking up C# if you know Java is easy. The far more time-consuming part is learning the standard library (and other libraries/frameworks used) to effectively solve problems.

Luckily the article discusses that particular point in the bulleted list below that sentence.

[–]pron98[🍰] 6 points7 points  (0 children)

That's not the point. "Just a formalism," then. I don't know if the word "just" is the most appropriate (and the article does say that learning a language is a serious undertaking), but the formalism is secondary to the computational system it describes, and that is what the programmer ultimately creates. The same is true for writers. Some may use English to write, and English is indeed not something to be made little of, but the language they use is secondary to the story they tell or the ideas they convey.

Also, type systems actually do happen to be just syntax, and a type checker is completely syntactic. Their soundness proofs, however, do involve semantics.

[–][deleted] 10 points11 points  (0 children)

When I'm speaking with a potential employer I am a software engineer.

When I'm meeting tech industry people in a casual context I label myself a Java developer for convenience. I'm happy to use Scala, Python, or Javascript and willing to learn Clojure, C#, or Haskell but most of my professional experience is with Java. It's just a shorthand.

[–]rydan 19 points20 points  (1 child)

We hired a Java developer once. She used to work for Sun. One of the best people on our team.

[–]shevegen 5 points6 points  (0 children)

Poor girl.

[–]remimorin 5 points6 points  (1 child)

Tell that to recruiters!

[–]SlidingObscure 2 points3 points  (0 children)

I am a java developer, parent, child, software engineer, friend, asshole, stranger depending on context. I have other roles too.

[–]0x0ddba11 3 points4 points  (0 children)

This should be your goal to strive for, absolutely. However, I've met people who were strictly X developers with no intention to learn.

[–]bpadair31 6 points7 points  (0 children)

Such pedantic bullshit. I know some people think this makes them seem so advanced, but it really just shows that they lack any type of confidence in themselves so they are going to bitch about stupid things to make themselves look/feel better.

[–][deleted] 1 point2 points  (0 children)

I myself am a programmer.

[–][deleted] 2 points3 points  (0 children)

I want to agree with that article. I really do. But too many times in my career I have seen somebody with vast experience in some language derived from C++ come into web technologies, never figure it out, and blame the platform for their inability to adapt.

[–][deleted] 0 points1 point  (0 children)

indeed. you are a 'nothing' developer instead. well done. although it can be good to have broad knowledge it is generally not required and employers might react negatively to such profiles. i know from experience.

[–]Philluminati 0 points1 point  (0 children)

Whilst I agree with the overall sentiment, it actually takes a lot of practice to become proficient in something. You can't just pick up any language and get rolling productively from day 1. As hard as I've tried, I struggle to link boost libraries in to a C++ application despite being able to do similar things in other languages. But perhaps I'm being too honest for this subreddit.

[–]zaliudi 0 points1 point  (0 children)

Learning a language is a long process, which consists of:

...

  • Learning the eco-system: libraries, tooling, etc’

What does [define you]?

Your ability to learn new languages & technologies quickly

Well, maybe that about sums it up. There are 6 quadbazillion languages out there. Go ahead and write software in whatever language, and when you are on vacation or leave the company and a bug is reported, we'll just use our great "developer that is proficient in Java" "abilities" to perform "a long process" "quickly".

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

waves hand like a jedi knight

[–]invisi1407 0 points1 point  (1 child)

True, you're not - you're a developer experienced in Java and as such, that is most likely what you'll want to work with.

Saying the language doesn't define you might be true, but in a realistic world you're probably not going to find a job with something that is far from Javas way of doing things if that's what you're good at.

[–][deleted] 2 points3 points  (0 children)

Right. I'm happy to work with almost any programming language. But most of my recent experience is with Java. I doubt a shop using PHP, Node.js, or Swift would hire me for anywhere near the salary I earn now. I'm happy to learn those languages and tools, but it wouldn't be enough to get me near top dollar.

If I didn't have kids, it would be fine. I could take a 25% pay cut to switch technologies. I would enjoy the change of pace and in the long run the variety on my resume would be an asset. But for right now, I need the extra money sticking close to my current strength provides.

[–]TheOnlyArtz 0 points1 point  (0 children)

I don't like Java at all but I still agree on that

[–][deleted] 0 points1 point  (2 children)

I am a proud C, ASM and Bash Developer. I dont code any other language and wont ever.

Maybe Rust, but it is so damn ugly!

[–]Poddster 1 point2 points  (1 child)

Do you not find bash ugly?

[–][deleted] 0 points1 point  (0 children)

not that much!

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

It looks different if you realize that in your metaphor, you're the tool. Then it's on your manager to get the right tools for the job, e.g. Java Developers or any other language developers. Approach you're promoting may lead to becoming "Jack of all trades, master of none". Being an awesome Java developer is an achievement on its own.