Jump to content

Template talk:Programming languages

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by StefenTower (talk | contribs) at 23:08, 4 June 2005 (Visual Basic .NET). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Note: Initially, this box was placed on C programming language and some other articles by User: Lee1026. It seems like a useful addition, so I converted it to a template and proceeded to add it to the bottom of all articles it lists. It is certainly somewhat biased in what languages it includes — but feel free to edit, as long as it remains relatively small. Deco 21:01, 15 Nov 2004 (UTC)

Language inclusion criteria I

[The article] is certainly somewhat biased in what languages it includes — but feel free to edit, as long as it remains relatively small. --Deco, above

Thanks for the invitation -- but beware; someone might take it up :) On a more serious note, I personally would bring the inclusion of e.g. Haskell into question. What criteria should we use? In any case, I think we'd better restrict the number of languages in this particular "in crowd" to the ones with a very significant number of users all around the world. Now, how to determine Nusers ... --Wernher 21:43, 15 Nov 2004 (UTC)
Oops, forgot: also include historically very significant languages, I guess. --Wernher 21:48, 15 Nov 2004 (UTC)
My criterion was just that I'd heard of it (I'm only unsure about SAS). Originally, Lee1026 included the following text above the box: "The following are major programming languages used by at least several thousand programmers worldwide". This seems rather difficult to verify. I'd say any language given a significant treatment in a textbook on programming languages is probably good (like Pascal, ML, Lisp, FORTRAN, Prolog, C, C++ have.) All "mainstream" languages qualify, and we more or less know what those are (mainly, Java, C, C++, VB, maybe Delphi). We could even factor in Wikipedia page visit counts. I think it will ultimately come down to a case-by-case treatment. The most important thing, though, is that it remains exclusive enough so that it is small enough to be useful and avoid clutter. Deco 21:57, 15 Nov 2004 (UTC)
Your criteria above corresponds very much with my own, so there's two wikipedians -- couple of thousand other opinionated prog lang interested geeks soon to pitch in with their say :) I have done some preliminary(?) trimming already, removing some very domain-specific languages and some with that characteristic as well as being tied to specific companies. --Wernher 22:20, 15 Nov 2004 (UTC)
Okay, looks good to me, just make sure that the box is kept only on pages of those languages in the box. I don't agree, though, with the exclusion of Eiffell, Haskell, or especially OCaml; they're all general-purpose languages used quite widely (admittedly, OCaml is a dialect of ML, but this isn't quite as obvious as the fact that Common Lisp is a dialect of Lisp). All four give 300K+ Google hits together with the word "language", and in my own experience they're popular in a number of significant circles in schools and industry. IDL is also used widely in industry, even if it isn't general-purpose. I added these four back. Deco 22:35, 15 Nov 2004 (UTC)
I removed OCaml exactly for the reason you mentioned -- readers will find that one immediately via ML, so I think it should be left out of the box, like Common Lisp. Talking of removal, I'll now remove Modula, which only gets half as many hits as the ones you mention and because its predecessor Pascal is much more important historically as well as in terms of user community incl education. Generally, most of the other 'boxed' languages in use today give millions of hits (even SAS, a quite 'lowly' one, gives ~1.5M, while LOGO gives ~11M, and ML as well as C# gives ~3M).
I must admit I still think Eiffel, Haskell and IDL should be removed based on their 'insignificance' historically and/or 'user base wise' compared to most of the other languages. And IDL describes a type/family of languages, doesn't it? BTW, I did delete the template from the articles of the languages I removed (or did I forget some?) ;-) --Wernher 23:18, 15 Nov 2004 (UTC)
Presiceification/encyclopedical-editorial modification: if IDLs are actually to be defined as programming languages (as opposed to the more general class of computer languages), which I think is a valid question in itself, I agree that it/they should be included here (CORBA et al. are VIPLs, most certainly). As for historical significance, I actually think one might consider Simula (although I could be said to be slightly biased re that -- exactly why is left as an exercise for the reader :-] ), which arguably represented the birth of object-oriented programming (and which inspired Bjarne to create C++). --Wernher 23:35, 15 Nov 2004 (UTC)
I only recommended keeping Ocaml because more people seem to know what Ocaml is than know what ML is, even though Ocaml is ML, due to its popularity, but I may be mistaken in this impression, so I removed it. I recommend keeping IDL because it has a strong industry presence, although it's certainly not a "programming language" per se. As for Haskell and Eiffel, even if they're not used often in industry, they're very popular in academia and they've had a strong influence on software engineering and programming language design (Eiffel pretty much invented design by contract, and a discussion of functional languages that doesn't mention Haskell would surely be incomplete). In my experience in PL research their names seem to come up all the time. As I said, I'm afraid it really will come down to having to argue each language on a case-by-case basis. Deco 23:37, 15 Nov 2004 (UTC)
Oh, and as for Simula, I don't object, although all the other "historical" languages in the list also have or had heavy use in practice. I'm sure Stroustrup had more than Simula on his mind though — he couldn't have missed Smalltalk. Deco 23:45, 15 Nov 2004 (UTC)
...which is no problem, since it's already included :-) Regarding the other stuff, I think we might have reached a kind of consensus now -- agree? Always nice with some constructive (and talking for myself at least, educational/enlightening) 'shop talk'! For more volatile personalities, I guess this topic is food for rv wars :) --Wernher 23:54, 15 Nov 2004 (UTC)
Agreed. :-) Here's to hoping the extremists give us a rest first. Deco 23:59, 15 Nov 2004 (UTC)

I think the most constructive thing to do would be to destroy this template. "Major" is perpetually impossible to define, esp. with programmers usually fighting endlessly for their favorite languages. I just don't see an encyclopedic purpose for the template, esp. when lists of programming languages (including specific types of languages) already exist. Therefore, the reasonable good thing to do would be to end the template's existence. --Stevietheman 21:19, 26 Dec 2004 (UTC)

I'd agree if it weren't for the fact that that simply hasn't happened. No one's complained about the list even a bit. I never came to arms with Wernher, and no one else has made any major changes. The originator of the box idea seems to have vanished. I'm not sure yet whether people are content or apathetic with the box.
Of course the reason the box exists is its practical utility. Just as EXPTIME has a box of major complexity classes which is quite subjective, it's handy to have a quick way to visit a number of important topics in a specific area. The items in this box are quite subjective, but the function of the box is not to make claims but to aid navigation. Deco 05:11, 29 Dec 2004 (UTC)
I understand your point of view, but what I'm saying is that the list is super-subjective and conflict-baiting whether or not there are currently complaints about it. In other words, it's not of encyclopedic relevance.
Further, I don't see the navigational significance of it, in that if I'm looking up an article on PHP, I'm not also looking up an article on Perl or another language in the "major" list in the vast majority of moments. But note, that in many of the language articles, there are references to other languages in comparison, so visitors can use those links to jump. We're also smartly categorizing languages now, so it's easy to jump to a category and see similar languages in a specific context. On top of all this, it just takes up space--I've never used it to jump to another language--ever. This criticism is basically that the list is redundant and probably not going to be useful in actual encyclopedia use. --Stevietheman 16:28, 29 Dec 2004 (UTC)
I understand if you don't find it useful personally, but neither of us can definitively claim whether or not people are using it. I can say that I've used the similar Template: ComplexityClasses a lot. I've attempted to keep it small while not omitting anything too important, but if you feel it's too large it can definitely be stripped down more. I realise that categories are available (the box links one, in fact) but n clicks and page loads is still a lot better than 2n, and the categories are also a bit overwhelming in size. The links in comparison are useful when reading through the text, but less useful for "touring" the articles, since they're buried and incomplete. If you feel so inclined you can submit the template to Wikipedia: Templates for deletion, but I should warn you that they've kept some weird stuff. Deco 03:40, 30 Dec 2004 (UTC)

Keep box at two text lines only?

The reason I reverted a recent edit which put a separate line of links below the list of languages, was that I believe it's a virtue to keep such listboxes at an absolute minimum number of lines. Besides, the suggested extra link to the chrono list of languages may be viewed as superfluous, since the same link is one of the very first one meets at the alphalist page (even though this leads to one further click, I admit). A reasonable alternative might be to add the alphalist link in the header, I guess. --Wernher 22:53, 21 Jan 2005 (UTC)

