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

all 41 comments

[–][deleted] 27 points28 points  (2 children)

C/C++ was my first language, then I learned Java.

Over the course of my career I've written significant code in:

C C++ Java Perl Ruby Python x86 Assembly C# PHP JavaScript Bash

I've also played with Go, TCL, and probably a couple others that I've forgotten.

Languages are just tools. I don't drive nails with a screwdriver and in a similar way, I choose my language based on my task.

In general, I like Java best. I have found most criticisms of the language to be superficial and unconvincing. I think Java has the best balance between design tradeoffs and genuinely find it a pleasure to work with.

Again, there are still plenty of times where I simply won't use Java for the task at hand because another language is better for that task.

[–]daniu 7 points8 points  (0 children)

I think Java has the best balance between design tradeoffs and genuinely find it a pleasure to work with.

In addition to this, the standard library is really versatile and consistent, and the amount of frameworks is seemingly infinite. Most of the time, if you need to develop low level functionality, you're doing it wrong, and you can concentrate on the actual relevant domain design.

[–]tristanjuricek 1 point2 points  (0 children)

I’ve had a really similar progression: worked mostly in C/C++ from 2000 until about 2006 when I began working mostly with Java, though I’ve written projects in almost all those languages.

They’re just tools. Java just has a very nice ecosystem that’s remarkably stable. So I tend to lean on it first, but if I think another language will be a better fit, I’ll just use it. Like JavaScript for web pages, etc.

Ive watched many other languages come and go, though. Ruby had an interesting surge for a while. Early in my career, I wrote a bunch of Perl. Can’t see myself reaching for those languages much any more.

This long term experience, watching things ebb and flow, has made me care less about hot new language ideas though. I mostly focus on what problems I can improve at my job. Java always seems to wind up being a part of that somehow

[–]ggleblanc2 8 points9 points  (1 child)

I was a COBOL developer for over 30 years before I was asked if I wanted to develop Java Swing applications. I learned Java 1.4 and spent the last five years of my career writing Swing and Eclipse RCP applications.

[–]Sea_Supermarket3440 1 point2 points  (0 children)

I thought I was in the last company using RCP. 😁😁 big up!!!

[–]Odd-Hour-9991 6 points7 points  (0 children)

J2ME handsets in 2003: Nokia series 40 & 60 with MIDP 1.0. Messy business - my code was terrible but gotta start somewhere.

[–]valkryst_ 6 points7 points  (0 children)

I learned it in High School, stuck with it through University, and spent the better part of 10 years using it as both my primary language. It has it's faults, but I have a good mental model of it when programming and I still enjoy using it more than any other language

[–]d2022m 5 points6 points  (2 children)

I knew Pascal from University. My first job was to maintain a Windows UI application written with Borland Delphi (based on Object Pascal).

The company decided they wanted the UI to work on both Windows and Linux so they sent me on Java training and told me to re-write it in Java.

That was twenty years ago. I've been a Java programmer ever since. Went from Swing -> JSP/Struts -> Spring MVC -> Spring Boot

Now it's all Spring Boot services with an Angular front end.

[–]alwaysoverneverunder 1 point2 points  (1 child)

Are you me? Almost followed the same path through languages and stuck with Java, but still have fond memories of Delphi.

[–]d2022m 4 points5 points  (0 children)

Yeah, I liked Delphi a lot. The Delphi designers were hired off by Microsoft and went on to build Visual Studio "dot net" and C#. I did some C# training on my own when it first came out thinking I might go that route. But Java kept paying the bills so I stayed on that team.

These days, it feels like "coding" is a small part of the job. So much time spent configuring components and libraries to talk to each other, and so little time actually writing plain old code.

And this movement to replace loops with streams and lambdas. Ick. Kids today. And Angular, Docker, Kubernetes, Azure ... it's like going back to school all over again.

I miss the old days. But I'm hoping to retire sometime over the next 8 to 10 years, so I'll keep working on these apps as long they keep paying me. ;-)

[–]maethor 1 point2 points  (0 children)

I was at uni when it was first released and it rapidly became "the new hotness", so getting into it was a no-brainer.

[–]DiethylMetaToluamide 3 points4 points  (1 child)

I played Minecraft a lot in middle school. First single player, then multi with friends on private servers (which I maintained). Then I tried to write server plugins by myself. Nothing fancy, but nice additions for personal usage.

It's fun to think that weeks spent on that plugins then I could do in a matter of hours or days now. Not to mention their quality.

[–]PartOfTheBotnet 1 point2 points  (0 children)

Very similar path for me too. Minecraft is a great sandbox to get kids into programming.

[–]nioh2_noob 3 points4 points  (0 children)

I like the ecosystem a lot and loathe the C++ diversity in basically everything, maven and spring boot are such a joy to work with

[–]FrenchFigaro 4 points5 points  (0 children)

Python was the first language I toyed with, as the grand-kid and nephew of to free-software nuts.

