Fog Creek Software
Discussion Board




Shrink-wrap apps built from VB?

Joel has argued that VB doesn't get the respect it deserves as a serious choice for building real apps, and has put his money where his mouth is with CityDesk.  As someone who's trying to choose a development platform for a new win32 project, I'd like to believe his claims (since the alternative is probably c++), but there sure are a lot of horror stories out there from people who tried to deliver real software with VB and eventually switched over to c++.

So are there other success stories?  Has anyone else built a widely-deployed (not just inside your company) application with VB, or even know of one?  Would you do it again?

(We've got a lot of Java experience, and some c++, but only a little VB.)

(And, no, .NET isn't an option this year.  Or next.  And I can't wait for the one after that.)

Mike Dixon
Tuesday, September 03, 2002

Hmm, the question is why NOT use VB?  I thought you were supposed to use the highest-level language possible, then occasionally drop down when you need certain things.

When you write Java, don't you really use Jython or Kawa?

That said, I'm not very acquainted with VB, but I'd research it immediately before others if I were developing for the Great Satan. ;)

corporate java drone
Tuesday, September 03, 2002


  I´d go with Delphi.  Excellent tool.  It has RAD capabilities and a powerful language (ObjectPascal).

  I read lots of times at this forum that nobody uses Delphi , but that´s not true here in Brazil, where Delphi is widely used.

 

Ricardo Antunes da Costa
Tuesday, September 03, 2002

What about Visual FoxPro ?

It can do pretty much anything VB can do but easier.
It can make COM components, web services, web apps, and if you are making a DB app there is no quicker way to do it than with VFP.

