Solved

The most easily deployable programming language

Posted on 2004-08-15
10
269 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
Comment Utility
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
Comment Utility
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
Comment Utility
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
 
LVL 3

Accepted Solution

by:
Tyrsis earned 36 total points
Comment Utility
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
Comment Utility
>>>besides the DLLs that are included in all versions of windows

Hence, DLL Hell:
http://en.wikipedia.org/wiki/DLL-hell
0
Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

 
LVL 2

Author Comment

by:BUCHAS
Comment Utility
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
Comment Utility
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
Comment Utility
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
Comment Utility
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
Comment Utility
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

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Suggested Solutions

Introduction Raise your hands if you were as upset with FireMonkey as I was when I discovered that there was no TListview.  I use TListView in almost all of my applications I've written, and I was not going to compromise by resorting to TStringGrid…
This article is meant to give a basic understanding of how to use R Sweave as a way to merge LaTeX and R code seamlessly into one presentable document.
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

763 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

Need Help in Real-Time?

Connect with top rated Experts

6 Experts available now in Live!

Get 1:1 Help Now