When is a person a programmer?

Vestras

Retired
Reaction score
248
C is definitely low-level. You're just not at the point where you're using stuff such as __cdecl yet (makes your code ugly)
 

rover2341

Is riding a roller coaster...Wee!
Reaction score
113
I believe a person should be considered a programmer when they can create an application with little or no help from others.

I agree, I consider my self to be a programmer back in middle school when i was messing around in visual basic. No i wasn't great at it. But ya i made a few cool little games. I had to go out and buy a book to learn how to use it.


Programing languages. Thats the way i see it :), But i could be wrong. these are the languages i have worked in, but mostly c# and c++.
(High) Warcraft 3 GUI -> Visual Basic-> C#(XNA,Sliver Light) -> C++(Object Oriented Programing) -> C (Low).
 

Darthfett

Aerospace/Cybersecurity Software Engineer
Reaction score
615
A programmer is someone who knows how to program. This means that they can convert from language to language with MUCH less effort than someone with no experience.

When it comes to programming languages, its usually the syntax that differs between languages. There's not a huge difference when it comes to the concepts (such as loops, interfaces, classes, etc). For those who would argue against this, consider this: A person who programs in a high level language is still a programmer, even if he doesn't know how to program in a low level language which can and cannot do many things the other can/cannot.

Is it possible to be a programmer without knowing a language? Yes, but it would mean they are coding in pseudo-code.
 

Tru_Power22

You can change this now in User CP.
Reaction score
144
I agree, I consider my self to be a programmer back in middle school when i was messing around in visual basic. No i wasn't great at it. But ya i made a few cool little games. I had to go out and buy a book to learn how to use it.


Programing languages. Thats the way i see it :), But i could be wrong. these are the languages i have worked in, but mostly c# and c++.
(High) Warcraft 3 GUI -> Visual Basic-> C#(XNA,Sliver Light) -> C++(Object Oriented Programing) -> C (Low).

Your missing assembly and byte code.
 

codemonkey

Code monkey not crazy, just proud.
Reaction score
66
Assembly just gives machine code functions readable names (instead of of 1s and 0s) and really has a 1:1 correlation with machine code.
 

GooS

Azrael
Reaction score
154
> low-level is what more advanced/experienced programmers work on

I was hopefully clear what I meant with high\low level programming , because that is just wrong!

An experienced/advanced programmer would prefer a lower level language since you don't have access to some functionalities with higher ones. Also higher level languages functions may not carry out their function specifically but have side-effects aswell. Lastly high-level languages often have specific areas of functionality, lets say PHP for the web, as such you cannot make every app you would like just knowing this one language.

That's how I think of higher vs lower level languages. On a second note C has been declared a low-level language
 

tooltiperror

Super Moderator
Reaction score
231
I`ve created a system that lets you roll a six sided dice in Javascript.

Am I a programmer?

(No help, it was written free hand and without any sort of Guide.)
 

KillerChi

New Member
Reaction score
20
> I would consider a person who programs in jass as more of a programmer then someone who programs in GUI ( Mean trigger editor? Everybody programs in a GUI these days, I believe )

Wrong, Jass is not a programming language, it is a scripting language. It would make him a scripter, not a programmer.
A high level language, is a syntax that can be converted by a compiler to a lower level language, such as Assembly or binary. This is programming 1 : 1.

> think of like a game-making program that already does 99% of the things for you

Right, Using a tool such as game maker, is merely a cover ( like the trigger editor ) with a lot of pre-programed routines, making it easier to create a game. Such as Visual Studio makes it easier to build GUI applications. But knowing how to operate such tools doesn't make you a programmer, as I said before. Then think they're better programmers than me because of their game makers.....

> low-level is what more advanced/experienced programmers work on

I was hopefully clear what I meant with high\low level programming :eek:, because that is just wrong! :p

Well put. I have friends who "program" using game maker bullshit and telling me to use it. The simplest explanation I can give these people is "It's not flexible enough"
 

Slapshot136

Divide et impera
Reaction score
471
I`ve created a system that lets you roll a six sided dice in Javascript.

Am I a programmer?

(No help, it was written free hand and without any sort of Guide.)

i think the jury is still out on whether scripting languages are programming languages

(TheDamien(pro), Artificial(pro), Themis(con), and Vestras(con) are the jury)

personally i would go with "beginner programmer"
 

Vestras

Retired
Reaction score
248
i think the jury is still out on whether scripting languages are programming languages (TheDamien and Themis are the jury)

personally i would go with "beginner programmer"

If it's named "scripting language", why would it be a "programming language"? :confused:
 

UndeadDragon

Super Moderator
Reaction score
447
I`ve created a system that lets you roll a six sided dice in Javascript.

Am I a programmer?

(No help, it was written free hand and without any sort of Guide.)

To be honest, I don't really think a few lines of simple code like that would count as a programmer in any language.
 

tooltiperror

Super Moderator
Reaction score
231
the act of instructing computers to perform tasks.

I think that I ordered a computer to choose a random number from 1 to six, when a button is pressed, and display the number to the User.

Beginner, sure, but even if Javascript is a 'scripting' language, I still think I`m a programmer.
 

