Before you say all distros are filled with development tools let me explain what I mean.
Using OpenSuse as an example, but every distro I have found is guilty of this as well:
12.2 has an old version of Qt, and the newest stable version was released before 12.2 locked new features out. Ditto for Ruby, Ocaml, Python, etc. Not only that but even those packages that are not required by any distro system package are pretty old, bordering on ancient.
The OSS version of Java just doesn’t cut it. Not only does opensuse not use a current version, but it also lags behind the official JDK and JRE. Granted, Oracle stupidly changed the distribution license so no one can actually ship a reasonable version of Java so this may be a bad example. But hopefully helps.
Sure, I can and do go outside Yast/zypper to get all these tools, but that means I have to do a lot of contortions to not squash older versions that system packages depend on and have to manually update them.
What I am looking for is a distro that actually separates system required packages from user land packages and uses a sane directory structure to keep them separate, why /usr/bin became the defacto place for SYSTEM packages is beyond me.
Basically, I am looking for a distro that has a PM that treats system dependencies and user programs and libs as completely separate entities. This way repositories can have as “cutting edge” packages as needed without ever touching the system repos.
It amazes me that I can’t easily find a distro that does this, it seems like the sane thing to do because developers often need packages that are newer and older than what the system requires and aren’t really equipped to deal with multiple versions installed at the same time. From my experience linux distros are optimized for two things. End-users that use a browser, play simple games and listen to music and not much else, which is quite ironic given the low desktop market share of Linux, and of course servers. But actual development is pretty much ignored.
Use a rolling distro with a strong focus on compiling what you need from
source like Arch Linux (has binary packages and a ports like system) or
Gentoo (has only a ports like system) and keep it up to date to your liking.
I think that’s what comes nearest to a developer centric distro.
(I would go for Arch in that case since it combines binary packages and
a ports system).
–
PC: oS 12.2 x86_64 | i7-2600@3.40GHz | 16GB | KDE 4.8.5 | GeForce GT 420
ThinkPad E320: oS 12.2 x86_64 | i3@2.30GHz | 8GB | KDE 4.9.2 | HD 3000
eCAFE 800: oS 11.4 i586 | AMD Geode LX 800@500MHz | 512MB | lamp server
On Sun, 14 Oct 2012 19:06:01 +0000, Eiledon wrote:
> 12.2 has an old version of Qt, and the newest stable version was
> released before 12.2 locked new features out. Ditto for Ruby, Ocaml,
> Python, etc.
> Not only that but even those packages that are not required by any
> distro system package are pretty old, bordering on ancient.
In most professional development houses that I’ve worked with, keeping
current is not as important as keeping things stable.
But you can use a rolling upgrade like Tumbleweed to keep up, or add the
repos necessary.
> The OSS version of Java just doesn’t cut it. Not only does opensuse not
> use a current version, but it also lags behind the official JDK and JRE.
> Granted, Oracle stupidly changed the distribution license so no one can
> actually ship a reasonable version of Java so this may be a bad example.
> But hopefully helps.
Yeah, Oracle needs to take the blame for this - there’s nothing any
distribution can do (except for Oracle with their respin of RedHat) to
change this - so take that up with Oracle and don’t blame the various
distros for complying with Oracle’s new licensing terms.
I agree with Martin. Go for Arch! But try to only install the stuff you need, because more stuff means more update.
But I agree with Carlos too. If you use the newest libraries (which always come to Arch or Gentoo first), your code won’t work for everyone, and if you use older libraries, it might not work on cutting edge or rolling distros.
It wouldn’t be so bad if they used the last stable and compatible version available before the distro locked new changes, but usually it is packages 2-3 years old.
Sometimes there is a reason for using ‘old’ packages, try raising the issue if you have evidence to disagree with the maintainer. Also something is not out of date if it is fully functional and supported (at least not always, there are exceptions). Flexibility is key in such situations.
Also, I note that openSUSE build service is an awesome resource for finding newer libs such as qt5 and etc to develop with. Though if you have such specific requirements wouldn’t you be better served compiling the exact requirements yourself?
2-3 years sounds like an exaggeration, are there any examples? Remember they rely on the community to maintain many packages, so some can lag by a couple of versions, sometimes more. Compatibility is another consideration.
> Because distros are using very old packages…
>
> It wouldn’t be so bad if they used the last stable and compatible
> version available before the distro locked new changes, but usually it
> is packages 2-3 years old.
If is that way, it is as it is.
Sometimes I wanted to try some new software, and found I could not
install because the devs used and required new libraries from many
things, thus impeding that common users like me can try their software.
It is the other way round, devs should use the same libraries as their
users are going to have. Otherwise, only geeks like them are going to
test their software.
–
Cheers / Saludos,
Carlos E. R.
(from 12.1 x86_64 “Asparagus” at Telcontar)
I’m the “dev” you called. but I don’t think there’re such system existed.
arch/chakra is good. but we never use them in production env. eg: for NASA. so even if you develop using arch, it doesn’t even matter if it runs on debian.
I’m not a totally “dev”, I’m a packager. upstream dev doesn’t package. distro dev only package core packages. all other packages are done by half-dev or packagers like me. packager means a user who has some packaging skills and wishes to maintain packages for a specific distro.
they’re small group: 1. can package 2. wish to maintain for a distro. I saw many users who package on OBS but don’t maintain it for and in our distro.
they’re basically users. so they may be busy at work, children, everything in real life distracts them.
if you met a packager who actually codes in that programming language you use, you’re lucky. then it is your dev-oriented system, for a while until that packager quits.
As I know, python / perl / go in openSUSE are every good maintained.
So actually your question is, you’re calling for a packager and coder of a small coder-base programming languages. but seems there’re none for openSUSE.
Even if I update those packages for you this time, I can’t update it every time, because my main focus is on Input Method Frameworks for CJK users. even if I can update it every time, I can’t handle bug reports, because I actually know nothing about that programming language.
If I spend all my time fixing other people’s stuff how am I supposed to get anything done? Besides, creating packages with up-to-date tools is pointless because it will invariably break OpenSuse!
This is the reason OSS has a hard time doing anything and why software hasn’t really advanced in decades, it is constantly in wheel-reinvention. A good case in point: the inferior and buggy Nouveau-it is exists only for “purity”.
The fact is that packages that your system needs should be separate and exist only in /sys so package systems can actually be used for the user. /usr is for the user and it was a brain-dead decision to use /usr to hold system packages.
I waste an inordinate amount of time because distro makers only think to supply packages that are required for it to run and there is next to nothing useful for developers. You might as well pull out all dev packages unless the OS needs them.
I always find it amusing when people point to PM’s like zypper and apt as an advantage when it is no better then the windows way for developers. Linux distros waste so many resources on the non-existent general desktop market.
As to what old packages: Ruby(1.8 is at least 6 years old and is in maintenance mode until next year and is EOL), QT, open JDK and JRE, ocaml, mercurial, python, perl, haskell,gcc,g++, all the C libs, etc, etc, etc.
After looking around I found Arch and Gentoo are not good for developers based on my definition. They stupidly abuse /usr also, so the answer to my question is no.
On Mon, 22 Oct 2012 21:16:01 +0000, Eiledon wrote:
> The fact is that packages that your system needs should be separate and
> exist only in /sys so package systems can actually be used for the user.
> /usr is for the user and it was a brain-dead decision to use /usr to
> hold system packages.
Because clearly this isn’t working for anyone.
Oh, wait - actually, it is.
Have a look at the LSB specs for info about why the structure is the way
it is. AFAIK, openSUSE is LSB-compliant (or at least LSB-observant).
Am 22.10.2012 23:16, schrieb Eiledon:
> /usr is for the user and it was a brain-dead decision to use /usr to
> hold system packages.
/usr had never and absolutely never anything to do with something for
the user, it was always for system related things like binaries and
libraries (usr = unix system resources) long before Linux existed and
till today.
–
PC: oS 12.2 x86_64 | i7-2600@3.40GHz | 16GB | KDE 4.8.5 | GeForce GT 420
ThinkPad E320: oS 12.2 x86_64 | i3@2.30GHz | 8GB | KDE 4.9.2 | HD 3000
eCAFE 800: oS 11.4 i586 | AMD Geode LX 800@500MHz | 512MB | lamp server
On Mon, 22 Oct 2012 21:26:01 +0000, nightwishfan wrote:
> If you are going to make a pointless thread could you at least keep on
> one pointless topic? Anyway robin_listas is right.
Now, now, let’s not get personal about this. Remember that our T&Cs do
not permit personal attacks, so let’s keep it friendly, even when we
disagree with someone.
I see the point of the OP. On openSUSE 12.1 (for example) I tried to build some software from source. I ran into the problem that some of the libraries that the software that i tried to build depended on was too old in the openSUSE repo. So I had to build some of these libraries from source as well. Not a really big deal but a bit cumbersome.
Just a reflection. I understand that it is neary impossible to find a solution for every possible software that you can install or build. Maybe tumbleweed would have solved my problem in this case?