Results 1 to 9 of 9

Thread: Systems Programming, languages to learn?

  1. #1
    Join Date
    Jan 2011
    Location
    Abandoned Warehouse
    Beans
    52
    Distro
    Ubuntu 11.04 Natty Narwhal

    Systems Programming, languages to learn?

    Hey everyone,

    Now you have just read the title and are about to comment with "Use C or ASM you n00b" And thats fine, just shows how mature you are.

    So I really want to start some systems programming but obviously its not that easy to start with so I want to find a suitable language to learn for this task. Yes C and ASM are the mains, but are their others? I know that Linux Modules are written in C, correct? So I have started that, but I want to expand to other aspects of SysCoding.

    Thanks in advance.

    GeissT

  2. #2
    Join Date
    Nov 2009
    Beans
    1,081

    Re: Systems Programming, languages to learn?

    The Linux kernel, including modules, are written in ordinary C. If you're talking about operating systems, device drivers and the like -- C will be your best bet. Direct access to memory addresses is rather useful for efficiently sharing the same data between threads and processes (e.g. for communicating with various bits of hardware). C also tends to have fewer binary incompatibility issues than, say, C++.

    That's not to say that other languages haven't been used... but just not as widely, at least for standard desktop hardware. For other ecologies like mobile where you aren't likely to be expected to provide compatibility with a large and diverse ecology of ancient devices... e.g there's Objective C in iOS land, and the related-to-Java Android universe.

  3. #3
    Join Date
    Jan 2011
    Location
    Abandoned Warehouse
    Beans
    52
    Distro
    Ubuntu 11.04 Natty Narwhal

    Re: Systems Programming, languages to learn?

    Thanks for your informative post.

    C seems to be my best bet hey? Ive seen others describe Pascal as another candidate, could this be a possibility?

    Thanks in advance,

    GeissT

  4. #4
    Join Date
    Apr 2009
    Location
    Germany
    Beans
    2,134
    Distro
    Ubuntu Development Release

    Re: Systems Programming, languages to learn?

    have a look at go:
    Go is an expressive, concurrent, garbage-collected systems programming language.
    http://code.google.com/p/go/

    it is also included in gcc 4.6
    http://gcc.gnu.org/gcc-4.6/changes.html#go

  5. #5
    Join Date
    Apr 2007
    Location
    (X,Y,Z) = (0,0,0)
    Beans
    3,715

    Re: Systems Programming, languages to learn?

    If you are really really brave, you might look at Forth It's quite low-level, quite powerful, but a rough beast to tame. It's sometimes used in embedded systems because of its low memory requirements.

  6. #6
    Join Date
    Feb 2010
    Location
    Sweden
    Beans
    227
    Distro
    Ubuntu

    Re: Systems Programming, languages to learn?

    There is always the minimal Brain**** you could try

  7. #7
    Join Date
    Sep 2009
    Location
    England, UK
    Beans
    189
    Distro
    Xubuntu

    Re: Systems Programming, languages to learn?

    I would suggest C as well, although I've used Ada before in real-time systems and embedded programming. Which takes influence from Pascal and a couple of other languages (smalltalk).
    Last edited by deathadder; April 11th, 2011 at 03:38 PM.

  8. #8
    Join Date
    Jan 2011
    Location
    Abandoned Warehouse
    Beans
    52
    Distro
    Ubuntu 11.04 Natty Narwhal

    Re: Systems Programming, languages to learn?

    Thanks to all that responded, I have seen Brain**** before this encounter XD [sarcasm]Looks like i would enjoy it [/sarcasm].

    Go, this is another language that I have 'messed' with before and I just did not like it, I cant seem to pinpoint why, but judging by the rest of the posts I will learn C

    Thanks for all your input.

    GeissT

  9. #9
    Join Date
    Jun 2007
    Location
    Canada
    Beans
    368
    Distro
    Ubuntu 9.04 Jaunty Jackalope

    Re: Systems Programming, languages to learn?

    "Systems programming" is typically pretty low-level stuff, so as you said in your first post, C and the assembly language for your CPU of choice are your best bets.

    Depending on the type of system you're working with you may or may not even need any assembler. Writing Linux modules for a desktop will probably be entirely in C. On the other hand, if you want to create your own OS for an 8-bit microcontroller then you will probably need some inline assembly here and there.

    Also, Haiku, unlike Linux, is written in C++, not C. So again, the type of system you want to write for will impact your choice of language a great deal.
    GCS/O d+(-@) s: a-->? C(++) UL P+ L+++@ E@
    W++$ N++ !o K++ w(++) !O M(-) !V PS+(++)
    PE-() Y+ PGP++ t++(+++@)* 5++ X++@ R+++@
    tv+ b++(+++) DI++ D+ G+ e++>++++ h- r y?

Bookmarks

Posting Permissions

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