Xorifelse

I'd love to elaborate about discussions...........
Reaction score
87
If it's named "scripting language", why would it be a "programming language"? :confused:
Because graphically speaking, you programmed that "script", at least that's what my opinion is on this matter.
Also, usually a scripting language is executed by a interpreter. Programming language are usually compiled languages.

For the rest, I've got little to say about the rest of the folks claiming C is a low level language. If you guys wanna think that because of today's standards than fine go ahead. While you're at it, please change this wiki page, and replace:
Code:
Low-level programming languages are sometimes divided into two categories: first generation, and second generation.
Code:
Low-level programming languages are sometimes divided into three categories: first, second and C generation.

Also quoted nicely...

By comparison, a high-level programming language isolates the execution semantics of a computer architecture from the specification of the program, making the process of developing a program simpler and more understandable.

Or are you guys saying that C is not understandable and hard to develop something in it. Because if that's the case, it would make it a messy-level language.
If you guys want to claim that C is a low level language, there is no issue here. There is when you give people false information, so keep that opinion to yourself.
There is really no point in arguing this, opinion versus fact.
You can't claim the word "hospitality" is a room in a hospital unless this is changed in the dictionary.

i think the jury is still out on whether scripting languages are programming languages

(TheDamien(pro), Themis(con) and Vestras(con) are the jury)

personally i would go with "beginner programmer"
I'll go with beginner web-designer, JavaScript or JScript has no practical use outside the browser.

Just like a hazelnut is a form of a nut is a scripting language is a form of a programming language. However claiming that they are one and the same is wrong ( Like TheDamien did ).
Just like you and I are human beings, but we are not the same.
Wikipedia, in this case stated it very wrong in my opinion in where they claim a scripting language is a programming language.

Programming languages are nothing more than a syntax being compiled to assembly or binary code, that the CPU can read and execute.
Interpreted languages ( usually scripting languages ) are controlled by software. These languages are basically compiled on-the-fly each time you load it and than fed towards your CPU.

This means by using a compiled language ( usually derived from high-level programming languages ) or a code written in assembly or binary code, you have unlimited access towards your CPU. If you program in such language, by my definition you are for sure a programmer*.

By using an interpreted language, you have only as much access towards the CPU as the software that compiles your code on-the-fly ( the interpreter ) gives you.
Some interpreters, such as the JavaScript one give virtually nothing to work with, and you'd need to find exploits in the interpreter to execute your code directly into the CPU, this would give JavaScript the ability for example to install viruses on your computer though byte code, which it previously could not.

Interpreted languages need an low level language in order to execute. This would be the main BIG difference between Interpreted language and a Compiled language.

However, this would make Java a scripting language and you a scripter, which of course is not true. Java is a huge language, and the JIT interpreter is a huge piece of software. It can feed almost everything to the CPU.
So a interpreted language, doesn't necessarily make it not a programming language by the way it is compiled. Personally I think those rules are defined by how much access you get from the interpreter.
Also switching from a Interpreted language to a directly compiled language, isn't usually that hard to do too.

*So by definition when is someone a programmer is by how well they understand the flow of the code.

This of course does not apply when you use a language with limited access to the CPU, usually a interpreted language which can be for example Jass or JavaScript and this is\are the only language(s) you know. That would make you a mere scripter.
Otherwise even a spreadsheet formula which is being converted by the office software as an interpreted language is a programming language too, and that would make everybody who ever used some proper office a programmer, which of course they are not. The formula has very little access, and a title scripter would say enough about your understanding in programming.

I'm hoping this will be my last long post on this topic, since I havn't left anything out.

Edit:
Owh, I forgot. After explaining all this and you now know what a low level language is, how about this dilemma.
If C was a low level language.. WHY ON EARTH WOULD I NEED TO COMPILE THAT CODE IN ORDER TO LET IT EXECUTE?

I rest my case, Themis out.
 

codemonkey

Code monkey not crazy, just proud.
Reaction score
66
Scripting languages are a branch of programming languages, by definition.

Quoting wikipedia:

A scripting language, script language or extension language is a programming language that allows control of one or more software applications.
 

phyrex1an

Staff Member and irregular helper
Reaction score
447
In my opinion, if you define a programming language from how they are executed or operate on a computer then it's a sure sign that you have no idea what you're talking about. I would draw the line exactly at Turing completeness of the system. That the language later is compiled to machine code or is just in time compiled by a browser really has nothing to do with the language itself... I bet that a lot of java or c++ programmers have no idea what the compiler actually does, so why should the definition depend on it?

