ProgrammingLanguageSuccess

ThoughtStorms Wiki

What makes ProgrammingLanguages succeed?

What stops them becoming DyingProgrammingLanguages?

Quora Answer : How do programming languages become industry standards? How can one contribute to a favorite language's ecosystem?

Mar 25, 2015

Any language needs a decent library and a good repository / package manager in order to compete. PyPI / pip in Python, npm for node.js and Clojars / lein for Clojure are the ones I know. Until a language can equal those, I suspect, it's not going to take off. It's hard to get down to do real work in an unfamiliar environment if you have to faff around finding and installing the dependencies.

One of Haskell's problems seems to be that the package management (Cabal) isn't quite as solid as it's needed to be.

The other thing you want is a good, slightly quirky, online tutorial. (Eg. "Why the lucky stiff?" for Ruby, Learn You a Haskell for Great Good!, Clojure for the Brave and True etc.)

That's what I'd prioritize : library, package repository / installer, tutorials.

Quora Answer : How much does a programming language's popularity depend on mere fashionability versus advantages intrinsic to the language?

Sep 21, 2018

"Fashionability" is the wrong way to think about it.

More than either "mere fashion" or "intrinsic advantage" it largely depends on various external contingencies.

Is it the most obvious language to drive a particular platform?

C was the language to drive Unix. Visual Basic was the easy way to drive Windows in its heyday. Javascript is the built-in language of the browser. PHP was a reliably available way to knock together quick interactive web-sites. Python is now the easiest way to drive TensorFlow and other hot machine-learning frameworks.

This matters way more than either "fashion" or "natural advantage"

