IDEs still suck at file management
-
NetBeans just
crashedstopped respondingmade me kill it withfireTask Manager.I'm doing Java ME project. I didn't like the name of class, so I changed it. Because Java is OOP, the filename must match the class name - and because it's 2016, IDE did it automatically. However, something must have gone wrong, because it asked me if I want to save the file I just saved. Whatever, I click "Save"... and it doesn't work. Nothing happens. I click "Discard" - same (non-)reaction. "Cancel" doesn't help either, and neither does close button in the corner. And because it's modal, clicking NetBeans main window's close button doesn't work either. Basically - the IDE was fully working, but fuck you I'm modal window you cannot dismiss and I won't let you do any work anymore.
-
NetBeans
Well there's your problem.
Filed Under: IntelliJ Master Race, Eclipse if you really don't like JetBrains
-
My experience with IDEs in Java/Scala projects has improved for me when I started using Gradle build system.
Now I know that as long as my build definition is ok, the project will build correctly.'I do not need to rely on Eclipse's mysterious way of building the project / dependency management, because Gradle is doing those things. Also if I use Gradle's
apply plugin: 'eclipse'
, Eclipse will most of the time be able to execute the build too.So since the IDE's role is reduced to syntax highlighting and auto completion, I do not have to care if it is in the right mood to work.
And the build definition is easy to store in git.
-
IntelliJ Master Race
I had NetBeans already installed. So.Eclipse if you really don't like JetBrains
I moved to NetBeans from Eclipse. So far, it works thousand times better (by which I mean, "Run" button actually runs my application).
-
Yeah, both NetBeans and Eclipse like to lose their crap disturbingly often.
IntelliJ does too, sometimes, but noticeably less often...
-
Coincidentally so does Windows itself.
Not much more than about an hour ago I was trying to transcode a video file and I tried playing it in VLC and nothing would happen, so I closed VLC and then tried to delete the file and Windows just sat there with the deletion progress window saying that it was trying to locate files or whatever it is... not actually deleting anything; finding the file or something like that. Finally I pressed cancel and tried again and it did the same thing, so I killed the explorer.exe process and restarted it. Then I tried deleting it again and lo and behold it's gone instantly... until I press F5 and it's still there. Delete again, it's gone; F5 again, it's there again. Oh, and also, now Explorer is completely fucked because any attempt to open an Explorer window... My Computer, a folder, whatever... results in a "The service is unavailable" error message. Unless I try launching
explorer
from acmd
window... that works just fine. Anyway, back to the stupid file. Time to break out the big guns... Process Explorer. I discover thatdllhost.exe
has an open handle to the file, and close the handle, ignoring the scary warning about system instability (pretty sure that Explorer producing errors means it's already unstable, thanks!). Now the file can be deleted and it's really gone. Explorer's still fucked. Time for a reboot.
-
I shortcut that process. As soon as I see that delay, I know something has an open handle - fuck it, reboot. Faster than trying to track it down.
-
http://filehippo.com/download_unlocker/ ;)
I would have linked direct to the vendor's website, but Chrome gave me a Big Red Warning; odd, since that site's never been an issue before...
-
I shortcut that process. As soon as I see that delay, I know something has an open handle
In my experience, it's usually Windows itself, trying to generate an icon or index the file for searching.
-
In my experience, it's usually Windows itself, trying to generate an icon or index the file for searching.
Or a virus scanner. As I said, rebooting is faster and better for my sanity.
-
For me, it's normally Windows Defender taking several minutes to scan a 10kb text file
-
http://filehippo.com/download_unlocker/
Looking at some of those comments - no way! Another of those I'll-install-whatever-I-damn-well-please-no-matter-what programs (some toolbar). And people are saying it triggers malware alerts too.
-
It never used to be that way; I've been using it for years without issue
-
Because Java is OOP, the filename must match the class name
The pedant in me must point out that this implication is false.
I don't like people mixing concepts with implementations.
-
Because Java is
OOPtotally and utterly retarded, the filename must match the class name
Every other OO language I've ever used doesn't care what the filenames are, nor what the folder structure is; only Java has this requirement that everything be laid out in a very exact manner
-
The pedant in me must point out that this implication is false.
I meant Java is the language of OOP fanatics, made by OOP fanatics, used by OOP fanatics, so all the coding standards are made by OOP fanatics - and OOP fanatics hate when a file name doesn't match class name. Stupid, but standard, and I tend to stick to standards.
-
It never used to be that way; I've been using it for years without issue
I don't think there was a legitimate download available for quite some time, when I installed OS on this machine I picked [url=http://lockhunter.com/]LockHunter[/url] instead.
-
Every other OO language I've ever used doesn't care what the filenames are, nor what the folder structure is; only Java has this requirement that everything be laid out in a very exact manner
It is convenient if you want to read the code, because when you know the class name and package, you can easily find the code.
Better than having to blidnly open files or do a full text search to find when some method is implemented.
-
totally and utterly retarded, the filename must match the class name
The only OO language I've really used is Java so it's just normal for me but I don't see why you wouldn't do that anyway?
-
Use chocolatey
Err, that's intended for the guy you replied to. DISCOOOOOOURSE
-
Better than having to blidnly open files or do a full text search to find when some method is implemented.
Or you could use something like Visual Studio's Object Browser.The only OO language I've really used is Java so it's just normal for me but I don't see why you wouldn't do that anyway?
It's very useful when consuming WCF Services; the autogen'd code lives in the Service References folder, and your code that's in the same namespace can live elsewhere in a normal folder. It's also handy for MVC projects; you can split your Models into different folders, but keep them all in the same namespace.Of course, naming the file the same as the class/struct it defines does make a lot of sense. But sometimes, it's nice to have a bunch of classes/structs in one file, and it's good to have the flexibility of arranging the code files without having to worry about accidentally changing a namespace.
-
naming the file the same as the class/struct it defines does make a lot of sense
It makes a lot of sense but the language that mandates it is "totally and utterly retarded"?
It's not even something I need to think about most of the time anyway, Eclipse just handles it.
-
If that was the only thing, then Java wouldn't be retarded; there's several other factors that make it retarded
-
It makes a lot of sense but the language that mandates it is "totally and utterly retarded"?
In the same way that giving money to the poor is good but a government that mandates giving money to the poor is totally and utterly retarded.
-
why do you need a special application for that?
i know i've seen some screen accesible from the task manager to see what files are currently open
-
I meant Java is the language of OOP fanatics, made by OOP fanatics, used by OOP fanatics, so all the coding standards are made by OOP fanatics - and OOP fanatics hate when a file name doesn't match class name. Stupid, but standard, and I tend to stick to standards.
nope, you're thinking about smalltalk. the language where EVERYTHING is an object.
java has things that are not objects hence it is not pure.
also, smalltallk has deep dark magic inside it
-
-
I meant Java is the language of OOP fanatics, made by OOP fanatics, used by OOP fanatics, so all the coding standards are made by OOP fanatics
No, that would be SmallTalk.
If you think
$JAVA_IDE
is bad, try using VisualNotWorks. Last time I tried to rename a file I ended up completely breaking the whole IDE (the whole fucking thing runs in a SmallTalk VM and I somehow corrupted the IDE source code).
-
Also, as if its ability to self-destruct wasn't bad enough, it actually used Comic Sans in its message dialogs...
-
why do you need a special application for that?
Because Windows doesn't have a way to force-unlock a file
-
If you think $JAVA_IDE is bad, try using VisualNotWorks. Last time I tried to rename a file I ended up completely breaking the whole IDE
Why do you think I named this topic "IDEs still suck..." and not just "Netbeans sucks..."? Hint: some time ago, I renamed a C# file, and had to recreate the whole project.
-
Why do you think I named this topic "IDEs still suck..." and not just "Netbeans sucks..."? Hint: some time ago, I renamed a C# file, and had to recreate the whole project.
Yes, but the title clearly doesn't appreciate the fact that VisualWorks sucks at everything, not just file management ;).
-
I've had NetBeans lock up when a file selection dialog opens - multiple times. It doesn't necessarily matter when and what dialog. If any file selection dialog is opened there's a 50-50 chance it will lock up and I need to kill the process. Could be something related to network file system mounts as they are shown in the dialog.
-
Oh wait, VisualWorks, not Visual Studio. Well, iunno, never used it, or even heard of it. But if it's IDE, it's a safe bet to say it sucks.
-
@Gaska said:
I find it to be quite a useful way to organize code. I would go as far to force only one class per file and no anyonamus inner classes. Then again my point of view is probably coloured by trying to parse a 2000 loc java file with multiple 100+loc anyonamus classes for event handling...Because Java is
OOPtotally and utterly retarded, the filename must match the class name
Every other OO language I've ever used doesn't care what the filenames are, nor what the folder structure is; only Java has this requirement that everything be laid out in a very exact manner
-
I find it to be quite a useful way to organize code.
Agreed for the most part. But once you have teeny tiny classes that don't make sense on their own and don't belong anywhere else, I think it's best to include them alongside the class that makes use of it.I would go as far to force only one class per file and no anyonamus inner classes.
I find it very, very weird that you don't like anonymous classes but are okay with non-anonymous inner classes. If anything, I'd expect the opposite.Then again my point of view is probably coloured by trying to parse a 2000 loc java file with multiple 100+loc anyonamus classes for event handling...
Yeah probably. However, consider my example: in the project mentioned in OP, I have a functionality of sorting complex objects in several ways. Selecting sorting method is done via combo box. There are ~15 different ways (one for each data field in object). Which gives me 15 different comparison functions. They're all one-liners. Do you really think creating 15 5-line files would be more readable than having anonymous classes?Of course, the best solution would be lambdas, but Java 1.4 doesn't have lambdas.
-
-
I find it very, very weird that you don't like anonymous classes but are okay with non-anonymous inner classes. If anything, I'd expect the opposite.
I think my limit on 1 class per file thrumps your pendantry but still deserves aDo you really think creating 15 5-line files would be more readable than having anonymous classes?
At this moment in time I would say yes. A month from now when my irratation is gone I would say no. So no in this case. I still think it would look untidy and maybe lambdas but I alas you're in the same boat I'm in.I have a feeling I will have a similiar complaint in years to come about lamdas.
-
-
I have a feeling I will have a similiar complaint in years to come about lamdas.
I use them all the time in both C# and JavaScript (the latter calls them 'arrow functions'); they're one of my favourite language features in both languages
-
@DogsB said:
I have a feeling I will have a similiar complaint in years to come about lamdas.
I use them all the time in both C# and JavaScript (the latter calls them 'arrow functions'); they're one of my favourite language features in both languagesAre you writing 100 line lamdas?
-
Are you writing 100 line lamdas?
In C#, no; they tend to be one-liners, usually things likevar booking = ctx.Bookings.FirstOrDefault(b => b.BookingId == bid);
where the LINQ query comprehension syntax would be overkill.
In JavaScript though, I do write longer ones (where I can; it's an ES6 feature after all), simply because
someFunction(arg1, arg2, (success) => { if (success) { alert('yay!'); } else { alert('aww!'); } });
looks cleaner to me than
someFunction(arg1, arg2, function (success) { if (success) { alert('yay!'); } else { alert('aww!'); } });
-
I have a functionality of sorting complex objects in several ways.
This is by far the most common reason I make an inner class. The hipsters will come and tell me about how they pass lambdas or some bullshit, but I tend to make separate, named functions in javascript, too.
-
but I tend to make separate, named functions in javascript, too
I don't bother if it can't be generalized, or it's just a single callback. If it's a huge chain of a callback hellbeast though, then I'l usually name it.
-
```js
someFunction(arg1, arg2, (success) => {
if (success) {
alert('yay!');
} else {
alert('aww!');
}
});Why not something like ```js someFunction(arg1, arg2, (success) => alert(success ? 'yay!', 'aww') );
?
-
Because it was a throwaway snippet I wrote to demonstrate a point; in real code, I would use the shorter version.
-
looks cleaner to me
There's very little difference though. You're replacing
function
with=>
.
-
Every other OO language I've ever used doesn't care what the filenames are
Most dynamic languages do care, because they need to be able to find them given the import statement. And e.g. Ruby qualifies as OO much more than Java.
For compiled languages, the compiler itself usually does not care, but some languages come with build infrastructure that does.
only Java has this requirement that everything be laid out in a very exact manner
As far as I can tell, Java does not have such requirement (for sources).
Only the
.class
files have to be laid out in specific manner so the class loader can find them. But for.java
files it is just a deeply ingrained convention that the IDEs automatically maintain. You can givejavac
a bunch of arbitrarily named.java
files on the command line and it will compile all classes in them no matter what they are called.
-
You can give
javac
a bunch of arbitrarily named.java
files on the command line and it will compile all classes in them no matter what they are called.
Huh.Well then, maybe Java's not as retarded as I thought.
-
@RaceProUK said:
looks cleaner to me
There's very little difference though. You're replacingfunction
with=>
.
It's more noticeable when it'ssomeFunction(arg1, arg2, (message) => alert(message));
compared to
someFunction(arg1, arg2, function (message) { alert(message); });