Nowe posty

Autor Wątek: Debian Stable dla Programisty  (Przeczytany 2774 razy)

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 42
    • Zobacz profil
Debian Stable dla Programisty
« dnia: 2015-07-28, 10:52:17 »
Witam,

pracuje od wielu lat jako programista Java.
Teraz przestawiłem się na Debiana Stable z racji, że zależy mi na stabilności ale mam wątpliwości czy mój wybór jest sensowny.
Chodzi mi o to, że pakiety tutaj mogą stać się stare i pytanie czy to może przeszkadzać gdzy programuje się w innych językach niż java lub narzędziach. Perl, C++, Python, PHP itd.?
Dla Javy to jest przezroczyste ale co dla innych języków.
Ma może ktoś doświadczenie na tym polu, czy powinienem sobie darować stable i Debian Stable to zły wybór dla programisty?

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2705
  • 1709
    • Zobacz profil
Debian Stable dla Programisty
« Odpowiedź #1 dnia: 2015-07-28, 11:25:56 »
Nie jestem programistą, ale czasem coś widze i z mojego punktu widzenia to ...
perl , python, php są jezykami skryptowymi,
- Jak piszesz program to zawsze chyba podajesz wersje zalezności których użyłeś i zazwyczaj te języki się az bardzo nie zmieniają, moim zdaniem bynajmniej powinieneś,
ułatwi to znaleść przyczyne jeśli wysypie się jakiś błąd.
- Załóżmy ze w wersji stable jest jeszcze tylko python 2,
  a w wersji unstable masz python 2 i python 3
  I napiszesz aplikacje w nowszym python 3
 ( super , ale uzytkownicy musza poczekac na pythona 3 zeby korzystać z twojej apki )
- Inny przyklad:
   Teoretycznie mogę ( po spełnieniu zalezności ) urochomić dowolny program skompilowany w C++ ,
 jest tylko jedno ale ...

 jesli uruchomię aplikacje na starszym linuxie ( aplikacja kompilowana na nowszym )
to będę miał błędy glibc że nie rozpoznano jakiś tam poleceń czy cuś, i apka nie zadziała.

jesli apkę  kompilowaną na starszym linuxie ,  uruchomię na nowym linuxie
to zadziała, dlaczego zadziała ? Nazywa się to kompatybilnością wsteczną,
i jest ona tylko do pewnego momentu, nie wiem do którego,
moze kiedy dochodzi do zmiany standardu ? Podownie jest w innych językach programowania.

Wniosek:
- Uzywanie stable to jest dobry pomysł
- Wady, czasami w repozytorium nie znajdziesz najnowszych rzeczy które byś chciał przetestować.
PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 42
    • Zobacz profil
Debian Stable dla Programisty
« Odpowiedź #2 dnia: 2015-07-28, 17:20:26 »
Mam jeszcze jedno pytanie ?

Czy w windzie lub macos te wady nie występują?
Rozumiem, że chyba nie bo tam nie jestem związany modułowo z innymi zależnościami bibliotek, które w Linux mogą być tylko w jednej wersji i spełniać masę między sobą zależności.
Jest to super na serwer i stabilność ale czy windows albo macos w takim razie nie jest odpowiedniejszy dla programisty?
Absolutnie nie chcę zaczynać jakiegoś nowego wątku, który system lepszy dla programowania ale pytam bo mam doświadczenie ale niestety tylko z javą a z innymi językami (C++, Perl, Ruby, Python) już nie.
To ważne dla mnie pytanie bo obawiam się, że kiedyś dostanę wytyczne, że u nas używamy np. Perl albo Python czy cokolwiek, w takiej i takiej wersji a mój linux nie umożliwi mi instalację tej wersji bo nie będą spełnione masa zależności między bibliotekami. A w macos lub windzie architektura pozwala mi mieć biblioteki w wielu wersjach w paczkach instalacyjnych. W takim razie Linux to wspaniały system ale wydawało by się z architekturą jednak najlepszą na serwer nie desktop.
Mam nadzieję, że rozumiecie mam na myśli.
Chyba że nie biorę czegoś pod uwagę lub coś źle rozumuję?...

