Find the answer to your Linux question:
Results 1 to 5 of 5
Okay, I really don't want to be the beginning of an endless argument about which is better, all I'm asking for is a couple of up and downsides about each ...
  1. #1
    Just Joined!
    Join Date
    Dec 2008
    Posts
    35

    HLA or C++ ?

    Okay, I really don't want to be the beginning of an endless argument about which is better, all I'm asking for is a couple of up and downsides about each language.

    I'm really wanting to learn something that is a lot closely related to machines that I'm using at the time so maybe I can have more control over how to work or something that is going to give me a really good challenge.
    All I have done when it comes to programming is Visual Basic .NET, Python, PHP and MySQL a little but I think I'm more of a "down-to-earth" person rather than being up in the clouds of the internet and I really want to learn something that I can be a good programmer with if I put in the time and for that, I need something that interests me which both of these interest me more than any other languages.

    So I was wondering if anybody could tell me some good up/downsides to learning High Level Assembly and C++ and if possible or anybody knows of a good resource, where I could find a good tutorial or some type of documentation for HLA.

    But I will be working under a Linux enviroment probably all the time. I'm currently on Ubuntu 9.10 but thinking about going over to something a bit different. Would either of these languages be of any use to me?

    Sorry if this is a little bit of an inappropriate question to ask here. This was the best forum I could think of coming to.

  2. #2
    Linux Enthusiast meton_magis's Avatar
    Join Date
    Oct 2006
    Location
    arizona
    Posts
    665
    I say that one upside is that C++ will probably be a LOT easier to get help with. I've never heard of HLA before, and had to wikipedia it to figure out what you meant. But C and C++ are probably in the Top 5 used languages (a guess, but most people I know who are *nix guys who program a lot know 3 languages, one of C, C++, or Java (or low level language), Perl, PHP, Python, or Ruby (heavy duty scripters) and bash or Csh scripting (your control scripting languages.)

    Since Unix (and Linux) are soo heavily C oriented, I'd say it is a LOT easier to find supporting libraries for C and C++ to work with on linux.

    I am a C++ programmer, so do recognize my answer is probably biased towards that, but I chose C++ over other languages because it has better support on linux that many other low level languages. Java is much better now then it was then, at the time it was still proprietary software.
    New to the internet, technical forums, or the hacker / open source community??
    Read this to learn good posting habits http://www.catb.org/~esr/faqs/smart-questions.html

    RHCE for RHEL version 5
    RHCT for RHEL version 4

  3. #3
    Just Joined!
    Join Date
    Dec 2008
    Posts
    35
    Yeah, I don't mind answers being biased at all though as it helps me understand the choices a lot more when people state an upside or a downside.
    I appreciate your feedback on this question a lot though and would like to thank you for taking the time to answer it.
    What I would like my overall target achievement to be is that I'm good enough in these type of languages so I can spend a little time help develop stuff in the open source communities so I think I will go for C++ seeing as its newer than C and has more related to it.

    Does any open-source community have any requirements for HLA programmers though, does anyone know?

  4. #4
    Linux Engineer rcgreen's Avatar
    Join Date
    May 2006
    Location
    the hills
    Posts
    1,114
    I assume you are referring to Randall Hyde's HLA

    Art of Assembly Language Programming and HLA by Randall Hyde

    I downloaded his book and found it fascinating. HLA is probably at a
    level of abstraction somewhere between C and straight assembly.
    Think of it as assembly with libraries. I am not a programmer, so I can't
    say how much linux software is written in HLA.

  5. #5
    Trusted Penguin Cabhan's Avatar
    Join Date
    Jan 2005
    Location
    Seattle, WA, USA
    Posts
    3,230
    So I've never heard of HLA before. Therefore, I can't really say much on the subject.

    I will say that learning C or C++ will be a great investment. C is the most common language used in *nix development, and C++ can do anything that C can do and also introduces object-oriented programming, which is used by pretty much every other popular language these days (and is great to learn). I personally don't love C++ because of some weird behind-the-scenes stuff that it does, but it is a good language to learn.

    As for assembly, one of my professors once told me that every programmer should write an assembly program once in their lives. Assembly is a great thing to understand, and a terrible thing to have to write. These days, you pretty much only see assembly if you're doing driver, OS, or compiler development, but even these use C very heavily, with assembly mostly for optimizations.

    When I learned assembly, I started with MIPS, which is a popular teaching language for assembly because it is a RISC instruction set (this means that instructions are simple to understand and generally uncomplicated). As for assembly languages that are actually used, x86 is of course the most popular, but as it is a CISC instruction set (the opposite of RISC), it does some weird stuff that doesn't always make sense from a modern programmer's perspective.

    I definitely believe that you should learn assembly at some point, but you will find it far more useful in the short term (and the long term as well) to learn C or C++. Not to mention that knowing C makes learning assembly a bit simpler, as you understand pointers and a bit about memory management.
    DISTRO=Arch
    Registered Linux User #388732

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
...