Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 3 of 3
Thread: confused by modern terminology
11-09-2008, 08:07 PM #1
- Join Date
- Nov 2008
- Thanked 0 Times in 0 Posts
confused by modern terminology
I've been out of the industry too long and I'm confused. I thought C# was one of a number of languages built on the "Microsoft .NET Framework" managed code programming model. Yet people use the term ".NET" as if it was the name of a language.
Also: technically, isn't ANYTHING that's not system programming considered to be applications programming? Because it seems that nowadays people reserve the term "applications programming" for applications that don't run on the net (either server- or client-side)(although they do sometimes speak of web apps).
The reason I ask is that web- and non-web-programming seem to be such different environments, and I need this information to help me decide in what field to try to break back into programming.
Can anybody straighten me out? Thanks for whatever help you can give me.
11-09-2008, 08:45 PM #2
- Join Date
- Sep 2002
- Saskatoon, Saskatchewan
- Thanked 2,660 Times in 2,629 Posts
I would agree on the applications programming. Anything non system based would be an application.
However, web based versus desktop based applications are very different. The main concern is the static http, so extra provisions need to be addressed when controlling data for stateless protocols (such as establishing appropriate session controls). Most web based languages support sessions in one way or another though.
Depending on you're previous expertise would depend on the language you should start back with. I would dive back into desktop applications. If you come from the C era, stick to C or C++. If you're familiar with objects (or would like to learn), Java and C# are the best solutions. If you're a pascal programmer, look into using Delphi.
If you've never done a web based application before, but would like to learn, I'd go straight for C#. Start back with desktop applications and later roll them out into web applications using ASP.NET. On the other hand, PHP was derived mainly from C and perl, so procedural PHP will strongly reflect you're C (minus datatypes, pointer control and structs).
I hope that helps you to choose what you should start back into!
header('HTTP/1.1 420 Enhance Your Calm');
11-09-2008, 09:14 PM #3
- Join Date
- Feb 2003
- Umeå, Sweden
- Thanked 83 Times in 74 Posts
In many people's minds .NET means C# in the same way that ASP means VBScript, CGI means Perl or Java means Java-the-language instead of JVM. The most common language on a platform often gets associated with that platform, and then people start using the terms interchangably.
As for application programming versus system programming: once upon a time you were correct. Back then there were no needs for the distinction between local and distributed applications because even server-client systems were local programs on either side exchanging only data and not code. Nowaday there's several types of applications, and the phrase "application programming" has come to mean something like machine local program - which runs where it's stored, independent of whether that's server or client - as distinct from distributed programs/web applications - distributed in this case meaning that the program itself is served from one location and run on another location. Another way to see it is that there's three levels of generic programming today: control everything (system programming), control the program (local application programming), or control the code (distributed application programming).
Don't let yourself get too confused by those terms, they are fuzzy and vague, like most buzzwords.
Once upon a time the term "low level" meant that a programming language could be translated into machine code and back into the original programming language with no change in code (which is pretty much only fulfilled by coding in binary representation, hexadecimal representation, or the various assembly languages). The term "high level" meant a language that contained concepts that were not directly translatable from machine code, for example control flow constructs like conditionals and loops. The original FORTRAN was high level, by that standard.
By today's standard FORTRAN is pretty low level. As is C. C++ is at best mid-level. Nowadays we actually have a sliging scale between low and high level programming, depending roughly on the power of the language. A powerful language is concise and can solve complex problems with small amounts of code. A not so powerful language is verbose and needs lots of code to solve complex problems.
That's what's happening with system programming versus application programming - a semantic drift of terms because there's now a many steps greyscale where there used to be only white or black.