Good for a first language?

Good for a first language?

Attached: java-logo1.png (322x599, 28K)

Yes for learning but move away from it as quickly as possible.

No, learn Python and then move on to learning C or C++.

No. It's literally one of the worse choices, only following C++ in its terribleness.

Yes. Don't listen to unemployeed Neets

Can anyone actually state why a language is bad?
Like, if you post it on Jow Forums no matter what language it is it's obviously going to get hate from someone, but its usually something like "it's bad" or "it's ugly" or "it's badly made", no actual reason as of to, WHY.

It depends, user. If you want to learn code by passion, learn whatever you want. If you want to learn code by money, its probably best to go Java or JavaScript, they're the ones that give the most jobs and money.

yes of course.

Absolutely far from it, Java is absolute shit for teaching the fundamentals of programming and you're better off learning either C or Python as your first language. It's an otherwise great language to be proficient in though, as it's currently the most popular language in the software industry.
t. software dev speaking from 2 years of experience

No it's a shitty Pajeet-tier language that's only good for controlling the Mars rover and running stock exchanges.

You should program in Scala or Rust instead.

t. typical Jow Forums poster

This

>Never listen to Jow Forumstards

The only scenario where I'd recommend Java as his first language is if he's passionate about making Android apps from the get-go.

or wants a job
or wants to write realtime distributed systems / microservices (vert.x, kafka)
or wants to write a web app that utilizes a neural network (dl4j)

I suppose if you want to run a RuneScape private server, or a Minecraft private server, and you're 15-years-old, then okay.

Is Java better than Kotlin as a first language, if I want to make apps? Or it doesn't matter?

kotlin has some syntactic sugar over java and is very easy to learn after you already know java. Java is still more popular and actually has better performance still. Learn java first.

Java has a lot of idiosyncrasies, mostly related to it's object-oriented design. For example, I can't have a function that returns multiple arguments nor can I use pointers, because Java doesn't support them. If I want to modify the value of the object itself, I have to wrap it in another object.

Another one:
(Integer)100 == (Integer)100
returns a different result than:
(Integer)1000 == (Integer)1000

It didn't have support for closures until recently, and even then you're not allowed to modify closed-over variables and there is no normal notation for a function type, you have to use retarded names like IntBinaryOperator. I like my language to have support for REAL procedures, not methods, and REAL closures, not objects that act like closures.

this !

kotlin is a meme. most companies will still use java. if you want a supplemental jvm language, try clojure or scala (both are more popular and more interesting than kotlin)

I like C# more, you can use .NET with it

This.

I unironically decided to learn Ruby because Jow Forums said it's bad.
One of the best decisions in my life.

>unemployed Neets

Attached: 1526447275672.png (362x507, 192K)

Yeah it's fine.

Yeah there are definitely some design issues. The way of getting around not returning multiple values is to create a new object that has them as parameters and then grab what you need from them after. But this leads to List and the likes

no,better get C or C# , pajeet

>For example, I can't have a function that returns multiple arguments
Good, that's a bad pattern.

>If I want to modify the value of the object itself, I have to wrap it in another object.
You shouldn't modify values anyways.

>nitpicky integer shit
This will NEVER EVER come up in a real scenario. And it's not a problem if you compare using the equals method anyways. I'll admit this is a bit annoying, but it's not a huge deal, and every language has little flaws. There's no "perfect" language.

>closure complaint
Another nitpick, Java wasn't designed as a functional language. If you REALLY want to write functional code and you aren't satisfied with what Java has, I'd recommend integrating scala or clojure into your project.

if you plan to write android apps or work in a code-monkey business-oriented position yes otherwise no

What about J++?
Was it ever really used for anything?

Attached: 71K76C6WMZL._SX385_.jpg (385x470, 40K)

it was used by Sun for suing Microsoft

This, fuck pythonisas.

>muh jerbs
>muh web abbs

Attached: eel2.jpg (2000x1500, 204K)

>I can't have a function that returns multiple arguments
but that's retarded
>nor can I use pointers, because Java doesn't support them
this is basically never a problem
>(Integer)100 == (Integer)100 returns a different result than (Integer)1000 == (Integer)1000
because of integer cache and youre comparing objects with ==
>you have to use retarded names like IntBinaryOperator
just think of them as typedefs

Yes. Learn it and enjoy having a job.

The fuck is that?

a primordial serpent

There isn't really any reason for a beginner to take Kotlin over Java. Kotlin is nicer, but it's more of something you go over to once you know java, and have started to become annoyed with some of its issues.

Java is a good start. Honestly it's the best start imo.
mooc.fi is the best learning resource available.

>. For example, I can't have a function that returns multiple argument
That soundS FUCKING awful man.
If you have several parameters you want to return you return an object.

>If I want to modify the value of the object itself, I have to wrap it in another object.
First, I'm not even sure this is true. Second, this is proper design. Objects do not edit themselves, this is basic stuff.


Honestly OP, I think Java is a good starting point. There are other good starting points too, it's really not that important where you start.

This is the correct answer.

