News for hackers. Stuff that matters.
Re:Why Aren't There C Conferences? by kayoone on Wednesday November 21, 2018 @02:07PM (#18505128)
i don't know, there are Golang, Python, Javascript, Ruby, PHP conferences and probably a lot more, so not sure if that argument is valid.
Re:Why Aren't There C Conferences? by mikestew on Wednesday November 21, 2018 @02:12PM (#18505172)
Of the ones you list, only one has a wide focus, IMO. Three of those will essentially be web development conferences, and I don't know what the hell people do with Go these days, but I'll bet it's mostly a handful of things. Python probably has broad enough usage and scope to counter what I said. The exception proves the rule. :-)
Re:Why Aren't There C Conferences? by weberc2 on Wednesday November 21, 2018 @03:11PM (#18505643)
> I don't know what the hell people do with Go these days, but I'll bet it's mostly a handful of things

The 2018 Go user survey analysis should be released soon, but I'm guessing you're right that it's only used for a few things; however, those few things are pretty significant in terms of marketshare (distributed systems, backend applications, and general purpose tooling--this hypothesis could probably be checked against the StackOverflow survey). Not much on the front-end or mobile application side nor on the embedded side, but probably making some headway on the AI/ML/data-science side.

In general, I think of Go as Python but with 15 years of hindsight but also 15 years of market catchup. Go does a lot of things better than Python (performance, concurrency, distribution, deployment, etc), but the reverse isn't true. The principle advantage to Python is that it was the lingua franca for the data science niche before the niche became a mainstream competency--this means more people were exposed to Python rapidly, but it also means that people are beginning to build high-quality data science libraries in other languages, including Go, which closes the gap between Python and other languages.