majtol

  • Gość
Debian Stable dla Programisty
« Odpowiedź #3 dnia: 2015-07-28, 18:11:29 »
Witaj,
Czy w windzie lub macos te wady nie występują? Owszem wystepuja.
Sproboj uruchomic program (c++) z winX (10) na win 7, badz program z win7 na win2000,
nie mowiac juz o NT, i win 3x (98,95 etc.). Na makach jest jeszcze dziwniej, ale producent dostarcza warstwe kompatybilnosci.
A po co ci to wiedziec? przeciez piszesz w jawie, a nie jakims tam cpp ;)
Java korzysta z dynamicznego kompilatora, ktory jest zazwyczaj dostosowany do architektury, i bibliotek. Takze jezeli korzystasz z pol-skryptowego jezyka np. java 3,
to wszystkie dynamiczne kompilatory java, na kazdym systemie i architekturze beda bezproblemowo wykonywac kod java 3. O to w tym chodzi, idea javy jest rozdzial jezyka  skryptowego od translatora do assemblerow. No ale ty to juz wiesz, skoro od lat programujesz. :)

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 42
    • Zobacz profil
Debian Stable dla Programisty
« Odpowiedź #4 dnia: 2015-07-28, 19:42:32 »
Z javą to sprawa dla mnie jasna :) sam w pracy mam jeszcze Debian Wheezy.
Z java ten problem nie wystepuje, jest przezroczysty.
Niedługo będę pracował w zespole co programuje w Python i używają Windy.
Z  tymi windami w twoim przykladzie masz rację ale nie o to mi chodzi do końca.
Chodzi o to, że wychodzi jakaś nowa wersja czegoś, np języka, biblioteki itp i na windzie możesz ją bez problemu zainstalować, albo cofnąc sie kilka wersji wstecz instalując starszą wersję, którą używają inni a w linuxie nie jest to takie proste gdyż wszystkie biblioteki są w zależnościach i tylko jedna wersja danej biblioteki może być. Wszystko musi pasować według zasady nie wynajdować 2 raz koła. I to jest super dla serwera! Daje to stabilność, mniej luk bezpieczeństwa. Biblioteka A jest w wersji 1.3 i tylko w takiej może być w systemie bo zależy od wielu innych które też są w odpowiedniej jednej wersji kompatybilnej z resztą.
teraz w systemie masz bibliotekę A w wersji 1.3 a tu wychodzi jakieś nowy język albo nowe narzędzie np. kdevelop co używa A w wersji 1.5 i nie możesz go zainstalować tylko działać na starszej i to może być ból dla programisty.

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2705
  • 1709
    • Zobacz profil
Debian Stable dla Programisty
« Odpowiedź #5 dnia: 2015-07-28, 23:54:30 »
Cytuj
którą używają inni a w linuxie nie jest to takie proste gdyż wszystkie biblioteki są w zależnościach i tylko jedna wersja danej biblioteki może być.
U mnie w PCLinuxOS wiekszosc bibliotek jest tak paczkowana w rpm z przyrostkami wersji ze mozesz miec kilka wersji zainstalowanych,
ale to prawda ze czesc pakietow jest usuwana z różnych względów bo np. nie działa już,
a developer danej zaleznosci juz tego nie wspiera zeby mozna bylo sobie skompilować,
natomiast poprawiać / naprawiac czyiś kod by działał to bardzo nie wygodne/nie poręczne bo to dodatkowa robota jesli ktoś wogóle umie i chciałby się zająć przepisywaniem kodu na nowy standart danego języka programowania..
PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 42
    • Zobacz profil