As Richard Kenneth Eng will remind you. Smalltalk is a wonderful language. But its main purpose is to drive the Smalltalk environment. And the Smalltalk environment itself, despite its virtues, never took off. (I'm happy to argue why it didn't, all over Quora, but I'll skip that here.) So Smalltalk, the language, didn't take off because it wasn't really suitable and available for driving the things that people actually did want to drive.

One more time. As Woody Allen puts it, "80% of success is just turning up". PHP turned up. By being available as standard on your cheap hosting service. Far better languages didn't. And that's why we're stuck with PHP everywhere.

Does it piggy-backs off existing knowledge / libraries / infrastructure etc.

There was a time in the 90s when it was basically assumed that all languages had to have a C-like syntax. That's why Java and Javascript and PHP look the way they do and, to some extent, have the semantics they have.

As a lover of programming languages with elegant syntax, I regret this. But it's hard to say it was the wrong decision. Java, Javascript and PHP are some of the most widely used, popular language around. Maybe betting on programmers' natural inclination to stick close to what they know paid off.

To a certain extent, languages like Scala, Clojure and Kotlin get a boost from being on the Java Virtual Machine and being able to access all the existing Java libraries.

Is it being promoted for ulterior reasons?

For example, Sun put a huge amount of money and effort into Java. Into creating it and its libraries. Into promoting it. Into refining the virtual machine etc.

Why? Basically because it was strategic to try to get developers to write cross-platform software that could run on Sun's SPARC architecture and servers. Sun was in a fight against Microsoft's lock-in of the software market. Ultimately although it didn't really do much for the desktop, Java DID help to forestall Microsoft's potential domination of the server market. (Linux helped a lot too, of course.)

Languages that are successful, are usually successful for good reasons. But not the reasons that language geeks (and I am one) consider to be important.

Successful languages "turn up". And are practical ways to get the kind of things you want to get done, done. This is the only notion of "productive" that really matters. And is independent of being "nice" or "elegant" or "principled" or "powerful" etc.

Quora Answer : When will the next big programming language be invented?

Jan 26, 2018

Good, and difficult, question.

In terms of language. Several of the new languages we have now may get big.

Rust could finally replace C as the standard low level systems language.

Scala might replace Java.

Elixir might scoop up both the Ruby and the Erlang communities and become the hot thing for a new generation of high traffic web microservices.

On the whole though, we see that the key to being a really big language is less intrinsic qualities, and more being in the right place at the right time.

Visual Basic was THE language for knocking up basic Windows desktop apps.

PHP was THE language for simple database backed web sites.

Javascript has no great virtues as a language. But has, for 20 years, been the ONLY language reliably in the browser. And that means EVERYTHING.

Realistically, the next mega-lanaguge is the language that lives in a new and newly important environment.

If the Ethereum blockchain platform takes off, then Solidity might be the new Javascript. The only language on that important platform.

Perhaps Kotlin becomes the default language for Android. Another huge space.

I think User-10855398059982604436's idea of a Quantum language is a good one. But I think Quantum computing is still a bit far off to be the next big language. And it's quite possible that by the time it becomes widespread, Quantum computing might just get wrapped in a Python library like all the other machine-learning and scientific / data computing. In a sense, Quantum computing is like a GPU or other external resource, rather than a platform in its own right.

There's an idealized, fantasy world where our tablets and phones finally evolve into useful general purpose intelligent and programmable notebooks under our control, and a language like Eve becomes the de-facto. And everyone uses it. Sorry to say that's unlikely.

Quora Answer : What do you think will be the next big and successful programming paradigm in the future?

Jul 30, 2015

Yes. Functional programming IS the "next big thing". As far as that expression makes sense.

Sure, as Tony Li says, it's been around forever. But it does, finally, seem to be going mainstream. People are doing real work and building important systems with it. (Eg. WhatsApp built with Erlang)

When we talk of the rise of the OO paradigm we're really talking about a number of features that came out of Smalltalk or Eiffel, got grafted onto a lot of languages, and became widely understood and used.

I suggest that these features / ideas were :
- classes
- methods and message passing
- polymorphism (via inheritance, interfaces or just dynamic typing)
- enforced data-hiding (private keyword)
- garbage collection (yes C++ doesn't have it natively, but it's an essential part of what made Java so useful and is in every other OO language)
- OO analysis, UML, design patterns etc.

As FP goes mainstream, it will partly be through the rise of pure FP languages like Haskell, but mainly through other languages borrowing features. (Haskell will be like Smalltalk ... the inspiration rather than the language everyone uses).

So what features / ideas from FP will you be seeing turning up in the next generation of languages?
- first class functions (higher order functions that take other functions as arguments, closures)
- enforced immutability (immutable data-structures, restriction of mutability to explicit situations eg. Clojure's Atoms and Haskell's State monad)
- laziness (lazy data-structures like Clojure's collections. Or even full laziness for all evaluation as in Haskell.)
- (Update: forgot this one earlier) Tail call optimization so that recursive algorithms can run as fast and as long as traditional loops
- the standard library of FP "patterns" : maps, folds, reducers etc. for working on lists and other applicable data-structures. Possibly monads if anyone can explain them to the masses.
- more powerful macros / templates / metaprogramming for Domain Specific Languages
- dataflow / reactive programming / "functional reactive programming" (more and more environments / libraries are going to do this ... let us set up the pipeline of functions that transform data, and then attach that pipeline to input events and UI output)
- concurrency via light threaded Actors and message passing or Software Transaction Memory.

These are all ideas pioneered in FP languages that are becoming much more mainstream.

Personally I say there's no chance that we'll end up "programming" in natural language. Natural language of the kind we like to use is just too verbose and ambiguous to specify the kind of systems that programmers actually create. Humans invented mathematical notation, an artificial language, NOT because we were incapable of natural language, but because we needed a language with precision and without ambiguity to talk about these concepts, even to talk to each other.

So there may be thin patinas of natural language UI for ordinary users. (Just as there are graphical buttons and drop-down menus). But you'll never do serious programming in them. (Any more than you do serious programming by picking menu items.) The moment anyone has to do any real work, they'll have to adopt a more formal, concise, unambiguous "programming language".

Update :

If you're really interested in my thoughts on the future of programming, see Phil Jones (He / Him)'s answer to Where do you see computer programming languages heading in the future, particularly in the next 5 to 20 years? and other linked answers.

Quora Answer : What programming language has the happiest developers?

Jul 17, 2020

I can't answer the question for anyone else.

And I think Ken Gregg has a point that language perhaps isn't the overall determinant of programmer happiness in work. There's a lot of other issues.

Nevertheless there are certainly languages that have made me feel happier; because everything felt lighter and seemed to "just work" (apart from a few understandable teething difficulties). And these languages have tended to make me happy when I use them.

Languages that have absolutely done that for me over my career are Visual Basic (classic), Python and, my current favourite, Clojure.

Languages which have certainly "smelled good" when I tried them, and I can quite believe make you happy but I don't consider I've quite used them enough to say definitively from personal experience, are Smalltalk and Erlang.

Obviously the happiness a language gives you partly depends on the context.

I came to VB having been writing Fortran and wanting to get into writing GUIs on Windows, but was pathologically scared of C at the time. (I wrote some C++ but not for a GUI environment) VB was just so obviously the way it should be. And without hassle.

I came to Python from having a frustrating time writing Java.

Clojure I came to after ... well, doing larger scale, more serious projects in Python and finding them getting a bit out of control. (You could say "Ah, see, you need more bureaucracy and type-checking etc. to maintain large code-bases." Or you can do what I think is the better thing ... have higher level, more powerful and expressive languages which mean you write less code altogether. You continue having a small manageable code-base rather than a large potentially unmanageable codebase with extra bureaucracy to keep it under control.)

Quora Answer : When will Prolog surpass Python in popularity?

Feb 9

When it becomes the go to language for a hot new application area that everyone wants to get into.

Rails did it for Ruby. Tensorflow did it for Python.

Prolog's only chance is the equivalent.

Backlinks (1 items)