IDEs still suck at file management



  • NetBeans just crashed stopped responding made me kill it with fire Task 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.


  • Winner of the 2016 Presidential Election

    @Gaska said:

    NetBeans

    Well there's your problem.

    Filed Under: IntelliJ Master Race, Eclipse if you really don't like JetBrains


  • area_pol

    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.



  • @sloosecannon said:

    IntelliJ Master Race

    I had NetBeans already installed. So.

    @sloosecannon said:

    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).


  • Winner of the 2016 Presidential Election

    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. :wtf: Unless I try launching explorer from a cmd window... that works just fine. Anyway, back to the stupid file. Time to break out the big guns... Process Explorer. I discover that dllhost.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.


  • sockdevs

    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...



  • @dcon said:

    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.



  • @anotherusername said:

    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.


  • sockdevs

    For me, it's normally Windows Defender taking several minutes to scan a 10kb text file



  • @RaceProUK said:

    http://filehippo.com/download_unlocker/ :wink:

    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.


  • sockdevs

    It never used to be that way; I've been using it for years without issue :confused:



  • @Gaska said:

    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.


  • sockdevs

    @Gaska said:

    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 :snowflake: requirement that everything be laid out in a very exact manner



  • @anonymous234 said:

    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.



  • @RaceProUK said:

    It never used to be that way; I've been using it for years without issue :confused:

    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.


  • area_pol

    @RaceProUK said:

    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 :snowflake: 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.



  • @RaceProUK said:

    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?


  • Winner of the 2016 Presidential Election

    Use chocolatey

    Err, that's intended for the guy you replied to. DISCOOOOOOURSE


  • sockdevs

    @Adynathos said:

    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.

    @loopback0 said:

    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.



  • @RaceProUK said:

    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"? :crazy:

    It's not even something I need to think about most of the time anyway, Eclipse just handles it.


  • sockdevs

    If that was the only thing, then Java wouldn't be retarded; there's several other factors that make it retarded



  • @loopback0 said:

    It makes a lot of sense but the language that mandates it is "totally and utterly retarded"? :crazy:

    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. :trolleybus: :fire:



  • 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



  • @Gaska said:

    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


  • Dupa

    @Gaska said:

    giving money to the poor is good

    Giving money to the poor is a terrible, terrible idea! :fire:



  • @Gaska said:

    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...


  • sockdevs

    @Jarry said:

    why do you need a special application for that?

    Because Windows doesn't have a way to force-unlock a file



  • @Deadfast said:

    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.



  • @Gaska said:

    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.



  • @RaceProUK said:

    @Gaska said:
    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 :snowflake: requirement that everything be laid out in a very exact manner
    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...



  • @DogsB said:

    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.

    @DogsB said:

    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.

    @DogsB said:

    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.


  • sockdevs

    @Gaska said:

    Java 1.4

    :no_mouth:

    You have my deepest sympathies; no-one should be forced to use that



  • @Gaska said:

    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 a :pendant:

    @Gaska said:

    Do 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. :smiley:



  • @Gaska said:

    Java 1.4 doesn't have lambdas.

    Someone else stuck on 1.4!

    :wave:


  • sockdevs

    @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 languages :smile:



  • @RaceProUK said:

    @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 languages :smile:

    Are you writing 100 line lamdas? :anger:


  • sockdevs

    @DogsB said:

    Are you writing 100 line lamdas?

    In C#, no; they tend to be one-liners, usually things like

    var 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!');
        }
    });
    


  • @Gaska said:

    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.


  • Winner of the 2016 Presidential Election

    @boomzilla said:

    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.


  • area_deu

    @RaceProUK said:

    ```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') );
    

    ?


  • sockdevs

    Because it was a throwaway snippet I wrote to demonstrate a point; in real code, I would use the shorter version.


  • Winner of the 2016 Presidential Election

    @RaceProUK said:

    looks cleaner to me

    There's very little difference though. You're replacing function with =>.



  • @RaceProUK said:

    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.

    @RaceProUK said:

    only Java has this :snowflake: 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 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.


  • sockdevs

    @Bulb said:

    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.


  • sockdevs

    @Jaloopa said:

    @RaceProUK said:
    looks cleaner to me

    There's very little difference though. You're replacing function with =>.

    It's more noticeable when it's

    someFunction(arg1, arg2, (message) => alert(message));
    

    compared to

    someFunction(arg1, arg2, function (message) {
        alert(message);
    });
    

Log in to reply
 

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.