The alphalist is the 'more' link in the header. I changed the template to match the style that used to be in the proposed re-write of Programming language, until I replaced it with this template. Noisy | Talk 00:34, Jan 22, 2005 (UTC)
Argh. Argh. Argh. I meant chronolist above, of course (i.e. please execute alpha^H^H^H^H^Hchronolist). The argument holds anyway, I guess. Also, where should we place the limit on included links; we've got the alpha and chronolist, and the generational list, and the esoteric languages list... Oh well. --Wernher 14:03, 22 Jan 2005 (UTC)
Don't forget that the number of lines in the box depends entirely on your browser window's width. When I view at 1280 x 1024 maximized I see well under 2 lines, while 1024 x 768 has about 2 (maybe just over), and 640 x 480 has more like 4 lines. Really tiny windows, like a non-maximized window on 640 x 480, can have like 6-8. Deco 01:28, 22 Jan 2005 (UTC)
Yup, true. I tend to kind of assume that the majority of readers view Wikipedia with 1024 x 768 resolution or higher (that assumption might be taken as a little arrogant, perhaps). But still, the argument generally holds, I think, since the smaller the box--within sensible limits--the less space it generates). --Wernher 14:03, 22 Jan 2005 (UTC)

Define "major"

Precision is key to an encyclopedia, whether anyone "complains" about an article/template or not. To that end, we need to have a precise definition of "major" somewhere as a way of sourcing this template. I don't want to jump to tfd as I would normally like. I want to give those interested in this template a chance to refine it first. Note that previously I attempted to create a somewhat scientific basis for the list when it was in a different incarnation. Now, I'm not so arrogant as to think my approach was best—I merely want one reasonable basis for the list to be found and agreed upon. "Major" as it currently stands (here and in the category of the same name) is really too nebulous and doesn't provide encyclopedic relevance. — Stevie is the man! Talk | Contrib 19:15, 31 Jan 2005 (UTC)

I thought the discussion thread "Language inclusion criteria" addressed this question in a practical way. To date, our definition of "major" has been a mix of "significant by number of users" and/or "historical importance". What other way to define it? I think a measure of the latter is possible to obtain by reading some reference literature on programming languages (e.g. the "major" textbooks used in university level courses on the subject). --Wernher 09:43, 1 Feb 2005 (UTC)
Too imprecise and very open to interpretation. Anybody else want to take a stab? — Stevie is the man! Talk | Contrib 10:48, 1 Feb 2005 (UTC)
Hmm, I don't want to let go just yet. :-) In what way(s) do you think the included languages aren't major in relation to the enormous lot of other lesser known and less used and not at all historically significant languages out there? Is there any doubt that e.g. ALGOL, BASIC, C, COBOL and Fortran, say, are historically (and also, I might add, Nusers-wise) significant? --Wernher 11:04, 1 Feb 2005 (UTC)
I'm going to go ahead and open this discussion to a wider audience. Unless "major" is based on some precise measurement, then there's no use for the template. It's just plain nebulous, and thus not encyclopedic. We would just go in circles with the discussion as it stands here. — Stevie is the man! Talk | Contrib 22:01, 1 Feb 2005 (UTC)
Yes, please do involve more people to the discussion. As for the preciseness of "major" prog.langs, it should absolutely be stressed that not everything encyclopedic is defined based on exact "mathematical" terms -- not in traditional paper encyclopedias, and neither in WKP. So, as you have known for a time now, I think removing the template is doing WKP (users) a disfavour. Sigh. --Wernher 22:32, 1 Feb 2005 (UTC)
Okay, here are some criteria:
  • The language is a practical language that has been used by many organizations or at least one well-known organization to construct significant real-world applications (whether to sell, use internally, or use for experimentation).
  • The language is notable (just what notable means has been a subject of some debate on VfD and elsewhere).
  • The language's article is developed well enough to be interesting and informative to people familiar with other languages on the list.
  • The language is, roughly speaking, "on par" with at least a couple other languages in the list with respect to the attributes above.
These may be too broad or too narrow or both, but it's a first stab. Deco 21:48, 4 Feb 2005 (UTC)

Thanks for being patient with me. I had decided to think this through more carefully, and it took me a week and a half.

I've come to some basic conclusions:

  • A template like this could indeed be at least slightly useful for navigation between languages, so at this juncture I would no longer like to campaign for its deletion. I guess I've caught the fever.  :)
  • The term "major" is too nebulous for that to be the only qualifying term in the name of the template itself. "Major" by itself is unencyclopedic. We should be open to a name change for the sake of clarification.
  • It is my understanding that there are three categories of languages under the "major" banner here, that being 1) Major contemporary languages in use by programming professionals, 2) Major contemporary languages in use by academia, and 3) Major historical languages (or precursors to contemporary languages). Therefore, I propose that the current "major" list constitutes a jumble of ideas and should be split into three templates. After all, if we're talking about "ease of navigation," shouldn't we then also be ensuring that the languages in the list actually have a meaningful relation to each other? For instance, I really don't see why PHP and Haskell should be in the same list/template.

If we go with splitting this template into three, I would also incorporate much of the criteria that Deco brought up. And thank you Deco for taking up the challenge.

So, what do you guys (and others) think?

Stevie is the man! Talk | Contrib 00:45, 14 Feb 2005 (UTC)

OK, now we're talking. Currently, I think the template reflects no. 1 and 3 of Stevie's criteria. I would argue that those criteria are necessary and sufficient for this particular template, i.e., that they constitute a reasonably good definition of "major", which leaves the academically-only significant languages to another separate template (easily found by navigating to such a language from one of several language list articles and from one of the pertinent language articles). My conclusion: two templates rather than three. --Wernher 06:19, 15 Feb 2005 (UTC)
But, then, that still leaves historical muddled with contemporary professional. I really don't see why anyone would need to navigate between those two concepts. — Stevie is the man! Talk | Contrib 11:26, 15 Feb 2005 (UTC)
I would say that the template's combination of historically significant and contemporary 'used-by-pros' predominant languages gives the reader a good idea of which articles to check out for getting a picture of the broad lines of programming language development/lineage and practiced state-of-the-art. It is much more of a concise, practical navigation aid than it is an academically strict one. If not for this "definition" of "major", I'd agree with Stevie that the template would be more or less superfluous. But as I have said several times now, I feel there's a place for it in that it surely (in my reckoning) must assist many readers* in easily navigating between these, -er- major, languages. --Wernher 04:26, 17 Feb 2005 (UTC)
(* I know the template helps me, for one, from time to time, and I (would like to) think I'm not the only one. No matter how many programming languages I get to know (of), having been dabbling in this field of interest for quite a lot of years, I still find the relatively few ones lined up in this template to be the ones I refer to most often.)
I continue to disagree that historical and contemporary professional languages should be combined. There are already ways to research the chronological lineage here. You may want to consider how the average person interested in languages would be navigating. I'm confident most wouldn't be navigating between contemporary professional and dead historical languages. It just doesn't ring true. — Stevie is the man! Talk | Contrib 17:19, 17 Feb 2005 (UTC)
Sigh. Well, I don't think I'm able to argue the case for the present contents of the template any clearer than what I've done already (even though you think it's not clear at all, of course). I say we open the discussion to a wider audience, as you suggested earlier, by e.g. putting the dispute up for resolution in the suitable WKP forum. --Wernher 21:39, 17 Feb 2005 (UTC) (still insisting on the 'navigability' usefulness of this template in its current state)
How about we just separate the existing template into three sections, separated by horizontal bars? The sections could be labelled, if necessary. Deco 06:50, 18 Feb 2005 (UTC)
Good suggestion. Let's open a new thread on this, lest the present one grows out of all proportions. --Wernher 11:07, 18 Feb 2005 (UTC)

Section split discussion

Following up Deco's suggestion of putting the different categories of languages into separate sections in the template, preferably with concise descriptive labels, we have to come up with suitable placement of the languages into each of the sections. This is perhaps harder than it seems at first thought, since some of the languages may be said to belong to at least two of the three categories that Stevie mentioned. Now, either we should discuss the stuff first and then do the template editing, or we should Just Do It™, and refine the template iteratively as necessary. Any thoughts on this? --Wernher 11:13, 18 Feb 2005 (UTC)

