Archived

This topic is now archived and is closed to further replies.

smorgasbord

So... what IS a real language?

Recommended Posts

smorgasbord    377
Sometimes you hear that programming language X isn''t a "real" language, or that "proper" programmers exclusively use language Y (preferably in combination with graphics library Z). I think it would be interesting to see what you people consider a "real" language or what constitutes a "real" programmer (is it an absolute must to have implemented your own linked list, understand in detail how the computer stores numbers, not be using Java... )? At what level do you think a "language" turns too high level to be "programmed in"? Looking forward to seeing your opinions on this... Cheers, smorgasbord

Share this post


Link to post
Share on other sites
ApochPiQ    23000
Anyone who says anything isn''t a real language is a moron, plain and simple. Every language is good for something (yes, even Malbolge).

Most of the time, people who bash on a language do so because they have ego problems and need to reinforce their self esteem. By claiming that they have The Skillz, and everyone else is a stupid script kiddie, they apparently make themselves feel better. All of this is, IMHO, pretty funny.

The rest of the time, people bash on languages because they have absolutely no clue what they are talking about -- which is even funnier.

Share this post


Link to post
Share on other sites
pag    100
Basically you can say that anything that needs a parser is a language.

In the next 80 years 6 billion people will die...

Share this post


Link to post
Share on other sites
kdogg    204
Klingon is not a real language.

Any computer language that allows you to meet your goals is a ''real'' language. As far as knowing how to implement your own linked list, it''s not a bad idea to know stuff like that. I think people who have a good understanding of how your computer stores data, what a page fault is, what a race condition is, etc. will be better programmers in the long run. I think a lot of the criticism that C gets is that it''s buggy and, therefore, not efficient. While some of that might be true, a lot of it is also overstated by frustrated people who don''t know how their computer works and, as a result, can''t find bugs that are rather obvious. The more you know about your computer, the better programmer you will be. This is not to say that someone who has very little knowledge of how their computer works and is just chomping away at java is not a real programmer, but there is a limit to what such a programmer can achieve. As long as his goals fall within those limits, more power to him.

Share this post


Link to post
Share on other sites
chiuyan    122
Klingon is not a real language?

then why is the state of Oregon hiring Klingon interpreters?

http://edition.cnn.com/2003/US/West/05/10/offbeat.klingon.interpreter/index.html

:-P

Share this post


Link to post
Share on other sites
stevie56    145
then why is the state of Oregon hiring Klingon interpreters?

Because Oregon isn''t a real state, I suppose.



Stevie

Don''t follow me, I''m lost.

Share this post


Link to post
Share on other sites
Great Milenko    122
hummm well each language has its strong points and its weak points. as far as what a "real" language is I''d say it must be capable to run on its own. I guess I should be a little more clear on this, it can run with out the benifit of an interpriter (compiles to machine code). perl, python, & java are not "real" languages in my book they are scripting languages (yes jits compilers would somewhat make java a real language, but lets not get into this). C, C++, & assembly are "real" languages.

does this mean that you should only use C & friends? no, if you don''t need the capabilities of these languages and some other language is better suited use the other language, I do.

A "real" programer is someone that can take white paper or spec doc and turn it into code. Of corse I don''t expect every programer to be able to write quake for such docs. What I''m saying is can they look at a spec for something of a reasonable leve and beable to write it with out cut & pasting, with out having someone hold there hand the whole way. tell this point you are eather a wanabe or a script kiddy.

I''ve never seen a language that is to high level for programing. I''ve seen alot of languages that are so high level I wouldn''t use them to write a quake clone, but I''d still consider them for something like solitare or a buiseness app.

again this goes back to the strengths and weaknesses of the language compaired to the needs of the program

Share this post


Link to post
Share on other sites
Shannon Barber    1681
A real language as opposed to a research language (or a toy language) is one that is not so idealistic or dogmatic in its design that you can actually write real programs with it.

It''s not so much the language, as the enviroment and platform that is ''real''. One can take a langauge previously percevied as a toy and create an industrial strength environment - one that compiles in some form and can interoperate with other compiled code.

Is Brain F*ck a ''real'' language? It seems it''s a toy.
ML is a good example of a research language.

Share this post


Link to post
Share on other sites
Oluseyi    2103
quote:
Original post by Great Milenko
as far as what a "real" language is I''d say it must be capable to run on its own. I guess I should be a little more clear on this, it can run with out the benifit of an interpriter (compiles to machine code). perl, python, & java are not "real" languages in my book they are scripting languages (yes jits compilers would somewhat make java a real language, but lets not get into this). C, C++, & assembly are "real" languages.
Nonsense. C, C++ and assembly are sometimes restricted in their ability to solve problems by the fact that they are statically compiled and linked. Python, for example, makes introspection trivial by virtue of the fact that it is interpreted, and both Python and Lisp have the language interpreter available as part of the language, creating powerful code-authored code scenarios that are difficult or impossible to replicate in other environments. Code-authored code in C requires spawning a compile/link process, spawning the resulting executable, struggling with IPC, etc. Python allows for both per-statement interpretation and file interpretation in the local context.

