13 ms·
Languages do not becomes successful due to their intrinsic qualities. Languages become successful when they are coupled to a successful platform. E.g. C became
by goto11 5y ago
Languages do not becomes successful due to their intrinsic qualities. Languages become successful when they are coupled to a successful platform. E.g. C became popular because Unix became popular, JavaScript became popular because of the browser, Objective-C became popular because of the iPhone and so on.
Therefore observing that a language or paradigm is popular or unpopular does not say anything about whether it is good or bad. JavaScript is the most popular language in the world. If Netscape had decided to use a Scheme-like language or a BASIC-like language it would still be the most popular language in the world. So paradigm has nothing to do with it.
Functional programming is less popular because no major successful platform has adopted a functional language as the preferred language.
I don't buy that functional languages are unpopular because they are unintuitive. Losts of stuff in JavaScript is highly unintuitive. It didn't prevent it from becoming the most popular language in the world. People will learn what they need to learn to get the job done.
- erostrate 5y agoHow does your theory explain Rust or Python?
- tgv 5y agoFor Python, the platform is education.
- jfcisco 5y agoIt also helps that Linux distros usually come with Python
- Jensson 5y agoAnd most educators decided on Python because? You don't think it has anything to do with people liking the language and therefore wanting to use it and teach in it?
- dijksterhuis 5y agoIt can also be due to tooling -- once a student has got the python binary installed you can get them writing and running code without having to make sure they have the correct version of x, y, z (don't even need conda or pip) or teaching them what a compiler is etc. Javascript is quite popular as an introductory language too -- students can open up a web browser and type stuff in the console in the middle of a lecture.
- Qem 5y agoI agree. It even features a basic IDE, IDLE, as part of the default install. No need to figure out how to configure your text editor to interact with the Python shell. I remember trying to learn Ruby before Python, several years ago, but then got stuck trying to configure Geany to work with Ruby.
- Zinu 5y agoThey chose Python since it's essentially a free, open-source alternative to Matlab. Also, Python is used as a scripting language on top of C, and C is popular.
- Jensson 5y agoWhy didn't they use Scheme? That was pushed by a very prestigious institution so had some momentum in the education field. Instead they switched to Python and basically nobody uses Scheme to teach any longer. Python won because people preferred it over lisp, simple as that.
- detaro 5y agoTeaching Scheme etc always got pushback from the outside, because regardless of how well it works for education, people get it in their head that you are teaching something that "industry doesn't use" and thus is bad.
- detaro 5y agoin comparatively few places Matlab would have been the alternative.
- dijksterhuis 5y agoPython is quite popular with the data / machine learning crowd. Think pandas, tensorflow etc.
- Jensson 5y agoPython was popular before those libraries came out though. And then people wrote those libraries in Python because it was popular, making it more popular. People using popular languages to create platforms or on their platforms isn't evidence that having a platform is what drives language popularity.
- valenterry 5y agoDespite Rust being around for quite some time now, highly liked (hyped) by its users and being a good language with many features that make it stand apart while having major commercial support, it's still a very niche language. I think it rather supports the OPs claim.
- goto11 5y agoPeople are learning Python because they want to do ML or scientific computing - not the other way around. Python has its current popularity because of NumPy and the whole numeric and ML ecosystem. I love Python as a language, but realistically it could just as well have been Ruby or some other language.
- arc-in-space 5y agoPython was already quite popular by the time 3.0 came out in 2008, well before the AI summer was in full swing, which is a large part of what drove the popularity of NumPy et al. You're not wrong now, but that's just the chicken, the egg included web applications and its use as a scripting language.
- pjmlp 5y agoPython was already the scripting language of choice at CERN when I was there about 20 years ago. Summer School computing classes even used to teach unit testing in Python. And the Atlas HLT/DAQ build scripts were based on Python.
- beowulfey 5y agoThe counter example you’d probably want to use is Julia — it was written with scientific computing in mind, but is nowhere near as popular.
- twistedpair 5y agoSeems that NumPy was written in Python b/c the ML community was using Python, not the other way around.
- js8 5y agoPython came with a platform of sorts, its motto was "batteries included", after all.
- patrick451 5y agoWhy do you assume the browser would have become as popular as it did if Netscape had gone with Scheme? Or Unix with C? It seems more likely there is a feedback between the popularity of a platform and it's anointed language.
- goto11 5y agoNetscape already had total dominance of the browser market when JavaScript was introduced.
- codetrotter 5y ago> If Netscape had decided to use a Scheme-like language or a BASIC-like language it would still be the most popular language in the world. If whatever Netscape added as their scripting language had been too weird I think there is a good chance that a competing browser would’ve implemented a less weird language and that such a less weird language would have won over the hypothetical too weird language. For me, Objective-C is too weird so I never bothered with it but I love Swift and only after Swift came out did I start making apps for iOS. And that’s even though I had been wanting to make mobile apps for iOS for a long time.
- goto11 5y agoMicrosoft introduced VBScript support in Internet Explorer. VBScript was a variant of Visual Basic and therefore a lot more familiar than JavaScript. VB was already used in MS Office and a whole generation had learned programming starting with BASIC. But it didn't matter. Nobody would use a language which wasn't supported by the browser with the largest market share, regardless of the merits of the language.
- CraigJPerry 5y agoTwo counter points spring to mind: Python - which took perls lunch over a decade or so and now in more recent history became the obvious language when data scientists and ai/ml practitioners needed to adopt a platform. Its popularity has even led to it also expanding into education in a huge way after Python became the most popular scripting language. Java - the jvm is an utterly amazing piece of engineering and yet still to this day most people still write java instead of the other better languages (kotlin, scala, clojure) hosted on that platform, and they deploy only to Linux environments. The platform with its write once run anywhere and industry leading garbage collector that gets better than 50% memory utilisation, isn’t the thing that attracts people - its the language. Functional languages used to be the cool thing before object oriented design came along and unlocked the ability to build bigger systems. The ultimate programming language (lisp) has always encourages functional since what, the 60s?
- virgilp 5y agoI would argue that python's popularity comes with numpy/pandas, jupyter notebooks, and the recent popularity of AI/ML/data science. Yes it's useful in other areas (flask and django are somewhat popular) but nowhere near as popular as its use for ML. Scala actually became MUCH more popular with Spark. I think the original point stands - the platform pulls the language. Java is popular due to the jvm - it was the first jvm language after all. It got popular before others like scala & clojure managed to get off the ground, at all.
- WastingMyTime89 5y ago> I would argue that python's popularity comes with numpy/pandas, jupyter notebooks, and the recent popularity of AI/ML/data science. Python was hugely popular long before these were a thing. It was already seen as one of if not the most beginner friendly language at the beginning of the 2000s. It became the language of choice for ML because it was already popular with beginners not the other way round.
- pjmlp 5y agoYes, before Django there was Zope.
- smokey_circles 5y ago>Languages do not becomes successful due to their intrinsic qualities. Languages because successful when they are coupled to a successful platform. That doesn't seem right. There are plenty of languages that are born from platforms, but I'm skeptical that its anywhere near the majority. Some platformless examples from the top of my head - Java - Rust - Python - C++ - Go - Lua In my opinion: C is not popular because of Unix. Unix is popular because it's written in C. The same is arguably true of Kubernetes. Neither docker nor k8s drove mainstream adoption of Go. Go did that with it's own properties, the same is true of Rust and C etc. > Functional programming is less popular because no major successful platform has adopted a functional language as the preferred language. The question here though is why? The author argues because FP is unwieldy for the general software case (which I assume is enterprise CRUD apps). And I have to agree: State management is a huge part of CRUD apps. ------ EDIT: I am not presuming K8s is popular because of Go. The argument here is the success of the platform and choice of language are related, not directly consequential. K8s could have been written in rust and would probably be as popular because of its feature set
- virgilp 5y agoFor Java, JVM was the "platform". I still remember learning Java in university - what left an impression on me was that my first ever university homework where I used Java (i.e. non-trivial project) ran perfectly on first successful compilation [+]. GC is huge help, especially if you don't use smart pointers (which were far less prevalent at the time). [+] to clarify, I was a somewhat experienced programmer, this was one of the final year projects, for distributed systems or parallel computing I believe. A simple system without doubt, but still, a system not a "hello world". Something that I wouldn't have expected to work on first try, had it been written in C.
- tialaramex 5y agoYes. I like this in Java, and in Rust, and it's annoying for me in languages like Python where you mostly don't have this. I want the compiler to tell me my program is nonsense, so then I can fix it, rather than wait until the program has done most of its work and then, oh, did you notice this needs to be an integer but you provided a string? Sorry, program crash, fix the bug and run the whole thing again. But of course although it's the default in Java, and not provided out of the box in Python, I also wrote some web framework stuff that adds these runtime errors to Java (by using Reflection to make decisions at runtime instead) and I've seen Python code with more type safety that would tell you earlier that there's a problem. So it's ultimately not only a matter of programming language although that does definitely set the tone.
- deepstack 5y ago> JavaScript became popular because of the browser I would also say it is mainly due to Gmail and their G Maps extensive use of XMLHttpRequest, and Douglas Crockford insight on that JS has closure and function as first class citizen, it is just Scheme is C clothing. Check out his Little Javascripter. That and of course the intro of JSON.
- blacklion 5y ago> and Douglas Crockford insight on that JS has closure and function as first class citizen «Insight» is like «RTFM»? :)
- goto11 5y ago> and Douglas Crockford insight on that JS has closure and function as first class citizen That is not an "insight". Anyone who had written an event handler in JavaScript would already know that.
- jcelerier 5y agoI disagree, at school we studied both C and LISP during the same semester, writing a lot of similar things in procedural Vs functional styles... I can assure you that most people (who didn't have any programming exposure) really preferred C
- Banana699 5y agoThis data point is confounded by lisp's weird syntax, I would expect people not used to programming to hate the excessive indentation and nestedness that lisp's syntax does to expressions.
- jcelerier 5y agofrom my memories it was much more the equational thinking required which was a hard conceptual leap. Most people are really not used to it.
- austincheney 5y ago> JavaScript became popular because of the browser That is a very popular perspective. In the past I have seen this sentiment used heavily by people who hate JavaScript as a means to rationalize how JavaScript could have become popular at all. Unfortunately this sentiment is disqualified by data. The browser became a popular platform in the late 90s and early 2000s as business and social interest on the web grew. JavaScript has been around cross-platform in a mostly consistent way since 1998 due to the publication of early current standards. This did not make JavaScript popular though. JavaScript would not become popular for more than a decade later. In 2008 a couple of things happened. Chrome launched offering the first JavaScript JIT. Before this JavaScript was hundreds of times slower than it is now. Also, jQuery started gaining popularity at this time which allowed employers to hire any dumbass off the street to write in it. Douglas Crockford also heavily evangelized the language for its expensive capabilities: functions as first class citizens, optional OOP (easily ignored/bypassed), native lexical scope. A little after that around 2009/2010 Node.js launched and GitHub became common knowledge. It’s about this time that JavaScript exploded in popularity. The web was already popular for more than a decade before this. > Functional programming is less popular because no major successful platform has adopted a functional language as the preferred language. I would argue functional programming is incredibly popular but less common in the workplace because OOP conventions are what’s taught at school.
- antris 5y ago> I would argue functional programming is incredibly popular but less common in the workplace It would help if someone defined what constitutes "using functional programming". I mean, this is functional programming: function add(a, b) { return a + b } From my experience, every developer does functional programming to a certain extent, it's just the extent that varies.
- iainmerrick 5y agoYes, that's functional programming! I think you're right to say that many programmers use FP much of the time. The modern trend is definitely to borrow many FP techniques and use them inside an imperative shell. Your example is strict FP, where a and b are fully evaluated before add() executes. There's also non-strict FP, where everything uses lazy evaluation by default. That has some big advantages but also a few pitfalls, and generally makes things significantly weirder when compared to imperative languages. Pure FP is where you only have functions and expressions, no variables at all. I think that's where most mainstream programmers draw the line -- sometimes you just want to store something somewhere, without being forced to jump through what seem like weird hoops. The original elevator pitch for Haskell was that it's a "non-strict, purely functional" language (aimed a unifying a bunch of different research languages, plus the proprietary language Miranda).
- ronenlh 5y ago> If Netscape had decided to use a Scheme-like language or a BASIC-like language it would still be the most popular language in the world. Brendan Eich advanced a Scheme-like scripting language for Netscape, which got a facelift from Java’s popularity. “Scheme was the bait I went for in joining Netscape. Previously, at SGI, Nick Thompson had turned me on to SICP.” “The diktat from upper engineering management was that the language must “look like Java”.“ “I’m happy that I chose Scheme-ish first-class functions” JS actually made a few functional concepts mainstream, such as first-class and anonymous functions, and callback patterns. Source: https://brendaneich.com/page/5/ https://brendaneich.com/page/5/
- 57844743385 5y agoI personally find functional languages highly unintuitive.
- goto11 5y agoIntuitive just mean familiar. A programming language is intuitive if it is similar to another language you are already familiar with.
- menotyou 5y agoI personally find object oriented languages highly unintuitive.
- CRConrad 5y ago12: GOTO 11 REM That is, "goto11"'s sibling comment https://news.ycombinator.com/item?id=28522359 https://news.ycombinator.com/item?id=28522359
- _dain_ 5y agoThere is a functional programming language that is coupled to a platform, that most people on HackerNews wouldn't think of: the M language for PowerQuery. It is used to make ETL pipelines for Excel (and I think other Microsoft apps?). It is very popular, although among people who don't consider themselves "programmers" or "software engineers", but rather analysts. https://docs.microsoft.com/en-us/powerquery-m/ https://docs.microsoft.com/en-us/powerquery-m/ In fact, Excel itself can be considered a functional, reactive programming environment, and if we grant that, then it is the most popular programming language on the planet.
- rkangel 5y agoIt has just occurred to me that Excel is an excellent example of a functional language to use to explain to people who don't understand what functional languages are.
- _the_inflator 5y agoI think that we must see C always in the context of assembly language. Pascal and C really helped things moving forward in terms of abstractions. C seems hard now and it is, however, assembler is way harder and when things started to evolve from 8bit to 16 and 32bit computers, we were all glad that machine language was something from the past. Same goes in most part to BASIC.
- amelius 5y agoThis is exactly the reason why people are trying to push their favorite language down everyone's throat.
- dna_polymerase 5y agoHi, do you have a minute to talk about our lord and saviour, Rust?
- blablabla123 5y agoNot sure if it's implied but JavaScript was basically ideated as Scheme with C syntax in the Browser. That concept didn't take off for quite some time but pure functional programming within React actual got quite some popularity. Even "plain React" is borrowing a lot of concepts from FP, especially when combined with Flux and other add-ons. During that time also Clojure due to Om (React with Clojure) gained some popularity. One language where FP basically arrived in the mainstream is by the way Scala. And there are other newer language which allow for FP'ish programming like Kotlin. But otherwise it's true, languages like Schema or Haskell will probably not arrive in the mainstream soon.
- coldtea 5y ago>Languages do not becomes successful due to their intrinsic qualities. Languages become successful when they are coupled to a successful platform. That's true for system and low-level application languages (Javascript is an exception, as for the web platform, there's no alternative so it's used for everything). Perl, Python, Java didn't become succesful because of platform ties (yes, Java was made by a platform vendor, but most of its programmers used Windows and deployed on Linux or AIX, not Solaris).
- tdy_err 5y agoChicken or egg?
- malkosta 5y ago> Functional programming is less popular because no major successful platform has adopted a functional language as the preferred language. WhatsApp backend is written in Erlang. A large part of the world's telecom infra is written in Erlang (2G, 3G, 4G, 5G). It powers the highest availability systems in the world. Still nobody cares about it....