I think a little overlap (and I do think it would be very little) is not a bad thing. Further, we have to consider the vertical space this thing would take up... as long as we don't let it get out of hand, this would be all right by me. I don't mind anyone taking a good stab at this (Be bold). I personally don't have a lot of time right now to tackle it as a whole, but I'd be happy to do some editing once somebody does the initial work. — Stevie is the man! Talk | Contrib 11:31, 18 Feb 2005 (UTC)
I gave it a shot. My main problem is that most of these look like "mainstream" languages to me. My version so far is below; we can edit it here until it looks proper, since it does affect a lot of articles. Deco 17:56, 18 Feb 2005 (UTC)
Major programming languages (more)
Mainstream

Ada | ALGOL | APL | AWK | BASIC | C | C++ | C# | COBOL | Delphi | Eiffel | Fortran | IDL | Java | JavaScript | Lisp | Objective-C | Pascal | Perl | PHP | PL/I | Prolog | Python | Ruby | SAS | Scheme | sh | Simula | Smalltalk | SQL | Visual Basic

Academic

Haskell | ML

Historical

LOGO

I would have posited that ALGOL and AWK were historical/precursor languages. And some other "mainstream" languages are practically dead in terms of their actual use today, e.g., PL/I and Smalltalk. Shouldn't we really mean MAJOR here? :) — Stevie is the man! Talk | Contrib 19:57, 18 Feb 2005 (UTC)
Hear, hear; major, that's what I've been saying all along! :))) OK, to be a little more serious, how 'bout the following, somewhat more compact, template suggestion, including some (radical?) inter-sec moves. My rationale follows below. As for the compacting, I have seen this way of doing it in some other listbox templates here and there, and think it's quite orderly and unambigous. Most such boxes should really be kept at maximum three vertical lines, IMO. Hope you agree.
Major programming languages (more)

Industrial: Ada | C | C++ | C# | COBOL | Delphi | Fortran | IDL | Java | JavaScript | Lisp | Objective-C | Perl | PHP | Prolog | Python | Ruby | SAS | sh | SQL | Visual Basic | Academic/Educ.: Eiffel | Haskell | LOGO | ML | Pascal | Scheme | Historical: ALGOL | APL | AWK | BASIC | PL/I | Simula | Smalltalk

1. I changed the label Mainstream to Industrial since I have a strong feeling that e.g. Prolog can't exactly be called a "mainstream" programming language. Likewise with IDL, PHP, and perhaps more? Professional doesn't ring quite right in my ears, because all those languages are "professional" in their own way even though they're not all used industrially/commercially (any longer). Also, I extended Academic with Educ(ational). I guess the abbreviation is more than enough (it makes the box a little neater); those checking out these articles would know what is meant, or what?
2. Regarding my moves between sections: I'm open for discussion of course, but I'd honestly say BASIC and Pascal are no longer (used as) mainstream/industrial languages -- their roles as heavily used languages have been taken by Visual Basic and Delphi, respectively. However, Pascal might still be used as an educational language [or at least, it should be :)], so I put it in the Academic sec. Maybe it should rather be in the Historical sec, I don't know. Simula [first OO language; invented in Norway! :)] is not very much used today I think, other than in minor educational settings, so I put that in the Historical sec as well. --Wernher 00:25, 19 Feb 2005 (UTC)
The only move I disagree with is Smalltalk, which is still used. I'm going to label it academic. I'm also reshortening the academic abbrev, just for brevity and since academic sort-of includes educational. I also tried to deal with the labels being in the flow, which is a bit weird. Using line breaks seems to keep it fairly compact at most window sizes:
Major programming languages (more)

Industrial: Ada | C | C++ | C# | COBOL | Delphi | Fortran | IDL | Java | JavaScript | Lisp | Objective-C | Perl | PHP | Prolog | Python | Ruby | SAS | sh | SQL | Visual Basic
Academic: Eiffel | Haskell | LOGO | ML | Pascal | Scheme | Smalltalk
Historical: ALGOL | APL | AWK | BASIC | PL/I | Simula

Hmm, I'm also considering moving Lisp from Industrial to Academic (it's used in industry, but significantly more than the others listed in Academic?) Deco 02:08, 19 Feb 2005 (UTC)

Methinks this latest incarnation is the closest to goodness I've seen here, and is dramatically better than what is "in production" right now. Kudos to you both. I might have said "Commercial" but "Industrial" is acceptable. I also question Fortran as its current use is so narrow in industry (as far as I can tell), but still seems to be used heavily academically. I'm also unsure that Ruby has risen to "major" status as of yet--it's known to many, but is it really major? I haven't run into much being done with it "industrially," and I read a lot about this kind of stuff. — Stevie is the man! Talk | Contrib 16:57, 19 Feb 2005 (UTC)

Thanks for the kudos. I chose "Industrial" instead of "Commercial" since the former is a tad 'wider' than the latter IMO -- but both would be suitable, I guess. Fortran is heavily used in quite many science/engineering settings, both commercially and academically/research-wise, for numerical computations incl supercomputing (although slowly(?) getting replaced to some degree by C++ [sorry, gotta go puke--]). Also, Fortran 95 has given this 'old war horse' of sci-tech programming languages a new lease on life. I agree on the Ruby issue. --Wernher 00:09, 20 Feb 2005 (UTC)
OK. Let's keep Fortran where it's at. And let's junk "Ruby" unless Deco and others object. Certainly, it's possible for Ruby to reappear later if warranted. — Stevie is the man! Talk | Contrib 19:27, 20 Feb 2005 (UTC)
Ruby's status has changed dramatically over the last several months, thanks to the very popular Ruby on Rails web development framework. I think it is a mistake at this point to omit it. Can we add it back to the list? Michael Geary 06:51, 9 May 2005 (UTC)[reply]

Other changes I might make to this: 1) Clipper was major during a period of time, so perhaps it could be "historical". 2) ABAP and ColdFusion would seem to be other "industrial" languages that are major today. 3) I'm unsure that Objective-C is really major enough to stand on its own outside of "C" (perhaps one of you can convince me otherwise). — Stevie is the man! Talk | Contrib 17:08, 19 Feb 2005 (UTC)

As for 1) If we include Clipper, wouldn't we also have to include dBASE III macro(?) language? 2) IIRC, Coldfusion was present in an earlier version of this template, so I guess it's a valid discussion. 3) Same here, I too am unsure on Objective-C. --Wernher 00:09, 20 Feb 2005 (UTC)
1) If DBASE as a language was ever major (unsure), then adding it as historical sounds good too. 2) ColdFusion still seems to get pretty heavy use, but I'm willing to sit on the fence with this one. — Stevie is the man! Talk | Contrib 19:27, 20 Feb 2005 (UTC)

Also, Deco, you may very well be right about Lisp, but this is only an educated guess. — Stevie is the man! Talk | Contrib 18:53, 19 Feb 2005 (UTC)

I think the following (leaving the languages under discussion where they are for the time being) is a slightly better layout of the template. It kind of combines the two drafts given above; a linebreak between the "Industrial" and the two other language sections, but not between the latter. Instead I've put a little space between those two, where the amount of said space could be discussed, of course. This scheme keeps the largest section clearly distinct from the other two, which I think is the most important divide semantically speaking.
A thing I weren't able to implement would be to align the Academic items to the left and the Historical ones to the right. Perhaps you may help me with this? (given that you agree with me on the layout issue to some degree, that is). --Wernher 00:09, 20 Feb 2005 (UTC)
I think I like what you're driving at. I'll see if I can get it looking better. Can't make any promises though. — Stevie is the man! Talk | Contrib 19:27, 20 Feb 2005 (UTC)
Major programming languages (more)

Industrial: Ada | C | C++ | C# | COBOL | Delphi | Fortran | IDL | Java | JavaScript | Lisp | Objective-C | Perl | PHP | Prolog | Python | Ruby | SAS | sh | SQL | Visual Basic
Academic: Eiffel | Haskell | LOGO | ML | Pascal | Scheme | Smalltalk;   Historical: ALGOL | APL | AWK | BASIC | PL/I | Simula

