Solved

The most easily deployable programming language

Posted on 2004-08-15
10
275 Views
Last Modified: 2013-11-22
Hi

I'm looking for a Win32 programming language/environment that doesn't need any library (except the ones I manually create), to run on the client machine. I mean, just if I put the stand-alone EXE on the client machine, and execute it, it'll run flawlessly.

I'm currently using .NET 2002, but for a really small VB.NET application, it needs lots of MBs of libraries to be installed on the client, just a big head-ache. The same with MFC. Perhaps the 2003 version is a bit more deployable? I used to use VB6, which needs just a couple o DLLs, but it's a obsolete language.

I've heard that Borland's Delphi and C++ Builder are what I'm looking for. Is that true?
0
Comment
Question by:BUCHAS
  • 3
  • 3
  • 2
  • +2
10 Comments
 
LVL 23

Expert Comment

by:brettmjohnson
ID: 11806978
Any language that lets you statically link libraries into your application will do.
This includes C and C++, among others.  You can use the ANSI/OSI/STL standard
libraries rather than the proprietary Microsoft DLLs that may-or-maynot be
installed.  

You can use a technology like Java that can download missing classes on the fly.


> I mean, just if I put the stand-alone EXE on the client machine, and execute it,
> it'll run flawlessly.

That is a rather unrealistic pipe-dream in a Windows operating environment.
There are many factors in Windows besides DLLs that affect the ability of your
application to "run flawlessly" - nearly all of them beyond your control.

0
 
LVL 2

Author Comment

by:BUCHAS
ID: 11807004
I think I need to read more books, I don't know what a "static library" is, may you explain? Also, OSI and STL don't ring a bell.

Well, I've seen many programs written in Delphi, which just consisted of a single EXE file. Working from Win95 to WinXP, that's what I search. I just want to gather information if there is some alternative on MSVC++ as I've never dealt with Delphi before.
0
 
LVL 22

Assisted Solution

by:cookre
cookre earned 30 total points
ID: 11807159
Every Windows program makes use of standardized libraries.

Simplified description of the two step process used to create an EXE:

1) Compilation
The source code is parsed and a form of machine code (an 'object' module) is generated for each source module.  The compiler doesn't create an EXE directly because it can't assign addresses to externally defined subroutine references such as calls to Window's libraries (APIs).

2) Linking
The linker puts together all of the object modules, resolves references the compiler couldn't, and creates the EXE.  The most common decision made when linking is whether to do a 'static' or 'dynamic' link.  A static link causes all externally referenced libraries to be included in the EXE.  A dynamic link creates an EXE in which external calls are satisfied at run time by DLLs already on the box the program is running on.

A dynamicaly linked EXE is smaller than if it were dynamicly link, but depends on the right versions of all the needed DLLs being on any box the program runs on.  However, it's not uncommon for a user to upgrade or install some package that replaces a standard DLL with a newer one, thereby causing some older dynamicaly linked EXEs to fail.

Most IDEs out today do both the compile and link when you click 'Build', but the static/dynamic choice can usually be found somewhere, but not, most notably, VB and .NET.

0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 3

Accepted Solution

by:
Tyrsis earned 36 total points
ID: 11807252
It's hard to figure out exactly what you're asking.  Though from what you've written, Borland's C Builder and Delphi are indeed what you are looking for.  While not as popular as VC / .NET, they are both very good products for developement.  They are centered around RAD (rapid application developement) and if you want to create an application quickly that runs very well, then the Borland products are indeed what you are looking for.  

Depending on what you develope though, dependancies can vary.  Though the majority of the time (90%+), there are no external depandancies besides the DLLs that are included in all versions of windows.  

Tyrsis
0
 
LVL 22

Expert Comment

by:cookre
ID: 11807262
>>>besides the DLLs that are included in all versions of windows

Hence, DLL Hell:
http://en.wikipedia.org/wiki/DLL-hell
0
 
LVL 2

Author Comment

by:BUCHAS
ID: 11807321
cookre, thank you, that clears things up. Can you tell me a list of developing environments with either dinamic/static linking/compiling capabilities?


Tyrsis, what I want is developing environment that when I create a simple project, a 50kb EXE file, it won't pester me asking for hundreds of dlls(.NET Framework, MFC dlls, and so on), on a Windows environment in the client machine.
0
 
LVL 3

Expert Comment

by:Tyrsis
ID: 11807343
Then I suggest trying the Borland products.  Either Delphi or C Builder.  Both will create relatively small EXEs and everything you require is compiled into the EXE.

0
 
LVL 22

Expert Comment

by:cookre
ID: 11807445
I don't know about C Builder, but when I used Delphi several years ago, I noted it still hooked up with Win32 APIs.  Perhaps that's changed, but I doubt it.  Afterall, a small EXE simply can't have all the code needed to manipulate windows, dialogs, message boxes, menus, and all the messages that Windows generates.
0
 
LVL 3

Expert Comment

by:Tyrsis
ID: 11807556
Yes, but he asking about a developement environment that doesn't require distributable DLLs with the EXE.  All windows applications require the base Win32 API DLLs.  MFC and .NET require distributables just to run the EXEs.  Delphi / C Builder EXEs do not require any distributables, and run directly ontop of the base Win32 DLLs with everything else compiled into the EXE.
0
 
LVL 37

Expert Comment

by:Harisha M G
ID: 11860317
Since you are running your application on a Win32 machine, most of the DLLs will already be present in that client machine. So, only the extra files, like your own libraries and controls will be installed and, eventhough it appears as if MB's of space is being used, it is not true.

So, you can always use VB6 to build the application, perhaps the Fastest, and  Most Reliable developing environment.
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

A short article about a problem I had getting the GPS LocationListener working.
If you don't know how to downgrade, my instructions below should be helpful.
An introduction to basic programming syntax in Java by creating a simple program. Viewers can follow the tutorial as they create their first class in Java. Definitions and explanations about each element are given to help prepare viewers for future …
With the power of JIRA, there's an unlimited number of ways you can customize it, use it and benefit from it. With that in mind, there's bound to be things that I wasn't able to cover in this course. With this summary we'll look at some places to go…

679 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question