Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Android

Questions about Java.

After reading up on Java I have heard some rather negative things about it.

One of the programmers I look up to admits to having a strong distaste for it and describes it as "verbose". I know I need to have my own opinion but a fair few people seem to have this distaste for Java.

Also, when I was browsing a news post I seen an image saying that Java may become a dead language like Latin. This has pretty much halted all of my development as I don't really want to invest time in a language that won't be used in the future.

What are your opinions on this guys? Should I learn another language like Python or Objective C?

Thanks to anyone who comments and helps me out!

-Luke

1 Answer

Hi Luke

I think the news articles that say java is becoming a dead language are unfounded. over half of all software development is done in JAVA. Most analysts who create custom software use java, as the portability of java is fantastic down to the work done by the JVM (Java virtual Machine) which acts as a go between the current architecture (or setup) of the computer the code is running on and the java code you have written meaning you don't have to write the code for every machine or use a wrapper.

Learning another language is great and I would encourage it, python is a very easy to use scripting language which doesn't rely on OOP like java does, you can create your own functions and run them without creating a full class and doesn't rely on braces but instead indentation to group code so can be easier to see at a glance, however because of this python is usually slower than Java.

C languages are often harder to grasp than JAVA but are built for speed! almost every game you have ever played on a console, pc or mac was written in C.

My recommendation would be to stick with java learn the basics and then learn every language you can, you will find that some languages suit some application better than others but java is a good middle ground in my opinion.

Bear in mind though that writing android application is a lot different to writing applications in Java, most of the classes and methods in the treehouse tutorials come as part of the android sdk so they may not be transferable to Java without the android sdk. I have seen an upcoming java course though in the library so hopefully this will be good as it may teach skills that can be used to develop desktop applications.

Daniel

Thanks for your reply Daniel!

At the moment over half of the software development is done in Java but how long do you think that fact will be true?

I'm presuming you mean learning another language alongside Java? I have done bits of python before but only very basic things.

Stick with Java and just learn Android development or learn everything about Java?

Well I have to say I certainly am looking forward to this new Java course that is coming, it will allow me to develop for Mac and PC as well as Android devices which will be great.

Thank you once again,

-Luke

If over half of all software currently being developed is in java I doubt it will disappear overnight but I assume as technology moves forward their will of course be advancements and new languages created but think of it this way, if the majority of developers out their know java and use it daily and are comfortable with the language how different will it be? from a commercial aspect how expensive would it be to train your team to do their job when they can already do it and the cost implications of using a new system that differs greatly from the old one would be massive as developers struggle to hit deadlines they would of usually made.

I think programming will of course evolve like everything else but is structured now in a way which changing every concept or even most of the concepts would be impossible simply due to financial implications (look at windows 8, how many companies will risk losing productivity for an operating system where the user is hampered not benefited because the change is so drastic).

Every programming concept is inter changeable among every language, i'm sure the concepts you have learnt with Java were of use with python and will be with C. Learn a language any language and get good at it. Learn other languages as well if you can, no language will ever be of no use as the stuff you are taught will move with the times even if the syntax changes, but not learning it may put you at a disadvantage to someone who has.

Thanks Daniel

That is a very good point. That is re-assuring. So we can expect most languages used heavily in the future to follow a similar syntax to Javas?

Also another very good point, I didn't think of it like this.

So as far as a starting language to get my knowledge of programming on the whole up to scratch, would you say Java is a good to go area or should I test out a few different languages first?

Thanks for the awesome information.

-Luke

Hi Luke

Not syntax no, as you know syntax varies between languages and will continue to do so however you will notice the ideas don't really change. When you defina a class the scope of the class ie public or private etc remains constant amongst all programming languages. Variable types like string, integer, float and char etc etc all stay the same the list goes on.

I personally started learning with python and then visual basic before moving onto java as they didn't rely on OOP which I thought would be easier to start with, all of the concepts I learnt with those languages carried straight across into java and made things so much easier even though the syntax is different.

I usually find that I choose the language dependent on what I want to do, so there's no better language than others in that respect. If I'm at work using excel I use VBA but may choose to use VB6 if I need to take advantage of the .NET libraries. I may use python if I need a simple calcultion quickly without typing out a class. And of course java for android development. It depends on preference with what you want to learn first, I would usually say to start with python as it is easier to start with but if you started with java and got on okay go with that , it really does depend on how you get on with them.

Daniel

Alright thanks for the information! I really do appreciate all your responses Daniel.

As far as how I'm getting along with Java; I'm not really sure. I don't really know how well I am doing. I am understanding things but often forget them and have to look them back up and etc.

-Luke

Hi Luke

So does everyone else! I bet there isn't a programmer out there that never has to look up documentation once in a while. The important thing is when you look up the documentation you can decipher it and apply the logic to your current problem. Most programmers will know the basics off by heart and know their most common functions and classes but as for knowing the entire java API I doubt it, that is why it is there as a reference to help you so you don't go reinventing the wheel, you should try to reuse code wherever possible if it fits the bill as it saves you debugging extra code. The only way you will know if it exists is to look up the docs

Daniel

Hi!

That is very relieving to know. I didn't know if I was the only one having this issue. I can sometimes decipher it but it depends on what it is and how complex it is. For example, when I was making my alarm app I had to stop developing it because I can't get my head round the AlarmManager and etc. I actually still haven't managed to figure it out either.

Alright thank you for the additional tip, I appreciate it!

-Luke