A couple of more things while I'm at it. I must admit I'm a little uneasy regarding the inclusion of more or less proprietary stuff such as SAS and Coldfusion. On the other hand, I'd rather see we replaced SQL, which isn't a programming language but a query language (it belongs in the wider category of computer languages), with PL/SQL, but that's proprietary! Argh. Decisions. Dilemmas. If we decide to do include proprietary domain-specific languages, however, PL/SQL is a good ("major") candidate, as it is used by a lot of people, and also because it is emulated by one or more commercially unrelated open-source, non-proprietary DBMS languages. --Wernher 00:27, 20 Feb 2005 (UTC)
I have unease about proprietary languages as well, but for encyclopedic purposes, we really can't put this unease into deciding "major" languages. SAS and ColdFusion are quite widely used, and if that means they're major, they're major.
To me, languages like SQL and IDL are programming languages because they are used directly in programming, as SQL is executable and used in stored procedures written with proprietary extensions like PL/SQL, and IDL describes how distributed computing interfaces are to work. I also can see the case for including PL/SQL, as it's definitely used quite heavily out there. — Stevie is the man! Talk | Contrib 19:27, 20 Feb 2005 (UTC)
Hey all, good work on the box. I've heard that Ruby is more widely used in Japan; but since this is the English Wikipedia, I suppose we can be excused not mentioning it. SQL/PL is proprietary, but really, so are Java and C# (to a lesser extent). I think anything that's very well-known and widely used should probably be included as long as it's not a formatting/document language like most W3C languages. In other words, I think PL/SQL should probably be added, yeah. Deco 01:01, 21 Feb 2005 (UTC)
Following is a reformatted version, with Ruby removed, and PL/SQL and Clipper added.
Major programming languages (more)

Industrial: Ada | C | C++ | C# | COBOL | Delphi | Fortran | IDL | Java | JavaScript | Lisp | Objective-C | Perl | PHP | PL/SQL | Prolog | Python | SAS | sh | SQL | Visual Basic

Academic: Eiffel | Haskell | LOGO | ML | Pascal | Scheme | Smalltalk

Historical: ALGOL | APL | AWK | BASIC | Clipper | PL/I | Simula

Are we getting close yet? — Stevie is the man! Talk | Contrib 04:35, 24 Feb 2005 (UTC)
I polished the above suggestion to get the same background color in the lower part as the upper (a very light grey), and to get the two lower categories aligned left and right, respectively. I'd also like to compact the table vertically, like the former suggestion of mine (not a major gripe, though). --Wernher 11:58, 24 Feb 2005 (UTC)
Major programming languages (more)

Industrial: ABAP | Ada | C | C++ | C# | COBOL | Delphi | Fortran | Java | JavaScript | Lisp | Objective-C | Perl | PHP | PL/SQL | Prolog | Python | SAS | sh | SQL | Visual Basic

Academic: Eiffel | Haskell | Logo | ML | Pascal | Scheme | Smalltalk

Historical: ALGOL | APL | AWK | BASIC | Clipper | PL/I | Simula

Looks good. I hadn't tested my work in IE, as I'm a Firefox junkie, so you were probably seeing formatting issues I wasn't seeing. — Stevie is the man! Talk | Contrib 23:37, 24 Feb 2005 (UTC)
I have been wondering about whether we should mark the proprietary languages with a small symbol or something. IMO, the readers should be informed of this distinction. --Wernher 21:11, 26 Feb 2005 (UTC)
Sounds reasonable. I'd just be concerned if the box took up any more vertical space. It's about as big as I can stand right now.  :) — Stevie is the man! Talk | Contrib 23:45, 26 Feb 2005 (UTC)

Language inclusion criteria II

This thread's initial comment moved from the previous thread, in order to separate the discussion of inclusion criteria from the treatment of layout.

I also took the liberty of adding ABAP, as I feel reasonably comfortable it's major, being from SAP and all. Of course, I'm open to discuss. I also still feel funny about Objective-C and I had neglected to mention Prolog before--is it really major in industry? — Stevie is the man! Talk | Contrib 23:37, 24 Feb 2005 (UTC)

The reason I haven't suggested removing Obj-C is the presumably large community of programmers using it for Mac OS X applications. Anyone know more of this? Prolog is reportedly used much in AI programming outside as well as inside academia. I'm no exactly an insider in the AI world, so I can't add any personal gut feeling about that, however. If there wasn't much industrial AI use of Prolog, it would fit into the Academic section, of course. --Wernher 21:11, 26 Feb 2005 (UTC)
  • Objective-C is one of those languages that you're sure is dead at any given moment, but if you're not looking at it people are still using it. :-) For some reason it clings to life with surprising tenacity. The only major use of it seems to be restricted to Cocoa, and that more-or-less by historical accident, but then, Cocoa is in active use (which is more than can be said of most Smalltalk implementations — sorry, Smalltalk fans, I know you're still out there). It's clearly not in the same league as the others, but not quite "academic" or "historical" either. I'm willing to bet it won't take long, though. Then again, I'd much rather like to say that about COBOL, but that too seems to be on perennial life support. :-)
  • Prolog was big in the past, but the AI bubble has mostly burst. What's left of it doesn't use much Prolog anymore. It has its place in computational linguistics, but even that is by no means a Prolog-ruled domain (certainly not the part that could be called "industrial"). By comparison, Lisp started out as an AI language (and is still used that way) but it's since branched out, and is almost indistinguishable from a general programming language these days. :-). Prolog never really made it "big" that way, though it's seen novel applications beyond its design.
  • To clarify: there's the generic family of interface description languages, the IDL specification language which is apparently a cheap attempt at usurping the brand :-), and there's the completely unrelated IDL programming language, a dinosaur Fortran offshoot that's sufficiently obscure to be completely forgotten as an acronym today. We're talking about interface description languages, but those are not programming languages, no more than BNF dialects are. They're major, sure, but I think it's stretching the concept too much. These languages resemble programming languages but aren't, really. You can't "write a program" in an IDL (well, maybe theoretically, in a really really detailed IDL, but that's clearly not the main use). An interface is not a program — by definition, practically.
  • It's "Logo", not "LOGO", though the language is old enough to be written in SHOUTCAPS (or maybe it just followed FORTRAN's example; the latter always preferred being called "Fortran"). I was surprised to find out that it's apparently still used (yes, even if just in academic circles — I could've sworn it was dead).
  • Does the Bourne shell language qualify as "major" in any sense? Of course it's used a lot, but I'm betting even the most avid shell scripters would think it odd to see it here. It's just, well, glue, the fact that you can write complete programs in it notwithstanding. Does the MS-DOS batch file language count as a major historical language, then? It sure was used a lot. :-)

Just loose, POV thoughts. Much like this template is. :-) 82.92.119.11 22:55, 27 Feb 2005 (UTC)

Re: Objective-C, I would say that "not dead" doesn't mean "major". Re: Prolog, do you mean to say it should be historical? Re: IDL, I think programming languages are languages used in programming, not necessarily straight executable languages necessarily. So, IDL (in the "interface description language" sense) qualifies. Re: POV, this is a navigational aid, not content per se. To not have this would mean that we couldn't have any "top" lists of anything. Of course, the determinations could be POV, but they are agreed to as "major" by the editors. — Stevie is the man! Talk | Contrib 01:07, 28 Feb 2005 (UTC)
Re: Logo, I updated the last example template above. — Stevie is the man! Talk | Contrib 01:10, 28 Feb 2005 (UTC)
Objective-C: true enough, but the difficulty is that Objective-C definitely mattered. Moving it to "historical" when it's still in use looks weird. Prolog: personally, I'd say yes. IDL: I see what you mean, but I'm still not convinced. Again, why not BNF (or specifically Yacc grammars), then? Doesn't get much more major than that. Why not put in XML, as much used in programming as anything else? I'm sorry, but I can't help looking at IDLs as fairly trivial glue. They solve important issues, but does this alone qualify them as "major programming languages"? Hardly. I actually would like to draw the line at languages that can be used to specify algorithms only. IDLs don't qualify. POV: I was being facetious. Though these discussions are nice. :-) 82.92.119.11 08:31, 28 Feb 2005 (UTC)
Clipper is still in use too. What we mean by "historical" (I think) is that its "major" status is historical. So, this may apply to Objective-C. Re: IDL, I might agree but only to limit the potential size of this template... but we should keep languages like SQL... I think the criteria shouldn't just be "algorithmic" but even wider to say "executable." IDL isn't directly executable but SQL is. — Stevie is the man! Talk | Contrib 11:36, 28 Feb 2005 (UTC)
ObjC: I agree. You will have to make the point to any ObjC weenies who disagree, however (if there are such). SQL: keep. As the SQL page says "One joke about SQL is that "SQL is neither Structured, nor a Language." This is founded on the notion that pure SQL is not a classic programming language since it is not Turing complete. On the other hand, however, it is a programming language because it has a grammar, syntax, and programmatic purpose and intent", not to mention the extensions to SQL that often make it a full-fledged programming language anyway. The main reason IDL irks me is because it's both a family of languages, and it's all bones and no meat — you can do something with SQL. You can't do anything with IDL but glue together existing systems — that's stretching the "programming" so thin that it's transparent. However, I do realize I'm nitpicking definitions. If people want IDL in anyway, I'm not going to throw my hands up and walk away in disgust; it's just not what I would do. 82.92.119.11 17:40, 28 Feb 2005 (UTC)
82.92.119.11> COBOL [...] seems to be on perennial life support.
Well, AFAIK, COBOL is still heavily used in mainframe applications dealing with banking and other large scale administrative tasks, so I wouldn't at all say that it's on "life support", insinuating that it's just kept barely alive for use in a few elderly systems. While some COBOL systems admittedly have been moved over to (mainly) C++/ABAP/SAS over the last 10 years, there's still a huge number of (typically overnight batch) apps in said domains chugging along. --Wernher 12:05, 28 Feb 2005 (UTC)
"Chugging along"? Are you insinuating those systems don't do that well? :-) OK, OK, let's not let my rabid hatred of COBOL get in the way of things, here. I know there are still plenty of people out there who use it, and I can even see how it still has an edge over other languages in its domain, regardless of the misgivings in its design... No wait, I'm not improving things here... Alright, let's just say that I, personally, think people really ought to do better than COBOL, and while I accept that certain corporate realities may prevent this from happening, that doesn't mean I have to like it. However, you will notice that I never suggested moving it. I'm not questioning it's a major industrial language. I'm just biased because I had to use it once. :-D 82.92.119.11 17:40, 28 Feb 2005 (UTC)

