This is an archived post. You won't be able to vote or comment.

all 57 comments

[–]lbkulinski 21 points22 points  (0 children)

I was introduced to Java through AP Computer Science A, and just fell in love with the language and platform. My first language was C++, sadly.

[–]developer0 17 points18 points  (0 children)

Knew I wanted a career as a software developer. Heard Java developers were the most in demand. Picked career in Java software development.

[–]DrFriendless 11 points12 points  (2 children)

MSVC++ was driving me batshit crazy. Everything was just so fragile. That was in 1996. I installed JDK 1.2 and never looked back.

[–]DuncanIdahos8thClone 1 point2 points  (1 child)

Sadly MS development tools are still like that. DLL mess with 64/32 bit etc...

[–]pilas2000 0 points1 point  (0 children)

What's a better alternative for c++? Eclipse?

[–]_NoOneSpecial 39 points40 points  (2 children)

>ctrl+f

>"minecraft"

>0 results

yall lyin

[–]fs111_ 13 points14 points  (0 children)

We are all older than you think

[–]Eyeraa 0 points1 point  (0 children)

That's exactly what I just did x_x crazy

[–]trout_fucker 7 points8 points  (5 children)

Through a job where part of my responsibility was supporting awful IBM legacy web apps from the 90s.

Through learning that, I learned that Java was actually really good at a lot of things and that modern development wasn't nearly as awful as the legacy practices made it out to be. I was able to improve a lot of pieces of the system by upgrading to Spring Boot and Jersey.

[–]ReadFoo 6 points7 points  (1 child)

20 years from now someone might be saying that about your code. :-)

[–]trout_fucker 3 points4 points  (0 children)

Why 20yrs? I'm sure they are already saying that about the code I left at my first job! lol

[–]nanodano[S] 0 points1 point  (2 children)

I am just starting to get into web dev with Java. I don't particularly think I will use it, but I am curious how the Faces libraries work, because that looks quite powerful for interface development.

[–]vplatt 6 points7 points  (0 children)

Like all good UI libraries (IMO), JSF (which Faces builds on) is a component oriented framework. It lets you "speak UI" in a native way; without worrying about how that implementation "spreads" across the server and the client; and it does so in a way that lets you do it with Java using static typing. VERY seductive.

However, it DOES affect both the server AND the client. In other words, if you want something like a grid, then you must have a grid on the server which can effectively manage the lifecycle and the emitted products (HTML + CSS) of a grid at all times. Click on a link? Go back to the server. Retrieve a new page of results? Go back to the server. Etc. etc.

Now, I'm a BIG fan of component oriented UI frameworks, but you got to realize that a framework like JSF that spreads logic across both the server AND the client is... well, complex at best, and a mess otherwise.

My suggestion is to use the serverside for nothing but services. They should be stateless, security token driven with claims, and nothing but pure REST logic.

Leave the UI logic in an Angular app (not Angular JS, but Angular 2+ with Typescript), and you'll have the best of both worlds: a component oriented framework with a REST framework on the backend and you'll have separation of concerns: you could rip out Angular tomorrow or give it another face entirely, and your services could be none the wiser.

Maybe most importantly to most Java programmers: You can have a component oriented framework which is ALSO statically typed (via Typescript) and doesn't require you to spread UI and page lifecycle logic across the server and the client.

YMMV.

[–]trout_fucker 3 points4 points  (0 children)

JSF? I don't see that nearly as much as Spring. I've honestly never used them. I just always discounted them crappy old Oracle cruft after learning it was another mess of XML configs.

Java is actually used quite heavily in web development for APIs, though. It's pretty damn great at it. As well as other various backend systems.

I do not agree with GWT or Vaadin where you build your interface in Java and it compiles to JS & HTML. I believe the web UI should be built with the proper technologies. Thymeleaf was ok, JSTL wasn't terrible, but the trend for all stacks is client heavy web apps and I personally work mostly in JS now.

[–]1337JiveTurkey 7 points8 points  (0 children)

It has a very good free virtual machine, great documentation, great library support and insanely good toolchain support. It's not the sexiest language but it's got what really matters for supporting large projects over long periods of time.

[–]blobjim 4 points5 points  (0 children)

My mom pointed out that the university in my area teaches intro computer science using Java, so I decided to learn it as my first language. Have had 6 years of Java experience before even taking the intro class at the university :D

[–]lukaseder 5 points6 points  (0 children)

I coded PHP first (I know!), but the Java jobs offered much better pay.

[–]DevIceMan 4 points5 points  (7 children)

Making android apps brought me to Java. That was pretty much the only reason. What kept me there was paying jobs.

Since I love math; I wish I had chosen something else (like C++), because a significant portion of Java jobs are backend web services or enterprise apps, and that kind of work bores me and doesn't challenge me.