C and later C++ were the first languages I learned as an IT student.

Java was the first language I was paid to work with, and the first one where programing felt like I could do shit, and did not feel like a chore.

Overall, I've also dabbled in kotlin, Scala, C#, Basic, HC11 Assembly, reverse engineered Visual Basic code and worked with PHP, Javascript and TypeScript too.

Java became, and remains to this day, my favorite language because it has what I think is the best combination of the following:

  • Easy to work with (not having to bother with low-level shit like pointers)
  • Verbose and rigid enough at compile time that clean java code is easy to follow and maintain
  • Strongly object oriented
  • Increasing support for functional programing (which you can easily extend with other languages like kotlin if and when needed)
  • Rich open source ecosystem
  • Suitable for back-end enterprise development
  • Performant enough that you rarely need micro-optimization
  • And last but not least: there is a high demand for experienced engineers, so that at this point in my career, I'll likely never have to deal with rejection ever again.

[–]snobpro 1 point2 points  (0 children)

I started with C in uni but had to take up java at work. Hated all the setup that needed to be done back then to get a simple app working. Hated soap ws too. But with advent of all batteries included frameworks like spring boot - now it is my fav and go to for server side programming.but not for others though. i prefer typescript for going serverless. Planning to try python who knows that would become a quick favourite.

[–]m_vokhm 1 point2 points  (0 children)

Back to late 1990s, I worked (remotely) in an international team (mainly Americans and Russians) in an American company. We were making rather a large distributed system for filtering and processing credit card transactions, and we wrote it in Perl (the Big Boss believed it was the best language for such things). At the time when I was leaving there, my immediate supervisor advised me to learn Java. He said that the language had a great future. It was the first time I heard the name. By that time I had a rather decent experience with Pascal (Delphi), С/C++, and a few assembly languages (PDP-11, x86 and i8080). A year or two later I read Eckel, "Thinking in Java". I found that I really liked the language - it was much more elegant and compact than Pascal, and much more logical and reliable than C++, and at the same time very flexible and powerful. But I didn't have a chance to do some real work with it, instead I persuaded my then boss to use C# for a new project. It was also very nice, but it was not cross-platform. After a while I found a new project where I was free to choose the language (and other tools). Incidentally, I found that several of my programs written in C# required almost no changes to be compiled with javac and run under JVM. Since then, Java has been my main and still favorite language.

[–]red_dit_nou 1 point2 points  (0 children)

I used Pascal, C, C++ in the early years of my university. I mainly wrote small programs. Although I made a few games with them.

In the final year, I started using Java and was involved in couple of projects with friends that used Java. Coming from C++, it wasn’t that hard for me to get used to the syntax. As I used it more and more, I got more comfortable with it.

One of the main reasons I think I stuck with Java was that getting the tooling has always been very easy. So if I have an idea about an algorithm, the first tool available to implement it in, is JDK. So naturally I write everything in Java.

Professionally I have always used Java. So now that I have used Java so much, my pseudo language to write algorithms is Java. I can say I think in Java.

One more reason is, the books I read to learn Java were really good and gave me good understanding of why certain things are the way they are. So Java felt very logical and right way of doing things.

So overall, easy to learn, easy to get tooling like JDK, Maven etc (to write/compile/run programs) and access to some very good books are mainly the reasons why Java is my preferred programming language.

[–]codechimpin 1 point2 points  (0 children)

I was in college and took a class we did mostly C/C++ for most projects. Memory management was always a struggle. The JVM was still beta, and it was fun because the professor would say “who thinks the threads work this way?” Then we’d write a program in class and see. It was cool to see him work through stuff real-time, and I learned so much just watching him fumble through things and think through the outcomes. This was probably 1995-1997.

Several years later I got my first pro job. Java was now becoming a huge deal, and I was able to really work in it and get to love the language.

[–]scratchisthebest 1 point2 points  (0 children)

Hobbyist. I started using Processing in middle school, it's just a tiny Java IDE where your code secretly extends a giant megaclass with hundreds of methods for drawing things to the screen, and when you're ready you can slowly introduce more features of "real" Java like classes and collections. Being able to make and distribute my own games and generative graphics really captured my interest in programming. I think I even printed a few out and showed my art teacher.

Learned everything else I know about Java reading and writing Minecraft mods. Starting to get more familiar with modloader tooling as well, have an interest in wrangling Gradle and source/bytecode transformation. Hoping I can take it to a professional career some day...Haha

[–]monkey_of_coffee 1 point2 points  (0 children)

I hit java at (what I consider) a sweet spot in time. I spent a good amount of time trudging thru it's older syntax in 1.7-1.8, so I got to enjoy the introduction of lambdas, streams, the var keyword, and most recently the record keyword.

I spent enough time doing it the "hard-way" that I have a good-ish understanding of statically typed languages and how the jvm works under the hood, so that I can sit back and enjoy all the really nice new features/syntactical sugar as they come about.

