re: Will Java Trend Towards Obscurity? VIEW POST

FULL DISCUSSION
 

What I see in that graph is Java's temporary upwards trend we had on Stackoverflow due to the massive popularity and impact of Android. When you add the tag "android" to the mix then you get another graph that illustrates the connection:

trend graph

Then came Google's absurd "API copyright" problems with Oracle and the push towards Kotlin (probably mainly to avoid further costly lawsuits and licensing fee extortion, not so much because the language is so pretty). I think the graph is just going "back to normal again". It's not like it's dipping below the point it was in 2009. But who knows what's going to happen next year :-D

Personally I think Java is here to stay and will go through a few more iterations that will make its syntax less verbose, such as the addition of lambda expressions, method references etc.

 

Actually after playing with different keywords I noticed that there is overall a downward trend when it comes to questions about mobile app development in general, here a comparison between android and ios and I also added Java and Objective-C for good measure:

Android vs iOS

I was initially thinking that cross-platform development platforms such as React-Native and Flutter are massively on the rise, but it doesn't seem to be the case to such an extent:

alternatives

But there is a significant trend up for web development questions:

webapp trends

 

Great research! What do you think contributes to this upward trend in web dev (despite the mass saying otherwise)?

I think there might be two reasons for the rise in web development questions on Stackoverflow:

First of all - and that's only from my own experience and limited POV - I believe there is growing demand for web development and the initial "mobile app gold rush" may have died down quite a bit.

It is definitely more difficult and pretty costly to reach a wide audience using mobile apps alone. I believe most people are reluctant to install yet another app. They prefer to have just a handful important ones on their phone. Also mobile app users are notoriously cheap. They even feel ripped off when charged a single Dollar for something that is probably worth at least $10.

Hidden rant incoming :-D

When I tried to sell Android mobile apps about 6 or 7 years ago it basically cost me around $1 for a single user acquisition for a free app (via ads, promo campaigns etc.). I guess it would have been easily $5 to $10 per new user for a $1 paid app. Since the market is much more over-saturated now, I guess those acquisition costs went up by quite a bit.

Profit can be only expected once the app makes it into the top 10, or gets promoted and featured by Google or Apple, and even then it's no guarantee.

A game of mine was featured and promoted by the Samsung app store. It was offered for free around the world for a whole week. It didn't make a difference and never turned into a profit. I didn't gain any extra users beyond the ones who got the game for free.

That model doesn't make much sense for most smaller companies with small (or no) marketing budget, especially if the app is free and just ad-driven. It was a losing game. Only the biggest app developers and publishers can reliably turn that into a profit with a big marketing budget and inside connections.

I think for most businesses it probably makes more sense to have primarily a website instead of an app. That also saves them all the complications that come with maintaining and publishing mobile apps:

  • 30% app store sales cut
  • customers expect apps to be for free or at least extremely cheap
  • lengthy, sometimes problematic review process
  • costly user acquisition
  • no direct way to influence store listing as promoted content (unless you have friends at Google or Apple)

end of rant :-D

It is also relatively easy to make a website appear and behave like a mobile app with a bit of CSS magic. That's probably another reason to focus on web first and have a native app as an after thought if really necessary.

But again, I didn't check if there is really a mobile down / web up trend world wide. And my whole rant here is for nothing and I'm probably totally wrong about it.

But here's the other aspect that probably has a stronger impact on web dev questions going up on SO: Vue.JS and even more so ReactJS introduced a bit of a paradigm shift in the ways we think about solving web development problems. It's a shift from imperative to declarative style, which is great in my opinion. But that also raises a lot of questions that need answers.

And then there's the tendency in web development, especially in the frontend development world, to reinvent itself repeatedly. New standards, new tool chains, frameworks and libraries are introduced all the time. Some existing ones change beyond recognition from one major version to the next. That's something I'm not used to in the more slow-paced Java development world where APIs seem to be much more stable (perhaps more thought was put into them ahead of time?).

I'm currently following the react-js tag on StackOverflow and noticed that developers run into the same kinds of problems due to the "latest" shift from component classes to function components with hooks. Function names such as useEffect and their arguments are not really self-explaining or a great example of a well designed API.

