Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Take this scenario:

  • A programmer creates a language to solve some problem.

  • He then releases this language to help others solve problems like it.

  • Another programmer discovers it's actually much better for some different category of problems.

  • By virtue of this new application, the language then becomes popular for that application primarily.

Are there any instances of this actually occurring?

Put another way, does the intended purpose of a language have any bearing on how it's actually used, or whether it becomes popular? Is it even important that a language have an advertised purpose?

share|improve this question
4  
Your HTML example doesn't really seem to fit with what you are looking for, are technical documents so different than any other document? HTML's core purpose is still the same as it was in 1989, to provide easy means for documents to reference each other. IMHO HTML is the exact opposite of what you are actually looking for. –  Yannis Rizos May 30 '11 at 8:13
5  
Considering the long list of answers; maybe the opposite question is more interesting: what (popular) language is just used for it's intended purpose? –  Jaap May 30 '11 at 15:13
2  
I could be wrong in this but I'm pretty sure most languages aren't used for what their creators intended. I think the large reason for this is that outsiders don't know what it's supposed to be used for which helps them to be more open-minded about the potential a language has. –  Kenneth May 30 '11 at 21:42

19 Answers 19

up vote 112 down vote accepted

Lisp. McCarthy originally specified Lisp in a paper to show that few simple notations are enough to build a turing complete language. He was surprised to find that Lisp could be implemented in machine code (Steve Russel did the first Lisp interpreter implementation). Lisp is widely used for AI programming.

share|improve this answer
64  
+1, Lisp was not intended to be a programming language! I don't think you can top that. –  Kilian Foth May 30 '11 at 8:56
6  
OTOH, one could argue that LISP was designed for use at the border between programming and math, and it remains there. –  MSalters May 30 '11 at 9:43
1  
I believe McCarthy used Lisp as an example in his classes and intended to write a compiler for it, but mentioned in class one day that hand-coding the eval function would implement an interpreter but of course 'no one would actually want to do that' –  Steven A. Lowe May 30 '11 at 16:26

Java was originally intended for embedded systems programming. From Wikipedia "Java was originally designed for interactive television". But it became hugely popular for Application and Web programming.

share|improve this answer
3  
Huh. Can't believe I didn't think of this one. It's arguably the canonical example...though that's not to say I won't yet be surprised. –  Jon Purdy May 30 '11 at 6:28
10  
the story is even worse: A) it was intended for embedded systems. B)but never saw the light until it could be embedded in webpages. C) it didn't get any respect until used for 'enterprisey' web applications and D) it finally got embedded in many phone OSs; but not as a hardware controller, it's a GUI platform instead. –  Javier May 30 '11 at 19:47

Larry Wall's original intention for perl was for a "general-purpose Unix scripting language to make report processing easier" and the man page describes the language as:

Perl is a interpreted language optimized for scanning arbitrary text files, extracting information from those textfiles, and printing reports based on that information.

And of course the man page also tells us that Perl stands for Practical Extraction and Report Language (the actual name is a misspelling of the original name Pearl, changed when Wall discovered an already existing PEARL language).

Perl went a long way since then, as it is the language from which the gods wrought the universe.

enter image description here

share|improve this answer
22  
One should correct that: Pathologically Eclectic Rubbish Lister –  Richard May 30 '11 at 9:42
3  
There is more than one way to unabbrev! Very Perly –  user1249 May 30 '11 at 16:44
1  
@DarkTemplar The way I interpret it is that perl has crept it's way almost everywhere. From it's humble beginnings perl grew to be a very popular web language, an extremely popular scripting language, a somewhat popular multi purpose language, its regular expression syntax become something of a definitive, gave birth to another language (php) etc. Plus the comic also references lisp, which is the accepted answer to the question, so I thought it was a fun (albeit inaccurate) depiction of the relation of the two languages (one is the dreamy one, the other the one people actually use). –  Yannis Rizos Nov 22 '11 at 3:24
1  
@DarkTemplar Yeap. It's in the top ten in the TIOBE index. Of course you souldn't take TIOBE index very seriously, it's quite relative and subjective. But still a good indication of language popularity. –  Yannis Rizos Nov 22 '11 at 8:03