You sir, can fuck right off to your sisters underwear drawer.

No. Learn C first. Java tried to hide pointers but they did a bad fucking job of it. You will have no idea what NullPointerException actually means unless you know how pointers work. Also Java's specific OOP style will make you a worse programmer and you will have to unlearn it if you move to better languages. Most OOP in Java is over-engineered dogshit that uses way more design patterns than should reasonably be used.

tripdubs of truth
Hello, I'm Jow Forums. Ruby is good.

Starting anywhere is better than not starting.

Yep,
>there's tons of learning resources
>every weird issue you might run into will probably yield thousands of hits on what you're doing wrong
>you can do pretty much anything
>gets you familiar with c-like syntax
>there's huge demand for it in the market

Bad stuff:
>it's a bit verbose
>once you go into stuff like message driven beans and shit like that - it gets verbose as fuck
>streams are a bit messy
>obvs no low level shit like writing your own drivers
>AbstractXMLStreamFactoryPropertiesFactory

No langauge is the end-all-be-all, so don't overthink which one to learn first. There are obviously some choices which aren't really great for a beginner with a general interest in programming: Fortran, Haskell, Perl are all a bit niche. And then there is shit that is just plain bad in most cases like PHP, and then there is stuff that isn't a bad choice but is overhyped like Phyton - nice language but slow as fuck and not nearly as much demand as you'd think.

Yes imo. Most popular languages have a lot in common with it (which imo makes it better than python as a starter lang, less of a learning curve for your 2nd language) and it has a massive standard library and excellent support and documentation.

It's very subjective.

1) Some people like one style of code, other people like other styles. For example, I don't like python because I find it awkward to write and difficult to read, but other people like python because they find it easy to read.

2) It's also based heavily on the context of the language's use. Scala is easy to read, has good support/documentation, and a lot of very useful features, but you wouldn't use Scala to program a microcontroller.

Attached: bluescreen.jpg (495x600, 242K)

Kotlin is the better lang imo, but it's not something you should start with. It's like handing a first-time driver the keys to a space shuttle. It has a ton of pretty cool idioms (e.g. the way it does operator overloads) and you can write it almost purely functionally, almost purely OOP, or somewhere in between, and it has stuff like extension functions and destructuring. All very powerful tools that aren't present in most languages, yes, but it's too much stuff all at once for a beginner.

Attached: 1527752244074.jpg (1536x2048, 324K)

Listen to this man.

>it was used by Sun for suing Microsoft
Because MS was try to embrace, extend and extinguish Java

Unless you're starting with java.

It went on to become C#.

What IDE should you use for Java? Eclipse?

I'd argue that Java is bad mostly because you *NEED* an IDE to program with it. I (and many others) believe that programming in a given language should be made simpler with an IDE, not 100% necessary so that you don't literally kill yourself with every line you type.

NetBeans is the official recommended IDE, given that -- like Java itself -- it's developed by Oracle.

>This will NEVER EVER come up in a real scenario.
This came up for me at my first job a decade ago when I was still learning java. The == .equals compare for integers depending on the value of the integer is easy to learn, but it's stupid.

I use IntelliJ simply because Android Studio is built on top of it which means that I'm already pretty familiar with the features. It's pretty comfy too.

Java is not inherently bad language, especially modern versions.
However it's bad as first language. Forced OOP will greatly limit your freedom in learning other paradigms and teach you many bad practices. Majority of materials and libraries you can find online are written using older java versions which are actually terrible.

You should rather start with Python and/or C/C++.

>However it's bad as first language
>You should rather start with Python and/or C/C++.
people keep saying that but consistently C-fags moving to Java write really horrible, messy code while people who started with Java write actually not bad code that's readable

Learning C won't make you a good Java programmer, sure. But these two languages are quite different, both require learning and practicing on their own.
The point is to learn lower levels and understand potential errors that might rise from them.

I would recommend Ocaml as a quick introduction to programming, you'll get to understand recursion and other essential stuff. Proceed to something more useful as C and Python, from there you could learn Java, C++ or whatever you want. Starting with Java would be a mistake IMO, as it is higher level, and even though that's desirable from a professional point of view, it will be more difficult to learn other Languages, if instead you start from low level and move progressively up it gets easier.

I've not used Java at an enterprise level, so I cant speak to that. My experience with Java has always been to write random shit. The only real problem I've found with Java is that, while Java boasts about the JVN enabling Java applications to run across literally every platform and JVM-supported device, the reality is I fail to see this 'feature' when a game as old as RuneScape has only now gotten support for mobile, and the app isn't written in Java.
I heard there's basically an industry wide Java mess that new programmers are trained to clean up, so if you learn Java, you're guaranteed to be employed to clean up someone else's mess and to maintain old code into the near future.

>muh 6 figures
it's almost like you advocate being a crusty NEET because misery loves company.

Attached: 1527755742721.jpg (657x640, 79K)

Its alright.
But I recommend starting with C and Python.

Attached: 1526900732176.jpg (852x972, 128K)

>you're guaranteed to be employed

How is that a bad thing though