"Final" dispositions on languages

Before we release our finely crafted thingy to the wild, we gotta make some decisions on languages that appeared to be in contention in the discussion above. Here's the list as I see it--feel free to expand. For each one, shown as a header, please add comments about what you want to do with it. — Stevie is the man! Talk | Contrib 02:20, 1 Mar 2005 (UTC)

Prolog

  • From discussion above, "historical" sounds right.Stevie is the man! Talk | Contrib 02:20, 1 Mar 2005 (UTC)
  • I would say academic. Although it's not widely used in either industry or academia, it is widely taught, being the primary logic-based programming language. Deco 04:09, 1 Mar 2005 (UTC)
  • Labeling as "academic" might be more accurate, but only as long as it's use is really "major" in academia. It's either "historical" or "academic"--I'm undecided now. :) — Stevie is the man! Talk | Contrib 11:37, 1 Mar 2005 (UTC)

sh

  • Like discussed above, is this really any more significant than similar languages on other plafforms? And should languages like this qualify for this list? Isn't this more like for "glue" than for writing "industrial" programs? I think I'm leaning toward non-inclusion right now.Stevie is the man! Talk | Contrib 02:20, 1 Mar 2005 (UTC)
    • I think I've changed my mind and would like to see it stay--it's what all the other sh's are derived from and used very extensively. — Stevie is the man! Talk | Contrib 17:10, 5 Mar 2005 (UTC)
  • Better would be shell script, if it weren't such an underdeveloped stub. I think shell scripts are important, but only in general; no one specific shell script matters much. Deco 04:09, 1 Mar 2005 (UTC)
  • The reason I(?) included sh was that I understand it still to be very much in use for programming in everyday unix admin work--glue language or not. Also, since bash is backwards compatible with sh, I'd guess many bash scripts are simply evolved sh scripts. I too, however, would rather like shell script to be listed instead of sh. --Wernher 20:40, 4 Mar 2005 (UTC)
  • I would like to see sh taken out... it simply isn't a programming language. I think part of the problem is that we use sometimes use "programming" in the metaphorical sense to mean "sending a computer instructions." Strictly speaking, this isn't the case. The Borne Shell is completely useless on its own. —Sean κ. + 23:27, 23 May 2005 (UTC)[reply]
    • You're thinking of the interactive mode of sh. Borne Shell is a Turing-complete programming language, with loops and conditionals, used to write command-line scripts. I mentioned my opinion above — I would prefer to replace it with shell script if this article were first expanded. Deco 00:57, 24 May 2005 (UTC)[reply]
      • <pointless rant>If we're going to call it a programming language, then it's completely useless as one. Its function is scripting, not programming. I mean, how many people are really out there writing sh programs? I just feel it's pushing the envelope to call it a "major programming language". What about all the other OS-based scripting languages? What about DOS batch scripts, or AppleScript? And another thing. Assembly is used way more than sh to write actual programs, so if we include "shell scripting" we should include assembly as well.</pointless rant> —Sean κ. + 05:13, 24 May 2005 (UTC)[reply]
        • Tons of people write shell scripts all the time. Really, when did you last talk to a UNIX user? Languages like Perl are derived in their roots from shell scripts. I agree that we should list a general article about shell scripts rather than this one particular one, although among them this one is probably most notable. And yes, we certainly should list assembly. In fact, I've added it. Deco 23:57, 24 May 2005 (UTC)[reply]

ColdFusion

  • Unsure about "major" status, but it's certainly significant. Leaning toward non-inclusion at this time. — Stevie is the man! Talk | Contrib 02:20, 1 Mar 2005 (UTC)
  • I give a no-vote on this one, don't know enough. Deco 04:09, 1 Mar 2005 (UTC)

dBase

  • Unsure about "major" status. Lean toward non-inclusion at this time. — Stevie is the man! Talk | Contrib 02:20, 1 Mar 2005 (UTC)
  • I give a no-vote on this one, don't know enough. Deco 04:09, 1 Mar 2005 (UTC)

Objective-C

  • I think "historical" is a best fit.Stevie is the man! Talk | Contrib 02:20, 1 Mar 2005 (UTC)
  • Hmmm, arguable. It has been largely supplanted by C++ in practical use, but is still used a fair amount. I think I'll vote for historical anyway though. Deco 04:09, 1 Mar 2005 (UTC)
  • It is not historical. Cocoa supports it as the primary language for development. GNUstep uses it primarily. It is still used today. Dysprosia 05:09, 1 Mar 2005 (UTC)
    • Nobody says it's not used today. But "historical" in this context means that it was major previously, but not today. E.g., Clipper was major at one time, but now it's greatly reduced, but still in use. — Stevie is the man! Talk | Contrib 05:12, 1 Mar 2005 (UTC)
      • Firstly, the term historical doesn't strongly imply that usage you quoted, and secondary, the distinction is a bit weak, for example, consider BASIC - would you class that as historical? Regardless, the amount of "decline" that Objective-C in relation to its usage today is debatable. I would say that the amount of people using Objective-C previously would be about the same or slightly more than than the amount of people using it today. Dysprosia 05:44, 1 Mar 2005 (UTC)
        • Given what you say is true, I still don't see how Objective-C is "major" today or at any time. It was always confined to a small niche as far as I can tell. — Stevie is the man! Talk | Contrib 11:27, 1 Mar 2005 (UTC)
          • See my response to you below. Dysprosia 21:43, 1 Mar 2005 (UTC)
  • Hmm, given Dysprosia's comments I think I'll change my vote to Industrial. I wasn't sure how wide its modern use is. Deco 07:56, 1 Mar 2005 (UTC)
  • I'm going give my honest opinion. I don't think Objective-C was ever "major". I'm disinclined to include it at all. — Stevie is the man! Talk | Contrib 11:30, 1 Mar 2005 (UTC)
    • What exactly do you mean by "major" and on what evidence do you have to make the claim that Objective-C was never "major"? Objective-C was and still is a commercially supported language, by Stepstone, NeXT, now Apple. It is the primary language for making use of the Cocoa/OPENSTEP API, the primary language for use in Mac OS X development, and certain aspects of that API are designed specifically for use with the Objective-C language. I'd hardly call that a "small niche" and reason for disinclusion. Dysprosia 21:43, 1 Mar 2005 (UTC)
      • Dysprosia is absolutely right here — you won't see it if you're a Win32 developer so much, but it's ubiquitous on modern Macs, and Macs are a big slice of the market. Deco 23:33, 1 Mar 2005 (UTC)
      • I'll continue to disagree. Mac development has always been a severely narrow niche compared to almost any of the other major languages we're listing. But any argument I would make doesn't matter anyway since there appears to be a consensus to keep. As I stated earlier in this talk page, I'm not interested in endless discussion of individual languages. — Stevie is the man! Talk | Contrib 00:45, 2 Mar 2005 (UTC)
        • Fine, but do note it's not just on the Mac - please read what I wrote. Dysprosia 04:05, 2 Mar 2005 (UTC)
          • I did. The other platforms are even more niche-y. :) — Stevie is the man! Talk | Contrib 04:16, 2 Mar 2005 (UTC)
            • Hardly call 'nix "niche-y" these days ;) Dysprosia 04:20, 2 Mar 2005 (UTC)
              • I was referring to platforms you named. Nevertheless, I don't believe that Objective-C is a leading language used in Linux app development. But yes, it's used there. I just continue to find it odd that people want to call just about any language "major" when they're not really "major". Used by many, yes, but "major", no. And it's ranked 46 here. — Stevie is the man! Talk | Contrib 11:24, 2 Mar 2005 (UTC)