Perl, Python and Java are every bit as "real" as C, C++ and assembly. (Nevermind that we''re splitting hairs over a pointless definition.)

quote:
A "real" programer is someone that can take white paper or spec doc and turn it into code. Of corse I don''t expect every programer to be able to write quake for such docs. What I''m saying is can they look at a spec for something of a reasonable leve and beable to write it with out cut & pasting, with out having someone hold there hand the whole way. tell this point you are eather a wanabe or a script kiddy.
Why do people feel compelled to label things negatively? If one can''t quite write code "from spec" (as you define a "real" programmer as being capable of doing), why must one then either be a wannabe or script kiddie? Can''t one just be an aspiring programmer?

The "real" programmer is the guy that gets the job done. He may not even be able to code for shit, but he knows how to do what he needs to do to get the job done satisfactorily, under budget and on time. Everything else is vanity.

Share this post


Link to post
Share on other sites
Gary    122
You make a good point flangazor... It may be better to say a "real" language is one that is capable of solving some problem.

That definition, of course, pretty much includes everything....

[edited by - Gary on May 28, 2003 4:42:57 AM]

Share this post


Link to post
Share on other sites
SabreMan    504
quote:
Original post by flangazor
Gary, that presumes functional languages are not "real."

The functional languages I know of are Turing complete. Interestingly, if you take away the libraries from C, then C is not in itself Turing complete, as it has no inbuilt means of allocating memory. Is C a `real'' language?

Share this post


Link to post
Share on other sites
SabreMan    504
quote:
Original post by flangazor
SQL is functional and not turing complete.

But your comment was `that presumes functional languages are not "real."''

On a slightly different note, the question of whether SQL is functional is open to debate. It''s so specialised that it really deserves to fall under a classification of it''s own - perhaps `Aggregate programming''. Languages I consider to be functional or `largely functional'' include Standard ML and Haskell.

Share this post


Link to post
Share on other sites
flangazor    516
Turing machines take some tape in one slot and spit it out the other with a whole bunch of numbers on it.

Functional languages often have the ability to take the output tape and read it in again as though it were curled around the machine to form a loop. Even then it would have problems with the linear form of the tape since output values would already be in place.*

I don't think 'Turing Complete' can sufficiently describe this sort of thing without fulfilling some form of Greenspun's 10th rule but regarding a turing machine instead of CL.

*I've always assumed the tape in question cannot move backwards and is write once.

[edited by - flangazor on May 28, 2003 9:29:36 AM]

Share this post


Link to post
Share on other sites
antareus    576
A language is too high-level when the cost of using it (runtime space/efficiency cost) is too high for the current task at hand.

Share this post


Link to post
Share on other sites
drslush    122
Like nearly every issue, you cant look at it as black and white. We make the mistake of forgetting that languages, like nearly everything else in the world, are classified on a continuum. It isn''t even a linear continuum with "real" on one side, and "fake" on the other. It is much fuzzier than that, which is why there are arguments about it, since people disagree on where an imaginary line is on this continuum. The location of this line is arbitrarily defined by people based on personal experience.

It is absolutely correct to say that there is no "Good" language. No language is good for every single task. I''d never write a 3d game in QBasic, I''d never use C to build a CGI application (although for some, C may be easier to use than PHP or Perl), and I''d never write a database in ASM.

However, if you want to talk in practical terms, a "real" language is one that you can get a job and use to make money. By this definition, Qbasic, ASM, are less "real" than C++, PHP, and Visual Basic. Even this somewhat debatable.

Is it possible that I could ramble about something as pointless as this?

Share this post


Link to post
Share on other sites
randomZ    163
quote:
Original post by SabreMan
Interestingly, if you take away the libraries from C, then C is not in itself Turing complete, as it has no inbuilt means of allocating memory. Is C a `real'' language?



Actually, the standard library is AFAIK part of the C standard and therefore part of the language. At least that''s true for C++ I think.


My Wonderful Web Site (C++ SDL OpenGL Game Programming)

I am a signature virus. Please add me to your signature so that I may multiply.

Share this post


Link to post
Share on other sites
pag    100
oh noooooo......

I am a signature virus. Please add me to your signature so that I may multiply.

Share this post


Link to post
Share on other sites
petewood    819
quote:
randomZ: Actually, the standard library is AFAIK part of the C standard and therefore part of the language. At least that''s true for C++ I think.


He wasn''t saying it isn''t.

Share this post


Link to post
Share on other sites