Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why there is not a comprehensive c archive network? [closed]

There are websites as collections of python/perl/R libraries. Why there is not an equivalent one for c?

I searched the internet and only found a small website calling itself CCAN. There are only a few libraries in that website.

If I need extra libraries for c programming, where can I find them? Is there an well organized website of the c libraries?

Thanks.

like image 415
Feng Jiang Avatar asked Jun 20 '10 19:06

Feng Jiang


People also ask

What does CPAN Comprehensive Perl Archive network consist of?

The Comprehensive Perl Archive Network (CPAN) is a repository of over 250,000 software modules and accompanying documentation for 39,000 distributions, written in the Perl programming language by over 12,000 contributors.

How many R packages are available on the CRAN the Comprehensive R Archive Network )?

As of June 2022, there were over 18,000 packages available on the Comprehensive R Archive Network, or CRAN, the public clearing house for R packages.

Is Ra free software?

What is R? R is a free, open source software program for statistical analysis, based on the S language.

How do I download CRAN?

Installing the CRAN packages with the menuIn RStudio go to Tools → Install Packages and in the Install from option select Repository (CRAN) and then specify the packages you want. In classic R IDE go to Packages → Install package(s) , select a mirror and install the package.


2 Answers

If I need extra libraries for c programming, where can I find them? Is there an well organized website of the c libraries?

No known to me outside of CCAN.

The problem here is that C doesn't have any even loose specification for libraries. Compare that to e.g. packages in Java or Python or Perl.

And even then, C is quite bare bone itself leaving many things for libraries to implement themselves. I/O abstraction, memory management, multi-threading, OS integration - minor differences in how libraries work with any of the resources might make them incompatible, preventing them being used in the same project.

I have seen in past some 3rd party commercial libraries for C, covering quite a lot of functionality, but frankly I can't recommend them and honestly do not even remember their names - for they often were causing more problems than really helping. (OK, I'm lying: they were rarely causing unsolvable problems: it's the numerous workarounds which were causing often the problems later.)

Otherwise, for C you might want to check the Glib and (do not get me wrong) to also check the C standard as in my experience few actually know many of the utilities already in the standard library itself. And well, Google is your friend: lots of public domain code is there for you to simply throw as-is into your project.

like image 60
Dummy00001 Avatar answered Nov 03 '22 10:11

Dummy00001


I don't know of anybody who's studied this in detail, though I would be curious to see the studies. I'm sure it has to do with the nature of the C programming community itself.

I think a large (maybe the primary?) part of the answer is: before the WWW, there was no such thing as a single resource for obtaining libraries for a particular language. People obtained their libraries, and knowledge of libraries, via many different means: through BBSes, mailing lists, newsgroups, and periodicals. The C community dates from this time, of course, and I've noticed a similar difference in culture regarding other languages from this period and before.

I think another part of the answer has to do with the general decentralization of C culture itself. There's no one C compiler, no one C development community, that serves as a hub and a potential point for projects to attach themselves to. And the C development community is huge, which further drives this decentralization and splintering.

In the case of C libraries, OS distributions actually do a pretty good job of collecting useful C/C++ libraries out there. (With the unfortunate exception of Windows, I believe.) They do a better job in these languages than most others, probably since C and C++ are such important systems languages on these platforms.

As far as CCAN goes, I think what would make a more worthwhile project, given the number of different distributors of C code out there, is to have a single site that links to the various libraries on their own native sites, rather than trying to get them to upload straight to CCAN. I think there's a use for this in and apart from Google, which will give you a lot of noise if you try just browsing for libraries. The question is, would you and the bulk of the C communities out there embrace such a site if it existed?

You might be amused to see how CPAN got its start: http://www.brainbell.com/tutors/Perl/CPAN_History.htm

CPAN evolved just as its community did. So the same thing could happen in the C/C++ world if the leadership and interest is there. But it hasn't happened yet.

like image 42
Owen S. Avatar answered Nov 03 '22 11:11

Owen S.