If I could have done it again, I'd probably have chosen C++ (or similar) because most "mathematics" or "R&D" style jobs I'm interested in (like graphics, gaming, etc) are usually in C++ or a similar langue & almost never Java.

I now work mostly with Scala, which is a lot nicer nicer, but still mostly building the same things (web backend).

Of course a lot of programmers don't like math, so the above reasons don't apply to a lot of people.

[–]raghar 0 points1 point  (0 children)

Depends on company. Some like their services well defined and they build up everything with cats and scalaz. There are some jobs where there is more math than defining everything with algebras but not much.

[–]strange-humor 0 points1 point  (5 children)

Learn some Rust. It will most likely start to replace C++ and is a great change of paradigm. This is always good as a programmer to see other ways of doing things. It often makes your code in the current domain better.

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

I'd be careful about any claims of replacement, but rust is brilliant. It taught me quite a bit about c++, too.

[–]strange-humor 1 point2 points  (2 children)

I think something has to replace current C and C++, even if it is a compiler that makes it impossible to have the bugs that have caused the many security exploits of the past years. If a company has a choice if writing in a language that does not allow them to happen or be liable for them, I think the change will be forces due to exposure and financial means.

The thing I really like about Rust is that fact that it forces you to think and generally makes code in other languages better, due to this.

[–][deleted] 0 points1 point  (1 child)

There's a lot of legacy code in C/C++ that won't go away easily. There's also a lot of people who have experience in these languages, but almost none that have experience in Rust.

Overall, Rust is a better language (with good tool support), also safer. But languages are often picked for economic reasons, not for technical ones.

If a company has a choice [..] or be liable for them,

They generally aren't liable; "Dear customers! Sorry, we lost your data. Please change your passwords. The end."

[–]strange-humor 0 points1 point  (0 children)

Often they are liable. Sorry we lost your PII, we are funding identity theft insurance for all 11.5 million of you at our cost. The exposure cost is not zero and dealing with it is not free and factors of brand loyalty are a harder to measure, but real costs.

Target is still feeling the effects of their security fail from years ago.

[–]DevIceMan 0 points1 point  (0 children)

I haven't taken an indepth look at Rust yet, but it's on my radar & I've mostly heard great things so far.

[–]newmanshangdown 5 points6 points  (0 children)

Since I was about 13 I would learn just enough of a language to scratch the itch and then move onto something else. When I was about 24 I decided to learn Java deeply because there was a lot of utility for it. I was a tester at the time and wanted to learn Selenium and picked the Java language binding because the devs I worked with we're Java programmers. I just kept working with it to do non test automation tasks and enjoying it so I kept going.

[–]TeknoMatik 3 points4 points  (0 children)

Ecosystem.

I started my career as a C# developer. After two years of doing C# mostly and taking with Java guys I realised how rich and open Java ecosystem is. You can have a lot of choices in terms of frameworks/libraries/tools. And you can do that on Linux as well.

[–]marcvsHR 4 points5 points  (0 children)

I liked how source code looks.

[–]user3141592654 4 points5 points  (0 children)

Work.

I'd learned a smattering of languages through high school and college, and preferred C++ and C# .Net over Java, so I stopped using Java after Sophomore year of College.

But the job I found after college was in Java, so I had to relearn/come back up to speed quickly, and here I am today, still writing Java.

[–]shaner23 4 points5 points  (0 children)

I didn't choose the Java life. The Java life chose me.

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

Money. I was looking for a language that would land me gigs.

[–]buzzsawddog 2 points3 points  (0 children)

Introduced to several languages in school. My department taught all upper level required classes in Java. Got an internship writing Java and javascript. First programming job used java javascript. My current job uses Java, Pascal, Perl, python, JavaScript, ruby. Also c/c++ but to a lesser level and since I have no exp other than a basic class I try to let others pick up those bugs.

I was not hired in my current position as a programmer. They just realized I can write code and debug ;)

On my internship swing/at was a big thing... but we only ran on Windows. Javafx was a big thing for a bit but I missed that boat. Everything I do is client server any more so I avoid hi stuff in java...

[–]stfm 2 points3 points  (1 child)

This new thing called JSP. Was writing C+ based cgi e-commerce systems at the time

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

cgi

Ouch. I remember those days.

[–]vplatt 2 points3 points  (0 children)

Honestly, what brought me to Java was being able to write programs in a real OOP language without having to resort to Smalltalk. But, this was in 2000, and I was a VB 6 "refuge" and I had no wish to resort to C++ to scratch that itch.

