• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Easiest programming language to learn?

antemortem

rest after tomorrow
  • 7,481
    Posts
    12
    Years
    Java is easy, but it's useless in the long run.

    If you want to learn how to really do things early on, learn JavaScript because it will come n much more of use to you later on. You'll have to learn the basics of HTML with that, which is what I'd suggest learning before or while learning JavaScript because it's honestly the easiest to learn since the syntax and variations are easily compiled.
     

    Archenoth

    (cozy)
  • 467
    Posts
    12
    Years
    Java is easy, but it's useless in the long run.

    That is very I'll informed. While it is indeed looked at with resentment by many programmers, it is not really as useless as people say it is.

    It has a gargantuan standard library that allows you to do almost anything under the sun without third party libraries. It also has arguably the best documentation of any language, and has more features than most other C-like languages. (Yes, Java is C-based)

    It gets bashed a lot for it's JVM-base, but most systems out there have JVM on it... It's called "JRE". Also, Java isn't as slow as people say it is because of it's JIT architecture, that stands for "Just In Time compilation", which means that after any code is executed on the JVM once, it is translated to machine code for the host system itself, and not just bytecode, and if that code is ever used again, it just uses the native machine code. And the upside is that JVM makes most aspects of the language cross-platform, which is great for Linux users like myself. (Though cross platform isn't quite 100%, but it's close)

    In addition to programming standard applications, the web runs on Java a lot... Servlets and serverside programming is very common with Java, and it can handle much more than PHP ever will... This is why heavy Java servers exist so commonly, things like Glassfish. And when using Glassfish, you have the entire Java API to work with to create web pages with. That is just a little bit badass.

    And thinking of mobile Development? Android actually was made in Java and C... And "Dalvik" means that Java is not compiled to bytecode, but native code to be run on Android architecture, so it is just as fast as any iOS app. And while doing that, you have full access to the entire API yet again! Then there is J2ME, which is used on Blackberry, and older "dumb phones", those are Java as well.

    IDEs for Java are also very easy to get ahold of. Large free ones that even allow you to look at the documentation for anything you are coding with at the time, as well as completion. Things like Eclipse and Netbeans.

    Don't like how the language is used and want to link it with other languages? Well there are other languages that actually use the full Java API as well, but with a different style, things like "Clojure", which is LISP meets Java. And that language can compile to be used on all of the things that I mentioned prior. And the new IDE concept (Which is damn awesome by the way) supports only Clojure right now.

    Java is useful, and it will continue to be useful for a long time.


    As for it being easy, Java is easy because it has the most detailed and elaborate documentation. Not because the language structure is somehow easier. And it also uses the "Object Oriented" paradigm, which is not the easiest thing for a newbie to wrap their head around. It is actually ridiculously similar to C#, it's just considered easier because of the documentation. It is very easy to jump from any C language to Java, but you need to get the fundamental concepts downpat first.

    If you want to learn how to really do things early on, learn JavaScript because it will come n much more of use to you later on. You'll have to learn the basics of HTML with that, which is what I'd suggest learning before or while learning JavaScript because it's honestly the easiest to learn since the syntax and variations are easily compiled.

    Actually, yes. I agree with this. JavaScript is useful. Client side web applications usually rely on it for a lot... And HTML5, actually can't animate anything on it's own, that's all JavaScript work. It teaches some bad practices, like encouraging global variables, but it is indeed a good language as well. It even has some nice functional programming elements in it like lambdas. It has Object Oriented in it as well, but it is by no means required to use it, you can play around with it while coding in a procedural style paradigm.
     
    Last edited:

    twocows

    The not-so-black cat of ill omen
  • 4,307
    Posts
    15
    Years
    Malloc and pointers... Those are indeed the two most difficult things about C... Most of it is actually quite easy though. As for strings, character arrays are sometimes easier to work with as opposed to arbitrary classes since they can be called as a primitive data type and give some insight how other language strings actually work, but generally, they are cumbersome. So yes, you are correct in this, these things are not as easy in C as they are in other languages.
    Cstrings as a concept aren't hard to learn. They're hard to work with, both for a beginner and as a professional. Pointers aren't hard to learn if explained properly; it took me forever learning on my own because nobody explained that the asterisk in int * x is different (and, moreover, opposite functionally) than in int y = *x.

    Malloc is just a PITA. It's not too hard to learn, but it's overhead that you have to deal with that doesn't really teach you much about programming.

    I beg to differ, depending on the type of programming you get into, you can do whatever you want to a virtual machine without any fear of screwing anything up, plus it is less work to work in a Virtual machine since it comes fully configured to begin with as opposed to setting up a Cygwin environment with a much more limited toolset as well as none of the advantages that the isolation of a virtual machine gives you. Plus Cygwin is nothing I would recommend using for compilation since it requires it's DLL to be included with anything you make if you use it's compiler.... If you use any gcc on Windows, I would recommend MingW over Cygwin any day.
    I personally use MinGW on Windows when I do Windows programming (or, in the off case, MSVC), but Cygwin is a good learning environment because it is POSIX-compliant as far as I know and (I believe) easier to set up than a virtual machine.

    As far as paradigms go, Object oriented is not that hard, but it is by no means easy for a beginner... It is an intermediate concept, it is much more futile than learning the concept of pointers in C for a newbie. Another reason I suggested C was because it's paradigm (procedural) works as a very nice interlude into Object Oriented eventually... Plus it is much easier to learn. Object oriented is great, but it is killer if you are just beginning to learn the concepts of programming.
    Neither myself nor anyone I knew had any trouble understanding OO when we started learning Java. OO is pretty self-explanatory and feels like a natural extension of procedural. The only thing that might not be immediately clear is the purpose of classes and methods, but that's only one up on explaining the purpose of functions in C.

    Python is taking over in places..? I was unaware of this... This is interesting if this is true. And yes, bstrings is a way to get over one of C's weaknesses... I just wouldn't rely on it too much since that API isn't available everywhere.
    Well sure, but it's easy enough to link in, and it's absurdly useful. The GNU extensions for C aren't available everywhere, but I'm going to use them anyway unless I'm on Windows.

    Procedural programming is a good way to eventually learn Object Oriented... And it is far easier in my experience than jumping right into it. Also Python's typing system frankly, leaves much to be desired. The top down small chunk programming style of C also makes it easy to visualize how to create programs in small easy to digest pieces as opposed to the often lengthy pieces that Python generally has.
    I don't feel the dynamics of programming in Python are really much different than programming in C except the addition of OO things. No language is going to be perfect for beginners, but I think Python works well because introduces conventions that are present in a lot of languages, and I really like the idea that there's generally one right way to do things (as opposed to, say, C++). I would say C is a good second language, it's something you learn once you understand programming fundamentals but need to learn how the system itself sees things.
     

    Bax

  • 23
    Posts
    12
    Years
    Do not choose any "dead" language just because it is easy.

    First choose what you would like to do:
    Software / Web development / System components etc.

    But anyway I would recommend Java or C# (personally I prefer Java). Languages based on C#/Java principles are future of programming and both of them are also very easy to learn (but hard to master ofc :D like everything).

    Also if you want to pick up some tutorials, choose those which start with Object Oriented programming from beginning. Automatically throw those which start with procedural programming. It will just give you old-fashioned habits which nobody use and which will just cause a lot of problems if you will want to be successful in IT.

    Good luck whatever you choose :)
     

    Archenoth

    (cozy)
  • 467
    Posts
    12
    Years
    Do not choose any "dead" language just because it is easy.

    Well... C just recently passed Java as the most popular language at the beginning of this month. I wouldn't exactly call it dead. :V

    Cstrings as a concept aren't hard to learn. They're hard to work with, both for a beginner and as a professional. Pointers aren't hard to learn if explained properly; it took me forever learning on my own because nobody explained that the asterisk in int * x is different (and, moreover, opposite functionally) than in int y = *x.


    Malloc is just a PITA. It's not too hard to learn, but it's overhead that you have to deal with that doesn't really teach you much about programming.

    I can't really argue with that. :)

    I personally use MinGW on Windows when I do Windows programming (or, in the off case, MSVC), but Cygwin is a good learning environment because it is POSIX-compliant as far as I know and (I believe) easier to set up than a virtual machine.

    Well... The setup is one thing... Cygwin can be installed relatively easily, but most people don't know how to use the tools right off the bat. A virtual machine is a bit harder to set up (By a bit, I mean it is very simple if you know almost anything, but it's not a "mash the next button" install), but after it's up and running, you have a full GUI to use, as well as a metric ton of documentation to work with and the tools to work with.

    Neither myself nor anyone I knew had any trouble understanding OO when we started learning Java. OO is pretty self-explanatory and feels like a natural extension of procedural. The only thing that might not be immediately clear is the purpose of classes and methods, but that's only one up on explaining the purpose of functions in C.

    Well, this is subjective... So it will vary by person. You really can't tell for sure if someone will find it difficult I suppose. I know I had a fun time when I first started with OO when it came to telling the differences between static classes and instantiated objects.

    Well sure, but it's easy enough to link in, and it's absurdly useful. The GNU extensions for C aren't available everywhere, but I'm going to use them anyway unless I'm on Windows.

    Fair enough. :P

    I don't feel the dynamics of programming in Python are really much different than programming in C except the addition of OO things. No language is going to be perfect for beginners, but I think Python works well because introduces conventions that are present in a lot of languages, and I really like the idea that there's generally one right way to do things (as opposed to, say, C++). I would say C is a good second language, it's something you learn once you understand programming fundamentals but need to learn how the system itself sees things.

    Well, I suppose this is subjective as well, but I always felt like programming should be an open-ended task, where you are able to implement something as you see fit. Having only one way of doing things seems a bit limiting to me.
     
    Back
    Top