Lua was designed primarily as configuration language, and ended up finding a niche as the most popular scripting language for games (because it's small, fast, powerful, portable, easily extended and embedded, with user friendly syntax). The most popular game to use it, World of Warcraft, doesn't even really use it for configuration, using XML instead.

share|improve this answer
1  
Not really en.wikipedia.org/wiki/Lua_%28programming_language%29 –  lukas May 30 '11 at 21:22
5  
Perhaps I should have said "intended purpose" rather than "designed primarily as". The intended purpose was to use Lua where SOL and DEL were being used. These were configuration languages that users were starting to demand programming features in. Lua was created to fill that need. As the authors themselves have stated, "The wide adoption of Lua in games came as a surprise to us. We did not have game development as a target for Lua." That's pretty much exactly what the OP was looking for, no? –  Mud May 30 '11 at 23:23

I would guess that JavaScript fits into this question as well because I don't think that Brendan Eich, back in the Netscape days, ever imagined that future versions of his LiveScript would be used to create today's so called web "applications".

JavaScript has moved from simple form validations and image rollovers to a powerful tool that's able to rival offline applications, both in terms of functionality and beauty.

Unfortunately though, I think many still see regard it as a toy.

share|improve this answer
27  
The interesting thing is that it is moving towards being the assembly language of the web. In other words, what other languages are compiled down to and executed in. I don't believe Brendan Eich expected that. –  user1249 May 30 '11 at 18:25
3  
have something to add: It is not just a client-side scripting language. Many projects like node.js or rhino use javascript as a server-side language –  gion_13 May 30 '11 at 19:08

Erlang. It was invented a long long time ago in Ericsson labs to develop telephony applications, probably for their lines of switching and access devices. Now it has evolved into a promising general purpose dynamic language with an interesting concept of concurrency.

It would be interesting if in the future there would be more languages from the telco world crossing their lines to IT world and evolve from there, esp languages those initially designed for modeling and verification of protocols.

share|improve this answer

Pascal. Created to teach programming.

share|improve this answer
3  
Heh, that explains a lot… –  poke May 30 '11 at 12:22
2  
@poke: Of curse, I know. –  Nerevar May 30 '11 at 12:24

PHP originally meant Personal Home Page, but today is used for a few slightly bigger web applications as well.

share|improve this answer
17  
of course, the biggest PHP user, Facebook, is in many ways still in the personal home page market. –  Jaap May 30 '11 at 15:03
3  
"PHP/FI was created by Rasmus Lerdorf in 1995, initially as a simple set of Perl scripts for tracking accesses to his online resume." It's come a long way, baby. –  nickf May 30 '11 at 15:30

Initially designed as a method of making code more generic, Template Meta Programming in C++ was found out to be turing complete, and to this day is used to greatly improve the C++ language through libraries like boost.

share|improve this answer
6  
... and to bring C++ programmers to tears with excessively long build times ;-) –  quant_dev May 30 '11 at 20:38
6  
and horrific error messages. –  DeadMG May 30 '11 at 22:13

ML started as a language for developing and scripting a theorem prover. It was the theorem prover's "meta language".

share|improve this answer
6  
+1, but saying that ML became "greatly popular" is a bit of a stretch –  nikie May 30 '11 at 10:26

BASIC is another famous case. It's name (Beginner's All-purpose Symbolic Instruction Code) hints at its origin as a learners language, but it's grown quite a bit since.

share|improve this answer
24  
heh - microsoft replaced "beginner's" with "business" and suckered in millions –  Steven A. Lowe May 30 '11 at 16:27

VHDL and Verilog (a.k.a. VerilogHDL) were originally intended to describe digital circuits and components. They were used as a form of documentation and to simulate the behavior of the components. Later, Synopsys and others developed technology that could translate (a subset of) these descriptions into a net lists of gates, which can in turn be used to produce real hardware.

VHDL and Verilog are called Hardware Description Languages (HDLs) for historical reasons. Today they are actually used as hardware design languages (same acronym).