IDL

  • I think I'm convinced now this doesn't need to be in the list at all. — Stevie is the man! Talk | Contrib 02:20, 1 Mar 2005 (UTC)
  • I suppose it's not, technically, a programming language. I suppose we can exclude it. Deco 04:09, 1 Mar 2005 (UTC)
  • What about using Interactive data language? Dysprosia 04:06, 2 Mar 2005 (UTC)
    • Certainly, it's not "major" (even though the article insists it's "popular", geez). I've never heard of anyone ever using it. And note, I had heard of Objective-C. :) — Stevie is the man! Talk | Contrib 04:14, 2 Mar 2005 (UTC)

MUMPS

  • Not sure if this is major now, but it did seem to have a good run in the past. I'm on the fence right now. — Stevie is the man! Talk | Contrib 17:05, 5 Mar 2005 (UTC)
  • I placed MUMPS on the list, because MUMPS and MUMPS-based languages are the essential programming enviroment for most healthcare systems currently available in the United States today (2005), as they have been for the last 30 years. MUMPS is also behind various financial systems, in banking, as well as many investment systems. Historically, MUMPS is a longtime workhorse language, with easily as much impact as ABAP, Awk, or PL/SQL. (posted by 152.131.9.69)

There seems to be more room in the Historical section of the template, but either Industrial or Historical would be appropriate. Since most people vaguely know MUMPS as an "old" language, like BASIC, I would suggest that we put it in Historical. And since the language has been around since the late 1960's, Historical isn't an unreasonable place. Its just a battle that MUMPS developers have been fighting for years and years, to be recognized as an Industrial language. It certainly is deployed to far more "industrial" sites than Lisp.... (posted by 152.131.9.69)

OK... without objection, I'll add it. If anyone objects, please speak up. As for Lisp, perhaps it belongs in Historical as well... any thoughts, contributors? — Stevie is the man! Talk | Contrib 19:17, 19 Mar 2005 (UTC)
Lisp is absolutely not historical. Academic I might accept, but Lisp is still used quite actively in many industrial and nearly all academic institutions, especially in AI where for a time it was used to the exclusion of any other language. There are a number of popular commercial and open-source implementations. Admittedly these are almost all Common Lisp; the original, unstandardized Lisp is pretty much historic. But Common Lisp is still Lisp. As for MUMPS, I'm fine with where it is. Deco 00:15, 20 Mar 2005 (UTC)

ActionScript

  • It's the OOP-based language used on Macromedia Flash. I've read the inclusion criteria and I think it's more than natural for it to be added to the "industrial" category. (Although, quite frankly, I find the "industrial" name to be a bit odd; to me, C++ is industrial, and JavaScript is mainstream, but not exactly industrial considering it's still a client-side, scripting language. The same applies to ActionScript, IMO). More information here. zeh 13:31, 3 May 2005 (UTC)[reply]
  • I think I will agree to this one. I think it fits the criteria of a current major language, in that it's widely used (Flash development is common) and I assume it's well-known. — Stevie is the man! Talk | Work 20:42, May 3, 2005 (UTC)

Placement

Once we're finished with the new incarnation of this template, it appears we need to decide where it will go. Will we only place it in language articles referred to, or on the pages of all programming languages? Won't it be difficult to maintain just on pages the template is referring to? On top of that, we would be removing it from a few pages whose languages we removed from the template--that might raise a lot of hackles. — Stevie is the man! Talk | Contrib 11:30, 2 Mar 2005 (UTC)

I'd just put it on the pages it links to, other than the main list. That's the typical thing to do with such templates. I've removed it from several pages before without upsetting anyone, and with a bit of luck they won't even notice/care they were removed from the template. Our rough categorization may upset more people though. Deco 08:07, 4 Mar 2005 (UTC)

HTML

Is there any good reason why PHP (a language for designing web pages) was considered "major" but HTML (the original language that built the web) wasn't????!!!

--Blackcats 03:55, 4 Mar 2005 (UTC)

PHP is far more than what you describe--it's a true OO programming language and not just used for "designing web pages." HTML is not a programming language but a tag language for web page layout. — Stevie is the man! Talk | Contrib 11:24, 4 Mar 2005 (UTC)
Well if that's true, then maybe HTML shouldn't be included on this list either???....

http://en.wikipedia.org/wiki/List_of_programming_languages#H

--Blackcats 01:38, 5 Mar 2005 (UTC)

That's right. It doesn't belong there. — Stevie is the man! Talk | Contrib 01:58, 5 Mar 2005 (UTC)

Deployment of new template

Here's a new version, with Prolog moved to the Academic area and I added some borders. If you don't like, they can be easily removed.

Major programming languages (more)

Industrial: ABAP | Ada | C | C++ | C# | COBOL | Delphi | Fortran | Java | JavaScript | Lisp | Objective-C | Perl | PHP | PL/SQL | Python | SAS | sh | SQL | Visual Basic

Academic: Eiffel | Haskell | Logo | ML | Pascal | Prolog | Scheme | Smalltalk

Historical: ALGOL | APL | AWK | BASIC | Clipper | PL/I | Simula

Are we ready to deploy this thing? Also, should we place HTML comments into the template to tell editors that the entries and design is decided by the consensus of the editors, and that their changes are likely to be reverted if they don't discuss in talk first? Just a thought. — Stevie is the man! Talk | Contrib 04:01, 12 Mar 2005 (UTC)

Yeah, let's roll it out. I like the borders, although it's a bit largish, but not too so. I'm rather against heavy-handed comments — it's not good to discourage editing. Perhaps a more friendly reminder such as "since this template affects many articles, you may wish to discuss changes on the talk page". If they do something stupid we can just revert them anyway. Deco 22:30, 12 Mar 2005 (UTC)
OK, I'll keep it nice.  :) I'll start rolling out now, and I'll change all the affected articles (i.e., template additions/removals) too. — Stevie is the man! Talk | Contrib 03:19, 13 Mar 2005 (UTC)

When did awk become historical?

I don't think awk is historical any more than sh is. Both are in widespread use by sysadmins still, and both can be replaced by scripting languages like perl. So, shouldn't they both be in the same category?

The question we ask is "Is this language major today (Industrial or Academic), or major at a previous time (Historical)?" I personally don't know enough to answer about awk. Perhaps other contributors will be able to help out here. — Stevie is the man! Talk | Work 20:49, 6 Apr 2005 (UTC)
I agree that awk is not historical, and has not been more than partly supplanted by any other technology. Just look over a Google search and you'll see what I mean. I vote for mainstream. Deco 01:45, 9 Apr 2005 (UTC)
I'll go ahead and declare a consensus to move AWK into the industrial section, and make it so. — Stevie is the man! Talk | Work 20:44, 13 Apr 2005 (UTC)

I added an edit link to the box. The idea was that some amateur contributors may not be experienced enough to find their way to the template page, and this lets them jump here as easily as they edit a section. This may mean more spurious edits to revert, but I think it's justified by the Wikipedia spirit. Deco 04:52, 16 Apr 2005 (UTC)

Sounds good to me. I remember adding the same to the predecessor template for notable languages and somebody else took it out--I can't remember why. Yes, it's difficult when one is new to figure out how to get to the place where these templates are edited. — Stevie is the man! Talk | Work 14:21, 16 Apr 2005 (UTC)

Compactness, compactness, ...

