Things that annoy me about devs these days...

Discussion in 'Bukkit Discussion' started by theguynextdoor, May 9, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    theguynextdoor

    Now I haven't exactly been active in the bukkit programming scene recently, but I have been here... reading ... judging... and I personally do not like what I've seen if I'm perfectly honest. From my observations I have found there to be two types of people recently which have done my nut in.

    The first kind of person: The 'new dev'
    Some points I hate about this kind of person:
    • They can have about 3 consecutive threads asking for help in plugin dev section at one time. (If you have one problem, don't go off and create another problem for other people to solve while they are solving your last problem. Or if you are solving one then finding another error, then you need to learn java and then learn to debug and solve these problems yourself!).
    • Most of them are asking for people to fix (or more commonly find) errors. (Threads with the title 'Cant find error' 'Please fix my codes' 'PLZ HELP MEEEE URGENT' or anything along the lines where they have little intention of doing anything themselves deserve to be flat out ignored')
    • Don't want to learn for themselves. They want code spoonfed and will not use google. If they are told to use google then they shall say they have and could not find anything, despite the first search result being one that would solve their problem (These people, no matter how coherently you explain the solution in words, will not be satisfied until you provide them with a fully coded solution to their problem).
    • Will not read the java docs, no matter how often they are linked (Stubborn and stupid ... just asking for trouble, not to mention hassle for the other devs out there).
    • Does not indent/format any of their code when asking for help (It's fine, I'm sure they know where everything should be in this 301 line coded problem where it is all alligned to the left with no indentation anyway).
    These noobs do my head in. The bukkit dev forums are becoming more of a 'Fix my code for me because I can't really be bothered to learn java properly' forums. If you can't be bothered to learn java, then don't come crying to the rest of the devs begging for them to search through your poorly coded program to find and fix all of your problems.
    The second kind of person: The 'I can hardly code with good practice myself, but I shall solve peoples errors and also create tutorials using countless amounts of bad practices'.
    These are the people who cannot create much in the way of quality code, yet they will happily solve peoples problems, or even spread their limited knowledge.
    Some points I hate about these people:
    • There can be 3 dozen tutorials on a specific topic, but these people feel their new tutorial on this topic will be far above all of the ones before it and so will post theirs.
    • Will post 'snippets' of code they just made which will do the most basic of things. 'Hey look guys, I made this method which sends a method to a player!!!!'
    • Will spread their bad practices for all the noobs to see. 'Yeah, let's spread our love for static variables, methods, class instances. Static FTW... Static is love, static is life' (If you can't code anything without any comprehension of good practices then don't post anything at all.) Maybe I shall list some bad practices I hate people using
      • The classes where all the variables and methods are static.

        Code:
        public class Statics {
          public static int whatever = 1;
          public static String moreStatic = "STATIC!!!";
        
          public static Statics statics;
        
          public static void staticMethod() {
          }
        
          public static getStaticsInstance() {
            return statics;
          }
        }
        
        'But Guy, statics are nice and convenient, and besides everyone knows OO is sooo last year'. Just because they are convenient doesn't mean they should be used religiously. Static variables have there place, and that place is not for convenience. If you are someone who only makes 'Singleton' (And I use that term loosely with these kinds of devs) Then go back to learning java and learn how to create instances of classes and stop being a lazy dev.
      • Code:
        if (booleanExpression == false) {
        Dude, use the logical complement operator, more commonly known as a '!'. No respected developer uses boolean statements with ==. (That statement was founded more on common sense than actual facts).

        How should it look?
        Code:
        if (!booleanExpression) {
        Do you see how much easier that is to read? If your answer was no, then you have little experience of java coding and, I may sound arrogant but, you probably have too little grounds to be arguing these kinds of points with me.
      • Code:
        if (booleanExpression == true) {
        I honestly should not have to list this one ....
      • Code:
        if (condition) {
          if (anotherCondition) {
            if (yetAnotherCondition) {


        There is this great thing called an && (AND) and a || (OR) ... please learn to use these.
      • Code:
        int i = new Integer(10);
        just ... why. This can apply to strings as well. Thankfully I don't see this too often nowadays.
        The illogical use of the if else statement

        Code:
        if (i <= 50) {
        // Rubbish code here
        } else if (i > 50) {
        // More rubbish here
        }
        I'm sorry, but if it wasn't the first condition, then why the hell would it not be the second?
    Now this has gone on a bit, but the main reason for me writing threads like this is mainly the second type of person who wants to make tutorials based on a few months of programming knowledge. The ones that justify bad code with 'Im only 12' 'Im only 15', or 'ive only been coding for 5 weeks' really annoy me. If those are your excuses then that is even more reason for you to NOT be making tutorials where people will be learning from.

    I've probably missed some points, but I think I have gotten my message across.

    Additions (Feel free to make suggestions to add here)
    • Those kids that think they are amazing for having 22 plugins
    • People that judge their (and other people's) coding ability on the number of plugins released
     
  2. Offline

    xTigerRebornx

    theguynextdoor I feel this way sometimes too, but when I see the people who actually encourage not to do this, it usually makes me feel better :p
    I agree on the whole "They don't want to learn for themself" and the whole idea that some people expect that they will be spoonfed, which is why I (and a large chunk of active members in the plugin dev section) try to discourage people from doing this.

    The Indentation problem is a problem w/ the forums, they don't actually code like that, its just that editing the post destroys spacing in your code blocks XD

    I feel that the whole 2nd list is mainly due to people posting tutorials/videos that those people learn from, then everyone thinks that it is the 'right way' because its in a tutorial (That, and the fact that most people try and code plugins w/out learning Java)

    Either way, its better to try and discourage this activity
    and @ the whole 'I'm <insert age here>" reason for problems, I agree. (I'm only 14, almost 15), age and coding time shouldn't be an excuse if you are trying to teach people stuff that you don't understand fully yourself :p
     
  3. Offline

    theguynextdoor

    xTigerRebornx Yes, I agree with the 'It was in a tutorial' part greatly and unfortunately it forms a vicious cycle where bad coders learn from bad tutorials then go on to write bad tutorials for more bad coders to learn and make tutorials from. People need to understand that not everyone is cut out to write tutorials and they aren't needed per say. If I were to write a tutorial I would try and make it on a topic that either lots of people get wrong or not many people could do (due to being advanced). Tutorials on creating a basic plugin are no longer needed.

    While I'm on the topic of tutorials, I also feel that there shouldn't be tutorials on how to make a certain type of plugin. Is that not part of the learning process, to learn how to make different types of plugins yourself? What happens if you have used tutorials for all your plugins thus far, but there isn't one which covers this new plugin you want to make and because you have done nothing but copy from tutorials, then you have no idea how to make this new plugin of yours? (then they most likely beg the devs of the plugin dev section to tell make the plugin for them).

    As for the indentation problem, I do have some tolerance for that it is a forum problem, for the most part; however I am also perfectly aware that it is possible to post perfectly indented code in the forums, it can just take it a little bit of effort on the devs part (effort which devs these days are somewhat lacking). If they really can't get it to work, then using a pastebin or gist or something along those lines would suffice.
     
  4. Offline

    xize

    Ive always trouble seeing the difference when someone wants to learn really java or when they want a fast 'fix' and don't know anything about java sometimes they just are rude/offensive to and expect it needs to be fixed fast, believe it or not but this is also one of the reasons I'm going to avoid pm's now with these kind of requests to add me on skype for java help, regardless when I respond help for someone on a thread.
    because if you refuse help on skype because they decompiled something they go spambot you or start a booter thats just the unethical thing ive ever ecountered...
     
    AoH_Ruthless likes this.
  5. Offline

    theguynextdoor

    xize I don't add people on skype for numerous reasons, one being I hardly use it myself, but when I do use it I don't want to be there helping some whiny kid who can't be bothered to learn to solve their problem themselves.

    Thankfully I don't get many pms nowadays. If I do get a question via pm I will tend to answer them (I also tend to forget about them) but I much prefer being tagged in a thread or something along those lines. I much prefer answering in a thread because then people who need help with a similar problem can see the solution (Although these days people seem to prefer making their own thread instead of spending 5 minutes browsing older threads). Threads are also better because I don't know the answer to every problem people have in the world. If you pm me and I don't know the answer, then tough luck, you will then need to find someone else who does. But if you were to make a thread, then more people will be able to see the problem and they themselves might have a solution.

    The thought of people using spambots against people who don't want to help them is just ... sad. What a sad day it is when people feel the need to annoying other people who CHOOSE not to help them in that persons OWN free time.
     
    Gamecube762 likes this.
  6. Offline

    dentych

    theguynextdoor
    AMEN to that!
    Minecraft is a kid that easily appeals to kids, but I'm amazed at the sheer size of kids wandering these forums. Be that Bukkit Help/Discussion or the Dev forums.

    You have covered the "dev" part pretty good, but I think I could go on for days about the regular users wanting others to "plz fix my essentials config" .. "pex is broken" ... "my friend can't log onto my server" problems.

    Anyway. Nice post, you are very spot on on many subjects. You pretty much said what we all are thinking :p
     
  7. Offline

    theguynextdoor

    dentych You are most certainly correct about the regular users, unfortunately I believe these forums have a word limit per thread/post. I believe it would take a good 3-4 posts to cover these regular users. Thankfully I don't even bother with regular users, I hardly want to bother with the devs, but as a dev myself, I cannot stand by and watch standards slip, especially to a level such as what we have at the moment.

    I have nothing against kids developing plugins, but damn, learn to do it properly, or don't do it at all!
     
  8. Offline

    dentych

    theguynextdoor
    Haha, yeah. I'm not sure how many people would read that long of a rant anyway, so it's probably best to be left untouched ;)
    I fairly recently joined Bukkit as a dev, and has spent many hours learning the Bukkit API to a point where I think I'm acceptable at using it. I'm quite amazed at the Bukkit/BDO website. It works very well! So it always saddens me when it's overly filled with single-line threads by 500 different people screaming "CAN SOMEONE PLS LOOK AT MY CODE AND TELL ME WHAT MY PROBLEM IS?" because they get a NullPointerException and can't be bothered going to the line they're told the error is at, and fix it themselves.

    So yes:
    +1 to that!

    Also, I very much enjoy helping people, but if they are not willing to put in some effort themselves, I am not either. ;)
     
  9. You could ask dbo staff to make a sub forum for NPEs :p.
     
  10. Offline

    Lolmewn

    asofold You mean forum admins right? DBO is just BukkitDev :p

    I agree on everything though. There's too many 'script kiddies' that find Java and Bukkit... Not to mention the OP backdoors on DBO. Ugh.
     
  11. Offline

    theguynextdoor

    Lolmewn Indeed, my views are limited to what I see on the forums, I dread to think of the countless additions which could be added to the list after having seen peoples code submissions.

    The OP backdoor has often baffled me as to why people do it. Do they really think their plugin is going to get so popular that they can go onto a random server and then get OP? How would they even know which server is running their plugin, any method they could do most certainly wouldn't be subtle in the code and could easily be seen... so it just seems rather pointless.
     
  12. Offline

    Rocoty

    This thread should be stickied. I can't express how spot-on many of these points are. I wholeheartedly agree.
     
    JaguarJo likes this.
  13. Whoops!

    Nasty kids :p. One should not forget that many people start to learn some programming language somehow, very often not necessarily in one of all those "proper" ways but by trial and error. Since people get younger all the time with doing the same things as others used to do at higher ages, you will soon have 5 year olds trying to program Bukkit plugins. How about a three-clicks-from-here rule, about 3 too simple questions in one thread = ban from the forums :p? I would have to watch out though :p.
     
  14. Offline

    mazentheamazin

    theguynextdoor
    I agree with you full and foremost. I was honestly about to create a thread like yours, today. Anyways, I was also looking to discuss how the Bukkit API, can hurt ones knowledge, or understanding on OOP. If one, were to go and start making Bukkit plugins with absolutely ZERO knowledge of Java (which is true for 75% of the developers on the forums, even more for all I know), he/she would have a difficult time understanding OOP. This is due to the API doesn't require you to understand it at first glance, which is a big problem if they're going to take I, and others on the forums' time. This encourages having a whole static class, as its easier to get by with. Personally, I have a manager which would have methods referencing to other classes (by creating instances in the constructor), and the main class having a static method linking to the manager. Anyways, back on the main subject, this issue is one of the main reasons why I think people should not be learning the API before Java or even OOP for goodness sake. One of the largest reasons why these people are encouraged to start with the API before Java, is due to the fact that its the easiest way to do what you want. Us as developers should be making Java tutorials first before Bukkit, and every Bukkit API episode, we make sure that the watchers watched through the series and understand the concepts taught (By referencing the java tutorials). Rather than creating a episode where we write up a bunch of code, talk about it for a bit, and let the watcher copy the code and claim it as theirs. Even if we don't explain what an int, boolean, or the objects/primitives we use that are not from the API, they'll just copy it, and expect it to work. I myself, am hoping that we create a 'rule', that a user must have a BASIC understanding of Java, and OOP, to request developmental help from the forums. I understand that it sounds like I am 'discriminating' them, however, it is a bad habit that shouldn't be allowed/encouraged.
     
  15. Offline

    theguynextdoor

    mazentheamazin Indeed. It is sad to see also that it is highly encouraged to make plugins without much of an OO design. For example I very very very commonly see people having their main class implement listener, and they are also putting their commands in this class.

    I especially dislike people putting all these unnecessary methods in their main class. For me, a main class should be as clear as possible and should provide one purpose. I think the main class should act like the main 'hub' for the program as it were. It is the place where everything should connect and where you go if you want to get access to your other components. So from your main class, you create links (instances in the case of java) of your other classes, which includes your listeners, commands, utilities etc and you retrieve these instances from your main class.

    Here is a crude image of what I mean by the main class acting as a hub:
    [​IMG]

    I think I, and most other devs, agree with you saying people need to learn java before they learn the bukkit API. It's a bit like becoming a doctor before you learn anatomy and all the other stuff doctors need. Sure you're gonna learn them eventually, but you're gonna have a long hard road ahead of you and you will need the aid of others who know what they are doing already.

    People need to learn Java before they learn the Bukkit API and people need to learn the Bukkit API before they make tutorials.
     
  16. Offline

    nlthijs48

    theguynextdoor I also agree with your point, a lot of threads just express the bad understanding of Java the starter has. Asking for help without knowing what you are doing is just pointless.

    Personally I did not need any help from the forums while developing some plugins (one of these is published). That is because I am doing the study Computer Science at a University, that is where I learned Java after I discovered C++ in high school. The only thing that needed for creating my first plugin (which is also the one that is published) was the Bukkit Plugin Tutorial for understanding the plugin.yml etc. and the Javadocs which explain everything else. File I/O, setting up multiple classes and using Listeners were already things I knew about and could easily use for Bukkit plugins. The image from your previous post is exactly how my plugins are organised and that is just a normal pattern for a java program, everyone with good knowledge about Java knows how to link classes together to get a decent program like that.

    So if you have proper understanding about Java you can start creating plugins very fast and usually without any help of the forums. That is the way developers should come here and get into making plugins, and only for real problems they would need to use the forums.
     
    AoH_Ruthless likes this.
  17. Offline

    theguynextdoor

    nlthijs48 Indeed. It is obviously an advantage to have a computer science background. Having experience in other languages (C++ in your case), especially those that are OO, is a massive bonus and really just speeds up the learning process.

    With relation to my diagram, it is how programs are normally set up and it is really a shame that kids these days don't want to go with this structure purely because they don't want to learn the concept of OO properly. People who come to learn Bukkit and already have a sound knowledge of Java already are going to have an easy time because they are only learning one thing, the API. Those who try to learn Java and the Bukkit API are going to have a bad time because they are trying to learn 2 things at the same time, so not only are they effectively trying to multitask (Something boys don't have the gene for (Yes I am stereotyping), but they are trying to learn something (Bukkit API) which requires them to already have a founded knowledge on something else (Java).
     
  18. Offline

    nlthijs48

    theguynextdoor Another reason that learning Java and the Bukkit API at the same is bad would be that this person would not now if certain functions are from Java itself or from the Bukkit API. That is not a problem while they are just creating plugins but will be a problem if they want to make something without the API.
    Of course my study is a big advantage, I also learned all different kinds of diagrams that show the structure of the program. Class, activity, state chart and sequence diagrams for example all show how a program is structured or how it works. All these diagrams are different and show a different aspect of your program so that helps to have a good overview and to get your program running smoothly. I do not create a single diagram of these kinds before I create a plugin, but just knowing about them makes you aware about structuring your code the right way. If you have a good structure you can easily add things, change things and maintain your program. This knowledge is just not spread across new developers trying to create a plugin so that could be a reason they fail to finish it.
     
  19. Offline

    Jetsinsu

    I feel the same way but some of the info are truly false. This is only relating to me unless other people do this. I was spoonfed when I needed an example. But the thing is, I don't copy and paste the codes. I split the tab in half on one side of my screen and the other is eclipes (I have a big screen). The only way I actually get good practice is when I keep on retyping the code over and over again. People who just keep on copying and paste is a different story than what I am talking about. In order to learn some people find it easier to read and retype the code. If people just copy and paste and don't understand what the code means, that is not a true coder. I just want to point that out to you because people always think I get spoonfed when I actually practice retyping it and understanding what the code means. Thanks for reading.
     
  20. Offline

    theguynextdoor

    Jetsinsu Although retyping is better than copying and pasting, if you ask me they are one in the same. There is no point retyping code if you don't understand what it does. The main reason people see copy and pasting as bad is beause people don't read the code, they just blindly chuck it into their code without understanding what the code does. People who type the code are similar. I'm not going to say I never did this, because I did. I used to watch video tutorials and would type the code out. Do you know what I learnt from that? Not an awful lot if I am honest.

    There should come a point where you can go to a completely new plugin project, and you can code it using knowledge you have gained and have UNDERSTOOD (that is the key point here). Coding isn't about how many times you rewrite code, it's about how well you understand what each line, each statement does. This is another thing as well. When you debug code, you will need to read through your code. You need to understand what is going wrong (by looking at that stack trace) and then search the code for what is wrong. Retyping code will only help to find syntax errors (which your ide will point out) and possibly some obvious logical errors (Using a < instead of > for example).
     
  21. Offline

    Jetsinsu

    I'm not trying to make you think that "retyping" is the secondary non intelligent way to learn java. If you understand what you are coding and retyping then it's way different then retyping and not knowing.
     
  22. Offline

    SnipsRevival

    I personally don't see anything wrong with using
    Code:
    if(booleanExpression == false)
    over using
    Code:
    if(!booleanExpression)
    In some cases it may be easier to read the former.
     
  23. Offline

    theguynextdoor

    SnipsRevival Personal preference and readability. I can't speak for everyone however you will tend to notice that the bigger and more popular plugins do use ! as opposed to ==.

    When people start using == false, they also tend to use == true and then they can randomly chuck in != as well. None of these are technically wrong, however they are superfluous. It is quicker to just put a ! in front of your boolean expression than have to type == false.

    Also the readability is also much greater when you have multiple booleans in one if statement
    Code:
    if (booleanOne == false || booleanTwo == false || booleanThree == false) {
    Code:
    if (!booleanOne || !booleanTwo || !booleanThree) {
    The latter is quicker to type, quicker to read and takes less space. You could extrapolate this example, but then it becomes slightly less realistic.
     
  24. Offline

    Developerjohn

     
  25. Offline

    theguynextdoor

    Developerjohn
    1. This is a beautiful sticky in the plugin dev section, which is sadly under-read.
    http://forums.bukkit.org/threads/ho...ubleshoot-your-own-plugins-by-yourself.32457/

    This shows you how to read a stack trace, helping you to find the error and the location of the error. If you don't know what the error is, then you simply google that error. You can even check the javadocs of that method. E.g the NPE javadoc page looks like this.
    [​IMG]

    I've highlighted in red the bit you would care most about, i.e what causes it. You then go back to your code, see where you do something which would throw an NPE and fix it. Happy days.

    2. Let's say you want to know how to get a coloured string. You think it is likely to be in the ChatColor class because that sounds the most logical (if not then searching is a bit more involved).

    You then go to google and type in something like 'bukkit javadoc ChatColor' and your results would be something like: [​IMG]
    With these results, you would go for the second one down because the first result is the source file, which you could use to go to the right page, there is nothing wrong with it, but the second one down in this case is more ideal.

    You then scroll down to the 'Method Summary' section, because what you want will be a method.
    You then want to find the methods which have the most suitable return type. In this case it is a String we would like returned so we can send it to our player. We also know that it is most likely static. This is because ChatColor is an enum, and so any non static methods are more often than not going to be relating to one of the enum types.

    [​IMG]

    In this image I even circled the methods you would see and likely use. You would then click on each of these methods in turn, read their description and a description of what they return and you would find that one of them will be what you are looking for. In this case it is the translateAlternateColorCodes method.
     
    Developerjohn likes this.
  26. Offline

    justcool393

    I think I can agree with all of them, but the formatting one.
    Now, I agree the formatting is very important, but for people that use tabs instead of spaces to indent their code, it doesn't work on the Bukkit forums. Now, I think it's more common that people use spaces anyway, and then that's where it should be indented. :)
     
  27. Well... that was quite a rant. Gotta agree with you, even though I'm probably one of those people, I don't know.
     
  28. You know what I dis about people in this community ? it's that if they create a plugin they think they are some type of super programmer that is instantly better that everyone else, Most people are stuck up on this forum, Now I know java, I used to make games in java. I'm not stupid. But when I first came on this forum I started asking the help of people because I did not know anything about bukkit, And did not really want to get back into programming. So when I asked for a simple plugin people started bashing at me and started commenting in the meanest way possible. Now i'm not saying everyone is the same on this forum, I did make some friendships from here. But some people here are just mean and are too full of themselves just because they can create a PLUGIN.

    So then I logged out of this forum, Downloaded bukkit. Watched a tutorial, Checked out the docs and now I can create my own plugins, My server is full of minigames that I made myself now. All that take a few days to make, And i've been told "it can take months to create a minigame" ( I knew they were lying btw.) .

    STUCK UP.
    Now I feel good that I let that out of my chest.
     
  29. Offline

    JaguarJo

    You claim to come from a Java background, already knowing how to make games in Java. So it makes sense that after getting Bukkit, watching a tutorial, and reading some documentation you would be able to make custom plugins fairly easily. You already had a foundation of knowledge to work from. Some people don't have that background. Plus, everyone learns at different speeds and some people have more available time to work on these things than others. It very well could take someone months to make a minigame. Just because you are quick at something doesn't mean that the other people were lying.

    I have yet to meet these "mean" people that you say are here on the forums. The mods are pretty good at removing flaming-type posts and the community in general appears to be pretty helpful, at least from what I've seen. I spend most of my time over in the Bukkit Help section though, so if the environment is different in Plugin Development, then I wouldn't know it. But I somehow doubt that it is the nest of pretentious vipers that you make it sound like. It seems to me more likely that you just had one bad experience and it has made you bitter.
     
    AoH_Ruthless and ABOODY006 like this.
  30. Offline

    xTrollxDudex

    AoH_Ruthless and Stealth2800 like this.
Thread Status:
Not open for further replies.

Share This Page