We write our application in VFP (it's a Human Resources database application) it includes a Web Interface component using the WebConnect ISAPI dll (www.west-wind.com) as well as a standard Desktop app all connecting to SQL Server.

And anytime there is something you can't do in VFP or need to do better than VFP can do it natively, all you need to do is write a COM component in C++ or even VB.

Chris
Tuesday, September 03, 2002

Well, that about wraps it up.

The next app I write will be in PowerPoint -ready for the big time now.

It has been fun.

Nat Ersoz
Tuesday, September 03, 2002

I used to work for a company that sold, and as far as I know still sells, an ERM package(whatever that is) written entirely in VB. In fact they started writing it in VB3, and developed essentially their own version of COM entirely in VB3, using techniques so perverted that I don't even want to think about them. The app itself now works fine - it did have a very buggy period, but that was more a function of the quality of the programmers, rather than the choice of language.

Anyway, if you use pre .Net C++ for everything, that probably means using MFC, which is slightly less enjoyable than banging your head repeatedly against a brick wall, or chewing broken glass.

Andrew Simmons
Tuesday, September 03, 2002

The real question is - are there any limitations in VB for the functionality that you wish to deliver? If VB can deliver the functionality then you may as well develop in it, its as easy to deploy as anything else. There are many shrink wrapped VB applications out there, if we consider the last 5 years, there are probably more shrink wrapped VB applications than any other language, plus you get the possibly of an easier transition to .NET in the future, if, as will probably happen, .NET takes off.

Tony
Tuesday, September 03, 2002

If we have to consider the best choices except .NET we can choose between VB, MFC & Delphi.
And, yes, Delphi is my choice. The only choice.
Not that VB can not produce good apps. It is just not powerfull enough. And VB programmers tend to be very inexperienced as programmers. In 90% of the cases I have seen a VB app this was proved. The software was garbage nad it even looked like this.
CityDesk is written in VB and this is a proof that decent apps can be written in it, but there are much more apps that show what VBers are capable of.
Many VB programmers after they got more experienced switch to Delphi. And the only reason I heard from a customer of mine why does not he hire only Delphi programmers was that they are more expensive.
'plus you get the possibly of an easier transition to .NET in the future' - that is totally wrong!!!
VB != VB.net just the same way J# != Java
This language interoperabiliry was introduced by MS not because this is a 'Great' thing as they claim but to promote the framework. Major part of the companies made or are going to make a .net version of their language.

  My choice is Delphi for whatever non .net application is necessary. But C# + WinForms is my favoritte as development tool.

Boris Yankov
Tuesday, September 03, 2002

The chess program perfect chessmate is written in vb 3 or at least most of it.

Anonymous
Tuesday, September 03, 2002

Boris, yes,  MS are saying that they dont guarantee the upgrade to .NET.

But I have already converted 3 corporate VB6 applications to .NET, with little difficulty. So, I'm right - probably.
Not everything is simply black and white, all things being equal though it should be easier to convert a VB6 app to .NET than any other language, this is as close to a certainty as we can reasonably expect.

You also seem to be critical of VB developers as if they all have the same skill level. I dont have the energy to get into the tired old criticisms of one language versus another, its all about people, and yes plenty of hacks have written VB applications and Java and C and Basic and C++ and whatever language you care to insert here, the point is if you have quality developers with years of development experience in any current language can a slick, professional, robust, etc VB application be developed?
Of course the answer must be yes.

Tony
Wednesday, September 04, 2002

VB 6 (or .Net) is a fine language for basic data driven business applications.  It is not such a great choice if you want to write graphic intensive or mathematically complex applications.  I guess my answer is that you need to use the right tool for the job.  You should use the language that best fits your needs.

BTW, we have a VB based payroll application at over 500 sites handling every thing from 10 person businesses to 5000 man corporations.


Bored Coder
Wednesday, September 04, 2002

I think the key thing is that VB has its own way of doing things.

If you take a team of experienced coders who use C++ or Java, and give them VB I can see them getting frustrated. 

If you are used to using OO methodologies they I think your best choice is Delphi/C++ builder.  You get the benefits of Rad but you keep your old ways of coding.

If you do go for VB don't go in with the attitude of "We know C++, VB will be easy."  You need to take some time to get to know VB properly.  Read some books, get used to its perculiar ways.

Once you have the hang of VB, theres very little it cannot do.

Ged Byrne
Wednesday, September 04, 2002

"Joel has argued that VB doesn't get the respect it deserves as a serious choice for building real apps, and has put his money where his mouth is with CityDesk."

I believe he also used C++ as well.  Maybe you can provide the URL to the article where he talks about VB's lack of respect?  I remember reading an article he wrote where he mentioned how productive he felt when he used it.

"As someone who's trying to choose a development platform for a new win32 project, I'd like to believe his claims (since the alternative is probably c++), but there sure are a lot of horror stories out there from people who tried to deliver real software with VB and eventually switched over to c++."

Please define what you mean by "real software".  As other posters have mentioned there are a lot of horror stories from people using other programming languages.  I like VB, but I wouldn't try to use it where doing so would be inappropriate. 

Note: since Microsoft announced the .NET platform, the popularity and appeal of using classic VB has been decreasing. 

Charles Kiley
Thursday, September 05, 2002

BTW, what does CItyDesk use as a database?  I always figured that any shrinkwrap VB app would likely use Access, but I see no .mdb files installed in the CityDesk directory...

Norrick
Thursday, September 05, 2002

"I see no .mdb files installed in the CityDesk directory... "

The .cty files are .mdb files. Using .cty as the extention means that double-clicking a .cty file starts up CityDesk (instead of Access).

Access is smart enough to look at the actual file contents and not just be fooled by the extention. Access opens up .cty files just as easily as it opens .mdb files.

jeff
Thursday, September 05, 2002

Aha!  Very slick.

Norrick
Thursday, September 05, 2002

>Not everything is simply black and white, all things being >equal though it should be easier to convert a VB6 app >to .NET than any other language, this is as close to a >certainty as we can reasonably expect.

  When Borland delivers Delphi.NET, and IF it does everything they´re promissing, I think that will be the easier convertion to .NET, because Delphi already uses an OO language ( ObjectPascal ).

Ricardo Antunes da Costa
Thursday, September 05, 2002

"Maybe you can provide the URL to the article where he talks about VB's lack of respect?"

http://www.joelonsoftware.com/articles/fog0000000006.html

"Please define what you mean by 'real software'."

OK, that was gratuitously inflammatory.  I tried to clarify it later: "a widely-deployed (not just inside your company) application", i.e. one that needs to work reliably on a wide range of very differently-configured customer machines.

So far, no one seems to have been able to name an example of what I was looking for (there are a few anonymous references to such programs, but not enough information for me to evaluate them).  And no, Delphi's not interesting to me (the only reason I'm looking for something other than C++ is to get memory management).

Mike Dixon
Friday, September 06, 2002

