7 ms·
Programming language subreddits and their choice of words
- josteink 12y agoI know PHP-bashing isn't particularly creative nor nice, but I wasn't surprised when I saw the word-analysis at the end there :) That said, I don't think the findings for C was shocking either. You're not going to be writing kernel-modules in Clojure. It's going to be some sort of C. And the chances of it involving hardware (performant code or not) is significantly higher than other non-systems languages.
- tormeh 12y agoWhy are no one using JSP, by the way? Isn't it a better, more secure direct competitor to PHP?
- lmm 12y agoJSP is more like a library or framework than a language, though I guess it's harder to make that distinction in PHP which is kind of both. But this diagram won't separate JSP from other Java (which you'll see is used quite a lot - some of that will be JSP). "better" is subjective. While there are good things about the Java/JSP stack, its templating language is IMO cumbersome and unsafe, and its test-edit cycle can be quite long.
- ptx 12y agoThe thing PHP and JSP were designed to do seems to be generally seen as a bad idea nowadays. PHP is used anyway only because it's already installed everywhere, so those who would be able to set up JSP can also choose something else (i.e. neither PHP nor JSP) and probably do.
- tormeh 12y agoWhat would you use instead? Javascript fetching data from server and doing all UI stuff on client?
- superuser2 12y agoYou use a structured framework that has some separation of concerns (typically Model-View-Controller or some variant). In Java-world, some examples are Struts, Spring MVC, and Play, all of which can be used to write high-quality software for real-world applications. JSP might even be involved in the view/presentation layer. There are also MVC frameworks for PHP. The most popular, though, are those for scripting languages like Ruby and Python, namely Rails and Django. What you shouldn't be doing is interleaving data access, business logic, and presentation all in one file, which is what straight PHP and JSP usually consist of. This is called "spaghetti code" and it's been widely regarded as a really terrible practice for around 10 years. You can do client-side apps in Javascript that fetch JSON or XML from the server, but you want to be using a framework with some structure to serve the data, still not just straight PHP or JSP.
- dragonwriter 12y ago> What you shouldn't be doing is interleaving data access, business logic, and presentation all in one file, which is what straight PHP and JSP usually consist of. This is called "spaghetti code" and it's been widely regarded as a really terrible practice for around 10 years. "spaghetti code" actually has a much broader definition than that particular kind of lack of structure (though I agree that that example might be viewed as a fairly modern example of "spaghetti code") and has been considered a terrible practice for much longer than PHP, JSP, or even the web itself has existed. [1] [1] http://en.wikipedia.org/wiki/Spaghetti_code http://en.wikipedia.org/wiki/Spaghetti_code
- Arnor 12y agoIf all you're looking for is an html template system, there are html template languages for almost every programming language (including ruby, python, nodejs, Scala, Haskell, C, C++). Even most PHP developers are using template systems besides just PHP intermingled in HTML these days. I still agree that PHP is probably the fastest way to get a couple dynamic HTML pages that include server data. The limitations of PHP as a template language quickly reveal themselves as projects grow.
- chrisweekly 12y agoJSP is really just Servlet. JSP is used in the context of Java Servlet Engine frameworks like SpringMVC or Struts. It is definitely still being used.
- carlob 12y agoI also want to point out that the mathematica community never swears. :)
- LukeB_UK 12y agoBecause PHP is so readily available (installed on pretty much every free web host), it may also be related to people starting out with programming and getting frustrated about it.
- noir_lord 12y agoI use PHP daily and I like it's features and tooling but it really isn't a very good language (it's finally passable but far from good). In addition to the reasons you mentioned it's also possible their are other demographic differences among languages in terms of age, experience etc. (I suspect though can't prove that the average C programmer is older than say the average PHP programmer).
- th3iedkid 12y agolooks like users of PHP are most offensive when given to choice of words to hate the language and users of mathematica are least offensive ! Funny but not unexpected clojure users seem very happy with what they use! On the mutual mentions java users have near zero mention of haskell?
- krapp 12y ago>looks like users of PHP are most offensive when given to choice of words to hate the language (...) PHP offers a wealth of creative possibilities in that regard which other languages seem to lack ;)
- BrianEatWorld 12y agoI started using Clojure about a month ago, after spending a lot of time with Python and I have to say it does make me oddly happy. Once you have paredit set up, the way you can move code around is just mesmerizing.
- tel 12y agohttp://daiw.de/github/programming-language-subreddits-and-their-choice-of-words/mentions_chord_graph/index.html http://daiw.de/github/programming-language-subreddits-and-th... Java mentions Haskell quite a lot, Haskell mentions Java almost not at all.
- tormeh 12y agoThis is really cool. I wonder how the "buzzfactor" of Haskell would measure up against Idris.
- ivoras 12y agoAn interesting indicator from the "mentions" graph: how compatible or co-used two technologies are in practice. For example: C++ programmers apparently don't mention SQL at all, while it's very popular with PHP (which doesn't have a built-in ORM). There is also no overlap between C++ and JavaScript programmers. Rust is obviously very influenced by C++ and Haskell, but the C++ community doesn't even know about its existence. Somewhat naturally, the Matlab and PHP communities really don't have much in common.
- mcguire 12y agoAnyone know what the unlabelled languages are in that graph? [Edit: Sorry, I was dragged away to a meeting before I could finish.] Specifically, what is the blue language between C# and Haskell? It has a strangely strong link to Rust and Python.
- ll123 12y agoNone of these languages have a built in ORM.
- dubcanada 12y agoDoes any language have a built in ORM? I was thinking maybe Ruby, but even that is a gem.
- noir_lord 12y agoAn interesting question, I did some googling and didn't find anything. Not that surprising I think since an ORM is probably better in a library since that allows more flexibility across systems.
- fenomas 12y agoI agree with the author that the top graph may not be hiding any important insights, but the interactive version (linked from the image) is sexy as all get-out.
- deleted 12y ago[deleted]
- dbbolton 12y agoI wonder why Perl was excluded. A quick search reveals that /r/perl has more subscribers than lua, matlab, objectivec, scala, sql, and visualbasic.
- gamegoblin 12y agoI suspect the answer to "Why was ___ excluded" in most of these cases is "accidental oversight".
- enraged_camel 12y ago>>"accidental oversight" Which is just another word for "conspiracy."
- enraged_camel 12y agoProof that HN has no sense of humor. :)
- kbenson 12y agoInterestingly, Perl does make appearances in much of the word usage section. It's absence from the rest of the article is curious.
- Dobiasd 12y agoThe same reason why I left out C and D in the mentions. Their name is too often used to mean something else. :/
- tel 12y agoI wish the colors indicated not absolute comparative volume (more X talk happens on Y forum, than visa versa, so it's colored Y) but instead comparative relative volumes Forum X spends a great percentage of their time talking about Y than visa versa so it's colored X Basically, who obsesses over who more.
- huangc10 12y agonice job. as a user of PHP. no comments. :)
- LukeHoersten 12y agoThat's really clever. I had a good laugh at some of the results. Well done.
- josephschmoe 12y agoI feel like Haskell gets name dropped a lot more - when you mention something from a C-language you can have a reasonable expectation the other person knows what that thing is.
- gamegoblin 12y agoI tend to agree -- I feel like the C-family concepts are the default, and when you go outside of that range, you specify. e.g. "I think function application is super easy, you just do f(x,y,z)!" vs. "I think Haskell style function application is super easy, you just do f x y z!" But I also suspect Haskell is just getting more attention these days -- it's quite trendy for sure.
- WayneS 12y ago"But what is up with the Visual Basic community? They are neither angry nor happy. They just ... are? :)" This is answered by the mentions relative to TIOBE graph. They use VB, but they are careful not to talk about it.
- Spearchucker 12y agoNot sure if "careful" is the right word. I've gone through many, many languages over the last 20 years, and VB has become my first choice (when the choice is up to me). Most other VB devs I know (there aren't many) just seem... uninterested in arguing over it vs. C#, or anything else for that matter. It's part of the appeal to me - shipping, and the journey are worthy of discussion. Language is incidental.
- amcnett 12y agoMy kingdom for a sarcasm detection algorithm!
- ChikkaChiChi 12y agoThis is awesome. It almost paints a picture from PHP => Python => cpp & Java. Considering that would be considered a growth path of a developing programmer, I find that fascinating. PS: Go will always have problems with stuff like this. They should have just named the language string or var or something equal toxic to machine collection.
- byuu 12y agoI'm not defending the name choice; but to be fair, nearly all of the major languages have put zero consideration into their name SEO: Java competes with coffee, Ruby with the gemstone, Python with the snake, C# with the musical note, and C ... C is just a damned letter :P
- ChikkaChiChi 12y agoMaybe this just means engineers shouldn't name things! :) Then again marketing people would have made choices like RadPython, RubyGrunge, and CFlowerPower...
- M2Ys4U 12y agoWell there are four hard problems in computer science: 1. Naming things 2. Cache coherence 3. Off-by-one errors.
- byuu 12y agoYep, I gave up on naming things. I tried to use really creative names as is common in the Linux world (Ristretto, Amarok, Brasero, Thunar, etc), but it drove me up the wall (I once named a project "xkas", ugh.) It's so hard to find a name that's easy to pronounce, sounds good on the tongue, and is not already used a million times. Nobody's ever going to find them through Google, but oh well. Nobody was going to use them anyway. May as well name them the way I like, right? ;)
- virtualwhys 12y agoThere's a language that everybody is talking about; yet nobody uses it. Kind of a spinoff of Stroustrup's, "there are languages everybody complains about, and languages nobody uses".
- squirrelthetire 12y agoIt's great to look at correlations between Rust, C++, and Haskell. Rust programmers are very interested in Haskell, and Haskell programmers Rust; which indicates that Rust's design has a lot of influence from Haskell. C++ programmers are talking about Rust more than anything else; which shows that they are likely interested in moving to Rust. This is very exciting to me, because I believe Rust is going to be a great replacement for C/C++, and if anyone understands how to create quality programming languages, Haskell programmers do. TL;DR Rust is going to be the new C++, and the new Lisp. These are exciting times.