Microsoft invited to comment on C++
-
>> Where is the increased speed of VB? The key thing that makes the development in VB faster over VC is a new programming paradigm called Component Based Development, or CBD in short. Components in VB are standalone software modules that have two key attributes, called "Property" and "Event". Unlike the VC's C++ class based components, a VB component can be *hooked* to the existing app a lot quicker using these attributes that really drive VB's RAD IDE. Yes, you can visually insert and add event handlers to controls in VC++ too, but that is only limited to controls found in resource-based dialog only, not *any* C++ component. You may need to use 3rd party add-on tool (like RadVC / www.capitolsoft.com) to have that kind of speed in VC++.
Are you talking about inhouse VB modules, 3rd party ones, or both? Adding an ActiveX component to a VC app and setting a variable up for it is not that difficult. The original question was about starting an app from scratch, with database, serial, pretty interface, etc..... From those loose requirements the speed of developing a VC program or a VB one might not be that different. It depends on the developer and their experience with each of those things. Steve Maier, MCSD
-
>> Where is the increased speed of VB? The key thing that makes the development in VB faster over VC is a new programming paradigm called Component Based Development, or CBD in short. Components in VB are standalone software modules that have two key attributes, called "Property" and "Event". Unlike the VC's C++ class based components, a VB component can be *hooked* to the existing app a lot quicker using these attributes that really drive VB's RAD IDE. Yes, you can visually insert and add event handlers to controls in VC++ too, but that is only limited to controls found in resource-based dialog only, not *any* C++ component. You may need to use 3rd party add-on tool (like RadVC / www.capitolsoft.com) to have that kind of speed in VC++.
-
Steve good point :) Senario: I am product manager in charge of developing a new Inhouse system called SystemX SystemX requires database access, serial communications, web access, sexy front ends. SystemX is also a mission critical application. I require this system to be built using OOD, OOP. The highest population of programmers are VB? Do I try and use VB programmers to design and implement the system, is VB the best tool?. I cant use C# (learning curve etc.) VC++ would be the better choice but the timescales are tight. What should I use to develop SystemX? BTW for this exercise assume VS.NET is released. Thoughts please.
Tight timescales does not mean you will have the luxury to have a solid design right off the start. You will probably do even more number of quick small changes. VS.NET release does not immediately mean you will have a lot of VB crowd well-conversant with threads, and a lot of C++ programmers well conversant with typed value management or GC. Given all the context, therefore, I would suggest the following: - Initially, a core C++ team does a rapid VC++ dev, without implementation in COM/ATL. IDLs are written and revised, but actual implementation has only C++ interfaces. Database design is modified frequently as needed, with isolated chunks of quick-and-dirty VB/VBS scipts. Get the database design, middleware to database interface, and serial comm right this way. Team will also have hardware net engineers and database designers (guys who had both admin and stored procs and VB experience) right at this stage. As to desktop GUIs: Quick and dirty GUIs, to be thrown away (yes!, esp. *because* it's a tight schedule) can be built in either VB or in VC++ depending on the relative strengths of the people you have already gotten. (I do agree, VB and VC do not differ in terms of development times, as of today.) - As soon as the dependencies, use-cases, multiplicity, and lifetimes of Big Rock object and database tables become clear (with something already running on actual computers), take the core C++ objects into ATL COMponents. Starting with ATL COM may not meet the schedule as the team gets sucked into the gravity field of Singleton/Not, TearOff vs CachedTearOff, use WTL or not, target ATL 7.0 or not, use smart-ptr or not, etc.; and simply has to manage additinonal debugging due to ATL/COM. (You *could* start with ATL/COM, if the leader is competant and strong and the team is "jells well" together). - COM wrapping (componentization) spells out time for the ASP/DHTML folks to come into picture. Scaleability design reviews with COM+ runtime (MTS/MSMQ) and ISAPI dlls etc. to be done at this stage. Load-balancing review and any necessary server redesigns TBD at this stage. Main security strategies to be finalized at this stage. - From now on, COMponent development assumes normal flow (IDL to C++). Number of COM interfaces will expand at this stage. If you have money, you can create pretty pictures (clouds, pipelines, arrows, etc.) at the end of this stage. Sorry UML, but at least thus far, I have never seen a team that could draw pictures before this stage and also deliever a working system in Internet speed. (Also ha
-
What us VC++ developers it reassurement on the feature of VC++, maybe Chris could ask somebody from the Microsoft Languages Unit to comment on VC++. Lets face it Mike Blasczak left the MFC/VC++ in March 1999, he left the team becase the team and project was being wound down - Is this true. I known B eikM (Mike Blasczak) is now working on the SQL Server team. Microsoft better answer soon or they will lose alot of Windows gurus. The future looks bleak, so Microsoft what have you got to say on the subject?
I'm not sure exactly what you're looking for. Your post is very vague about what you are looking for. Microsoft, and especially the VC program managers have been very busy assuring us that VC++ is very important and will stay around. There are literally dozens of threads right here on Code Project from VC program managers talking about this. But even if they were dropping VC as a product today. So what? There are lots of alternatives. Big deal. It's all nothing to get defensive and insecure about.
-
Steve good point :) Senario: I am product manager in charge of developing a new Inhouse system called SystemX SystemX requires database access, serial communications, web access, sexy front ends. SystemX is also a mission critical application. I require this system to be built using OOD, OOP. The highest population of programmers are VB? Do I try and use VB programmers to design and implement the system, is VB the best tool?. I cant use C# (learning curve etc.) VC++ would be the better choice but the timescales are tight. What should I use to develop SystemX? BTW for this exercise assume VS.NET is released. Thoughts please.
I wouldn't want to seem bias (I'm a VC++ developer), but I've worked on many different projects that include VB code. Every project started ok, and managers were very impressed with fluffy interfaces and the speed at which they were developed. However later on down the line, these VB project were eventually ported to VC (additional cost?) due to a number of reasons: 1) The VB programmers we employed were cheaper than VC developers and the quality of code reflected this - This is NOT a generalisation, it's just what we experienced. 2) Performance - especially when high data volumes are involved (database access). 3) Identifying low-level bugs became a nightmare - VB hides as much complexity as possible, which is good until you need to drill down to find out what's gone wrong. However, not everything's jam and cream with VC - It is absolutely imperative to have a solid framework developed for VC before development begins on a large project. A good experienced VC analyst/developer (expensive?) is required for this. It can also be quite frustrating to project team-leaders/management while this foundation framework is developed. In conclusion, does the project need to done quickly, or correctly?
-
I wouldn't want to seem bias (I'm a VC++ developer), but I've worked on many different projects that include VB code. Every project started ok, and managers were very impressed with fluffy interfaces and the speed at which they were developed. However later on down the line, these VB project were eventually ported to VC (additional cost?) due to a number of reasons: 1) The VB programmers we employed were cheaper than VC developers and the quality of code reflected this - This is NOT a generalisation, it's just what we experienced. 2) Performance - especially when high data volumes are involved (database access). 3) Identifying low-level bugs became a nightmare - VB hides as much complexity as possible, which is good until you need to drill down to find out what's gone wrong. However, not everything's jam and cream with VC - It is absolutely imperative to have a solid framework developed for VC before development begins on a large project. A good experienced VC analyst/developer (expensive?) is required for this. It can also be quite frustrating to project team-leaders/management while this foundation framework is developed. In conclusion, does the project need to done quickly, or correctly?
Very good points Alan. I have also seen things similar to what you are talking about, but also that since VB was used the customer moved the project deadline up because it was just VB and it should be easy to do these things. Oh course they also changed what they wanted constantly too, but that could be a complete other thread to discuss. Steve Maier, MCSD
-
What us VC++ developers it reassurement on the feature of VC++, maybe Chris could ask somebody from the Microsoft Languages Unit to comment on VC++. Lets face it Mike Blasczak left the MFC/VC++ in March 1999, he left the team becase the team and project was being wound down - Is this true. I known B eikM (Mike Blasczak) is now working on the SQL Server team. Microsoft better answer soon or they will lose alot of Windows gurus. The future looks bleak, so Microsoft what have you got to say on the subject?
VC++ isn't dead. MFC isn't dead. ATL isn't dead. C++ developers are very important and strategic customers for Microsoft. We will continue to listen and enhance the C++ product for many years to come. Don't forget that every product Microsoft ships is built with Visual C++, many of which heavily use MFC and/or ATL as well. With that, the CLR and C# are great new tools and should be seriously considered for new application development. They're going to be very useful, even if you also have to use C++ as well. Its just another tool in your arsenal to apply to the appropriate problems. Later, Walter Sullivan Lead Program Manager, ATL/MFC
-
Steve good point :) Senario: I am product manager in charge of developing a new Inhouse system called SystemX SystemX requires database access, serial communications, web access, sexy front ends. SystemX is also a mission critical application. I require this system to be built using OOD, OOP. The highest population of programmers are VB? Do I try and use VB programmers to design and implement the system, is VB the best tool?. I cant use C# (learning curve etc.) VC++ would be the better choice but the timescales are tight. What should I use to develop SystemX? BTW for this exercise assume VS.NET is released. Thoughts please.
Well, based upon what Jeffrey Richter has said - I would do the thing in C#! It took Richter about a week to become familiar with C#. He said the language is easy - that most of his time was spent learning the .NET Framework (this is where the learning curve will be) BTW - if you have much C++ or Java experience, C# is a snap.
-
Steve good point :) Senario: I am product manager in charge of developing a new Inhouse system called SystemX SystemX requires database access, serial communications, web access, sexy front ends. SystemX is also a mission critical application. I require this system to be built using OOD, OOP. The highest population of programmers are VB? Do I try and use VB programmers to design and implement the system, is VB the best tool?. I cant use C# (learning curve etc.) VC++ would be the better choice but the timescales are tight. What should I use to develop SystemX? BTW for this exercise assume VS.NET is released. Thoughts please.
Another language I have had the opportunity to look at and am learning to code with at the moment is Delphi. It has the advantage of being very easy to build gui's. Ie it has the drag and drop an object onto a form capability. I also have full access to the windows API, GDI etc. It has full com access. It is OOP. The syntax is much like pascal. Very similar to most programming languages so the overhead of learning the syntax is minimal. Delphi has the advantage of making a lot of programming tasks that are complicated in VC simpler because Delphi provides wrappers to the API functions. Printing becomes a breeze. Database access is very simple indeed. Delphi comes with an extensive set of controls which make building applications very easy, and produce professional results. I earge you to have a look at it. It surprised me that I had never heard of it before because it is a full fledged language that will allow you to do anything you like. Borland supplies this product.
-
Another language I have had the opportunity to look at and am learning to code with at the moment is Delphi. It has the advantage of being very easy to build gui's. Ie it has the drag and drop an object onto a form capability. I also have full access to the windows API, GDI etc. It has full com access. It is OOP. The syntax is much like pascal. Very similar to most programming languages so the overhead of learning the syntax is minimal. Delphi has the advantage of making a lot of programming tasks that are complicated in VC simpler because Delphi provides wrappers to the API functions. Printing becomes a breeze. Database access is very simple indeed. Delphi comes with an extensive set of controls which make building applications very easy, and produce professional results. I earge you to have a look at it. It surprised me that I had never heard of it before because it is a full fledged language that will allow you to do anything you like. Borland supplies this product.