Skocz do zawartości
Zamknięcie Forum PC LAB

Szanowny Użytkowniku,

Informujemy, że za 30 dni tj. 30 listopada 2024 r. serwis internetowy Forum PC LAB zostanie zamknięty.

Administrator Serwisu Forum PC LAB - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie: wypowiada całość usług Serwisu Forum PC LAB z zachowaniem miesięcznego okresu wypowiedzenia.

Administrator Serwisu Forum PC LAB informuje, że:

  1. Z dniem 29 listopada 2024 r. zakończy się świadczenie wszystkich usług Serwisu Forum PC LAB. Ważną przyczyną uzasadniającą wypowiedzenie jest zamknięcie Serwisu Forum PC LAB
  2. Dotychczas zamowione przez Użytkownika usługi Serwisu Forum PC LAB będą świadczone w okresie wypowiedzenia tj. do dnia 29 listopada 2024 r.
  3. Po ogłoszeniu zamknięcia Serwisu Forum od dnia 30 października 2024 r. zakładanie nowych kont w serwisie Forum PC LAB nie będzie możliwe
  4. Wraz z zamknięciem Serwisu Forum PC LAB, tj. dnia 29 listopada 2024 r. nie będzie już dostępny katalog treści Forum PC LAB. Do tego czasu Użytkownicy Forum PC LAB mają dostęp do swoich treści w zakładce "Profil", gdzie mają możliwość ich skopiowania lub archiwizowania w formie screenshotów.
  5. Administrator danych osobowych Użytkowników - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie zapewnia realizację praw podmiotów danych osobowych przez cały okres świadczenia usług Serwisu Forum PC LAB. Szczegółowe informacje znajdziesz w Polityce Prywatności

Administrator informuje, iż wraz z zamknięciem Serwisu Forum PC LAB, dane osobowe Użytkowników Serwisu Forum PC LAB zostaną trwale usunięte ze względu na brak podstawy ich dalszego przetwarzania. Proces trwałego usuwania danych z kopii zapasowych może przekroczyć termin zamknięcia Forum PC LAB o kilka miesięcy. Wyjątek może stanowić przetwarzanie danych użytkownika do czasu zakończenia toczących się postepowań.

Temat został przeniesiony do archiwum

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

dejot44

Co wybrać?

Rekomendowane odpowiedzi

Jakiego dzisiejszego punktu widzenia?! Ludzie... Podałem Ci przykład. Za x lat powiesz, że Java jest niskopoziomowab bo się "standardy" zmienią?

 

Czemu nie? Jako że nie mamy tutaj do czynienia z twardą definicją (termin poziomu języka nie jest za bardzo zdefiniowany), nie traktuje tego otodoksyjnie. Ciężko jest mi przewidzieć co będzie za X lat. Kiedyś było programowanie proceduralne, teraz OOP jest de fakto tym co postrzega się jako paradygmat języków wysokiego poziomu. Coraz wiekszą popularnością cieszą się też języki funkcjonalne jak na przykład Scala ( Twitter przechodzi na Scale z Ruby ).

 

Cyctat z "The C Programming Language", książka napisana przez twórców C:

 

"C is a relatively "low level" language. This characterization is not pejorative; it simply means that C deals with the same sort of objects that most computers do, namely characters, numbers, and addresses."

 

Zwróć uwagę na to jak uzasadnia "low level". Język jest zorientowany w stronę komputera a nie tego czym z reguły zajmuje się człowiek. C często bywa nazywane 'portable assembly'.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Przecież terminy "język wysokiego/niskiego poziomu" nie jest ściśle zdefiniowany, więc tak się przerzucać można wiekami i nic z tego nie wyniknie. Wszyscy się zgadzają, że najniżej jest kod maszynowy, potem jest assembler, a dalej niech każdy sobie uważa to co uważa, choć wg mnie jest dość przesłanek, by uważać C/C++ za język niższego poziomu niż np. Java, a co dopiero np. PHP czy Python.

 

Dyskusja:

http://stackoverflow.com/questions/5020246/how-low-does-c-go-as-a-low-level-language

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Język maszynowy - język niskiego poziomu

Assembler - Język niskiego poziomu

C/C++ - język średniego poziomu (i jest kompromis :E)

Java/C#/PHP/Phyton itp. - Języki wysokiego poziomu

 

To moje zdanie :E

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Po za tym mówię tutaj o C a nie C++.

Zacząłeś dyskusję od zakwestionowania cytatu "C/C++ to też język wysokiego poziomu." to teraz nie zmieniaj zeznań :P

 

Sorry, dla mine adres w pamięci jest koncepcją niskopoziomową. (...)