Hmm. I must admit that I still by far prefer a layout like the following for the template---it's one line of text less than our present tpl, and also avoids the vertical spc introduced by the table borders. While those two points may seem of low importance, I'd argue that the resulting overall reduction in the vertical span is significant for the tpl's (highly desired) non-intrusiveness. Besides, IMNSHO the readability is just as good using the layout shown below. Comments? --Wernher 11:25, 9 May 2005 (UTC)[reply]


Major programming languages (more) (edit)

Industrial: ABAP | Ada | AWK | C | C++ | C# | COBOL | Delphi | Fortran | Java | JavaScript | Lisp | Objective-C | Perl | PHP | PL/SQL | Python | SAS | sh | SQL | Visual Basic | Academic: Eiffel | Haskell | Logo | ML | Pascal | Prolog | Scheme | Smalltalk | Historical: ALGOL | APL | BASIC | Clipper | MUMPS | PL/I | Simula


I feel the current template is more readable in terms of seeing what languages go in which category. Further, the borders add no significant vertical space. Just view the versions above without borders... they're virtually the same height. — Stevie is the man! Talk | Work 16:18, May 9, 2005 (UTC)
You're right that it's not the borders adding the height. There is, however, a significant height difference; on my screen, it's about 34% higher, depending on window width. This is actually due to the way the lines wrap - there are lines with only a couple things on them. At some window widths they're closer to the same. Deco 17:45, 9 May 2005 (UTC)[reply]
But it's the table layout, not the borders, causing that, right? — Stevie is the man! Talk | Work 18:04, May 9, 2005 (UTC)
Just an update on my side: Now that a contributor mvd the Smalltalk lk to the Industrial cat, the table lost one textline of height as viewed in a ~1024px wide window, thus reducing the ratio to roughly 7/8":1" = 14% on the large majority of users' monitors. With that, the compartmentalized tpl becomes much more vertically compact, and is aesthetically pleasing IMO (I've also changed my mind a little on the readability of the linear vs. compartmentalized layout, in the latter's favor). --Wernher 16:08, 15 May 2005 (UTC)[reply]
The question is, of course... does Smalltalk belong in the Industrial category? That contributor did not bring it up for discussion here. — Stevie is the man! Talk | Work 16:46, May 15, 2005 (UTC)
Well, it is used extensively in industry. I'm beginning to wonder if we should just merge Industrial and Academic - it's a contentious categorization at best and would help deal with the height thing at most window widths. Deco 23:16, 15 May 2005 (UTC)[reply]
I think the compromises we made on this template were sound and should be kept. — Stevie is the man! Talk | Work 23:22, May 15, 2005 (UTC)
On top of that, I don't even understand what all the fuss is about. This is *not* a thick table by any stretch of the imagination when compared to many other tables used throughout the Wikipedia. — Stevie is the man! Talk | Work 23:23, May 15, 2005 (UTC)

Smalltalk 'academical' or 'industrial'?

Hey, I just came here because I was looking over this box and noticed someone put Smalltalk into the industrial category (!?). Who in their right minds would use Smalltalk for anything other than educational purposes? Can we please move it into Academic? —Sean κ. 18:01, 18 May 2005 (UTC)[reply]

Some random new guy moved it. It was originally in academic. He had some pretty good justification — you may want to take it up with him. Deco 08:42, 19 May 2005 (UTC)[reply]
I'm not going to start an rv-war here. I elaborate my arguments here. My impression is that it was the glue technology for databases, quick to roll out and thus ideal for fast-changing financial industry needs. I'm sure IBM, one of the major vendors of Smalltalk, had much to do with its adoption on their sites. --AllanBz 03:20, 23 May 2005 (UTC)[reply]
I guess I have a bias since I learned Smalltalk in a Programming Language Design course, and know nothing about IBM databases. And of course, I used Squeak, which is a Smalltalk environment written specifically for educational use. I don't have the Blue Book lying around anywhere, and I can't find the entire thing online, but I'm fairly certain that the original intent in writing Smalltalk was not practical use. I'd would like to see references to how Smalltalk is used in industry, though. —Sean κ. + 03:44, 23 May 2005 (UTC)[reply]
<grumble> ...didn't expect no bloomin' Spanish Inquisition... </grumble>
IBM sold VisualAge Smalltalk, not the database. (Actually, they sell DB/2 and now Informix, but those had no explicit connection to VA ST.) Smalltalk is more than Squeak, you know. The major implementations in the eighties and nineties were Smalltalk V, VisualWorks, and VisualAge.
At Washington Mutual, a Smalltalk image was used to interface to those things through which tellers run MICR checks. At Chase, I think it was on an OS/2 system and presented the old Chemical logo; I don't remember what it did, though it may have had something to do with CRM. This was before Chemical bought JP Morgan, so I don't think it had anything to do with the Kapital system mentioned on this page. By the way, another page. As for Chrysler, I wasn't there, and besides, I'm saving that for an article.
Perhaps ST-72 and ST-76 were only research languages, but ST-80 was definitely for use. Adele Goldberg writes that Xerox started casting around to disseminate Smalltalk-80 in order to
  1. expand the programming community to gain more general experience with how people can use the language
  2. expand the programming language researcher community using Smalltalk
  3. influence hardware designers to consider ways to increase performance of Smalltalk implementations
  4. establish a standard as an OOP and a graphical IDE
(—paraphrased from the Green Book) Points 1, 3, and 4 argue against a pure research language. That Digital, Apple, HP, and Tektronix took them up on it (by agreement dedicating full-time personnel to their implemenation projects) also argues that technologists could immediately see practical uses for it. That Squeak image you used is a direct descendant through Apple of the PARC images, three versions of which went to the four partners (plus UC Berkeley, but that weakens my point, so I'll leave it out). Kent Beck's Sorted Collection may be more help with the history.
Crap, I've spent more time writing this than I wanted to have spent. —AllanBz 04:35, 25 May 2005 (UTC)[reply]
I'll have to concede to your expertise on this one. I am familiar with ST-80, I read most of the Blue Book, but I was still shocked to learn that it was implemented for industrial use. From my experience, I found it was easy to crash the system on purpose, and wreak havok that was impossible to undo without reverting to a previous state, for example. —Sean κ. + 23:58, 26 May 2005 (UTC)[reply]
That's because Squeak is crap. You're just lucky you didn't have Mark Guzdial for a professor. :-) The commercial Smalltalks are considerably better. Deco 00:14, 27 May 2005 (UTC)[reply]

I took out Powerbuilder, can anyone attest to this being a major programming language? I visited its website and Wikipedia article, and I'm not convinced it's notable. —Sean κ. 23:37, 20 May 2005 (UTC)[reply]

This was just added two hours before you came along. We would've deleted it just as quickly if we noticed first. Thanks. Deco 23:43, 21 May 2005 (UTC)[reply]
Powerbuilder became a dominant programming language during the heydays of client-server development, before the Internet came along -- See http://www.lannigan.org/powersoft_powerbuilder_history.htm . I assert that it's a major programming language. --Perfecto 20:43, 23 May 2005 (UTC)[reply]
Perhaps it was major, but who still uses it?
Some of the firms who participated in the beta program were American Airlines, Microsoft, 3M, Fidelity Investments, Coca-Cola, and many others.
and,
Despite the troubles at Sybase, Powersoft's PowerBuilder technology still enjoyed a dominant role in new client server development, until 1996.
It could be historical, but it certainly isn't on par with giants like BASIC and COBOL. —Sean κ. + 23:13, 23 May 2005 (UTC)[reply]
I'll vote for it sitting in the "Historical" category. It clearly was major, but not any longer. — Stevie is the man! Talk | Work 23:06, May 26, 2005 (UTC)
I restored the link, as it was already longstanding before its recent removal. — Stevie is the man! Talk | Work 23:26, May 26, 2005 (UTC)
Thanks! --Perfecto 00:45, 3 Jun 2005 (UTC)

Vote on Ruby

Ruby keeps being added without any attempt at consensus. Sooooo, let's have a vote. Place your vote under Include or Exclude. If you vote for Include, please suggest a category. Thanks!

Include

  • Include. Ruby is huge in Japan, and probably one of the top 5 scripting languages in the world. Deco 00:15, 27 May 2005 (UTC)[reply]
  • Include. The same with Doco -- Taku 00:34, May 27, 2005 (UTC)
  • Include. Ruby is larger than Python in Japan, and huge all around the world. Many companies are endorsing Ruby along with industry heavy weights (Pragmatic programmers and Martin Fowler). Ruby isn't something that will be a major language, it already is. --Steve
  • Include. I say include --192.150.10.200
  • Include. It's at least mentioned as much as some of the rarer languages on the list and it's a serious competitor to Perl and Python. Plus, I think Ruby is in the mainstream enough to garner a enough attention to warrant it being on the list. — Hao2lian

Exclude

  • Exclude. — Stevie is the man! Talk | Work 23:26, May 26, 2005 (UTC) - It's notable, and it gets a few write-ups here and there, but it's still a boutique language with a small, but seemingly fanatical following. Perhaps it will become major, but to say it is today is silly.
    • If we end up adding Ruby, I say we add ActionScript at the same time. It's even higher on the Tiobe popularity list than Ruby and has also been called a fast-rising star amongst languages.
  • Exclude for now. Ruby has a community that wants it to be a major language; it's where Python was several years ago. But it is not a language that has a great number of people using it yet [1] and it is not a language that has had a substantial influence on the field yet. --FOo 03:18, 30 May 2005 (UTC)[reply]

Abstain

Status

There are currently five votes to include, and two votes to exclude, with one abstaining. However, according to Wikipedia tradition in counting votes, votes coming from anonymous users, new accounts or accounts with low contributions are usually discounted--and this applies to four of the five Include votes.

If I discount these particular votes by half, it becomes 3 to 2 in favor of including. This, in my view does not indicate a consensus as of yet. I would recommend an extension to the voting period. Does one week sound good? Or do you not agree with my analysis? — Stevie is the man! Talk | Work 21:17, Jun 4, 2005 (UTC)

Splitting Industrial

I suggest we split off some of the languages from Industrial into a new category, High-level. For example,

Industrial

ABAP | Ada | AWK | Assembly | C | C++ | COBOL| Fortran | Lisp | PL/SQL| SAS | sh

High-level

C# | Delphi | Java | JavaScript | Objective-C | Perl | PHP | Python | Smalltalk| Visual Basic

Sean κ. + 23:47, 26 May 2005 (UTC)[reply]

I'd rather not — every time we categorize them more it makes the list more controversial, and occupy more lines. I personally find your classification highly controversial (I would label almost all of these languages as high-level). It's also not clear to me that the exploring reader would benefit from this classification. Deco 00:20, 27 May 2005 (UTC)[reply]
How about the categories "Languages generally used closer to the system level" and "Languages generally used closer to the application level" ;) ? —Sean κ. + 00:24, 27 May 2005 (UTC)[reply]
I'm with Deco. However, your ideas sound good for new categories or list articles. — Stevie is the man! Talk | Work 02:03, May 27, 2005 (UTC)

