Sponsored Content
Full Discussion: Is C worth the effort?
Top Forums Programming Is C worth the effort? Post 302905299 by bakunin on Tuesday 10th of June 2014 07:25:16 PM
Old 06-10-2014
Every programming language is an abstraction layer between the bare machine and the human thought process. In some languages this layer is thicker than in others: in Assembler it is very thin (almost nonexistent) and in highly abstracted languages like Oberon it is very thick.

Both these concepts have up- and downsides: the thinner the abstraction layer is the more you are in contact with the real workings of the system. You have more to do and more things to observe but get to utilize the machine to its fullest capacity. The thicker this layer is the less you have to observe and the less you have to know about the real machine as you work against an abstracted (and simplified) concept of the system, but on the other hand the less efficient your code will be. All programming languages are tradeoffs in this respect (and some other areas).

The last 50 years saw a whole lot of programming paradigms: structured programming, object orientation, data-centered programming, and whatnot. Basically, all these paradigms are ways to help the programmer keep his code as organized and understandable (=> maintainable) as possible. There are good reasons to employ any of them and good reasons why to avoid them. For every paradigm i could write a demo program where it looks bad and another where it seems the natural thing to do.

Do the sensible thing: learn to program with an emphasis on algorithms, not on programming methods. It is like with (human) languages: if you know how to organize your thoughts well and how to express what you mean without any margin of error you will be able to transport that capability into any language, regardless how little you speak it. But if you know five different languages but have difficulties phrasing a simple fact your communication attempts will fail in any language.

It is not very popular nowadays, but i even suggest to start learning Assembler before anything else: only knowing in-depth how a system works will let you appreciated what a compiler does for you and knowing how to program in a structured language (C) will make you appreciate what a C++-compiler does in addition to a C-compiler once you switch from C to C++. There is a reason why Donald Knuth (my personal programming hero) developed his own virtual Assembly language for a hypothetical system for his book "The Art of Computer Programming".

I hope this helps.

bakunin
This User Gave Thanks to bakunin For This Post:
 

5 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Is Unix Worth it?

I have been wanting to get much deaper into the world of computers for quite some time. I know a lot of c++, and plenty of website programming, and decided that the next step should be Unix. But here's the thing - I know nothing about Unix. I installed it and everything, but it just seemed like... (3 Replies)
Discussion started by: GuyWithAPen
3 Replies

2. UNIX for Dummies Questions & Answers

What is this system worth?

So my family is cleaning out our house and my dad stumbled on a Unix system with Unigraphix installed on it, and he remembers that it was 1 of 6 computers in a set that he used at a tool and dye machine shop where he worked. He said that the computer by itself with the monitor was $20,000! I was... (8 Replies)
Discussion started by: NVOtosReborn
8 Replies

3. What is on Your Mind?

Is M.Sc (FOSS) worth doing?

Recently while reading an linux magazine I understood that FOSS (Free or open source software) is gaining momentum.. And in my home town there is an reputed university which offers M.Sc online program on FOSS. The course covers: INTRODUCTION TO COMPUTING, PHILOSOPHY AND PRACTICE OF FOSS,... (4 Replies)
Discussion started by: Arun_Linux
4 Replies

4. Linux

Are /home partitions worth it?

I'm new to the Linux world and whilst I've been learning the ropes, I've read some conflicting opinions regarding the creation of separate partitions for /home and other directories during OS install. Some say that having these directories in separate partitions allows you to reinstall without... (12 Replies)
Discussion started by: maerlyngb
12 Replies

5. What is on Your Mind?

Are certifications worth it?

I have just been on RedHat SA 3 training course (4 days) and sat exams EX200 (RHCSA) and EX300 (RHCE) The daft thing was that politics meant I wasn't allowed to take courses SA 1 or 2. So I learnt about stuff I would never use (SELinux; iSCSI; NFS Kerberos encrypted with user specific access... (22 Replies)
Discussion started by: rbatte1
22 Replies
scene_polygon3d(3alleg4)					  Allegro manual					  scene_polygon3d(3alleg4)

NAME
scene_polygon3d, scene_polygon3d_f - Puts a polygon in the scene rendering list. Allegro game programming library. SYNOPSIS
#include <allegro.h> int scene_polygon3d(int type, BITMAP *texture, int vc, V3D *vtx[]); int scene_polygon3d_f(int type, BITMAP *texture, int vc, V3D_f *vtx[]); DESCRIPTION
Puts a polygon in the rendering list. Nothing is really rendered at this moment. Should be called between clear_scene() and render_scene(). Arguments are the same as for polygon3d(), except the bitmap is missing. The one passed to clear_scene() will be used. Unlike polygon3d(), the polygon may be concave or self-intersecting. Shapes that penetrate one another may look OK, but they are not really handled by this code. Note that the texture is stored as a pointer only, and you should keep the actual bitmap around until render_scene(), where it is used. Since the FLAT style is implemented with the low-level hline() function, the FLAT style is subject to DRAW_MODEs. All these modes are valid. Along with the polygon, this mode will be stored for the rendering moment, and also all the other related variables (color_map pointer, pattern pointer, anchor, blender values). The settings of the CPU_MMX and CPU_3DNOW flags of the cpu_capabilities global variable on entry in this routine affect the choice of low- level asm routine that will be used by render_scene() for this polygon. RETURN VALUE
Returns zero on success, or a negative number if it won't be rendered for lack of a rendering routine. SEE ALSO
create_scene(3alleg4), clear_scene(3alleg4), render_scene(3alleg4), destroy_scene(3alleg4), polygon3d(3alleg4), cpu_capabilities(3alleg4), exscn3d(3alleg4) Allegro version 4.4.2 scene_polygon3d(3alleg4)
All times are GMT -4. The time now is 03:11 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy