Talk:Programming language: Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Pat Palmer
imported>Sandy Harris
Line 69: Line 69:
:::Perhaps if we could place XML under a couple categories, Markup and say, Data Representative languages then it would help clarify some of that. We could also mention in the XML article that it really serves a very broad usage base. I've started an article on XML, it's on the draft page for it right now. So far I've just mentioned the example of using XML as a data description language. As far as SGML goes it's still the mother of all W3C markup languages so I think it deserves to receive some article time. Too bad you have to pay to read the specification for it. Silly ISO... --[[User:Paul Derry|Paul Derry]] 20:12, 28 April 2007 (CDT)
:::Perhaps if we could place XML under a couple categories, Markup and say, Data Representative languages then it would help clarify some of that. We could also mention in the XML article that it really serves a very broad usage base. I've started an article on XML, it's on the draft page for it right now. So far I've just mentioned the example of using XML as a data description language. As far as SGML goes it's still the mother of all W3C markup languages so I think it deserves to receive some article time. Too bad you have to pay to read the specification for it. Silly ISO... --[[User:Paul Derry|Paul Derry]] 20:12, 28 April 2007 (CDT)


: I think markup languages deserve their own article, though I'm not likely to write it, or certainly not soon. Start with the collection of proprietary ones. IBM had one. DEC had runoff. Unix got nroff (new runoff) and troff (typesetter runoff) and things like pic(1) that were troff preprocessors. Ventura Publisher on the PCs. There were others, I'm fairly sure, but I do not know details. TeX was a separate development, deserves its own article.
: Then SGML, Standard ''Generalized'' Markup Language, complex but flexible. HTML, defined in terms of SGML. XML, an effort to develop something simpler with the power of SGML.
: Then things based on markup languages. Texinfo, Latex & other things based on TeX. The Docbook templates (SGML & later XML), developed at Sun, widely used. Cascading style sheets in HTML. ... And variant special-purpose markup, used on bulletin boards, wikis, ...
: I do not see either PostScript or PDF as a "markup language" since I cannot imagine a human using them to "mark up" a document, as one can with HTML or nroff or ... However, I might be wrong and even if I'm not, they could be covered in a "markup languages" article provided caveats were included. [[User:Sandy Harris|Sandy Harris]] 07:35, 29 May 2010 (UTC)


==Object oriented==
==Object oriented==
Just leaving a note for myself, or whoever happens by, that I think the section of "object oriented" languages is rather short, unsatisfactory, or even messy at present.  It contains, for example, this statement: "Every method (function) and every attribute (variable) must live within some object. Java, for instance, allows no global variables or functions."  This not only is not a definition, it is probably not even effectively true--it is certainly possible to simulate globals using a Singleton object with public static field or accessors.  To begin this section, I think it would be helpful to define or illustrate, somehow, what objects are and why they were an important enhancement over older "procedural-only" languages.  I am not really comfortable with the mention of "multi-paradigm" languages such as Scala here, listed almost casually in passing.  Languages like Scala (which may be regarded as related to Java insofar as it targets the JVM and uses Java libraries) are really in a different class altogether ("functional languages" or something), and mentioning it in a section on OO could be misleading (though it is OO as well as functional).  Anyway, I think this section needs new life breathed into it, starting with a definition of object orientation that a relative beginner could understand.[[User:Pat Palmer|Pat Palmer]] 04:47, 29 May 2010 (UTC)
Just leaving a note for myself, or whoever happens by, that I think the section of "object oriented" languages is rather short, unsatisfactory, or even messy at present.  It contains, for example, this statement: "Every method (function) and every attribute (variable) must live within some object. Java, for instance, allows no global variables or functions."  This not only is not a definition, it is probably not even effectively true--it is certainly possible to simulate globals using a Singleton object with public static field or accessors.  To begin this section, I think it would be helpful to define or illustrate, somehow, what objects are and why they were an important enhancement over older "procedural-only" languages.  I am not really comfortable with the mention of "multi-paradigm" languages such as Scala here, listed almost casually in passing.  Languages like Scala (which may be regarded as related to Java insofar as it targets the JVM and uses Java libraries) are really in a different class altogether ("functional languages" or something), and mentioning it in a section on OO could be misleading (though it is OO as well as functional).  Anyway, I think this section needs new life breathed into it, starting with a definition of object orientation that a relative beginner could understand.[[User:Pat Palmer|Pat Palmer]] 04:47, 29 May 2010 (UTC)

Revision as of 01:35, 29 May 2010

This article is developing and not approved.
Main Article
Discussion
Related Articles  [?]
Bibliography  [?]
External Links  [?]
Citable Version  [?]
Catalogs [?]
 
To learn how to update the categories for this article, see here. To update categories, edit the metadata template.
 Definition A formal language specification, and programs for translating the formal language to machine code. [d] [e]
Checklist and Archives
 Workgroup category Computers [Categories OK]
 Talk Archive none  English language variant American English

Missing an important classification

An important classification is the paradigm the language is build upon.

Based on this we have main classificatin like:

Logical languages: Prolog. Functional Languages: Scheme, Haskell, ML, etc. Imperative languages: Java, C, C++, Fortan, Pascal, Cobol --Wim Huyghe| User talk:Wim Huyghe 14:02, 31 August 2007 (CDT)

Titel of page

One question, shouldn't the page either be called "Programming language" and then give an overview of what a programming language is, etc. and finally the list it currently contains, or be called "List of programming languages" with the current content?

The current name "Programming languages" looks very strange and will probably lead to mis-links. there will be a link from programming language to it. And yes tho it actually is a list it also should be the central container from where to find the langiage one is looking for. (the umbrella). Robert Tito | Talk 14:17, 25 February 2007 (CST)

[[Category:Big Write]] Big Write came to a prenaturnal end. Robert Tito | Talk 19:44, 26 February 2007 (CST)

Reference? Or Synopsis?

Personally, I'd like to see the citizendium provide a relatively nice reference to these programming languages, however, due to the large variety that we have should we simply provide a brief synopsis of the language as we're doing now? --Paul Derry 12:22, 7 March 2007 (CST)

list of languages

The list of languages currently in this article is woefully incomplete. WP has some very extensive and complete lists of programming languages already. I know that we should avoid copying WP content within reason, but I think it is rather silly to recreate "lists" of things from scratch, and that (subject to some editing, maybe), lists are better off simply copied off WP. Your thoughts? --Dan 23:32, 14 March 2007 (CDT)

also, i'd agree that the list of languages should be a separate page, which would be linked to from "programming language". seems like that would be logical to do.

I agree there, no pproblem copying some content from WP, XP or what souce as lonmg as our list gets complete. The back linking seems very handy for a walk through. cheers - good suggestion. Robert Tito |  [[Talk]]  23:44, 14 March 2007 (CDT)

I'm moving the language list to List of programming languages. Also... ugh. Really terse description of what a programming language is. Going to clean that up too, to make it more accessible to "Joe Schmoe" --Eric M Gearhart 16:40, 7 April 2007 (CDT)

Compiled vs. Interpreted no longer so helpful

The division into compiled vs. interpreted is no longer helpful, in my opinion. The lines have blurred. For example, SQL is interpreted (theoretically) by databases, but actually it is just-in-time (JIT) compiled in most cases, and programmers who place their SQL into stored procedures then ensure that it is purely compiled. C# and VB.NET are theoretically interpreted, but JIT-compiled by default, and again, they may be ngen'd (pre-compiled to native code entirely) so they are not interpreted at runtime at all. Markup languages such as HTML and XML are still purely interpreted, but it may confuse some people to think of them as programming languages. In short, I would ditch the division of programming languages into compiled vs. interpreted. It is out of date.Pat Palmer 10:32, 20 April 2007 (CDT)

Pat, the problem with "ditching" Compiled vs. Interpreted is that many classrooms still teach this concept... I remember my C++ class back in high school specifically making a "big deal" about compiled vs. interpreted vs. assembler. Maybe there should be a section that specifically says "Hey this line is getting blurred with .NET and Java etc. etc., however many people still use the terms 'interpreted' and 'compiled,' to categorize languages, and they mean 'this' and 'that.' Eric M Gearhart
another argument to keep the difference between interpreted and compiled is that compiled programs do not need any other component and can run autonomously on the targetted system. Wereas for instance javascript does need the JVM engine to be able to run. Thus in a way these JIT languages run in a sandbox and can be rather secure (not counting microsoft products since they can from a virtual protected area invoke acxive-x components that can do serious harm. Assembly most of the time is used as an embedded language within other languages - but is quite capable to be compiled into an autonomously executable. HTH, Robert Tito |  Talk  16:43, 20 April 2007 (CDT)
I'm not quite in agreement with the above, although I've heard it enough. For example, C# requires a runtime, but even so, programmers have the option of completely pre-compiling their C# applications to native code. But even if they do, the runtime is required to "load" the program, provide it's heap space, and monitor its runtime progress. The runtime is very optimized, and it's a common misconception that Java and C# programs will run slower than "native" programs written in C. Java and C# programs "start up" slower, but once "warmed up", they are practically as fast as C programs.
I do agree we need a discussion about interpreters. I can write one when I get time (but not this week--maybe within a couple of weeks though). We also need to examine various other kinds of "categorizations" about programming languages. Basically the whole article would benefit from a rewrite with an updated viewpoint. A lot of classroom teaching really is stuck back in a former time, in my opinion. I see it this way because I've been forced to work with many different programming languages and platforms, which is somewhat unusual. Among my acquaintance, most people are more specialists that I, whereas I've been forced to be a generalist, and that has shaped my perspectives on these category things. Because I've had to dig into a lot of things I never wanted to know about (but, they bit me in the butt and I had to find out what was really going on!). What I'm getting at is, there is a lot of innovation going on in programming languages and tools. I am far from an expert, but it's no longer the simple world it was when I was taught languages back in the 1980's.
I'm enjoying these discussions!Pat Palmer 18:16, 26 April 2007 (CDT)

interpreted language; archived this paragraph for now

I just pulled this paragraph off the main article for now:

The division between compiled languages and interpreted 
languages tends to be fuzzy and is by no means a rule. 
A good rule of thumb is that if a programmer writes code 
in a language that uses another application to run the 
program then the language is interpreted. If the programmer 
writes code in a language that uses another application to 
compile the code and the program can be run natively then the language is compiled.

Although I've heard this a lot, I believe it is not quite accurate. Please see the explanation about the JIT compiler on Java programming language to see what I mean. With Java, the JRE (Java runtime environment) is required to "execute" a Java program, but the language is not at all interpreted. All code is compiled to native code, and after the program "warms up", it executes as fast as any traditional compiled language. This needs to be explained here, but I don't have time at present. Just wanted to explain why I've removed the paragraph, for now. I really appreciate it when people author here; don't want to discourage anyone!Pat Palmer 18:07, 26 April 2007 (CDT)

Markup languages, anyone?

Can someone write a blurb about markup languages? It might even need its own article at some point. Any help on this article would be appreciated; I don't consider myself an expert here.Pat Palmer 18:52, 26 April 2007 (CDT)

I'm uncertain about how to treat both PDF and XML. Isn't .pdf a proprietary format owned by Adobe? Adobe just sued Microsoft and made them remove the ability for Office 2007 to spit out files in .pdf format. So I'm not sure we should treat a markup as "a language that people can program in" if it is proprietary (but I'm not sure about that either). I didn't understand the part about Javascript and .pdf--can you explain further?Pat Palmer 00:44, 27 April 2007 (CDT)
PDF now can have Javascript embedded into it, [1], here's a bit on the programming aspect of it: [2]. In the general sense PDF really isn't a programming language per say, but I still think it qualifies as once since it's a derivative of Postscript which we've already decided is a programming language. There was a demo I found once with Conway's Game of Life programmed into a Postscript document [3]. It's pretty awesome. :) --Paul Derry 20:12, 28 April 2007 (CDT)
XML is an enigma. Technically, it's a markup language, but I think of it more as a "data description" language, since it's uses end to be quite different than, say, HTML or Postscript. In fact, XML is such a "deep" enigmatic topic that I think it's rather like, say, spam (the food) or maybe Velveeta (the "cheese food"); it's hard to say what-all is really in there. Big, complex topic. And XML is sort of a "lingua franca" that allows any kind of information whatsoever to shipped around between different platforms. Pretty amazing stuff goes on with XML. It's at least an article unto itself. I'm kind of leaning towards not naming XML as a markup language here, because that may end up being confusing when a person is trying to wrap their brain around all the ways XML is getting used today.Pat Palmer 00:44, 27 April 2007 (CDT)
Isn't SGML sort of like Indo-European, in that its the mother of all the HTML/XML like things, but nobody really does any work using SGML directly? If so, it might not be the best teaching example. Ideally I'd hope we could find some really common examples that are not controversial. SGML was specified, but to my knowledge, it's only used in its raw form to specify other markups such as HTML in terms of DTD's (or is it schemas?)--I got to study this stuff some more; it makes my head hurt.Pat Palmer 00:48, 27 April 2007 (CDT)
Perhaps if we could place XML under a couple categories, Markup and say, Data Representative languages then it would help clarify some of that. We could also mention in the XML article that it really serves a very broad usage base. I've started an article on XML, it's on the draft page for it right now. So far I've just mentioned the example of using XML as a data description language. As far as SGML goes it's still the mother of all W3C markup languages so I think it deserves to receive some article time. Too bad you have to pay to read the specification for it. Silly ISO... --Paul Derry 20:12, 28 April 2007 (CDT)
I think markup languages deserve their own article, though I'm not likely to write it, or certainly not soon. Start with the collection of proprietary ones. IBM had one. DEC had runoff. Unix got nroff (new runoff) and troff (typesetter runoff) and things like pic(1) that were troff preprocessors. Ventura Publisher on the PCs. There were others, I'm fairly sure, but I do not know details. TeX was a separate development, deserves its own article.
Then SGML, Standard Generalized Markup Language, complex but flexible. HTML, defined in terms of SGML. XML, an effort to develop something simpler with the power of SGML.
Then things based on markup languages. Texinfo, Latex & other things based on TeX. The Docbook templates (SGML & later XML), developed at Sun, widely used. Cascading style sheets in HTML. ... And variant special-purpose markup, used on bulletin boards, wikis, ...
I do not see either PostScript or PDF as a "markup language" since I cannot imagine a human using them to "mark up" a document, as one can with HTML or nroff or ... However, I might be wrong and even if I'm not, they could be covered in a "markup languages" article provided caveats were included. Sandy Harris 07:35, 29 May 2010 (UTC)

Object oriented

Just leaving a note for myself, or whoever happens by, that I think the section of "object oriented" languages is rather short, unsatisfactory, or even messy at present. It contains, for example, this statement: "Every method (function) and every attribute (variable) must live within some object. Java, for instance, allows no global variables or functions." This not only is not a definition, it is probably not even effectively true--it is certainly possible to simulate globals using a Singleton object with public static field or accessors. To begin this section, I think it would be helpful to define or illustrate, somehow, what objects are and why they were an important enhancement over older "procedural-only" languages. I am not really comfortable with the mention of "multi-paradigm" languages such as Scala here, listed almost casually in passing. Languages like Scala (which may be regarded as related to Java insofar as it targets the JVM and uses Java libraries) are really in a different class altogether ("functional languages" or something), and mentioning it in a section on OO could be misleading (though it is OO as well as functional). Anyway, I think this section needs new life breathed into it, starting with a definition of object orientation that a relative beginner could understand.Pat Palmer 04:47, 29 May 2010 (UTC)