Java vs PHP vs RoR vs .Net
So, its kind of crazy, but we do them all. It makes us feel like we are a decent authority at discussing what language is better.
Java vs PHP
Both Java and PHP are completely different beasts. They are different in how they came about, reasons why they succeeded, and what place they have in the market. Their only similarity is that they both replaced a very populate language. Java largely replaced C++ and PHP mostly replaced Perl. This replacement is most apparent in web development. However, C++ and Perl still hold their own places in the market rather stubbornly. So that was history. Now, which one is better. Well. Java is better than PHP, in lot of cases. And there are many other cases where PHP would be better.
Our overall feeling is that all of these languages have their place, and most of them have a really good and stable place in the market.
Is Java Dead In 2024?
When we started working on Java, Java was the IT thing. Really, people wrote songs about Java. Sun (now deceased) was the company to work for, and James Gossling was the coolest cat in the Silicon Valley. So, what is different now days? Is java still the same thing? Is it dead?
And here I say it, “Java is not dead!”
What do you mean Paul?
Java is actually more popular than ever. Almost every company out there, knowingly, or unknowingly uses Java. Heck, all those few hundred million Android users are using Java. Java is everywhere, sometimes behind the scenes, but its everywhere. Its well, alive, and kickin!
Then why does it seem dead?
Because technology has moved along. Java enabled people to do more, with less. Since Java, many more technologies have came along which make it easier for people to do more, with even lesser. Java is being used in the background more these days.
Big Data
Big Data is where java has been the king since the term big data came around. If you read up on big data, you would have to be living under a rock (reading up on big data?) to not hear about Hadoop, Cassandra, Solr, Pentaho, ElasticSearch, just to name a few. One thing common between all these systems mentioned is that they are all written in java. About 50% of the graph databases are written in java (http://en.wikipedia.org/wiki/Graph_database), including my favorite OrientDB. If a system is not written in java, there is always a java client. Big Data has grown on the backs of java, and now java is the king in that domain.
Event Driven / Async Java
Event driven and async programming is in, and java has quite a bit of support for it. With JMS, java introduced async, and NIO for event driven network programming, many years before they got popular. Today there are many frameworks making it super easy for you to write your event driven / async code. Few names that come to mind are Vert.x (vertx.io), Reactor (https://github.com/reactor/reactor), Netty (netty.io), Apache Mina, and I am sure I have missed a few more.
Java for your programming language
Java has been a popular way to implement other programming languages as well. There are few dozen programming languages which are written in java and use the JVM. Clojure, Groovy, Scala are just a few popular languages which are based on the JVM. Java is also a popular language to implement other languages. There are implementations of php, python, ruby, perl and many other popular languages written in java.
Modern Java Frameworks
There are some really good modern app frameworks written in java. My personal favorite is Spring Boot. Spring Boot makes a developer very productive, without any of the limitations. There is also Spark (http://sparkjava.com/), Jodd (http://jodd.org/), Ninja (http://www.ninjaframework.org/), and many more. Be assured that java community has not abandoned you. Even if you are still doing Struts, thats fine, I am sure someone is still maintaining it. Now you know that you can do your coolest new app in java, using one of its shiny new frameworks.
Java Under Oracle
I was a little scared when Oracle bought Sun. I didn’t know where Java would go. I know there are some grievances among the community. but I am pretty happy with how java has released new versions and upgraded the language to be more modern. I feel that Sun sometimes lacked in upgrading the language in the name of keeping it compatible.
Folks, if you thought java was on its way out, I beg to differ. I think Java is on its way up.
UX Best Practices For User Retention
The most successful apps give us a reason to come back every day. We return to Facebook and Twitter every day because of the community social media fosters -- for better or worse. When you need to check your bank balance (which, admit it, is most of us daily), you visit the Chase app. But there are plenty of non-essential lifestyle apps we use regularly. What keeps us coming back to the apps we don’t need for survival?
A reported 77% of users stop using an app within the first three days after download. The ultimate goal of any mobile app is having an accessible and rewarding user experience. UX developers know that the best design excites the user or makes a difficult task easier, which is a key factor in retaining users. These best practices will turn your app from a one-time use download to lifestyle.
First Impressions
You want your app to make an impression, while not being too overwhelming. Creating a User Experience that finds a balance is critical. Make sure that the user onboarding is flawless and representative of the experience to come. Onboarding should be as seamless and friendly as possible. You want the user to feel like they are a trusted member of a community, not just another email for a newsletter.
Collecting consumer information during onboarding is a common business goal, but can be difficult. Be sure to set requirements on info fields that are absolutely essential, while allowing the user to skip as many steps as possible for info that is less valuable. If you need to send a verification code, do it over text, not email, to keep users engaged with your interface. Providing a user-friendly interface to eschew with this menial process quickly will give users a positive first impression.
From a design perspective, it is essential to give a brief tutorial that will show off your top design features while easing the user into the feedback loop of UX that you want to create. Give the option for a walkthrough with visual indicators of where to swipe or tap next. A systematic approach where each step answers a question the user may have from the one before. Make it visual. Users tend to withdraw when having to read a whole bunch of text in the first minutes of using a new app.
Create a Feedback Loop
Creating a loop is crucial and the key to keeping users hooked. What is the ultimate purpose of your app? What type of content lives on your app that users can’t live without? Using motion design can give your users the feedback needed to create such a loop.
If a user takes action, motion can be used to reinforce that action. In iOS when you tap and hold an app icon, the widgets become wobbly indicating a change in mode. This shows you can move the icons. The X in the upper-right hand corner of the widgets indicates these apps can be deleted; this is all communicated via motion design to provide visibility of system status.
An excellent example of a negative feedback loop is Apple’s “horizontal shake”. You know, when you enter your password incorrectly on your iPhone and the popup window “shakes” back and forth. This gesture is instantly recognizable and gives the user an immediate understanding of the problem.
The user should know where they are within the app’s flow and how exactly they got there. Each step of the process should be crystal clear, from step A to step Z. Failure to create such a flow will result in a poor UX irritates the user, and will ultimately result in deletion of the app or lack of use.
Tweak or Redesign
While not every aspect of retaining users is UX dependent, there are good strategies to ensure continued growth. Unfortunately, there is no hard and fast rule to determine what needs fixing. Often when building an app from the ground up, it is a smart idea to begin with an MVP (minimum viable product). MVP is a strategy for gaining critical feedback in the early and most crucial stages of product development. The core concept is to get feedback with a stripped down version of your product that reflects the design and business philosophies you are to use.
Minor tweaks are what it’s all about. Core tenants of your product, especially the ones that are working, must stay consistent. Often, designs that work well do not receive active user feedback; seamlessly integrated interaction design patterns feel natural and should be second nature. Users will let you know what’s not working for them. You just need to ask and listen.
Only implement design changes that do not interfere with the flow of your feedback loop. Users will complain about changes, but given time; users will adjust. Only implement a major redesign if you feel you do not have a sizable enough user base to leave. In extreme cases, it will fix your UX to undergo a complete rebranding in an attempt to soft-reboot your brand. This approach doesn’t always bode well, but plenty of companies like Target, Harley-Davidson and even Apple have successfully rebranded.