But that doesn't answer the original question. I'd say that a person is a programmer when they can express their thoughts in a formal grammar (which doesn't have to be turing complete).

Interestingly enough, that would make writers of regular expressions programmers but regular expressions themself not a programming language. :p
 

Xorifelse

I'd love to elaborate about discussions...........
Reaction score
87
Scripting languages are a branch of programming languages, by definition.

Quoting wikipedia:
That's uuh what I said, only a little differently.

In my opinion, if you define a programming language from how they are executed or operate on a computer then it's a sure sign that you have no idea what you're talking about.
Actually, I stated that a programming language is a mere syntax that is compiled. Said that two times, makes me wounder if you actually read it.

1. Programming languages are nothing more than a syntax being compiled to assembly or binary code
2. So a interpreted language, doesn't necessarily make it not a programming language by the way it is compiled.
 

codemonkey

Code monkey not crazy, just proud.
Reaction score
66
That's uuh what I said, only a little differently.


Actually, I stated that a programming language is a mere syntax that is compiled. Said that two times, makes me wounder if you actually read it.

1. Programming languages are nothing more than a syntax being compiled to assembly or binary code
2. So a interpreted language, doesn't necessarily make it not a programming language by the way it is compiled.

Sorry but that was a huge of wall of text. :eek: ;)
 
Reaction score
333
Large post ahead:

For the rest, I've got little to say about the rest of the folks claiming C is a low level language. If you guys wanna think that because of today's standards than fine go ahead. While you're at it, please change this wiki page, and replace:

You cannot point to a single definition of "low-level" and say "Aha! Only X class of languages can classify as low-level." You need to look at these terms on the basis of present day usage and context. In this case, the context is the continuum of abstraction that exists in today's programming languages. C is definitely at the lower end of this continuum because it provides the barest layer of abstraction over the workings of the computer and is probably the most popular choice for low-level and systems programming.

If you guys want to claim that C is a low level language, there is no issue here. There is when you give people false information, so keep that opinion to yourself.

Whether you like it or not, the distinction between low-level and high-level is not a sharp line drawn at the boundaries between machine code and everything else. That definition does not reflect how the terms are actually used.

There is really no point in arguing this, opinion versus fact.
You can't claim the word "hospitality" is a room in a hospital unless this is changed in the dictionary.

Wikipedia is not prescriptive. It only attempts to describe things as they are. In this case, the definition given by Wikipedia may be valid in the context of generational distinctions, but it fails to describe the more general usage. Any language that is predominantly low-level in its characteristics can be described as a low-level language.

Just like you and I are human beings, but we are not the same.
Wikipedia, in this case stated it very wrong in my opinion in where they claim a scripting language is a programming language.

This does not mean that scripting languages and programming languages are the same, only that a scripting language is a type of programming language. Saying "a human is a mammal" is not the same as saying "a mammal is a human." This is similar. All scripting languages are programming languages, but obviously most programming languages are not scripting languages.

Programming languages are nothing more than a syntax being compiled to assembly or binary code, that the CPU can read and execute.
Interpreted languages ( usually scripting languages ) are controlled by software. These languages are basically compiled on-the-fly each time you load it and than fed towards your CPU.

Assembly language is a human-readable form of machine code. It isn't executed by the CPU; instead it is turned into an executable form by an assembler.

By using an interpreted language, you have only as much access towards the CPU as the software that compiles your code on-the-fly ( the interpreter ) gives you.

Writing programs in assembly language does not give you unlimited access to the CPU. Some functions of the CPU can only be accessed by the operating system, for instance.

Your distinction between interpreted and compiled languages is pretty arbitrary. You could write a compiler for Python and an interpreter for C, and the semantics of the languages would remain the same. You could even write an interpreter for assembly if you really wanted. Like phyrex1an said, the line should really be drawn at the Turing completeness of the language and not at what the language is typically used for or how it is implemented.

*So by definition when is someone a programmer is by how well they understand the flow of the code.

If you are referring to control flow or the evolution of the state of a program or script at run time, then understanding these things has almost nothing to do with whether the language used is a scripting language, or whether it is compiled, or even if it is implemented on a computer at all.

This of course does not apply when you use a language with limited access to the CPU, usually a interpreted language which can be for example Jass or JavaScript and this is\are the only language(s) you know. That would make you a mere scripter.

Just because JavaScript is mainly used for web programming doesn't mean that it isn't a real programming language. You could write a C compiler in JavaScript if you wanted to.

Otherwise even a spreadsheet formula which is being converted by the office software as an interpreted language is a programming language too, and that would make everybody who ever used some proper office a programmer, which of course they are not. The formula has very little access, and a title scripter would say enough about your understanding in programming.

If the formula language is Turing complete and allows non-trivial code to be written, then I would call it a programming language. That doesn't mean that anyone who has ever written a formula in one is a programmer, however. Likewise, I wouldn't call someone a programmer just because they've written a "hello world" program in C++.

Owh, I forgot. After explaining all this and you now know what a low level language is, how about this dilemma.
If C was a low level language.. WHY ON EARTH WOULD I NEED TO COMPILE THAT CODE IN ORDER TO LET IT EXECUTE?

Programs in assembly language must still be assembled before they can be executed, but that doesn't mean that assembly language is high-level all of a sudden.
 

GooS

Azrael
Reaction score
154
@Themis

Many programmers today might refer to C as low-level, as it lacks a large runtime-system (no garbage collection etc), basically supports only scalar operations, and provides direct memory addressing. It therefore readily blends with assembly language and the machine level of CPUs and microcontrollers.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top