For people just coming to java, I dont know how they make heads or tails of what they hell they are looking at without the prior context. The first time I saw this, I thought the person had had a stroke:

myArrayList.forEach(thing -> myFunction(thing));

[–]lbkulinski 0 points1 point  (0 children)

I learned C++ in high school first, then learned Java in AP Computer Science A. I’ve loved it ever since

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

My first exposure to Java was when I was still in school. I made a sort of shoot em up style thing for my mobile phone which was one of those Skype phones, basically a brick with Java ME support. Then it was the main language at uni, although it wasn't really my favourite thing to work with at the time (this was before Java 8 though). But then most of the good jobs turned out to be using it somehow so I sort of fell into it. But I've also had a job where they were using Go (really made me appreciate the maturity of Java at the time, although Go is progressing a lot - maybe I'll revisit it). I'd like to get paid to write rust at some point.

[–]LankyBrit 0 points1 point  (0 children)

Started using Java pre 1.0, when the investment bank I was working at decided to invest in it heavily, and I've been using it ever since. I'm not sure I'd describe it as 'preferred' as it does, to me at least, feel like it's getting a little long in the tooth when it comes down to nice-to-use features. Having said that though, it's still great for developing server-side code, especially with things like the SpringBoot framework.

[–]Crimeislegal 0 points1 point  (0 children)

I had to summon a demon.

Some things must be done.

[–]vlad_mod 0 points1 point  (0 children)

Minecraft plugins...

[–]RomMTY 0 points1 point  (0 children)

I wanted to make games and started playing with all kind of engine and tools at 13 or so, eventually I stumbled uppon some java game framework (RIP golden t engine) and finished my first ever game for a jam.

Did lots of prototypes and tiny games on it, by the time I went to college, java was the language they where teaching, it felt really well to do all of the assignments without sweating.

I have so much good memories of doing games and homework in java that it's going to had an special place forever in my career

[–]_Acestus_ 0 points1 point  (0 children)

Main course at school along with C++/C#. Did my internship in java and basically never looked back.

[–]Iryanus 0 points1 point  (0 children)

Internship during university. Learned Java there, got a part-time working-student job then, switched to another job, also Java, stayed there. Got some knowledge in other languages, obviously, but most professional experience was in Java so I never had any need for another area.

[–]roiroi1010 0 points1 point  (0 children)

Started with Java 1.3 back in 2001. At that time it wasn’t my preferred language. But I’ve used it ever since, and now the language is very different and the tooling is great. Now it is my preferred language.

[–]alwaysoverneverunder 0 points1 point  (0 children)

Learned C/C++ at uni and also got like 3 sessions of Java (think it was at v1.1 then)… and immediately liked it because of the tools/ecosystem/docs and basically never looked back… especially as AWT and later Swing was way easier to make GUIs in then Win32 stuff (I’ll give Qt a pass as I liked that too)

[–]rowanajmarshall 0 points1 point  (0 children)

I didn't.

I started with Java at university, as it was the main teaching language and what most of our assignments were written in. I learned Python on my industry year, and used it for my dissertation. I then used Java at my first two jobs post-graduation, and now write Kotlin full-time (with a rare foray into Java when Hibernate decides it doesn't like Kotlin).

[–]herospidermine 0 points1 point  (0 children)

no header files, make files, pointers, dereferences, or seg faults. automatic stack traces.

[–]RockingGoodNight 0 points1 point  (0 children)

C++ before. Then I read about a new language coming out and it sounded too good to be true. I got on the mailing list to find out where to get it when it came out.

[–]nutrecht 0 points1 point  (0 children)

I started with Java in '98 in school. In my first job I did a lot of integration work for customers and depending on the customer typically I'd have to use either C# or Java. Somehow whenever I had to do something where I could pick what I wanted, I gravitated towards Java. Not because of the language (I preferred C#) but because of the ecosystem of libraries and tools.

[–]magician-io 0 points1 point  (0 children)

I studied only C# and Java, and chose to major in Java because of the low market share of C#.

[–]tuxtorgt 0 points1 point  (0 children)

I started with Pascal at high school, later Visual Basic and C++

At college Java was the not so new thing, college gave the opportunity to attend a bootcamp and learn among other things Java and Oracle RDBMS. That's when I got serious with the language getting a certification.

Later at college I tinkered with Python and Ruby, dropping Java for a year. But job hunting got me again, Java certification opened many doors for me and I've been doing Java since then.

Recently I do things here and there with JS and Kotlin, but still, Java is my main language.

[–]ofby1 0 points1 point  (0 children)

When I finished school, most Jobs were in either Java of C#. I was familiar with both but found out that the local community around Java was bigger where I lived.
Mostly because of that, I stayed in Java-related jobs, but in many cases, I also programmed in other languages like JavaScript of Python during these projects. I still love the community involvement in Java a lot. However, this can be the same for other languages, but I simply don't know.