Programming languages for application frameworks
by a reluctant coder:
New programming languages, databases, servers and OS distributions start up every year. Figuring out what to use is becoming burdensome. Some things to consider to help find something that works best for your situation:
You are going to be spending the most of your time using the scripting language. You write the code in the language to create and revise the app.
- Is it easy to learn? It should only take a few minutes to learn fundamentals.
- Is it easy to change? Can you test and change components of code without having to run the segment in context of the entire code base? Interpretive languages are very helpful to verify a snip works as expected before using it. Usually it is a matter of setting a few variables and copying a snippet of code into an interpreter window.
- Is it capable of speeding up parts of code by re-writing portions of it into machine language? C and C++ are traditional compilers for example. Embedding pre-compiled machine language code is not always faster. Relying on an external process, such as via CGI can have the opposite effect of increasing resource needs.
- Is it easy to diagnose problems? That is, does it tend to report useful error messages? Can one mitigate error messages or control the reporting of errors?
- Is it practical? Can useful code be brief and understandable?
- Is it heavy duty? Has someone other than core language developers achieved a level of success with it? Verify that every potential barrier can be overcome without using it in unsupported ways.
- Is it fast to start and run? It should operate fast with a smallest amount of delay (low latency). This means that an interpretive language should operate as close to the speed of compiler’s machine language as possible. This ideal target is almost impossible to meet. Each language approaches solving this problem a different way. So a “culture” or two of coding values and practices take root with each language.
- Is it stable? Does the language support running many concurrent processes? Will concurrent processes work without interfering with each other? Will concurrent processes avoid burdening the system by not duplicating an excess of resources? Multithreading is one successful strategy that reduces the burden of multitasking independent processes.
How do languages compare? Figure out which languages you might be comfortable with. Here’s a Wikipedia list of languages by type.
Application frameworks usually embed a language within a web server to speed up processing of page requests. Look for any web servers that embed your choice of programming language.
Next post is about choosing an application or web server.