views:

318

answers:

3

If you are interested in programming languages, you sure have encountered the problem that you start to learn a language and worry about deployment later. Sometimes until it's too late.

Web deployment only with a special module for Apache and you have Lighttpd on your server? Need to buy an expensive version of your development environment to compile desktop applications for other platforms? The user of your program has to install a runtime?

So, what is your way to deploy projects for the web and projects for the desktop? In programming languages (and frameworks) you use.

This could be helpful for people who want to learn a new language but don't know enough about it to find their way through the documentation.

E.g.: PHP = throw some file with ".php" suffix into a directory on your web server.
SBCL = SAVE-LISP-AND-DIE

Questions that could get answered:

  • How to deploy a web application on a headless server with a graphical system like Squeak?
  • Can I develop a GUI program in Ruby on Linux and give it to people who run Windows or MacOS X on their computer?
  • When I use a commercial Common Lisp on MacOS X to develop a web application, will I need to buy a Linux version just to be able to deploy it on a server?
  • You have a Linux server but are asked to deploy a ASP.NET application on it. Is it more cost effective to rent an additional Windows server or try Mono?
+4  A: 

I'm not entirely sure if this is the kind of answer you're looking for (it seems it), but I'll just go on right ahead and be a doofus:

When I use Python (most of the time), and want to distribute, I use distutils. For windows, I get the lucky benefit of py2exe, which lets me distribute all the prerequisites of my app (CPython, library_x, framework_y) in a nice, fairly clean, package as Windows users expect.

Devin Jeanpierre
Yes, something like this.
stesch
+2  A: 

autotools is your best friend. IMHO it is best installation/build/deploy framework for C/C++ applications.

It is little bit ugly, hard to learn, and probably most hated set of tools --- but it is the only that does complete job. It just does everything that you could think of - configure for exotic systems, create shared libraries for every exotic system, cross compile install uninstall and much more.

There are many "replacements" that try to catch it like CMake, BJam or SCons, but they do not do half of what autotools does.

Artyom
out of curiosity: why is it hated? for being hard to use?
CrazyJugglerDrummer
Similary to what Starustrub said: there are two kinds of build systems: the onces people complains about and the ones nobody uses.
Artyom
+1  A: 

Smalltalk:
Deploying a Squeak or Pharo web application using Seaside and Apache httpd is described in the documentation, chapter Deployment with Apache.

stesch