Visual Basic .NET

User:Stevietheman reverted my change of "Visual Basic" -> "VB" | "VB.NET", on the basis that he did not think that Visual Basic .NET is a major language.

I disagree. Here is why:

  • VB.NET fits the (vauge) criteria for "major programming language"
    • It has a significant number of book written about it, more than many contemparies. If I search Amazon.com for "PHP" I get 368 results. "Python" and "C#" both get 411, and many of these are clearly not about the language. "Visual Basic .NET" gets 477, all about the language.
      • MS inertia, that's all. Of course it was going to get many books written about it. — Stevie is the man! Talk | Work 20:53, Jun 4, 2005 (UTC)
    • It has thousands (and let's be honest, it's more like tens of thousands) of "industrial" users around the world. Some of these are the classic stereotype of a "programmmer", some of them are just people who do programming now and then in their line of business, in a similar way to shell scripting for administrators.
      • As far as those sticking with MS, it's mostly going to C#, let's be real. — Stevie is the man! Talk | Work 20:53, Jun 4, 2005 (UTC)
    • It is of historical importance, because it represents the movement (or in some cases, attempted movement) of a body of programmers from a language that could only charitably be called "object-oriented" to one which cannot be discussed without talking about objects.
      • Nobody is arguing about notability. This template is about whether it's "major". — Stevie is the man! Talk | Work 20:53, Jun 4, 2005 (UTC)
  • It is regarded as a first-class .NET language by Microsoft, an equal to C#, but intended for different uses. This argument is weakened by the fact that they theoretically regard J# the same way, but everyone who uses .NET knows that's not the case - try finding equivalent samples for most articles in J# :-)
    • You argued against your point here, and convincingly, I might add.  :) — Stevie is the man! Talk | Work 20:53, Jun 4, 2005 (UTC)
  • It's not going away
    • Former VB developers who want to move on are having to make a choice between C# or VB.NET. Some are going to C#, but for most, VB.NET is far more comfortable (especially those that need to maintain a VB codebase that can only be converted to VB.NET)
      • Borland's Delphi has also been getting a lot of former VB6 programmers. — Stevie is the man! Talk | Work 20:53, Jun 4, 2005 (UTC)
    • At the same time, Microsoft's intention is clearly to move future Office development on to Visual Basic .NET from Visual Basic for Applications. Although they maintain that support for VBA 6 is not going away (unlike Visual Basic), they have not added any new features to VBA and regard VB.NET as the platform for ongoing development, as evidenced by the provision of articles covering migration to VB.NET.
      • I seriously doubt this will become true. MS has a certain penchant for over-promising and under-delivering, and there's been a recent report of MS backing off .NET in the next version of Windows. — Stevie is the man! Talk | Work 20:53, Jun 4, 2005 (UTC)
  • VB.NET is not Visual Basic. Nor is it C#. The presence of these languages should preclude the inclusion of VB.NET.

I am aware of the lack of regard which VB.NET has within most of the open-source community, as evidenced by the state of the VB.NET compiler for Mono, mbas (though it's improving, and 1.2 may actually have a working version). I doubt that VB, VBA or VBScript is particularly popular, either (though see Gambas), but they are widely used in the Windows world. Their successor is a major language for those of us who work there, and as such deserves inclusion in this list. GreenReaper 19:43, 4 Jun 2005 (UTC)

I'll start a vote in the next section. — Stevie is the man! Talk | Work 20:26, Jun 4, 2005 (UTC)
Whether a language is open-source or not doesn't work itself into the discussion of major status or not. It never has, and I suppose it never will. — Stevie is the man! Talk | Work 20:53, Jun 4, 2005 (UTC)
Sure it does! My feeling is that it is more likely that Wikipedia users that are interested in the programming articles are professional programmers who have an interest in giving back to the community, and as such are just the sort of people who will not be interested in open-source . . . and to such contributors, line-of-business-oriented languages for propiatary operating systems such as VB.NET may not be on their radar. I'm suggesting that the importance of a language may be undersestimated if they are not used by the Wikipedia community (or rather, that the wikipedia community of programmers does not fairly represent the general community of programmers).
Of course, I could be wrong, and just having suggested the possibility of bias I might deserve to be thrown out on my ear anyway, but eh. :-) --GreenReaper 22:18, 4 Jun 2005 (UTC)
I've not noticed any bias against coverage of proprietary languages in the Wikipedia. Just look at the template as it currently stands. So I feel you're arguing against a straw man. — Stevie is the man! Talk | Work 23:08, Jun 4, 2005 (UTC)

Vote on VB.NET

Include

  1. I believe the TIOBE list is being incorrectly calculated, and that VB.NET's real position should be around 12, not 29. I really don't see it being less popular than D. :-) --GreenReaper 22:30, 4 Jun 2005 (UTC)

Exclude

  • Exclude, for now. 1) It's #29 on the TIOBE list, 2) MS is beginning to distance itself from .NET for the next version of Windows, 3) I've heard all kinds of talk about VB programmers either staying on VB6 or switching to C# or Delphi. I think VB.NET will start dropping soon, and will never become a major language. This all has nothing to do with my embracing open source (and I do), but rather the current reality as I see it, being a programmer of 15 years. — Stevie is the man! Talk | Work 20:43, Jun 4, 2005 (UTC)
  • Exclude. One simple reason: the article is quite minimal. I don't believe we should list articles on this list which don't have good, detailed articles written on them. Go expand Visual Basic .NET and come back. It's also a very young language; although C# is no older, it's more interesting than VB.NET in several ways (VB.NET is really little more than an extension of VB that adds .NET platform features). Also, I believe Steve is wrong about MS distancing itself from .NET. Deco 22:59, 4 Jun 2005 (UTC)