Also worth mentioning is that having multiple ways to do the same thing also increases complexity
Also worth mentioning is that having multiple ways to do the same thing also increases complexity
Requirement to use IDE is one of reasons I don't like Java. I wrote/write code in multiple languages and for all of them a simple text editor is enough. I usually don't use auto-complete because it distracts me and I type fast anyway. But with Java it's hard to be productive without an IDE.
What to some extend can replace debug logs is tracing which allows to logs events on demand, when you really need them. E. g. Dtrace can be used both for kernel and userspace via USDT (but Dtrace was not invented h̵e̵r̵e̵ on Linux), bpftrace can instrument kernel but unsure about userspace.
Having an IDE is like hiring a side-kick --- if the side-kick is component enough and you can afford them, why wouldn't you hire one?
> if the side-kick is component enough and you can afford them, why wouldn't you hire one?
Because it doesn't provide anything actually useful for me.
Also, I don't want to use proprietary software for moral reasons.
There are many decent open source IDEs (e.g. NetBeans and Eclipse for Java).
I mean, more seriously, I get it: you have a bee in your bonnet and you will find any reason possible to avoid it. VIM 4EVA and all that, raise your fist and yell.
But I wouldn't even bother with Java as any serious endeavor if I were you; a lot of employers will ask your preference of IDE just to get a sense of who you are as a programmer, and will hide their giggles when you say "I use emacs/vim/notepad++ like a BAWSSSS!" and move on to the next candidate who'll get the performance magnifier of a common and free tool.
What a strawman. I don't use Neovim with the intent of looking cool or something, but because it makes me highly productive, gives me complete control over my editing experience and I can use it anywhere, not just on powerful desktop computers with a large screen.
A few minutes for the IDE to open? Nah, bruh. Couple of seconds, and since you leave the IDE open for a while, that startup time gets to be ignored. You aren't starting the IDE, exiting the IDE, running your code, starting your IDE, exiting the IDE, running your code.
You're starting the IDE, writing, running, debugging, reaching some kind of finishing point, THEN shutting down the IDE... maybe. A lot of programmers have their IDEs open 24/7. Over a month's runtime, those three seconds opening the IDE seem (and are) irrelevant.
Billion GUI windows? Nah, bruh. Even IDEA, which has a lot of windows on initial installation, has only a few... and they're all for a point, if you, like, read them.
A second to process your keystroke? Also nonsense. Even a raspi can process faster than that. Unless you're deliberately overloading your machine, I suppose. That's always an option... but a counter to that is "... don't?"
And useless toolbars? Useless to whom? The IDEs you'll find in Java are battle-tested. The useless toolbars are hidden these days. You might not know what they're useful for, but that's not the same as being useless. If you write Java, you'll learn how useful they are.
And as a bonus, you'd ... did you say.. have to pay more money than your dorm costs? ... why?
Java has three major IDEs: IDEA, Eclipse, and Netbeans. (If you want to exclude netbeans, join the crowd. Everyone else excludes it, too.) All three have free editions that cost you ... like... literally... nothing. Zip. Nada. Zilch.
Try again.
You can take vim out of my cold dead hands but there’s no way one will be less productive in Java with modern IDEs unless they willingly choose to
Exactly.
And now just change the default class loader to be less restrictive in finding main methods, and that’s it. While it really does help teaching people when you can be more focused on the relevant parts only.
It makes an analogy to packages. We allow classes to exist in the default package. Therefore, I think it's reasonable to allow methods to exist in a default class.
Of course you shouldn't so this in real work, but that's also true of the default package.
I also like that main doesn't need an argument. Many noob programs don't even use the String[] args parameter anyway, so let's not require it.
It's for beginners who might not even know what an IDE is.