|
Thread: Comments for: "Real men program in C"
|
|
|
|
Replies:
47
-
Pages:
4
[
1
2
3
4
| Next
]
-
Last Post:
Nov 16, 2009 10:54 AM
Last Post By: Lundin
|
|
|
Posts:
2
Registered:
08/02/09
|
|
|
|
Comments for: "Real men program in C"
Posted:
Aug 2, 2009 6:51 AM
|
|
|
Read the article here: Real men program in C
|
|
|
Posts:
2
Registered:
08/02/09
|
|
|
|
Re: Comments for: "Real men program in C"
Posted:
Aug 2, 2009 6:51 AM
in response to: Caprica
|
|
|
|
Im a second year comp-sci student at the University of Waikato (New Zealand), and I personally love programming in C. Currently looking at linux kernel source code with a hope of being able to make some useful contributions. I have done some assembly in a paper last semester (final assignment was to implement a preemptive multi-tasking kernel in assembly (for a computer designed at the Uni)). Im also planing on buying an embeded computer at some point with the intention of writing some (semi) useful software on in both C and whatever assembly language it takes. Im not sure how to get other students intersted in lower level programming. I guess I just like a challenge and hate Java's verbosity and its over-protectivness it prevents truly learning what the language is doing.
|
|
|
Posts:
2
Registered:
12/11/08
|
|
|
|
Re: Comments for: "Real men program in C"
Posted:
Aug 2, 2009 11:19 PM
in response to: Caprica
|
|
|
|
I remember having to program some Intel chips in C while I was in school getting getting my EE degree. We pointed out to the prof that our sole software class (intro to software) used Java. He kind of laughed and said "teach yourselves c, you're EE majors!" It always seemed like there was a rift between the EE profs and the software profs. Some of the EE profs had an elitist complex and refused to even acknowledge software was an "engineering" discipline, it was something beneath them. I don't know if it is like this in other schools but I think this is part of the problem that leads to self taught EEs with varying unconventional styles coming out of school. So, the solution... have the software profs and EE profs sit down for a beer with Obama and some real world embedded coders, maybe you can leave Obama out.
|
|
|
Posts:
13
Registered:
07/18/08
|
|
|
|
Re: Comments for: "Real men program in C"
Posted:
Aug 3, 2009 1:36 AM
in response to: Caprica
|
|
|
|
Now I think about it, there was no real EE component to my BSc in CS (with maths). I did have one half unit if Logic Design, but it didn't count to the degree, it was just a extra we did for fun. All I knew about electronics came from high school physics classes.
I did real embedded work for several years before encountering an ADC or DAC, so to me, the rest of the board was just "turn it on, turn it off". It seems all the embedded folks I met were EE majors, or apprenticed electronics guys, I was the oddball.
Offering embedded degrees would not help, as no one would know to take them. Most of us know programming goes with computers. Some know electronics is made up of resistors, capacitors and diodes. But before we get to university we don't know embedded even exists, so how would we know to study it?
At least I know now I am a real man.
|
|
|
Posts:
22
Registered:
02/07/08
|
|
|
|
Re: Comments for: "Real men program in C"
Posted:
Aug 3, 2009 7:44 AM
in response to: Caprica
|
|
|
Hi,
10 years ago real men and women programmed in Assembly now they program in C. I'm, among other things, TA for an embedded systems introductory course in cooperation with CMU. For students who attend this course prior knowledge of Java is considered harmful!
Just for the fun of it you might as well want to have a look at what Linus Torvalds thinks about C and C++: http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918
Regards,
Robert
Robert Berger
Embedded Software Specialist
Reliable Embedded Systems
Consulting Training Engineering
Tel.: (+30) 697 593 3428
Fax.:(+30) 210 684 7881
URL: http://www.reliableembeddedsystems.com
|
|
|
Posts:
10
Registered:
08/03/09
|
|
|
|
Re: Comments for: "Real men program in C"
Posted:
Aug 3, 2009 1:27 PM
in response to: Caprica
|
|
|
|
Being unemployed and looking for a job I am amused at all the "embedded" jobs that require Java, C# and scripting languages. Are they really doing embedded work? To me embedded work requires knowledge of the hardware and how the software interacts with it and assembly and C are the only two languages I have found that do that in a fairly deterministic way. Unless I am missing something, all the rest are just kidding themselves.
|
|
|
Posts:
7
Registered:
05/28/09
|
|
|
|
Re: Comments for: "Real men program in C"
Posted:
Aug 4, 2009 1:02 AM
in response to: Caprica
|
|
|
Maybe that should be "Real old men program in C"
Anybody suffering from the delusion that C is the only viable 'high-level' language for embedded development should have a good hard look at Oberon-07.
http://www.inf.ethz.ch/personal/wirth/Articles/Oberon.html
It is as powerful, if not more so, than C but is much less prone to human error.
Chris Burrows
Development Manager
CFB Software
Armaide v2.1: ARM Oberon-07 Development System
http://www.cfbsoftware.com/armaide.htm
|
|
|
Posts:
11
Registered:
12/05/08
|
|
|
|
Re: Comments for: "Real men program in C"
Posted:
Aug 4, 2009 11:13 AM
in response to: Caprica
|
|
|
|
I used assembler for pretty much all my Motorola (Freescale, for you young folks), Microchip and Atmel microcontroller projects. Once C compilers with decent IDE's became available, I never used assembler again, and quite honestly, I'm not sure I could at this point! I also use to use BASIC for PC programming, and I;ve forgotten most of that, too. For "real" embedded design (by "real", I mean designs where it's not a PC in a box, but the hardware is more-or-less invisible to the user)C seems to be a very good blend of high-level abstraction with the low-level bit manipulation.
However, I think that the reason C has hung on so long is exemplified (in a sort of backwards fashion) in the post by cfbsoftware: Oberon-07 might be the greatest thing since sliced bread, but if it's not available for the hardware I use, it's a non-player. C is available for pretty much everything nowadays, and those who program for systems that need to be able to manipulate the internal registers & peripherals that modern microcontrollers have will continue to use it for a long time.
Just as a side note: the link for the armaide 2.1 should be:
http://www.cfbsoftware.com/armaide/armaide.aspx
|
|
|
Posts:
4
Registered:
08/03/09
|
|
|
|
Re: Comments for: "Real men program in C"
Posted:
Aug 4, 2009 4:24 PM
in response to: Caprica
|
|
|
|
Figure 1 of this article makes it look like C++ is a minor player in the embedded arena. Has anyone (besides DaveArmour and me) been watching the help wanted ads lately? At least 90% of them are looking for C++ (with some JAVA and C#). And they generally mean 2+ years of professional experience. For RTOS, they generally want Wince (sometimes embedded XP or Vista ???) or embedded Linux.
I think what I see happening is that CS programs are turning out lots of people who know these technologies and the companies figure they can leverage that knowledge by using big, fast chips. They don't care (or maybe don't understand) that none of these technologies are appropriate for high-reliability embedded and/or real-time systems. A classic case of "if the only tool you can find is a hammer, then every problem is a nail."
And, since companies are hiring people with C++ and Windows, that's what the schools are turning out. In this case, if all the problems are nails, all you need to provide are hammers.
Truthfully, I'm starting to feel a little obsolete: I've studied C++ but never used it professionally and, the more I study it, the less I think it appropriate for embedded use. It's not just that it is expensive in terms of resources, it encourages you to do too many risky things. It's bad enough that you can do things like dynamic allocation and recursion in C but, in C++, the language will do it without your ever realizing it, unless you know what its doing behind the scenes (and most people don't; they wouldn't look at the assembly-level output if their project depended on it). And, as Torvald pointed out, if you restrict all the risky behavior, you might better use C and be done with it.
By the way, I still keep my hand in at the assembly-language level. Most of the projects I work with use that for initialization code, if nothing else (although I see some compilers providing that code in C now) and I always do my debugging in mixed-mode so I can tell if the compiler does something unexpected (traditionally, that's been a lack of understanding on my part but I've seen more actual compiler bugs in the past decade than I had in the two decades prior, although that's still only 4 or 5). The only other language I've ever used for real-time systems was Fortran and I haven't used that in about a decade.
|
|
|
Posts:
7
Registered:
05/28/09
|
|
|
|
Re: Comments for: "Real men program in C"
Posted:
Aug 4, 2009 8:53 PM
in response to: NevadaDave
|
|
|
NevadaDave is obviously correct when he says that "if it's not available for the hardware I use, it's a non-player". It is early days yet for Oberon-07 - as far as I know Armaide was the first commercial implementation. However, other activities are already well under way e.g. apart from several different ARM implementations in use, I know of a Russian group working on an implementation for AVR.
I'm not so sure about the emphasis of the comment "those who program for systems that need to be able to manipulate the internal registers & peripherals that modern microcontrollers have will continue to use it for a long time", "it" being C. Microcontroller implementations of Oberon-07 also have equivalent capabilities. Typically they are non-portable microcontroller-specific capabilities so are normally provided in the form of a "SYSTEM" pseudo-module to make it easy to distinguish between portable / non-portable sections of code.
P.S. Thanks for correcting my URL, NevadaDave - how embarrassing
Chris Burrows
CFB Software
http://www.cfbsoftware.com/armaide
(without the .htm!)
|
|
|
Posts:
33
Registered:
09/22/08
|
|
|
|
Re: Comments for: "Real men program in C"
Posted:
Aug 6, 2009 1:39 AM
in response to: Caprica
|
|
|
|
Can see where DaveArmour is coming from because when I think about embedded I usually am thinking small systems tightly coupled to the hardware. Because that is what we mostly do.
However Windows Embedded is another thrust where full on PCs are deployed as Internet Appliances. For these devices C# and other higher level languages make a lot of sense.
And then there are all the Linux and RTOS based systems. The world is changing.
Where I work, we develop embedded systems almost exclusively in C. This covers 8 bit processors like the Atmel AVR and up through 16 bit processors like the MSP430.
The various ARM derivatives are 32bit processors also coded in C though I can see some merit in C++ for these.
Our primary focus is design for low cost electronics manufacture and we execute both the embedded software side and the electronics hardware side. Done this way we can deliver substantial cost savings or improve performance by the choice of what is done in hardware and what is done in software. And of course, how it is done.
The one exception at the moment to coding everything in C is with the Cinterion modules, http://www.cinterion.com , using Java Embedded with the Micro Kernel achitecture. These are mobile IP devices where the kernel is probably in C but the application is executed as Java out of FLASH.
In general, executing functions in software saves on electronics manufacturing cost provided it doesn't end up too processor intensive.
I got started in embedded C due to circumstances. I was an analogue hardware engineer and I took a job with a company that needed a C programmer. They made it pretty simple. Either I was able to code in C when I started or the job went to someone else. 2 books and 5 weeks later I was able to do that. There was a lot I didn't know but I was able to start.
Although this was forced upon me I am very appreciative because 21 years later I am a very proficient and productive embedded software developer.
Thanks again for showing the survey data. It seems I'll be employable for the forseeable future.
Ray Keefe
http://www.successful.com.au
|
|
|
Posts:
17
Registered:
07/10/09
|
|
|
|
Re: Comments for: "Real men program in C"
Posted:
Aug 6, 2009 3:00 AM
in response to: Caprica
|
|
|
|
Great article. C is certainly the language for embedded systems programming. Oberon is great, but still at its beginning stage. The statistics of percentage of embedded developers in C is encouraging, but we have to see how much of those development is really a "new development". Since most of the RTOS and drivers are written in C, modifying it would also contribute to that data. While C is certainly the king of embedded programming languages, we need to look at whether it would be in the future too.
http://sunnyeves.blogspot.com/
|
|
|
Posts:
2
Registered:
08/06/09
|
|
|
|
Re: Comments for: "Real men program in C"
Posted:
Aug 6, 2009 3:37 AM
in response to: Caprica
|
|
|
|
Don't be too quick to dismiss very high level languages for embedded work. I design instruments for NASA, and our group codes the firmware in a mixture of C and assembly. But when I'm designing a board, I have to write code in visual basic to glue my various EDA tools together, I build very complex models in several different environments, we distribute the test data through java applets on the team web page, and we analyze the data in either IDL or Igor. Embedded isn't just about the microcontroller. When hiring a software guy, I score about 30% on their C skills, 40% on being able to pick and use the best language to solve today's crisis, and the rest divided between their bit-flipping and communication skills.
|
|
|
Posts:
1
Registered:
02/17/09
|
|
|
|
Re: Comments for: "Real men program in C"
Posted:
Aug 6, 2009 12:00 PM
in response to: Caprica
|
|
|
|
From a somewhat specialized perspective (EDA), it is difficult to see C/C++ replaced soon for heavy-lifting applications. There is unquestionably high popularity for languages a level above C (I myself am a Perl fan and would hate to be forced into C unless absolutely necessary). But I observe there is considerable fragmentation above the C/C++ level - Perl, Ruby, Python, Java, ... Java is perhaps the most established of these meta-languages, and already making inroads in handset applications, and I could forsee a day when JREs are successfully implemented directly in hardware (attempt have already been made, but I am unaware of any being wild successes)
While each of these meta-languages has value, I think a dominant standard has to emerge, with equivalent performance across a broad range of applications for C/C++ to be superceded
|
|
|
Posts:
10
Registered:
05/01/08
|
|
|
|
Re: Comments for: "Real men program in C"
Posted:
Aug 6, 2009 12:06 PM
in response to: Caprica
|
|
|
ishkabbible,
Do you work in Florida's Space Coast area? Just curious since that's where I am.
|
|
|
|
|
|
|