"Delphi's not interesting to me (the only reason I'm looking for something other than C++ is to get memory management). "

Why is it not interesting to you ? As far as memory management is concerned, Delphi does a reasonably good job...

Sunish
Friday, September 06, 2002

> Why is it not interesting to you ? As far as memory
> management is concerned, Delphi does a reasonably
> good job...

I'm assuming he meant garbage collection.

What Delphi has is deallocation of resources by the owner, when it goes out of scope. However usefu this is, it can't be called a garbage collector.

-----
Suravye ninto manshima taishite ("Peace favors your sword")
Paulo Caetano

Paulo Caetano
Friday, September 06, 2002

Sure, you can use VB to write good shrink-wrap software. But hiring VB programmers who can do it may be difficult. In my experience the pool of VB talent is focused on corporate in-house, database-driven, apps. This is a fine talent, but a different expertise than commercial development which is performance- and feature-driven.

ns
Friday, September 06, 2002

Mike Dixon wrote, "OK, that was gratuitously inflammatory. I tried to clarify it later: "a widely-deployed (not just inside your company) application", i.e. one that needs to work reliably on a wide range of very differently-configured customer machines....

So far, no one seems to have been able to name an example of what I was looking for (there are a few anonymous references to such programs, but not enough information for me to evaluate them). And no, Delphi's not interesting to me (the only reason I'm looking for something other than C++ is to get memory management)."

Mike, I think you might need to ask this question at another forum (DevX or the Microsoft newsgroups).  The most infamous VB application that I can think of is Microsoft Bob (a huge flop).

I know people have used VB to write freeware and shareware apps, third-party controls, and accounting programs (see some of the ads in old issues of VBPJ).  Now having said this, I can't give you the names of any of these programs.  Why?  Because I don't care what programming language(s) the author(s) used to create their software.  Like most end-users, when I buy a software program I only care that the software does what I expect it should do.

Charles Kiley
Saturday, September 07, 2002

>>>++), but there sure are a lot of horror stories out there from people who tried to deliver real software with VB and eventually switched over to c++."

Really? This is new to me. Any examples? I hear more business try to write a program in C++ and fail. The reason for this is that most should be using VB in the first place.


>>>VB 6 (or .Net) is a fine language for basic data driven business applications. It is not such a great choice if you want to write graphic intensive or mathematically complex applications.

Really? Can anyone post a simple routine, or algorithm that will run faster in C++ than VB6?

This kind of stuff always amazes me. No wonder VB gets no respect.

I going to repeat this for anyone who is mentally challenged:

Code only runs faster in C++ due to DESIGN OF THE SOFTRWARE, not that C++ is faster then is VB on a per instruction bases.

Again:

Code only runs faster in C++ due to DESIGN OF THE SOFTRWARE, not that C++ is faster then is VB on a per instruction bases.

If we are talking about a simple loop, or algorithm, then VB6 is going to be the same speed as is VB++ (version 6 also).

Hence, doing math, or some loops to calculate some values...there will be no difference in performance. This kind of myth really does in of its self show that the lack of respect the C++ people have for VB is based much on emotion, and not one of intelligence.

(anyone...feel free to post that calc or routine that runs faster in C++ over VB6).

As mentioned, good designs and good developers will produce quality software in VB, or C++.

In terms of productivity....VB has the upper hand.

In terms of pointers, and some other constructs with memory, C++ will do a better job then VB.

However, C++ does not execute code faster then does VB...it only runs faster due to a different approach, or design.


Albert D. Kallal
Edmonton, Alberta Canada
Kallal@msn.com

Albert D. Kallal
Saturday, September 07, 2002

Okay Al, I'll bite.

I have minimal exposure to VB (being one of the 'mentally challenged' with little respect for it, at least in its previous incarnations), but I was under the impression that VB didn't have pointers. 

If this is the case, how can you reasonably say that VB can execute instructions at the same speed?

Dunno Wair
Monday, September 09, 2002

VB does not have pointers, neither does Java.

But Sun claimed that JVM can be designed such that Java code executes faster than C++ code.

Amour Tan
Monday, September 09, 2002

For f*** sake, give me a break.

Code with pointers =  faster.

Compiled code = faster.

Have these Laws of the Universe been disproved recently?

Dunno Wair
Tuesday, September 10, 2002

*  Recent Topics

*  Fog Creek Home