Skocz do zawartości

Używanie gotowych bibliotek.


Pomocna odpowiedź

Panowie , Panie.

Mam do was pytanie dość dziwne. Można powiedzieć, że etyczne 😋

Gdy robicie swój własny projekt to jak zapatrujecie się na użwanie gotowych bibliotek?

Aktualnie robię stację pogody i używam bibliotek do wyświetlacza LCD, czujnika temperatury itd.

Jednak mój mózg cały czas chce mi powiedzieć, że jest to lekkie oszustwo, że projekt jest nie do końca mój. Jak wy to widzicie?

Pytanie z tych głupich ale męczy mnie to 🙂

Link to post
Share on other sites

Jeśli ktoś już napisał takie biblioteki to głupotą było by nie korzystać, bo po co pisać wszystko od podstaw. Tak dla przykładu, kiedy używany bascoma albo arduino, to korzystamy cały czas z gotowych bibliotek. Więc jeżeli autor takiej biblioteki nie ma zastrzeżeń do jej użytkowania, to nie ma żadnego problemu. A projekt jest twój, bo całą logikę urządzenia, to tworzysz ty, a biblioteki pomagają tylko przy kontakcie ze sprzętem.

Link to post
Share on other sites

Wszystko zależy od celu.

Nie lubię bibliotek, które są zbyt tajemnicze (słaby opis, pomijanie wielu szczegółów implementacji itp.). Potem okazuje się, że nie do końca działają tak jak tego chcemy i dodają pracy zamiast jej odejmować.

Natomiast w życiu codziennym nie jesteś wstanie napisać bibliotek do wszystkiego i nie o to chodzi. Jest wiele darmowych bibliotek, lub całkiem tanich ( albo jak robisz poważne projekty to nawet całkiem drogich) i trudno się bez nich obejść.

Nikt nie będzie pisaniem od zera zastępował sprawdzonej, działającej biblioteki marnując 100tyś E z ryzykiem, że coś pójdzie nie tak, jak można od ręki za 10tyś E kupić gotowy kombajn ze szkoleniem i pomocą włącznie... sztuka to umieć się szybko takiej biblioteki nauczyć żeby ją efektywnie wykorzystywać.

Link to post
Share on other sites
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Wszystko zależy tak naprawdę od licencji, na jakiej udostępniane są biblioteki. Generalnie GPL, to rodzaj licencji totalnie wolnej - General Public License:

Celem licencji GNU GPL jest przekazanie użytkownikom czterech podstawowych wolności[2]:

wolność uruchamiania programu w dowolnym celu (wolność 0)

wolność analizowania, jak program działa i dostosowywania go do swoich potrzeb (wolność 1)

wolność rozpowszechniania niezmodyfikowanej kopii programu (wolność 2)

wolność udoskonalania programu i publicznego rozpowszechniania własnych ulepszeń, dzięki czemu może z nich skorzystać cała społeczność (wolność 3).

Tylko jeżeli program spełnia wszystkie cztery wolności jednocześnie, wówczas, według FSF, może być uznany za Wolne Oprogramowanie. Wystarczy, że nie spełnia dowolnej z nich, a nie może być tak kategoryzowany (jest oprogramowaniem zamkniętym).

Na takiej licencji udostępniane jest np. stdlib. Najczęściej w pliku nagłówkowym, w komentarzu napisane jest na jakiej licencji udostępniany jest kod. Tutaj nagłówek wspomnianego stdlib (stdlib.h) jako przykład:

00001 // TR1 stdlib.h -*- C++ -*-

00002

00003 // Copyright © 2006 Free Software Foundation, Inc.

00004 //

00005 // This file is part of the GNU ISO C++ Library. This library is free

00006 // software; you can redistribute it and/or modify it under the

00007 // terms of the GNU General Public License as published by the

00008 // Free Software Foundation; either version 2, or (at your option)

00009 // any later version.

00010

00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of

00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

00014 // GNU General Public License for more details.

00015

00016 // You should have received a copy of the GNU General Public License along

00017 // with this library; see the file COPYING. If not, write to the Free

00018 // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
00019 // USA.

00020

00021 // As a special exception, you may use this file as part of a free software

00022 // library without restriction. Specifically, if other files instantiate

00023 // templates or use macros or inline functions from this file, or you compile

00024 // this file and link it with other files to produce an executable, this

00025 // file does not by itself cause the resulting executable to be covered by

00026 // the GNU General Public License. This exception does not however

00027 // invalidate any other reasons why the executable file might be covered by

00028 // the GNU General Public License.

00029

00030 /** @file tr1/stdlib.h

00031 * This is a TR1 C++ Library header.

00032 */

00033

00034 #ifndef _TR1_STDLIB_H

00035 #define _TR1_STDLIB_H 1

00036

00037 #include

00038

00039 #if _GLIBCXX_HOSTED

00040

00041 #if _GLIBCXX_USE_C99

00042

00043 using std::tr1::atoll;

00044 using std::tr1::strtoll;

00045 using std::tr1::strtoull;

00046

00047 using std::tr1::abs;

00048 #if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC

00049 using std::tr1::div;

00050 #endif

00051

00052 #endif

00053

00054 #endif

00055

00056 #endif

Ale to tylko jedna, a jest cała masa innych, np. CC , MIT i inne. To z tych wolnych (wolnych jak w wolności), a są jeszcze płatne, o których wspomniał Mirek.

Link to post
Share on other sites

komabra, należy korzystać z bibliotek - przynajmniej, gdy mamy jakiekolwiek pojęcie o tym, jak one mogą działać. Gdyby nie przyjazne biblioteki i środowisko, to takie Arduino nie byłoby popularne 🙂

Link to post
Share on other sites

No to teraz pytanie inne ale podobne 🙂

Pytałem też dlatego, że stacja pogody będzie moją pracą inżynierską.

Co w takim wypadku? Rozumiem, że mogę korzystać tylko z bibliotek GNU ?

Link to post
Share on other sites

Warto się zapoznać z typem licencji na jakiej jest udostępniana biblioteka, ponieważ twórca mógł użyć innej, ale też zezwalającej na stosowanie w projektach. Przeważnie licencja jest opisana w plikach danej biblioteki.

Link to post
Share on other sites

Na ogół w pracy inżynierskiej można korzystać z bibliotek. Jeśli masz wątpliwości, zapytaj promotora, ale wątpię żeby ktoś robił z tego problemy. W przypadku pracy inżynierskiej wykorzystanie bibliotek to nie problem, nawet jeśli będzie to licencja GNU (oznaczająca, że Twój program też będziesz musiał objąć tą licencją).

Oczywiście jeśli wykorzystujesz biblioteki, powinieneś przestrzegać licencji. Wiec w przypadku komercyjnych bibliotek Ty lub uczelnia powinniście mieć odpowiednie prawa. Jeśli wykorzystasz biblioteki objęte licencją GNU GPL, kod Twojego programu też powinien być udostępniony na licencji GNU GPL. Wiele bibliotek jest objętych podobną, ale bardziej liberalną wersją LGPL - wtedy nie musisz publikować kodu, chociaż jest kilka niuansów które licencja wymusza (dołączenie treści licencji, dynamiczne biblioteki lub możliwość linkowania nowszych wersji).

Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.