It's necessary to either read (and understand) the documentation or stumble into issues and ask for help. We're probably not running out of questions until the tech matures enough so it settles and the only thing we need to focus on is solving business needs and not battle and tame our tools.

So, I guess to sum it up, I see two things causing the rise:

  1. Maybe there's more demand for web development?
  2. Modern web development technology is constantly changing, creating new problems that need answers

I really appreciate this insightful answer that I'm embarrassed for my reply. Although it's mostly your speculation it's great to hear you share your direct experience in this subject matter.

For me, I've always had friction beginning in mobile dev. I've written some libraries, but the mobile UI paradigm is far too different from the web. It demands so specific skill that iOS and Android engineers have recently become roles companies hire.

I really like the bit you analyzed about the mobile apps craziness vs the web. To add to that, I think during the earlier mobile app hypes most apps that thrived were simple enough to be used on mobile. Now there are services that aren't suitable for it and there's also a shift in the social app trend to more work and life, which require a bit more real estate than a phone's screen.

I can totally relate. I took a very long break from mobile app development and find it pretty hard to get back into it mostly because of the UI. I'm also professionally dwelling more in the back end for the last couple of years, mainly writing web services. So yeah those skills definitely get rusty over time.

Funny that you also mention social apps that are getting less suitable for phones. A couple years ago I teamed up with a designer and we started work on a social app / platform. We tried to target mobile devices first and we desperately tried to cram our ideas into that way to small screen real estate. I was very frustrated working on those mobile app UI prototypes, and we faced several hard problems we could not really answer thinking in terms of mobile app UI. It was really limiting. And it also caused a ton of miscommunication between the designer and me.

After a longer break we began revisiting the concept, but I insisted on targeting desktop browsers first. It was completely eye opening for the both of us. We finally got to a point where we could freely express our ideas and discover suitable interaction ways. And we started feeling like: yeah, that's it.

We're taking it from there now, and treat the mobile version as an after thought. In our case I believe that UI enhancements for accessibility will give us some ideas and answers how to handle the smaller mobile phone screen.

If we're lucky and this whole thing turns out to be something, we may end up consulting Android and iOS specialists for fixing our mobile UI writer's block 😆

 

I do have to wonder how much of the downward trending of these graphs is actually due to lower interest, or simply the fact that an answer already exists and no longer needs to be asked. Upward trends are definitely indicative of growth, but downward trends...maybe just a mark of maturity and time, not necessarily declining popularity.

Interesting thought... A few more factors that might play a role:

  • Android documentation and tutorials have vastly improved over the past few years
  • Stackoverflow is heavily policed. Duplicates are usually closed. Poor questions deleted. I wonder if these are also taken into account in "Stack Overflow Trends"
  • Some questions don't have tags. It's rare, but a search for "android -[android]" (the word android minus the tag android) comes up with 100K results

So yeah, I guess it makes sense that we have reached something like "Q&A saturation" for Android.

I was also wondering something else along the lines... The graph's Y-axis unit is the percentage of all questions asked per month, and not an absolute amount of questions. I assume the amount of questions asked per month changes over time.

Assuming the active Stackoverflow community was also growing over the past few years, I guess we have overall more questions showing up every month compared to a few years ago where Java and Android were in its prime.

Maybe the actual amount of Java questions per month didn't go down, just the relative amount compared to all questions asked on the platform?

We do have more technologies in the mix that play a bigger role in recent years.

But on the other hand... I'm not a data scientist or analyst. I have no idea what all of that means :-D

So many questions!!! Now I really want to see a data scientist here write an in-depth analysis of this stuff!

@Thomas_Iguchi - I think a better metric than "Number of questions asked on StackOverflow" might be "Number of queries run on StackOverflow" - if the subject has reached or is near reaching Q&A saturation then StackOverflow becomes less of a place to ask questions on the subject & more of a place to search for questions that have already been answered. Does StackOverflow publish that kind of data, I wonder?

That's interesting... I'm not aware of recorded search queries, but I agree that should definitely complete the picture. How often do people actually search for specific questions and answers. Or a related metric: how often are Q&A's up or down-voted or commented on. Any kind of activity would give some extra insight.

I think this might be possible by using the StackExchange API

 
code of conduct - report abuse