Debian Stable dla Programisty
« Odpowiedź #6 dnia: 2015-07-29, 15:49:26 »
Cytuj
U mnie w PCLinuxOS wiekszosc bibliotek jest tak paczkowana w rpm z przyrostkami wersji ze mozesz miec kilka wersji zainstalowanych
Nie wiem czy się rozumiemy. Miałem na myśli nie tyle to, że są instalki na różne wersje bibliotek ale to że tylko niektóre a czasem tylko jedna wersja wogóle może być zainstalowana w systemie z architekturą linux żeby były spełnione zależności. Jak chcesz inne to albo inna dystrybucja albo nie wiem co :)
Albo czegoś nie wiem i źle rozumuję... :)

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2705
  • 1709
    • Zobacz profil
Debian Stable dla Programisty
« Odpowiedź #7 dnia: 2015-07-29, 20:21:21 »
Ja tylko chciałem powiedzieć że na linuxie się da zainstalować te same biblioteki o różnych wersiach.
A jak sa paczkowane pakiety w Debianie to nie wiem.

PCLinuxOS jest dystrybucją ciągłą, czyli średnio co tydzień jest aktualizowany lub dodawany jakiś program, bez jakiś tam wydań specjalnych, dlatego im zależy żeby był dostęp także do starszej wersji biblioteki gdyby coś nie chciało działać.
Przykład:
http://postimage.pl/di/LVKN/Biblioteki.png

Dlaczego linuxowi nie przeszkadza zainstalowanie kilku wersji tej samej biblioteki ?
$ ls /usr/lib64/ | grep liblua.so
liblua.so@
liblua.so.5.0*
liblua.so.5.1*
liblua.so.5.2*
.
Bo kazda biblioteka ma inną wersję w nazwie.
Ale generalnie tak jak w Debianie piorytetem jest najnowsza bibioteka,
część pakietów /zalezności jest ponownie przekompilowana z nowszą bibioteką.

Ale generalnie radze Ci zostać przy Debianie ;-)
Jest popularniejszy i może więcej developerów spotkasz.
A co do Windowsa... nie wiem, pewnie macie racje.

Polecam na linuxa tworzenie wersji portable
 ( wtedy nie trzeba budować pakietów deb, czy rpm )
albo budowanie pakietów , programów które będą wyszukiwać pliki w systemie.
( chociaz generalnie większość programów tak własnie robi )
W czym rzecz ?
Przykładowo pakiety rpm występują w OpenSuse, Fedora i innych,
ale zależności nazywają się czasami trochę inaczej.
Zauwazyłem że niektóre pakiety OpenSuse (coś z office )
uwzględniają także inne dystrybucje oparte o rpm i ich nazwy zależności.
( pisze się to w pliku .spec przy budowaniu paczki rpm )
Portable natomiast w terminalu wypluwają nazwę biblioteki której brakuje,
a w którym pakiecie to siedzi, to trzeba sobie samemu poszukać.
Do aplikacji portable najczęsciej dodawane jest część zależności / bibliotek,
więc, nie obchodzi mnie ile mam różnych bibliotek w systemie,
ważne że aplikacja mi działa :-)
PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 42
    • Zobacz profil
Debian Stable dla Programisty
« Odpowiedź #8 dnia: 2015-07-30, 08:57:18 »
Rozumiem. Używanie wersji w nazwie biblioteki to jest rozwiązanie.
Z wieloma bibliotekami tak się nie dzieje ale to już inna bajka.
Z językami masz rację, że w zasadzie nie ma co pędzić za najnowszymi wersjami ceną wstecznej kompatybilności.
Zorientowałem się i widzę, że np. Python czy Perl wersjami róznią się bardzo niewiele między wydaniami Debiana stable.
Pozatym są nawet narzędzia co umozliwiają mieć kilka różnych wersji (środowisk) pythona czy perl'a niezaleznie od tego jaka jest podstawowa wersja w systemie.
Tak wieć z debian stable nie jest tak źle jakby się wydawało :)