Live data from Hacker News

Ask HN: Is Java worth learning?

news.ycombinator.com

41–45 of 45 posts

Re: Ask HN: Is Java worth learning?

#42
post #23

I think every one should learn at least 3 different types of languages (my recommendation for each below): - Interpreted: Current choice is Python, pretty much hands down undisputed. Personally there is a lot to dislike about Python (who doesn't like 24 byte integers?) but that's how things are. - Compiled (VM based): My choice here is C# instead of Java or Go because (1) C# is now available cross platform and more "…

I don't see the three languages as very different because Algol 60 is their prototype. The distinction between interpreted, VM, and compiled is an implementation rather than a language distinction...e.g. Jython runs on the JVM; Excelsior Jet compiles Java to native code; and Rusti is a Rust REPL.

https://en.wikipedia.org/wiki/ALGOL_60#Examples_and_portabil...

https://www.excelsiorjet.com/

https://github.com/murarth/rusti

Re: Ask HN: Is Java worth learning?

#44
In my opinion Java is great if you want to write big enterprise-y applications but if you just want to get something done or just learn some concepts I would suggest Python. You can do all the same things you can do with Java as a beginner and it will mostly stay out of your way. Python also doesn't require a build system like Java does. You can just write some Python in a plain old text editor and run it without too much trouble. Java on the other hand will require a build system and a full IDE.

IMO with all the other languages available Java just doesn't really offer anything special enough to warrant it's dealing with it's awkward type system and verbosity. Unless you want to do something with Java specifically like Android dev it just doesn't offer anything worth the pain. If want higher performance and the type safety that Python doesn't have I prefer Go. It's syntax is very similar to Python and it has some interesting concepts.

Whatever you choose don't choose based off hype/promises of jobs. Most companies will hire engineers who have never used the language(s) in their stack as long you can demonstrate knowledge of core programming concepts. Python's `list`, Java's `ArrayList` and Go's `slice` might have some slight differences in implementations and different warts and what have you but deep down they are arrays. If you are familiar with the data structures and algorithms core to programming you can learn to use any language to solve problems.

At the end of the day a language is just a tool. The concepts that underpin these tools are what is important. So choose a tool you enjoy using and fits the scenario. Here are some links that were helpful for me, hopefully they will be helpful for you:

Python:

- https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial... - Good tutorial written for Flask.

- https://docs.python.org/3/ - Python docs, lots of good info there

- https://docs.djangoproject.com/en/2.0/intro/tutorial01/ - Django tutorial. Good intro to developing applications with Django, probably the most popular/common Python web framework.

Go:

- https://tour.golang.org/welcome/1

- https://gobyexample.com/

General:

- https://www.codecademy.com/catalog/subject/web-development - Very basic tutorials, has Java and Python as well as others

- https://github.com/jwasham/coding-interview-university - Lots of general CS info, this is the important stuff

Re: Ask HN: Is Java worth learning?

#45
post #27
post #10

In my opinion, Java is not an enlightening language. In other words, learning Java will not make you a better programmer in other languages. It is only good for getting jobs. If you do decide to learn it, make sure to use recent educational materials for Java 8+, so you learn how to use advanced features like lambda functions and unsigned integer types.

> It is only good for getting jobs. Beginner will either want a job or write some simple apps. "enlightening" languages are worthless for them.

Beginner should use swift, kotlin, go, scheme, python to write those apps.
Post reply on HN