Re:Why Aren't There C Conferences? by chewxy on Wednesday November 21, 2018 @03:52PM (#18505987)
A bunch of us are trying to change that and make Go the lingua franca for data science and machine learning! The libraries du jour are Gonum (https://gonum.org), a numpy/scipy equiv for Go, and Gorgonia (https://gorgonia.org), a PyTorch/Tensorflow equiv. Do help out!
Re:Why Aren't There C Conferences? by holografix on Wednesday November 21, 2018 @03:26PM (#18505770)
I’m a beginner in Go and not an expert in Python. However Python is a lot easier to develop with than Go: generics, no pointers, standard collections have many convenience functions, package handling, etc.
Re:Why Aren't There C Conferences? by klodolph on Wednesday November 21, 2018 @03:53PM (#18505995)
Saying that Python has "no pointers" is a bit of an oversimplification, somewhere between "technically true, but misleading" and "actually incorrect", depending on how you define your terms and frame the question. Remember that Java has "no pointers" too, it works basically the same way Python does (except for some minor quibbles about primitive types), except if you go to 4.3.1 of the Java SE 11 spec and look for "pointer" you'll find the flat admission that Java has pointers.

The part about pointers that makes programming hard is that you can create multiple references to the same object, and if you don't realize this, you can modify something that you didn't realize you were modifying. In Python this can happen easily enough:

    a = []
    b = a
    a.append(1)
Question: what is the value of b? You might think that this is pretty obvious, but once you can answer this question correctly, you basically understand pointers. In fact, it's not really relevant whether you say that "a" and "b" are pointers or whether you say that they are object references, conceptually, it does not matter what you call them. The fact that Golang has different syntax for pointers and the fact that you can get the address of local variables or member fields is no big deal, since understanding how pointers work is the hard part, and Python already makes you do that.

Package handling in practice I would say is a wash, more or less. Both Python and Golang have multiple different ways of managing packages, depending on your preferences.

It's flat incorrect to say that Python has generics. What Python has is dynamic typing. Golang has interface{}, which is equivalent to what Python has, except it requires casting.

Re:Why Aren't There C Conferences? by mywrathacademia on Wednesday November 21, 2018 @06:18PM (#18506846)
Out of curiosity, is b [1]? Or if b receives a copy of a, then b would still be an empty list, i.e. []. Not sure what answer you're expecting.
Re:Why Aren't There C Conferences? by earenndil on Wednesday November 21, 2018 @07:08PM (#18507059)
interface{} is completely different, in that it doesn't allow polymorphism. In python, I can add = lambda a, b: a+b, and then call add on ints, floats, strs, or some custom type of my own. In go, I can pass an interface{} and check if its type is the same as some other type I know about. But no polymorphism.
Re:Why Aren't There C Conferences? by klodolph on Wednesday November 21, 2018 @08:55PM (#18507426)
This is factually incorrect, interface{} allows polymorphism. Maybe you are unaware of how interface{} works but if you want to call a method on it you just do this:

    func myFunc(a interface{}) {
        a.(interface{ f() }).f()
    }
This works for any type "a" which has a method "f" with the correct signature, and this is what I meant when I said “except it requires casting”. The fact that you can’t do this with + is merely a consequence of the fact that + is just the __add__ method in Python, and in Golang + is not a method. The fact that Golang matches method signatures whereas Python only matches method names is not really a substantial difference in my eyes.

I don’t think there’s a strong case to be made here that interface{} is substantially different from Any in Python, again, except for the required cast. And I think we all agree that neither Python nor Golang support generics. (Python supports metaprogramming, and you can implement something similar to generics with metaprogramming, but I don’t consider that to mean that Python supports generics. Type checkers retrofitted onto Python also support generics, but I don’t really consider those to be core Python yet.)

Re:Why Aren't There C Conferences? by weberc2 on Wednesday November 21, 2018 @10:25PM (#18507678)
You don’t have to check the types, you can say “unpack these variables as into and if they aren’t into, blow up” which is what Python does as well. The major difference is that it’s implicit in Python and explicit in Go.
Re:Why Aren't There C Conferences? by adrianpike on Wednesday November 21, 2018 @03:34PM (#18505830)
> no pointers

FWIW, this is one of the biggest selling points of Golang for me - I love the fact that I'm able to be explicit about reference vs. value, and that it prevents me from shooting myself in the foot when I inevitably screw it up.

It's enough of a differentiator for me that I almost can't put languages with and without pointers in the same mental bucket.

Re:Why Aren't There C Conferences? by tpush on Wednesday November 21, 2018 @02:34PM (#18505343)
I mean, there's CppCon as mentioned in the article, and C++ has pretty much the same wide reach as C.
Re:Why Aren't There C Conferences? by DonHopkins on Wednesday November 21, 2018 @03:37PM (#18505863)
Please tell me that CppCon isn't a conference just for the C Preprocessor?

I hate it when you go to one of those Makerfests, and it actually turns out to be about Makefiles.

Re:Why Aren't There C Conferences? by inoiox on Wednesday November 21, 2018 @04:23PM (#18506227)
https://www.youtube.com/user/CppCon

Actually is a really good conference to learn Software Development beyond C++

Re:Why Aren't There C Conferences? by simias on Wednesday November 21, 2018 @05:00PM (#18506450)
C++ is a wildly unstable language compared to C. Every new standard brings a slew of new coding paradigms and features, often changing the way to write C++ code pretty fundamentally. On top of that C++ is a hellish beast of a language of such tremendous complexity that you can probably host hundreds of conference where you'd teach even experienced C++ coders things they don't know. They won't run out of material any time soon.

Meanwhile a C conference would have a hard time coming up with interesting content year after year IMO. You'd end up having to talk about how C is used more than C itself, but then you're no longer really doing C-con, you're doing "embedded-con" or "high performance trading con" etc...

I agree with the parent when they compare C to a hammer, it's a super useful tool and I'm glad that we have it but it's not like I could talk about it for hours (or hear somebody else talk about it for that matter).

Re:Why Aren't There C Conferences? by shaklee3 on Wednesday November 21, 2018 @08:15PM (#18507322)
This is completely false. C++11 introduced a lot of new paradigms, and that's it. That shift was for the better, and I haven't met a single person who can honestly say that the changes they made turned it into a worse language. Quite the opposite: it's more expressive, readable, and easier to use.
Re:Why Aren't There C Conferences? by simias on Thursday November 22, 2018 @04:41AM (#18508973)
My comment wasn't meant to disparage C++, I'm not saying it's not improving, I'm just pointing out that it's a massively complex language and that it's still evolving in major ways so there's stuff to talk about. C hasn't really introduced significant "new paradigms" in a long while.
Re:Why Aren't There C Conferences? by AlphaSite on Wednesday November 21, 2018 @02:43PM (#18505409)
To be honest C is kinda boring. Which is fine, but makes it hard to do a C conference.
Re:Why Aren't There C Conferences? by varjag on Wednesday November 21, 2018 @02:48PM (#18505444)
Fair point, but Go or PHP hardly sound more exciting.
Re:Why Aren't There C Conferences? by weberc2 on Wednesday November 21, 2018 @03:20PM (#18505723)
I'm a heavy Go and Python user, and you're right that Go isn't particularly interesting--it doesn't change terribly rapidly, but it's also simple enough that you can do interesting and useful deep-dive sessions into the garbage collector or scheduler or other aspects of the runtime or the toolchain. You could also speculate or discuss proposals for Go2. There have also been significant recent changes to the dependency management scheme which affect pretty much everyone.

I don't think there's much of an analog for C. Most of the interesting stuff in C revolves around things you would think you can depend on but actually break in really weird and interesting ways (misc undefined behavior, sizes for integral types on different architectures, idiosyncracies of the preprocessor, the way to trivially exploit that pattern you used to avoid buffer overflow exploits). But most of that is just depressing.

Re:Why Aren't There C Conferences? by Koshkin on Wednesday November 21, 2018 @03:10PM (#18505641)
I guess, some languages have to fight for their place under the sun, some don't.
Re:Why Aren't There C Conferences? by cies on Wednesday November 21, 2018 @03:13PM (#18505659)
That for different reasons. Go is not a general purpose language (it's creators specifically focus it's uses on networked apps). PHP is on the decline, nothing kills excitement like decline.
Re:Why Aren't There C Conferences? by welly on Wednesday November 21, 2018 @04:44PM (#18506345)
Boring in what way? Some of the coolest stuff we work with is built with C. C is ace. C is cooler than C++
Re:Why Aren't There C Conferences? by spork12 on Wednesday November 21, 2018 @05:41PM (#18506685)
I think it's more that C programmers don't really consider themselves part of a C culture in the same way that python, go, ruby, php etc programmers do. C programmers usually have another interest like kernel dev, firmware dev, or 3d game engines that is more interesting to them than the language itself.
Re:Why Aren't There C Conferences? by stcredzero on Wednesday November 21, 2018 @04:24PM (#18506231)
I don't know what the hell people do with Go these days

It mostly falls under the rubric of "writing servers."

Re:Why Aren't There C Conferences? by johnaoss on Wednesday November 21, 2018 @03:07PM (#18505605)
People are doing basically everything in Go right now! Front-end web development being the exception (though there is GopherJS...). Projects like Docker, Kubernetes, CockroachDB, Consul (and anything Hashicorp does), Mattermost, and etcd are all being written in Go!

Anecdotally, I've heard people using Go to rewrite some of their Ruby services in which more performance is needed.

Re:Why Aren't There C Conferences? by lettergram on Wednesday November 21, 2018 @02:14PM (#18505190)
Python is probably mostly data science if I had to guess. jupyter notebooks have made python excessively used for data science.
Re:Why Aren't There C Conferences? by edanm on Wednesday November 21, 2018 @02:33PM (#18505338)
That's absolutely false. Firstly, while the advent of Jupyter notebooks have certainly made using Python better for data science, why would you think that would cause people using Python for unrelated purposes to stop using it for those purposes?

Practically, while data science / ML / etc work is a big part of Python, I'd wager a much larger part is still web development work (Django et all). And of course, just using it as a "scripting" language, or using it to create GUIs, etc.

Re:Why Aren't There C Conferences? by davrosthedalek on Wednesday November 21, 2018 @03:50PM (#18505965)
To be fair, it is my impression that even in data science, python is more a less a scripting language, and all the libraries which do the heavy lifting computing-wise are written in something else, because speed. Has this changed?
Re:Why Aren't There C Conferences? by PeterisP on Wednesday November 21, 2018 @04:22PM (#18506223)
Sure, but for every line of code in such a library there's a hundred (or hundred thousand) lines of code that use that library. A small bunch of people maintain some CUDA code that's underneath a Python wrapper, but great many people write code that uses it.
Re:Why Aren't There C Conferences? by pathseeker on Wednesday November 21, 2018 @04:12PM (#18506154)
The underlying libraries may be in C, but the vast majority of data scientists never need to alter the C so it's fair to say most data science code is written in python. Python/Numpy/pandas has enabled data scientists to avoid writing C entirely.
Re:Why Aren't There C Conferences? by chasontherobot on Wednesday November 21, 2018 @09:53PM (#18507602)
about as much FORTRAN as C I believe
Re:Why Aren't There C Conferences? by mikestew on Wednesday November 21, 2018 @02:19PM (#18505233)
Python is probably mostly data science if I had to guess.

You think? I'll admit that my view of the Python community is super narrow, but I was thinking Django, me writing a bunch of test scripts, backend stuff. I know data science is a "thing" with Python, but I just didn't imagine that it had become it's main use. I guess TIL there's a whole other world of how people use Python, and it might be most of them. :-)