share|improve this answer
2  
QHDL is very similar to VHDL and is used for describing circuits for quantum computers. I can't imagine a language departing quite so far from its origins. –  Mark Booth May 31 '11 at 11:21
1  
I found out about it at Paul Blacks excellent "Quantum Computing for Programmers" session at the ACCU 2011 conference. His slides are at accu.org/content/conf2011/… –  Mark Booth May 31 '11 at 12:06

I'm quite sure that VBScript wasn't meant for writing malware, even though that is an extremely common use for it.

share|improve this answer
1  
Thats a bit harsh don't you think. Java and C have had their fair share of malware. –  J Child May 30 '11 at 23:07

C
Originally it was originally developed for use with the Unix operating system. But the Language became so popular even Dennis Ritchie was surprised.
In his famous book The C programming language. Ritchie states "it has spread far beyond its origins as the language of the UNIX operating system." and how surprised he was as it became popular language for application development.

share|improve this answer
10  
Well, it was originally designed to develop systems and low-level applications in a cross-platform fashion. It remains consonant with its original goals despite its popularity, so it doesn't fit. –  Jon Purdy May 30 '11 at 6:40
2  
@Jon Well it kind of fits, as it outgrew it's purpose by becoming the easiest way to shoot yourself in the foot. –  Yannis Rizos May 30 '11 at 6:47
1  
@Yannis: Haha, true. But I'm asking about languages whose primary purpose changed utterly, not those which simply grew to encompass more purposes. –  Jon Purdy May 30 '11 at 6:51

C++ was originally designed as “C with classes” to facilitate object-oriented programming in C++.

Templates were then provided in a later version to enable the implementation of strongly-typed container classes. It was only noticed later that these templates actually constitute a Turing-complete compile-time programming language.

As a consequence, many applications now use C++ not as an object-oriented programming language but rather as a algorithms-driven programming language that relies heavily on compile-time polymorphism and metaprogramming.

share|improve this answer
5  
But the C++ is designed to be general purpose, and is used as a general purpose language. –  Ubiquité May 30 '11 at 13:55

ADA — originally designed under DoD contract for avionics. Although still used in that application, it's also popular for example for real-time business middle-ware.

share|improve this answer
4  
It was build as a general purpose language. The DoD wanted a language usable for everything, to reduce the amount of different language used. –  Ubiquité May 30 '11 at 13:54

"does the intended purpose of a language have any bearing on how it's actually used, or whether it becomes popular?"

I don't think the intended purpose of a language has much bearing on its actual use and popularity: There are some great languages that were designed from the start to be innovative, flexible and versitile, but never became that widely used or popular except in very specialized vertical markets - for example Eiffel. OTOH, Basic, Pascal, C etc etc dominated the landscape for years although they were designed originally for limited, specific purposes.

IMO Marketing/financial and support considerations have always played a major role in the spread and extension of certain languages. For example: Borland comes up with TurboPascal and packages, markets and supports it. MS comes up with C# and packages, markets and supports it. As a result, these languages became popular, third party tool industries sprung up and more and more developers and enterprises jump on the bandwagon.

But for the last few years, openSource languages and tools are changing the dynamic and languages now become popular based more on 'merit' than marketing - for example Ruby, Python and Perl. But that's not because of the 'intent' of the inventors so much as the language's built in potential for extension and expedient usage.

share|improve this answer

I don't think there is a popular language that has not been repurposed from it's original intent. Even C was originally written to make a portable OS (unix).

Any attempt to write a truly generic programming language with no specific target in mind would probably fail miserably due to a lack of restraint and focus.

share|improve this answer

I've heard Ruby was designed as a language to write poetry in, turned out you can write pretty beautiful code in it as well!

I’ll be straight with you. I want you to cry. To weep. To whimper sweetly. This book is a poignant guide to Ruby. That means code so beautiful that tears are shed. That means gallant tales and somber truths that have you waking up the next morning in the arms of this book.

share|improve this answer
2  
Sounds... interesting. Any source? –  Anto May 30 '11 at 18:28

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.