Thread: [Dev-C++] Opinion about IDE Develpment Tools for EE
Open Source C & C++ IDE for Windows
Brought to you by:
claplace
|
From: André M. B. <and...@su...> - 2008-03-29 14:43:13
|
Dear Users,
The EE(Electrical Engineering) course where I
work has, between other disciplines, four 1-year
Computer Program disciplines.
The "most close" disciplines to a computer are:
Microprocessors, and Digital Electronics, and
Reconfigurable Computing.
The main goal of the 4-disciplines is to able
the student to develop applications in the computer
to manage external systems through USB, serial and
parallel ports. Being capable of do this, apps like
robot arms, wire & wireless communications, etc are
implemented (the other disciplines take care of the
remaining topics).
In this context the present-day situation is:
1st year: algorithms and basic programming with
Dos/Console;
2nd year: intermidiate programming with Dos/Console;
3rd year: Basic & Intermediate Windows Apps, basics
of computer architecture, programming through
paralell & serial port;
4th year: Full systems with Windows Apps and programming
through USB port.
To provide a compatible learning, we decided to teach
ANSI-C programming because this same type of code can be
used in some microcontrollers (Microprocessors discipline)
and the C2H (C To Hardware) tool in Reconfigurable
Computing.
We thought in the following way: there aren´t other
disciplines like Software Engineering (to teach UML), Data
Structures (... no comments!) and Systems Project & Analysis.
Because of this, it was decided only to provide a basic
learning of how to create a class, how to instanciate it and
how to re-utilize it.
Because of this scenario I consider very difficult to work
with the students with Visual C++ (MFC... etc).
------xxx------
I present to you this scenario because of the following:
In the early 80´s, the old 2-diskettes Turbo C was used in
EE to develop a lot of systems. BCC (Borland C++) v5&6 provides
a way to the EE student to develop systems without the formal
need to work in OO. I think most of this is devoted to the
Component Based Programming style. Inside each one of the functions
the ANSI-C is used. Minimal VCL (Virtual Component Library) is
used (example: fscanf vs LoadFromFile). Not only in this EE course
but in a lot of others, I found this technical behavior (to
prefer the BCC tool). But BCC is stopped and it is necessary to
migrate to another IDE and, perhaps another way of discipline
structuring.
------xxx------
I know you guys like to talk a lot more than Dev-Cpp here
and, if you are interested to talk about this, here are my
questions:
a) In the showed scenario how would you struct the
4-year disciplines?
b) With your changed (a) scenario, what IDE do you
recommend?
c) Without changing the showed scenario, do you
know any other tool that does the same work of BCC?
d) Am I wrong about MSVC? Can I do the same Component Based
Programming using ANSI-C in the most parts of the code?
Thank you, people!
Regards
Andre
No virus found in this outgoing message.
Checked by AVG.
Version: 7.5.519 / Virus Database: 269.22.1/1348 - Release Date: 28/3/2008
10:58
|
|
From: Michal M. <mi...@mo...> - 2008-03-30 03:05:02
|
André Macário Barros napsal(a): > ------xxx------ > > I present to you this scenario because of the following: > In the early 80´s, the old 2-diskettes Turbo C was used in > EE to develop a lot of systems. BCC (Borland C++) v5&6 provides Do you mean Borland C++ Builder 5 & 6 ? Borland C++ was name for a completely different product. > a way to the EE student to develop systems without the formal > need to work in OO. I think most of this is devoted to the > Component Based Programming style. Inside each one of the functions > the ANSI-C is used. Minimal VCL (Virtual Component Library) is > used (example: fscanf vs LoadFromFile). Not only in this EE course > but in a lot of others, I found this technical behavior (to > prefer the BCC tool). But BCC is stopped and it is necessary to > migrate to another IDE and, perhaps another way of discipline > structuring. What do you mean stopped? C++ Builder has new version nearly each year, latest to be found at: http://www.codegear.com/products/cppbuilder > > ------xxx------ > > I know you guys like to talk a lot more than Dev-Cpp here > and, if you are interested to talk about this, here are my > questions: > a) In the showed scenario how would you struct the > 4-year disciplines? If I haven't to stick with ANSI-C, I would probably go with .Net/C#, but I understand your motivation. However the problem is that nobody uses ANSI-C for GUI development, nor there is pure ANSI-C IDE for GUI applications. > b) With your changed (a) scenario, what IDE do you > recommend? MSVC or SharpDevelop > c) Without changing the showed scenario, do you > know any other tool that does the same work of BCC? BCC :-) > d) Am I wrong about MSVC? Can I do the same Component Based > Programming using ANSI-C in the most parts of the code? I don't see big difference between MFC and VCL. On the other hand, I don't think MSVC will ever have MFC-based GUI builder comparable to BCC. |
|
From: Per W. <pw...@ia...> - 2008-03-30 06:58:52
|
On Sun, 30 Mar 2008, Michal Molhanec wrote: > André Macário Barros napsal(a): > > ------xxx------ > > > > I present to you this scenario because of the following: > > In the early 80´s, the old 2-diskettes Turbo C was used in > > EE to develop a lot of systems. BCC (Borland C++) v5&6 provides > > Do you mean Borland C++ Builder 5 & 6 ? Borland C++ was name for a > completely different product. No, I really think he means the original Borland C++, i.e. the successor to the Turbo C/C++ since the courses spends a large amount of time on development of command-line tools. Builder puts it's weight on development of GUI applications. Just a note: The original Borland compiler and the Turbo Debugger are still available. They have been bought by a different company, and are sold as Paradigm C++ Professional, and are targeted for development for x86 embedded platforms. With the Paradigm linker, it is ossible map code blocks to specific memory regions. With the Paradigm debugger, it is possible to use the serial port or JTAG to debug an x86 target. > > > a way to the EE student to develop systems without the formal > > need to work in OO. I think most of this is devoted to the > > Component Based Programming style. Inside each one of the functions > > the ANSI-C is used. Minimal VCL (Virtual Component Library) is > > used (example: fscanf vs LoadFromFile). Not only in this EE course > > but in a lot of others, I found this technical behavior (to > > prefer the BCC tool). But BCC is stopped and it is necessary to > > migrate to another IDE and, perhaps another way of discipline > > structuring. > > What do you mean stopped? C++ Builder has new version nearly each year, > latest to be found at: http://www.codegear.com/products/cppbuilder > > > > > ------xxx------ > > > > I know you guys like to talk a lot more than Dev-Cpp here > > and, if you are interested to talk about this, here are my > > questions: > > a) In the showed scenario how would you struct the > > 4-year disciplines? > > If I haven't to stick with ANSI-C, I would probably go with .Net/C#, but > I understand your motivation. However the problem is that nobody uses > ANSI-C for GUI development, nor there is pure ANSI-C IDE for GUI > applications. .Net/C# are not suitable tools when the students are expected to develop embedded applications. How many microcontrollers do you think have a .NET support library? The processor may possibly have 1kB .. 512kB of program memory, and 16 byte .. 64kB of RAM. Learning to program in C for the embedded side and in C# for the Windows side may help the students to learn multiple languages which later helps them learn a third or a fourth programming language. However, that is the cs way of doing things. It may loose the studens a lot of time that they may need better for their embedded work. Going C++ for the PC side has the advantage that it is more similar to C, and as the high-end microcontrollers gets more powerful, more and more development tools will support C++. Remember that C++ was originally developed with C compatibility as a primary cornerstone. The latest C standard means that C is no longer a strict subset of C++, but close enough. The important thing is that you can take a C program, and bit by bit rewrite it into a full C++ program. Anyway, I feel that OO programming is important. People may not get the code reusability that they initially expect, but it is my experience that the additional encapsulation helps to reduce the maintenance costs significantly. And as long as the microcontroller has a real stack and registers capable of real pointer operations, it is possible to write "C programs with objects", without significantly change the memory requirements or the running speed of the embedded application. You skip any C++ libraries, templates etc but at least makes use of the C++ classes for abstraction. > > > b) With your changed (a) scenario, what IDE do you > > recommend? > > MSVC or SharpDevelop > > > c) Without changing the showed scenario, do you > > know any other tool that does the same work of BCC? > > BCC :-) > > > d) Am I wrong about MSVC? Can I do the same Component Based > > Programming using ANSI-C in the most parts of the code? > > I don't see big difference between MFC and VCL. On the other hand, I > don't think MSVC will ever have MFC-based GUI builder comparable to BCC. > > ------------------------------------------------------------------------- |
|
From: Michal M. <mi...@mo...> - 2008-03-30 10:00:08
|
Per Westermark napsal(a): > On Sun, 30 Mar 2008, Michal Molhanec wrote: > >> André Macário Barros napsal(a): >>> ------xxx------ >>> >>> I present to you this scenario because of the following: >>> In the early 80´s, the old 2-diskettes Turbo C was used in >>> EE to develop a lot of systems. BCC (Borland C++) v5&6 provides >> Do you mean Borland C++ Builder 5 & 6 ? Borland C++ was name for a >> completely different product. > > No, I really think he means the original Borland C++, i.e. the successor > to the Turbo C/C++ since the courses spends a large amount of time on > development of command-line tools. Builder puts it's weight on > development of GUI applications. But André mentions that they are using VCL. So it must be Borland C++ Builder because original Borland C++ does not support it, just OWL and MFC. Also Borland C++ 6 doesn't exists, last was 5.5. Also two of those four years they are teaching windows apps. >>> and, if you are interested to talk about this, here are my >>> questions: >>> a) In the showed scenario how would you struct the >>> 4-year disciplines? >> If I haven't to stick with ANSI-C, I would probably go with .Net/C#, but >> I understand your motivation. However the problem is that nobody uses >> ANSI-C for GUI development, nor there is pure ANSI-C IDE for GUI >> applications. > > .Net/C# are not suitable tools when the students are expected to develop > embedded applications. How many microcontrollers do you think have a .NET > support library? The processor may possibly have 1kB .. 512kB of program > memory, and 16 byte .. 64kB of RAM. yes, but as I understand the course description the target of it is to write standard PC apps which will through USB or another port comunicate with external systems |
|
From: Per W. <pw...@ia...> - 2008-03-30 13:39:25
|
On Sun, 30 Mar 2008, Michal Molhanec wrote: > Per Westermark napsal(a): > > On Sun, 30 Mar 2008, Michal Molhanec wrote: > > > >> André Macário Barros napsal(a): > >>> ------xxx------ > >>> > >>> I present to you this scenario because of the following: > >>> In the early 80´s, the old 2-diskettes Turbo C was used in > >>> EE to develop a lot of systems. BCC (Borland C++) v5&6 provides > >> Do you mean Borland C++ Builder 5 & 6 ? Borland C++ was name for a > >> completely different product. > > > > No, I really think he means the original Borland C++, i.e. the successor > > to the Turbo C/C++ since the courses spends a large amount of time on > > development of command-line tools. Builder puts it's weight on > > development of GUI applications. > > But André mentions that they are using VCL. So it must be Borland C++ > Builder because original Borland C++ does not support it, just OWL and > MFC. Also Borland C++ 6 doesn't exists, last was 5.5. You might be correct. It was quite a long time since I dropped the Borland compilers, and went for Watcom, M$, gcc besides embedded compilers. I did some work with OWL before switching to MFC. > > Also two of those four years they are teaching windows apps. > > >>> and, if you are interested to talk about this, here are my > >>> questions: > >>> a) In the showed scenario how would you struct the > >>> 4-year disciplines? > >> If I haven't to stick with ANSI-C, I would probably go with .Net/C#, but > >> I understand your motivation. However the problem is that nobody uses > >> ANSI-C for GUI development, nor there is pure ANSI-C IDE for GUI > >> applications. > > > > .Net/C# are not suitable tools when the students are expected to develop > > embedded applications. How many microcontrollers do you think have a .NET > > support library? The processor may possibly have 1kB .. 512kB of program > > memory, and 16 byte .. 64kB of RAM. > > yes, but as I understand the course description the target of it is to > write standard PC apps which will through USB or another port comunicate > with external systems > Yes. But C++ means that they continue to build on their existing knowledge, and that any programming improvements they make can to some part be "moved back" to embedded programming. If the goal is the CS route, then they should learn quite a number of languaes - procedural, functional, parallell, ... By knowing a large number of languages, you can quickly pick up speed with yet more languages. On the other hand, it may take somewhile to be even decent in any language at all. I don't want people who are just so-so with a language to write the OS or the hardware drivers for a computer I'm going to use. Remember that graphical applications are no longer limited to PC machines. You have mobile phones, PDAs, digital books, ... M$ very much wants to corner the market - or actually all markets - but we are not there yet. Not everyone want to pay the license for an embedded Windows installation just because they have built a new copier with touch screen. /pwm |