I was wondering what programming language is most widely used and accepted in major inustrial projects and government projects. I though it would be c++ or something to that effect, but am not totally sure what to focus on.
It's a Pascal variant, but with very very strict syntax (even stricter than Pascal) which is a ***** to code but does help keep code pretty bug-free. Which is important if you're writing software to do stuff like control ejector seats on aircraft It's named after Ada Lovelace.
Thing with today's industry, though, is that you're not going to get through a career just knowing one language inside & out like you probably could have done if you were a COBOL programmer 30 years ago. You will undoubtedly need to learn a variety of different languages for different projects you work on. Personally I've had to learn at least some of Pascal, Python, ASP, JavaScript, VBScript and probably some others I've forgotten, although I mainly use VB and C/C++. Considering I'm 19 I'm expecting to have to learn a few more (not that I've got particularly wide experience for my age, as you can tell from some of the other people around this forum that have done much more than me.)
You'll find it beneficial if you learn a couple of major syntaxes pretty well (like C syntax and BASIC syntax, and maybe Pascal syntax) because many languages are very similar to those major languages. For example, PHP, Java, JavaScript, Perl, Python and others are quite similar to C syntax (not so sure about Perl but I've heard it is). Delphi (object Pascal), Ada, and a lot of scripting languages are similar to Pascal. Obviously there are many BASIC variants, including lots of calculator languages, VB, Blitz Basic, Dark Basic, etc etc. ASP and the scripting language for all the Office apps (called VBA, or Visual Basic for Applications) are based on the BASIC syntax.
So.... play around with a few different languages. Personally I hate Pascal syntax but that's just my personal feeling. Some hate C and love Pascal. Find out what suits you.
Yeah... it all depends on what you want to accomplish.
If you are writing "*****" applications that are for inner office use, most corporations use VB. If the company is going to sell it... it is usually C++.
I am going the route of plain old C and .asm (although I don't currently know any assembly at all )
The same for web design. For fast and easy dev. most use VBScript. For more complex stuff (or if they are running apache), JScript.
I would stick /w JavaScript just because of compatiblity.
Of course those are just my views on things,
Brandito
PS: Oh.. .PhP is also a powerfull SSide Lang. for the web
worth looking into if your into apache.
I already have asp down, and i understand the basic side. I know the concepts of java/c etc, but havent gotton into that side of programming yet. not sure of the developement tools and the like. I'll figure it out eventually though.
Currently the most widely used programming language is Visual Basic.
All of the variants: vbscript, VBA, etc. are included in this pile.
For instance ArcView 8 from ESRI (a company obsessed with UNIX) has a VBA programming component. It is rapidly becoming the de facto standard for in-app development.
C++, java & javscript, are also big players.
Beleive it or not, the greatest number of lines of code in use up until just the past few years was in COBOL. It's fading fast, now of course.
Well Cobol has been around for a little over 50 years, so it's not all that surprising.
VB may be the most widely used (although I haven't seen that statistic anywhere else) but it's not the most in demand. The most in demand languages are Java & C++, according to how many jobs are advertised. Mind you that's only from one study I remember reading (it was recent, like this year or last year), so perhaps the results are different to some other study.
Originally posted by jim mcnamara Currently the most widely used programming language is Visual Basic.
Where did you get that from. I dont think that is at all true. Think about all the programs you have on your computer right now. I bet you 95% of them were made in C/C++, JAVA, or ASM. Hell I can only think of 2 programs I have that were made in VB (That I did not make myself). C/C++ and JAVA like Harry said, are what most people are looking for job wise. AS/400, RPG, ACISC (I am not sure if that is right), which are all about the same, are the best lang. for making the most $$ becuase they are so specialized.
On a side note, does the spell checker not work for you guys?
MSVS 6, .NET & .NET 2003 Pro
I HATE MSDN with .NET & .NET 2003!!!
Check out my sites:
http://www.filthyhands.com
http://www.techno-coding.com
AFAIK, VB *is* the most popular language, for the simple reason that it's easy (well, easy to get started anyway)
But most apps we use are written in C/C++..probably because the best developers, who write good enough apps to actually get on our pcs, know C/C++ and use it for speed/low-level functions.
As VB is relatively simple, there's a lot of ppl who can do a bit, but aren't gonna make "proper" apps (probably including me ), cos they're not good enough or just do it on the side. C/C++ is more difficult, so you're less likely to just learn it on the side, and not for your job or whatever.
I don't think so personally. Modern design techniques for making reusable components mainly require an object oriented architecture. These designs aren't centred around speed, or size, they're centred around flexibility and reliability, and I don't think it would be wise to code them in assembly. Assembly is fine for platform-specific programs that have to be as fast and efficient as possible, or have to be as small as possible, but for most purposes, assembly is just inappropriate.
Yes, i agree. The speed difference between c/c++ and asm on any new computer is almost non noticible. ASM is basically inappropriate for anything other than boot code in my opinion.
Oh yeah, i am not saying that assembly is bad or anything, i am just saying that the need to write many apps in it these days is just not needed that much.
Maybe on a few computers (mainly the newest), you cant tell the difference in speed. You see i use asm in DOS for size and speed. In windows i use asm mainly for size, the size of the app is so much smaller, thus using less memory.
Oh yeah, i am not saying that assembly is bad or anything, i am just saying that the need to write many apps in it these days is just not needed that much.
That and punch cards. I suppose you could say "The 'worst' developers use punch cards", since they are not even widely used anymore.
Alcohol & calculus don't mix.
Never drink & derive.
The "best developers" use assembly?? No elite developers use ASM
The 'worst developers' use VB?? Yep, this is true. Most people like myself start out with VB, then find out how bad somethings are with it. Things like speed, power, memory usage, etc. Then they move on to more powerfull things like C/C++, and ASM. But VB is a great starting lang. and its easy to make programs in.
I meant that the spell checker keep freaking out evertime I use it, keep getting a string error.
MSVS 6, .NET & .NET 2003 Pro
I HATE MSDN with .NET & .NET 2003!!!
Check out my sites:
http://www.filthyhands.com
http://www.techno-coding.com
I think it's just horses for courses, there is no one language suitable for anything. There are some things that it would be stupid to use anything else for if you knew VB. The same goes for C and C++, and ASM, and just about any other language. Some languages are just plain interchangeable, like 16-bit C for DOS and Turbo Pascal, there's really nothing between them except style. That's why I said to Kagey that he should try different styles and see what suited him.
indeed, I agree with Harry
for something like databases, VB is usually best
games - C/C++ is infintely more likely (yes, with some inline ASM)
not many apps are written in pure ASM these days anyway..
I like the Brainf*** language. It only has 8 operators, <>+-.,[].
Theres a large byte array and a pointer. > moves the pointer to the next byte, < moves it to the previous byte, + adds 1 to the current byte, - subtracts 1 from the current byte, . prints the current byte, , inputs to the current byte, [ means "while the current byte is not 0" and ] is the end of the loop.
I just taught you Brainf***, and things such as multiplication can be accomplished. I am currently writing a program where you can write BF in high-level terms such as
Yes it is a weird name, isnt it?
Its called Brainf*** because it f***s with your brain. To move a number from one location to another, you have to do this
[>+<-]
To copy it, it gets weirder.
[>+>+<<-]>>[<<+>>-]
I'm not even going to go into how to multiply...
I have however, attached a program (VB) That does alot of this stuff for you.
I finished my interpreter for the subset of Brainf***, which I call TripleHack. Fully commented source below, distributable under the GPL Version 2 (www.gnu.org)
Code:
/* TRIPLE HACK INTERPRETER BY MIKE CHRISTIANSEN
GNU PUBLIC LICENSE VERSION 2
www.gnu.org
IF YOU MODIFY, PLEASE INCLUDE MY NAME ALONG WITH YOUR NAME,
DATE OF UPDATE, WHAT THE UPDATE WAS, AND CONTACT INFORMATION AS
BELOW
MIKE CHRISTIANSEN
JUNE 3 2001
THI INTERPRETER VERSION 1
[email protected]
AIM: POUNDBANGHACK */
#include <stdio.h>
/* stdio is needed for the input/ouput routines, as well as file operations */
struct Point /* This is for the pointers */
{
int a; /* a is which array the pointer is currently working on */
int p; /* and p is which position the pointer is at */
};
struct Point p[2]; /* These are the pointers. THERE ARE THREE OF THEM!!!!
Note that these are not REAL pointers, they are merely integers. */
int r; /* r is the current pointer */
char a[2][5000]; /* a is the arrays. there are 3 different byte arrays with
5001 elemts each. Position 0 should be used for debug. If you wanted to
follow the brainf*** specification, you would make that and the other chars in
this section unsigned */
char f[5000]; /* f is the file array. This is where the file goes. Tweaking
may be necessary */
char i; /* I'm not EXACTLY sure what this does, as I copied this from a
Brainf*** interpreter, but I know it has to do with inputting characters, as
a control to make sure it's not not a null char. */
char *s=&f; /* Your standard char pointer to an array, used for file access */
void interpret(char *c) /* The heart of the program */
{
char *d; /* A temporary character used in the loop structure. */
while( *c ) { /* While the character is not null */
switch(*c++) { /* Interpret it. The ++ is necessary so that the
interpreting advances to the next char. Take it out and try! */
case '<' : p[r].p--; break;
/* decrement the current pointer's position */
case '>' : p[r].p++; break;
/* increment the current pointer's position */
case '+' : a[p[r].a][p[r].p]++; break;
/* increment the value of the current pointer's position */
case '-' : a[p[r].a][p[r].p]--; break;
/* decrement the value of the current pointer's position */
case '.' : putchar(a[p[r].a][p[r].p]); fflush(stdout); break;
/* output the value of the current pointer's position */
case ',' : a[p[r].a][p[r].p]=getchar();fflush(stdout); break;
/* input to the value of the current pointer's position */
case 'v' : r--; break;
/* decrement the current pointer */
case '^' : r++; break;
/* increment the current pointer */
case '`' : p[r].a++; break;
/* increment the current pointer's array */
case '\'': p[r].a--; break;
/* decrement the current pointer's array */
case '[' :
for(i=1,d=c; i && *c; c++) /* Loop structure, im not sure exactly
how to explain this... */
{
if(i+=*c=='[') i-=*c==']';
}
if(!i) {
c[-1]=0;
while(a[p[r].a][p[r].p])
{
interpret(d);
}
c[-1]=']';
break;
}
case ']': /* Unbalanced Braces */
puts("UNBALANCED BRACKETS"), exit(0);
case '#': /* DEBUG! This does not comply with the brainf***
specification. You may wanna change it */
putchar(p[r].p); fflush(stdout); break;
default: /* Comment */
}
}
}
main(int argc,char *argv[]) /* Standard main procedure */
{
FILE *z; /* This is our file */
p[0].p = 1; /* Initialize the positions at 1, as we dont want to use */
p[1].p = 1; /* position zero except for debug. */
p[2].p = 1;
if(argc!=2) /* If there aren't 2 command line args, the user messed up.
Tell them about it and exit. */
{
printf("Wrong Usage!");
exit(0);
}
if(z=fopen(argv[1],"r")) /* Open the file */
{
while((i=getc(z))>0) /* While we dont have the end of the file */
{
*s++=i; /* Add it to the file array */
}
s=0; /* Reset the pointer */
interpret(f); /* And interpret the entire file (passing array) */
}
return(0); /* And exit. */
}