What programming language should I learn?

Discussion in 'Miscellaneous' started by 607, Dec 23, 2014.

?

Of which of these things do you know a fair bit?

HTML 16 vote(s) 39.0%
GML 4 vote(s) 9.8%
anything from the BASIC family 8 vote(s) 19.5%
Java 17 vote(s) 41.5%
Javascript 14 vote(s) 34.1%
C or C++ 20 vote(s) 48.8%
C# 5 vote(s) 12.2%
Python 14 vote(s) 34.1%
Unity 5 vote(s) 12.2%
Flash 5 vote(s) 12.2%
Multiple votes are allowed.
  1. It's not hard to quote people into 1 post. Many people cope with a multi-quote post.
  2. I think Java is a good choice for a couple of reasons.

    1 No cost to own/compile
    2 Not platform dependant
    3 Java Swing has plenty of features to make desktop applications
    4 Lots of online help
    5 Not so unique from other languages
    6 Minecraft ;)

    Good luck.
  3. It's not hard. While I replied as I read each, as an amateur writer, and a professional author of countless design documents, I guarantee you that having separate subjects in separate posts makes their content more accessible to other readers. It was the right thing to do. End of story. End of subject. Lets keep this on topic please.
    mba2012 and ShelLuser like this.
  4. Oh man... please tell me you're no longer using this code snippet for ANYTHING.
    It was removed because it was deprecated in PHP4 and an EXTREMELY huge security vulnerability. It HAD to break backwards compat, as code relying on it was not safe to run in production.
  5. C# shares many of those features as well. :) But they're kissing-cousins in my view. I like them both equally fine.

    The BIG advantages I'll give to java are as follows:
    * Supported on MANY MORE hardware platforms. Sorry paycheck producing language. This is true.
    * It is the preferred language used for Android development. If you are interested in Android development, this should guide you toward Java.
    * The Eclipse IDE is often used to develop in it -- Free, stable, remarkably powerful, used to develop more than just Java (I do C/C++ for ATTINY84 MCUs with it, for example) Also a popular Android development IDE... Meaning code examples are likely setup to leverage this IDE. (IntelliJ-IDEA I hear is also well regarded)
    * And yeah. Minecraft. Gotta plug that again. :)
    Mr_Zulus, mba2012 and ShelLuser like this.
  6. I am with mba on this one. VB in any form isn't all that useful outside of Excel.

    If you are interested in any form of professional programming in your future, look at this page.
    http://spectrum.ieee.org/computing/software/top-10-programming-languages
    That is the kind of distribution you will see in the market. I personally am not a fan of Python. I think it is a lazy language that emphasizes quickly completing a coding project over efficient coding.

    Also, a Computer Science degree != (is not) a Computer Engineering degree. People tend to think they are the same. Again, they are not. Computer engineering puts a much larger emphasis on problem solving, computer science emphasizes "language mastery", IE, being able to do as much as you can in several languages. This is why many programmers now use Python, they (job description wise) are paid to program general things. Computer/Software engineers on the other hand are tasked with idea generation and problem solving, which is why they have more of an emphasis on the advanced languages such as C++ or Java. Programmers also are more likely to be independent, and software engineers are more likely to work in teams. You don't team build a Python script, you team build in Java.

    So if you are just hobby programming, Python may be your deal. If you are looking to build skills early on that you want to apply later, Java or C++ are where you want to head. If you want to Excel program, find your programs online. VB isn't worth your time IMO.

    Edit: Stay AWAY from Flash. It is completely dying. Google is leaving it behind in favor of HTML5 (IIRC).
    mba2012 likes this.
  7. paid*

    I think I just correct jkjkjk182... my time is coming! :eek:

    Isn't the whole internet trying to leave it behind?
    mba2012 and jkjkjk182 like this.
  8. You saw nothing. >.>
    mba2012 and nfell2009 like this.
  9. No worries there, but that was the initial fix which was implemented to make things work at that time. The next step was to get the actual website developer(s) involved and rewrite the offending sections (I'm not a PHP programmer myself and basically steer clear from the whole thing best as possible).
  10. IntelliJ is indeed quite popular but also a commercial based IDE. So you'll get the best out of it if you get yourself a license.

    But I'd also like to mention NetBeans. In its early stages it started out a little rough and not too great, but they managed to pick up and extend on the whole thing quite heavily. Right now you can use it to program in a dozen languages apart from Java.

    What I personally like about NetBeans is the modular setup; if you have no need for a certain function (for example Java EE) then you can simply leave the module for it uninstalled and then it won't need to load extra stuff for things you may never use.
    Perry_Stahlsis likes this.
  11. I believe there is value in learning the pitfalls of different approaches. VB is rife with them. I only recommend learning it to see the pitfalls. I don't recommend using it on projects of significant size.
  12. Ah right I knew I forgot one. So it sounds like it's improved a lot since I last used it. I will need to revisit it. I had such high hopes when I tried it ... several years ago.
  13. Java cuz MC mods are made in it
    Perry_Stahlsis likes this.
  14. IDEA Community edition is free and suffecient for Java. the paid edition is for people who do it to my level.

    Also, Androids official editor is based off IDEA now, separate product called Android Studio and its free.

    But regarding languages. If you want a VERY WELL Paid job writing professional buisness software, Java (As the above linked chart shows) is a solid career.

    You can't go wrong with learning java if you want some form of career in programming. Java devs make 6 figure salaries.

    In the web world, Ruby is getting phased away. and its freaking slow!

    while it may be a better "language" than PHP, PHP is still more adopted and you can get decent jobs doing PHP development. The language has many faults, but it is possible to write good PHP code (I do it for a day job).

    JavaScript is the growing contender all around though. More and more software is moving to SaaS (Software as a Service), meaning web based applications you pay for monthly.

    This means you REQUIRE javascript on the front end, but now days, Node.JS has taken off and you're writing JavaScript on the Server too.

    So, learning it and Node.JS is an extremely solid modern career advancement.

    Pick up Java, JavaScript (and related web technologies), PHP and you will be pretty solid for a future career since everythings moving to the web.

    Throw in a scripting language like python to write scripts or manage build processes, and bash scripting, and you will be well off. Ruby is used often for this too though, for build systems.

    ---------
    but my 1 serious piece of advice: Choose a path.
    You either will go down the Microsoft path of .NET, or you will go open source (Everything I just said above).

    If you do choose Microsoft, note that you will be locked into their technology stacks, and likely will not do much with other technologies. To me, that idea is boring and I strongly oppose Microsoft technology.

    You won't find many careers where there is a strong/equal balance of Microsoft and Open source.... so if you want to really get a solid career, choose one and build upon it (I suggest Open Source!)
    607, Mr_Zulus, mba2012 and 3 others like this.
  15. I must be one odd duck. I've successfully used plenty of OSS with the MS stack. This has been a change from what you're citing. What you're citing WAS true ... about a decade or so ago. :) Even at that time I managed to pull a MIT license C++ library (now a part of boost) into a very litigation paranoid company, going through proper channels! The license was one paragraph, in plain English, and took two weeks of review by the legal department. Now mid sized and larger companies, regardless if they are MS stack or not, tend to have approved OSS licenses. I've even run across small ones that do.

    Also there is nothing that stops a person from cross training, thereby increasing the value of resume, should they look to technology hop during their career. In fact cross training helps a developer identify existing techniques and technologies faster ... this tends to lead to better solutions.

    I've done a bit of tech-hopping during my career. However, I've just found better pay on the MS stack since I started professionally in 1994. I can't speak for the industry at large, just for myself there. :) And there are, while not AS stable as Java, OSS .Net stacks. I suspect as time goes by we will see these stabilize and become more viable.
  16. Sure some companys are going to use some OSS, but for example, would you use OpenVPN for a VPN Network?
    The larger decisions and systems are going to be locked to MS stuff.

    Small scale projects yea youll get some chance, and C++ libraries do come as a little different area, but "in a whole", the chance of adopting a non microsoft solution when a microsoft solution exists, is pretty slim.

    Even when its a difference of Free vs hundreds of thousands of dollars.
    Perry_Stahlsis and M4nic_M1ner like this.
  17. I won't address infrastructure side of things because I was never involved in those decisions. However I did glean that my previous employer was OSS for the network infrastructure. They are a fortune 15 company. As you can imagine there are feifdoms within such a large organization each pulling for their favorite tech. I rather dislike politics so i stayed out of it.

    Other points I'd like to address:

    1. As for the C++ project, the project wasn't small scale by any means. It is still their premier offering for that segment of business. :)
    2. The bulk of the OSS I've done has been for C#/.Net. This is where i've seen the bulk of it on the MS stack.
    3. MS bundles jquery with their web projects. Not always the latest version, but usually a very recent one. This is forcing recent web developers to either manually remove it, or use it.
    4. Through the visual studio IDE, even the freeware versions, MS has the option to pull in other OSS products to make a part of whatever you're building.
    So from what I've observed the whole MS/non-MS debate has gone away when it comes to "Which libraries do we use to accomplish said programming goal?" The question has changed to "What has the most information, does what we want already, and best support?" (Availability of code to fix things/learn things is a consideration in assessing support)
    OSS often, but not always, wins on the new question. MS advocates will tell you otherwise. But they're just playing politics. I dislike politics.
  18. The language is only one piece in the whole picture, perhaps even a smaller aspect of software development.

    The key thing is how you think about software and it's life cycle, and within that, how you think software development: development pardigms.

    The best development framework, environment and languages are those that will support you learn the best development paradigms and practices.

    Most people will try to use a language they know best because they are locked in the way of thinking they adopted with that language and framework.
    Good software developers don't work in a language, but in patterns and paradigms. You analyse a problem and then choose languages and frameworks that are suitable.

    Don't concentrate just on one language. Learn 5-6 programming languages to a basic level. Don't miss LISP and Prolog. I'd say it's fine if you spend 2 weeks with each of them. Just to get the idea and to get language independent thinking. Then you can pick your main language and main style.

    I'm not a fan of Java, probably because I was already deep into object-oriented development with C++ before Java got so popular. I even think that Java got so popular not because of platform independece, but because it stimulated (back then) people to develop OO skills. Many universities switched to teaching with Java (not teching Java, but teaching with Java) in late 1990's but then moved to other languages again during past 10 years or so.

    A programming language for itself is not worth much without the development paradigms, patterns, tool chains, libraries / frameworks, development environment and other development and documentation tools.

    I agree with Aikar regarding specific stack / framework. Iit is a very good idea not to get locked into specific way of thinking, especially if there are ideas of spreading monopoly and of "Embrace, extend, and extinguish" behind it.

    There is a lot to learn!
    Have fun! :)
  19. Wow... I feel like I should've bumped this more now :p
    All sorts of feedback, but as I already said, I've already chosen Python for now :rolleyes:
    Thank you though, I'm sure your posts will be of some use in the future.