Re:Why Aren't There C Conferences? by laingc on Wednesday November 21, 2018 @02:34PM (#18505348)
I run an ML team whose primary language is Python, and I’ve been doing scientific computation in Python (eg finite elements, numerical optimisation) in Python for a long time.

My personal impression is that Python is used in more fields than almost any other language, but that every community is only peripherally aware of other communities.

For example, Python is big in Earth Sciences (or so I am told). Almost nobody outside Earth Sciences knows that.

Until maybe 5 years ago, I had no idea that people used Python for web development. It had just never occurred to me. GvR famously had to google what wsgi was.

So I think your final sentence probably applies to most users of Python.

Re:Why Aren't There C Conferences? by milesvp on Wednesday November 21, 2018 @03:34PM (#18505834)
Yup. Python has some really good GIS libraries. So field that needs to deal with map data will often find itself drawn to python. And since it's a pretty newb friendly language you find that people who wouldn't otherwise program write simple scripts to manipulate the data and maybe output it to a csv so they can import it to excel.
Re:Why Aren't There C Conferences? by marcosdumay on Wednesday November 21, 2018 @03:47PM (#18505945)
At this point, Python is probably the second most used language for system programming (after C), one of the top 4 in web development (no idea on their ordering), around the top for other network protocols (I'd guess 3rd), the top language for data science, on the top 5 of scientific computing, on the top 5 for embedded computing (what sounds completely crazy, but there are few languages there), on the top 4 for game creation (probably 4th), the top one for electronics CAD and among the top for other kinds of CAD, the top one for GIS...

I can't think of other niches right now, but whatever one you think, it's probably on the top 5 there.

Re:Why Aren't There C Conferences? by kevin_thibedeau on Wednesday November 21, 2018 @02:45PM (#18505422)
Python was popular (though smaller) before NumPy and everything dependent on it came about.
Re:Why Aren't There C Conferences? by dagw on Wednesday November 21, 2018 @03:40PM (#18505880)
The first version of the project later renamed NumPy was released in 1995, so it's been around almost as long as Python.
Re:Why Aren't There C Conferences? by fiddlerwoaroof on Wednesday November 21, 2018 @05:03PM (#18506471)
Yeah, I started using python around 2.0 and stopped using it because of 3, but from the beginning of my time using it, there always was numeric or numpy
Re:Why Aren't There C Conferences? by anothergoogler on Wednesday November 21, 2018 @07:26PM (#18507132)
Please don't project your narrow viewpoint onto PL communities.
Re:Why Aren't There C Conferences? by eksemplar on Thursday November 22, 2018 @01:12AM (#18508209)
I don’t know about that, Django is arguable still the most productive web-framework.

I mean, I like JS as much as everyone else and graphql is better with Apollo than it is with graphene, but I can make a full django app and deploy it before I’m even done looking over the changes to my JS packages that have occurred since I used them last.

Hell, even if you want to use vue or react, I still find django more productive than node, Apollo and prisma. And that’s not mentioning flask.

So I’d wager that python powers a fairly large part of the web, and with good reason.

Re:Why Aren't There C Conferences? by kuang_eleven on Wednesday November 21, 2018 @04:20PM (#18506207)
For as much as this is getting downvoted, I've been to PyCon several years running, and it is correct. While the actual usage of Python is very broad, the PyCon convention itself skews very heavily towards data science applications.