A z resztą nie będe ciągnął dyskusji. Powiem tylko, że od programowania w językach skryptowych się młodzikom w d**** poprzewracało.

 

 

Język maszynowy - język niskiego poziomu

Assembler - Język niskiego poziomu

C/C++ - język średniego poziomu (i jest kompromis :E)

Java/C#/PHP/Phyton itp. - Języki wysokiego poziomu

 

To moje zdanie :E

Jak tak jedziemy to zmieńmy Java/C#/PHP/Phyton i inne imperatywne na jeżyki pseudowysokiego poziomu, bo programista musi podawać komputerowi sposób wykonania poleceń krok po kroku, jak krowie na miedzy, co nie zapewnia odpowiednio wysokiego poziomu abstrakcji. Prawdziwy wysoki poziom to języki deklaratywne: funkcyjne i programowania w logice - tutaj podaje się definicję obiektu (funkcji, relacji), czyli "co robić" a nie "jak robić". to jest prawdziwa informatyka ;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ale dyskusja powstała :E .Zresztą jak komuś uda się udowodnić,który język jest językiem wysokiego poziomu to co ta osoba na tym zyska?Według mnie prowadzenie takich dyskusji nie ma najmniejszego sensu.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zacząłeś dyskusję od zakwestionowania cytatu "C/C++ to też język wysokiego poziomu." to teraz nie zmieniaj zeznań :P

 

 

A z resztą nie będe ciągnął dyskusji. Powiem tylko, że od programowania w językach skryptowych się młodzikom w d**** poprzewracało.

 

 

 

Jak tak jedziemy to zmieńmy Java/C#/PHP/Phyton i inne imperatywne na jeżyki pseudowysokiego poziomu, bo programista musi podawać komputerowi sposób wykonania poleceń krok po kroku, jak krowie na miedzy, co nie zapewnia odpowiednio wysokiego poziomu abstrakcji. Prawdziwy wysoki poziom to języki deklaratywne: funkcyjne i programowania w logice - tutaj podaje się definicję obiektu (funkcji, relacji), czyli "co robić" a nie "jak robić". to jest prawdziwa informatyka ;)

 

Sorry chodziło mi o C. A zacząłem dystusję od ciekawego spostrzeżenia pewnego progamisty, nad którym się zastanowiłem, ponieważ stwierdził dość trafnie, iż większość aplikacji wykłada się z powodu segfaultów, dlatego z jego punktu widzenia w języku wysokiego poziomu nie ma problemu z czymś takim.

 

Proszę cie, tutaj chodzi o dostarczanie gotowych produktów a nie onanizacje nad własnym kodem. Umiem bawić się pointerami, piszę w C albo C++ a nie w skryptowym języku - jestem "prawdzimym informatykiem"? Sam najwięcej piszę w Objective - C ale nie będę bronił tego za wszelką cenę, i wychwalał pod niebiosa w każdym aspekcie, bo nic nie jest idealne.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Jak tak jedziemy to zmieńmy Java/C#/PHP/Phyton i inne imperatywne na jeżyki pseudowysokiego poziomu, bo programista musi podawać komputerowi sposób wykonania poleceń krok po kroku, jak krowie na miedzy, co nie zapewnia odpowiednio wysokiego poziomu abstrakcji. Prawdziwy wysoki poziom to języki deklaratywne: funkcyjne i programowania w logice - tutaj podaje się definicję obiektu (funkcji, relacji), czyli "co robić" a nie "jak robić". to jest prawdziwa informatyka ;)

 

Nie do końca.

 

Abstrakcja w kontekście język niskiego/wysokiego poziomu dotyczy, jak daleko jesteś od architektury systemu, na którym. To, czy język jest deklaratywny, czy imperatywny, nie ma nic do tego. Równie dobrze można by stworzyć język deklaratywny, który nie abstrahuje od architektury znacząco. Np. na modłę SQL

 

UPDATE memory SET value_in_memory_cell = 2 WHERE value_in_memory_cell = 50

 

A że byłby to mocno ezoteryczny i mało praktyczny język, to już inna historia.

 

Proszę cie, tutaj chodzi o dostarczanie gotowych produktów a nie onanizacje nad własnym kodem. Umiem bawić się pointerami, piszę w C albo C++ a nie w skryptowym języku - jestem "prawdzimym informatykiem"? Sam najwięcej piszę w Objective - C ale nie będę bronił tego za wszelką cenę, i wychwalał pod niebiosa w każdym aspekcie, bo nic nie jest idealne.

 

