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 ...
- 01-18-2010 #1Just 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.
- 01-18-2010 #2
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
- 01-18-2010 #3Just 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?
- 01-18-2010 #4
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.
- 01-18-2010 #5
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


Reply With Quote