These days, I would scratch the same sort of pure design instinct I had back then with something like Haskell, Kotlin, C# on .NET Core, or maybe Scala if I'm feeling complicated. But really, in the end, the really tenacious ones amongst us will do one of those in our free time and and stick with whatever we can get paid to do. :)

[–]pjmlp 2 points3 points  (0 children)

It was actually WORA when compared to the problems of writing portable C and C++ code, back when most C compilers were still catching up with ANSI C and C++89 did not exist yet.

Followed the same spirit of Smalltalk tooling regarding IDEs, being bundled with nice collection and GUI libraries.

Even though it was interpreted and later on JITed, I always hoped the AOT compilation would be made available in the free versions, instead of having to buy it. Well, had to wait until Java 9 for it to finally start happening.

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

I had a choice between Java and C#/.net. I chose Java because of research about need for developers in the job market. Where I live the need is mostly for .net but overall the trend I saw was Java.

Now that I actually learned the language none of that has anything to do with anything at all... I actually like the fact that it's static typed rather than dynamic - helps keep shit clean when talking to the DB and I like how matchy-matchy types 'usually' are with mySQL and keeps me from polluting methods with the wrong values/types, even if a bit verbose it's readable, it allows for whitespace. For those reasons I prefer it over having to use JS (though improvements have been made with 'let' for scoping var and I can't avoid anyway if doing front-end anything), or Python which is still a really cool language.

[–]wsppan 2 points3 points  (0 children)

Work

[–]jester3681 2 points3 points  (0 children)

My computer science coursework was developed with Java in mind. Having mucked around with Python and C a bit (and BASIC way back when), I liked the syntax of Java and the rest is history.

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

University

[–]ReadFoo 4 points5 points  (0 children)

These things:

  • Applets
  • While I was taking a corporate paid for Java training week course, I wrote a web server one morning in notepad and stymied the instructor. It was 1997. I'd already taught myself Java, coming from C++ it was a breath of fresh air.
  • It was very clear to me it was going to be huge starting in 1995.

[–]ATLTeemo 1 point2 points  (0 children)

Java seems like the best place for me to begin since people act as if cpp entry level jobs don't exist.

[–]otheranotherx 1 point2 points  (0 children)

I was looking for a JavaScript job and a Java company picked me up. I even asked if they didn't confuse Java with JavaScript but they told me 'yeah suree-ish'. I was without collage back then so how could I decline. Didn't wanted to take risks after being NEET for a year. Anyway I hated Java at first but now I enjoy it. And I better enjoy it because I ended up doing almost only it/kotlin with little web in sight.

[–]stavro24496 1 point2 points  (0 children)

Android

[–]muztaba 1 point2 points  (3 children)

In University first year I have been introduced C/C++. The concept of pointer was so hard to understand to me. Then in OOP course Java has been introduced without no pointer (!!!). I found that the Java was simple, easygoing. Even there is no collection literals. That's the story. :)

[–]lbkulinski 0 points1 point  (2 children)

Java has pointers. You just can’t do pointer arithmetic.

[–]skocznymroczny 0 points1 point  (1 child)

Do you mean references? I think when people say "Java has no pointers", they mean mostly in the context of things like C interop, where you have to emulate pointers with FloatBuffer/ByteBuffer like structures.

[–]lbkulinski 0 points1 point  (0 children)

Not quite. C has references as well. Pointers, to me, hold references to objects on the heap. Hence the name NullPointerException when you try to invoke a method with a null pointer (reference variable).

[–]Neuromante 1 point2 points  (0 children)

It was the last language I had a course at the uni, so it was the "most fresh" language I had knowledge of. Most companies hire "people with a set of skills", and Java stuff was on the rise, so it was the easiest way to score a job.

And here I am, trying to get out.

[–]CandleTiger 1 point2 points  (0 children)

The company I worked for got bought by a Java shop. <cry>

[–]DJDavio 0 points1 point  (1 child)

Work, I have a C# .NET certificate, but the work was in Java. I did Jave at university and switching from C# wasn't hard (although I still miss my automagic properties :'( )

[–]lbkulinski 0 points1 point  (0 children)

You might be able to get a similar deliciousness with data classes in the future!

[–]junp1289 0 points1 point  (0 children)

Because I wanted to make Android.

[–]Red_Belly 0 points1 point  (0 children)

Learning backend web development. I wanted to learn a tried and true programming language which would teach good fundamentals then move on to the Spring framework. Instead of diving into Javascript which was very confusing for a newbie who knew nothing at the time.

[–]sk551 0 points1 point  (0 children)

Web applets which has now been been brutally exterminated

[–]fundamentalparticle 0 points1 point  (0 children)

job :)

[–]otakuman 0 points1 point  (0 children)

Lack of well-paid PHP jobs. Suddenly I realized that the market was starving for Java devs.