Wg mnie rozgraniczanie na to kto jest prawdziwym informatykiem na bazie samego tego, w czym pisze, jest totalnym bezsensem. Ważne jest czy ktoś potrafi w danym języku utworzyć konkretne programy, które działają i robią coś użytecznego albo ciekawego, biorąc pod uwagę ograniczenia danych języków.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

zacząłem dystusję od ciekawego spostrzeżenia pewnego progamisty, nad którym się zastanowiłem, ponieważ stwierdził dość trafnie, iż większość aplikacji wykłada się z powodu segfaultów, dlatego z jego punktu widzenia w języku wysokiego poziomu nie ma problemu z czymś takim.

 

segfaulty to nie cecha języka niskiego poziomu ale niskiego poziomu programisty, który nie potrafi ogarnąć programu :E

nie jest problemem opakować wszystko we wrappery, które będą sprawdzały czy odwołanie do pamięci jest poprawne i zamiast segfault poleci exception np. out of bound

tylko, że to powoduje zbędny narzut na program

 

C++ na pewno nie nazwałbym językiem niskiego poziomu, czyste C czymś pośrednim

ogromna zaleta tych języków to wybór - można napisać program "wysokiego" poziomu nie myśląc w ogóle o architekturze na jakiej to będzie chodzić oraz "niskiego" tzn. uzyskać dostęp do hardware i wycisnąć z niego wszystkie możliwości czego np. taka java nie umożliwia (czysta java - JNI tu nie liczymy bo to tylko łącznik do kodu natywnego)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

segfaulty to nie cecha języka niskiego poziomu ale niskiego poziomu programisty, który nie potrafi ogarnąć programu :E

nie jest problemem opakować wszystko we wrappery, które będą sprawdzały czy odwołanie do pamięci jest poprawne i zamiast segfault poleci exception np. out of bound tylko, że to powoduje zbędny narzut na program

 

Wszyscy popełniamy błędy, nawet najlepsi, nie ma geniuszy. outOfBounds jest o tyle lepszy że za każdym razem wyskoczy, seg fault nie wyskoczy kiedy przekroczymy index tylko o jeden na przykład.

 

Co do zbędnego narzutu, w wielu przypadkach, kiedy nie programujesz driverów czy kernel-a, jest to totalnie nie istotne. Twój program musi być na prawdę dopracowany aby coś takiego było zauważalnym problemem. Wyciskanie wszystkiego ze sprzętu jest przydatne w pewnych sytuacjach ale na pewno nie jest to priorytet w większości przypadków. O czym najlepiej świadczy duża popularność języków skryptowych.

 

Nie mam nic do C++, a jedynie do niektórych ludzi którzy w tym piszą. Jak słusznie zauważył Linus, z powodu wielu funkcji języka, programiści mają w zwyczaju serwować mixy typu reference/pointer/template itp w jednej metodzie co znacząco obniża klarowność kodu. Dlatego akurat wybrał C do pisania kernela Linux.

 

Nie brać tego aż tak do siebie, Linus ma bardzo skrajne opinie :

http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Co do zbędnego narzutu, w wielu przypadkach, kiedy nie programujesz driverów czy kernel-a, jest to totalnie nie istotne. Twój program musi być na prawdę dopracowany aby coś takiego było zauważalnym problemem. Wyciskanie wszystkiego ze sprzętu jest przydatne w pewnych sytuacjach ale na pewno nie jest to priorytet w większości przypadków. O czym najlepiej świadczy duża popularność języków skryptowych.

 

nie zgodzę się - w przypadku aplikacji wymagających sporej mocy obliczeniowej ma to ZASADNICZE znaczenie i jest zauważalne

parę procent więcej CPU tu, kilka tam i nagle wychodzi 30% co jest nie do przyjęcia bo np. oznacza to konieczność zakupu 300 serwerów za gruby chajs

przykładowo u nas podmienia się nawet alokatory pamięci na customowe bo te z bibliotek standardowych są za wolne i powodują szybką fragmentację pamięci, wyszukane profilery są na porządku dziennym aby znaleźć i usunąć wąskie gardła, nowe liby i kompilatory sprawdza się czy nie powodują spadków wydajności itp.

 

błędy z alokacją pamięci (leaki) i złymi odwołaniami (segfaulty) wychodzą bardzo szybko

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Witam!Niedawno wpadłem na pomysł stworzenia własnej aplikacji z czatem.Mam pytanie,czy C++ będzie dobrym językiem czy jakiś inny język bardziej się nada?Z góry dziękuje za pomoc :)

C# i MVC

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

C# i MVC

 

C# na linuxa ? Tu chyba lepszy C++... chociaż c# prostszy :P

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...