Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

[wydzielone] Programowanie w C a C++

#1
[wydzielone] Programowanie w C a C++
ms-trex napisał(a):a ja nawet jestem przeciw, bym radził dać kurs C++, kto teraz programuje w C ludzie przecież to jest stare i nie modne, początkujący programiści zaczynając od C, będą potem mieć trudności z właściwym programowaniem w już konkretnym języku takim jak C++, i zupełną nieprawdą jest że aby umieć C++ trzeba umieć C, bo to są zgoła różne języki programowania
dajcie C++!
~Anonim napisał(a):Popieram ms-trex. Dlaczego? Dlatego, że ucząc się C nauczycie się złych nawyków. Za C++ prędzej czy później będziecie się chcieli zabrać i będziecie mieli trudnościOczko. A pozatym to i tak nieopłacalne w gazetach programowanie, bo już w innych próbowali i nie do końca wypaliło. Tak więc polecam zakupić jakąś książkę

Po pierwsze programowanie w C nie jest niemodne ani nie uczy złych nawyków. Dalej jest to podstawowy język programowania w wielu bardzo dużych projektach (np. Gnome, Linux). Co nie zmienia faktu, że w wielu innych został dawno wyparty przez języki obiektowe (C++, C#) i dalej będzie wypierany, bo w stosunku do nich ma cechy przydatne przy innych zastosowaniach. Stąd szerokim masom może w ogóle nie być potrzebny i przydatny. Prostsza do zrozumienia i używania jest np. Java, która w ogóle nie wymaga od programisty przejmowania się pamięcią (malloc, free - po co to komu? Kto by się przejmował mazaniem po pamięci po przekroczeniu indeksu tablicy?).

Wszystko zależy od zastosowania i potrzeb - wątpię, żeby osoby chcące nauczyć się języka C, który jest relatywnie trudny w stosunku do np. Javy, mogły zrobić to czerpiąc wiedzę z popularnego pisma.
 System operacyjny: windows_2000 Przeglądarka: opera
#2
RE: Programowanie w C
koziolek napisał(a):Po pierwsze programowanie w C nie jest niemodne ani nie uczy złych nawyków.

Tutaj się ze mną nie zgadzasz dlatego, że ja piszę o przejściu z C do C++, które pewnie będzie tych programistów gdy im się spodoba już programowanie. C++ przeszedł dużo zmian i trochę się różni od C. I gdy już zdobędą nawyki w pracy z C to ciężko im się będzie przyzwyczaić do C++. Nawet p. Stroustrup tak twierdziOczko.
 System operacyjny: windows_98_nt Przeglądarka: opera
#3
RE:  Programowanie w C
koziolek napisał(a):i dalej będzie wypierany, bo w stosunku do nich ma cechy przydatne przy innych zastosowaniach
czyli jakich?
w C++ jest wszystko to co w C tylko że lepsze pod każdym względem
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#4
RE: Programowanie w C
Napisz mi sterownik np. kontrolera dysku twardego IDE w C++. Użyjesz do tego klasy? Nie! Nie wierzysz? Proszę :
Kod:
# find /usr/src/linux -name '*.cpp'
#
# find /usr/src/linux -name '*.cc'
# /usr/src/linux/scripts/kconfig/qconf.cc
C++ nie istnieje w takich zastosowaniach. Nie ma w ogóle szans zaistnieć.

Takie twierdzenie :
Cytat:w C++ jest wszystko to co w C tylko że lepsze pod każdym względem
Jest niestety demagogią i jest pozbawione sensu. Widać, że mylisz pojęcia i nie wiesz tak naprawdę czym się one różnią. Jak elementy wspólne pomiędzy C i C++ mogą być "lepsze pod każdym względem" w C++? To znaczy, że np. malloc() jest lepiej zaimplementowany? A może strncpy() (jego odpowiednik)? Albo składnia pętli for jest lepsza (cokolwiek miałoby znaczyć "lepszość" składni...). Przecież tych funkcji nawet nie ma w C++! Co w ogóle chcesz porównywać? Co tu jest "lepsze"? No bo jak dla Ciebie lepszym jest obiektowość, to w takim razie wracamy do punktu wyjścia :

To są zupełnie różne języki i takie porównania nie mają sensu. C++ tak naprawdę poza częścią składni nie ma nic wspólnego z C!
 System operacyjny: windows_2000 Przeglądarka: opera
#5
RE: Programowanie w C
źle się wyraziłem w przed ostatnim poście
chodzi o to że jeśli w C robisz coś w określony sposób to w C++ możesz zrobić to o wiele wygodniej
bardzo prosty przykład: porównaj sobie operacje na napisach w C a w C++, jeśli się orientujesz to sam przyznasz racje
w C++ możesz zrobić dokładnie wszystko co C ale w lepszy bardziej logiczny sposób
jesli ten banalny przykład cię nie przekona to już nie będę umiał wyłożyć lepszych argumentów
to nie jest moja osobista opinia, wyższość C++ nad C została już dawno stwierdzona przez wybitnych programistów
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#6
RE: Programowanie w C
ms-trex napisał(a):źle się wyraziłem w przed ostatnim poście
chodzi o to że jeśli w C robisz coś w określony sposób to w C++ możesz zrobić to o wiele wygodniej
No, teraz to oczywiście się z Tobą zgodzę. Właściwie uogólnię - języki obiektowe są moim zdaniem przystępniejsze i oferują nowe,   ciekawe możliwości. Bardzo często ułatwiają one pod jakims kątem pisanie kodu (np. pojęcie wyjątków, które dają bardzo elegancką obsługę błędów).

Nie wolno natomiast stwierdzić, że C++ jest lepsze od C (wyższość C++ nad C została już dawno stwierdzona przez wybitnych programistów).
Po pierwsze - czytałeś wywiad, ze Stroustrupem LOL ? (gwoli wyjaśnienia - to jest twórca języka C++)
Po drugie w wielu aspektach języki obiektowe (w tym C++) są zdecydowanie gorsze od czystego C, który potrafi być bardzo zbliżony do Assemblera (kod wynikowy). Najlepszy przykład na obalenie Twojej tezy o wyższości C++ nad C już podałem - jeśli by tak bylo, to na pewno choćby jeden element Linuksa byłby napisany w C++. A niestety tak nie jest - nie znalazłem w Linuksie żadnego pliku CPP lub CC (oczywiście Linux to tylko kernel, ale kodu w nim jest mnóstwo).

Żaden wybitny programista nie stwierdził wyższości C++ nad C, bo takie twierdzenie jest bez sensu przez zawarte w nim uogólnienie. Nie mówiąc o tym, że C++ jak na język obiektowy ma bardzo wiele wad, które usunięto dopiero w "kolejnej generacji" języków - w Javie i C#. Jeżeli jednak posiadasz cytat jakiegoś wybitnego programisty, to proszę przytocz - w końcu możliwe, że "coś przegapiłem". Jeśli :
Cytat:wyższość C++ nad C została już dawno stwierdzona przez wybitnych programistów
, to poproszę o dowód (konkretne wypowiedzi, prace naukowe, linki itp.).

Generalnie (jak napisałem na początku tej wypowiedzi) chyba rozumiem Twoje stanowisko i z nim się zgadzam, ale ostatnie Twoje twierdzenia są błędne i z nimi się zgodzić nie mogę.
~Anonim napisał(a):Piszesz porównania, a na końcu, że nie ma. malloc i free odpowiadaja new i delete
Przykro mi, ale są to zupełnie różne funkcje. Mają one zupełnie różną implementację. A rozważamy przecież także i szczegóły implementacyjne, czyli jak funkcja jest realizowana przez biblioteki systemowe.
Cytat:Można nawet powiedzieć, że C++ to nadzbiór C.
Nie. C++ używa składni C. Tak samo jak wiele innych języków. A może C++ to nadzbiór Obj-C? (wiesz co to jest?)

Cytat:bo nie za bardzo chce mi się wieżyć, że ktoś może być przy C znając możliwości C++.
No patrz, ogromna część programistów GNU, wszyscy deweloperzy Linuksa... to rzeczywiście jest nikt. Wiesz ile kodu jest w samym Linuksie?
 System operacyjny: windows_2000 Przeglądarka: opera
#7
RE: Programowanie w C
koziolek napisał(a):To znaczy, że np. malloc() jest lepiej zaimplementowany? A może strncpy() (jego odpowiednik)? Albo składnia pętli for jest lepsza (cokolwiek miałoby znaczyć "lepszość" składni...). Przecież tych funkcji nawet nie ma w C++!

Piszesz porównania, a na końcu, że nie ma. malloc i free odpowiadają new i delete (malloc i free - zadeklarowane są w nagłówku stdlib.h i możesz sobie z nich korzystać także w C++). A pętla for? To chyba nie muszę pisać, że jest... Można nawet powiedzieć, że C++ to nadzbiór C.


koziolek napisał(a):Nie mówiąc o tym, że C++ jak na język obiektowy ma bardzo wiele wad, które usunięto dopiero w "kolejnej generacji" języków - w Javie i C#.

Mogę prosić o dowód?
koziolek napisał(a):
~Anonim napisał(a):Piszesz porównania, a na końcu, że nie ma. malloc i free odpowiadaja new i delete
Przykro mi, ale są to zupełnie różne funkcje. Mają one zupełnie różną implementację. A rozważamy przecież także i szczegóły implementacyjne, czyli jak funkcja jest realizowana przez biblioteki systemowe.
Cytat:Można nawet powiedzieć, że C++ to nadzbiór C.
Nie. C++ używa składni C. Tak samo jak wiele innych języków. A może C++ to nadzbiór Obj-C? (wiesz co to jest?)

Cytat:bo nie za bardzo chce mi się wieżyć, że ktoś może być przy C znając możliwości C++.
No patrz, ogromna część programistów GNU, wszyscy deweloperzy Linuksa... to rzeczywiście jest nikt. Wiesz ile kodu jest w samym Linuksie?

1) Tak to bardzo interesując, ale po co mają się tak samo nazywać (różne funkcje) jak mają te same działanie?

2) Robi wielką różnice?

3) Linuks? Hmm... A może jesteś kolejnym z tych, którzy uważają , że Microsoft powinien upaść? Linuks to potęga? Po co w ogóle taki przykład, gdy ja nie przepadam za Linuksem. A może to źle?
 System operacyjny: windows_98_nt Przeglądarka: opera
#8
RE: Programowanie w C
hmm tak czytam tę waszą kłótnię i może ja doleje nieco oliwy do ognia
kiedyś szukając kursów c++ trafiłem na tę stronę:
http://www.intercon.pl/~sektor/cbx/
i powiem że autor strony naprawde podaje same konkrety na niekorzyść C
#9
RE: Programowanie w C
velo - dziękiOczko. Właśnie kiedyś czytałem tę stronę i próbowałem sobie przypomnieć co to za strona była. Ale i tak p. koziolek nie da się przekonaćOczko.
 System operacyjny: windows_98_nt Przeglądarka: opera
#10
RE:   Programowanie w C
~Anonim napisał(a):
koziolek napisał(a):Nie mówiąc o tym, że C++ jak na język obiektowy ma bardzo wiele wad, które usunięto dopiero w "kolejnej generacji" języków - w Javie i C#.
Mogę prosić o dowód?
Możesz.
Cały "balast C" jak np. wskaźniki. W języku obiektowym wskaźnik do obiektu? Co to za potwór? "this" jest wskaźnikiem - to już w ogóle dziwadło totalne - jak wewnątrz klasy ta sama klasa może być wskaźnikiem na adres komórki pamięci? Referencje! W języku obiektowym nie operuje się wskaźnikiem, ale referencją. No, w C++ oczywiście this rozwiązano inaczej... czyli mamy niespójny miszmasz - referencje+wskaźniki... Oczywiście uogólniam, bo wskaźnik do obiektu w C++ nie działa tak samo jak wskaźnik do komórki pamięci w C, ale właśnie o to chodzi. Niespójność. Nawiasem mówiąc mówią o tym w przytoczonej stronie Wesoły. Inne elementy balastu? Struktury... które w sumie są klasami Wesoły.

Zarządzanie pamięcią - gdzie "garbage collector" czy coś w tym stylu?

Przekazywanie obiektów... domyślnie nie przez referencję - niestety nie jest to logiczne. Przynajmniej jak dla mnie, ale ja za dużo o obiektach myślę...

Czy to dobre przykłady, że jak na język obiektowy C++ ma wady? Może nie - wypowiedziałem się troszeczkę zbyt autorytarnie, w końcu jakimś wybitnym programistą nie jestem. Ale ciągle mi siedzi w głowie ten this jako wskaźnik... Wyobrażam sobie to tak - patrzę w lustro i widzę wskaźnik do siebie... Podczas, gdy w rzeczonych językach "następnej generacji" widzę w lustrze siebie, moją nieodróżnialną kopię (czyli referencję!).


~Anonim napisał(a):3) Linuks? Hmm... A może jesteś kolejnym z tych, którzy uważają ,
Tak, to rzeczywiście sensowny argument. Przypomnę - napisałeś :
bo nie za bardzo chce mi się wieżyć, że ktoś może być przy C znając możliwości C++.
a na odpowiedź, że pokaźna ilość programistów całego świata tak robi, odpowiadasz jakimiś aluzjami do Windows i stwierdzeniem, że nie lubisz Linuksa?


To tyle, jeśli chodzi o Twoje argumenty w dyskusji - właściwie żadnych nie podałeś. Czekam na ripostę Ms-trex odnośnie udowodnionej wyższości C++ nad C.


Generalnie nie widzę sensu dyskutować, bo zamiast wymiany argumentów dostaję ogólniki typu "wybitni programiści mówią, że C++ jest lepsze od C". Przykro mi, ale jeśli uparcie dążycie do takiej dyskusji, to ja dziękuję - uważam ją za bezsensowną. To jest spór o wyższości świąt Bożego Narodzenia nad Wielkanocą. Trzeba zrozumieć, że C++ wyparło z pewnych dziedzin programowania język C, ale do niektórych nie ma wstępu. A z wielu innych C++ jest wypierane przez języki bardziej obiektowe (lub jak kto woli języki, w których poprawiono pewne niedociągnięcia C++) jak C# czy Java.

A przyszłość? Chyba jest mało osób profesjonalnie zajmujących się programowaniem, które twierdzą, że C++ ma przed sobą karierę. Jego kariera już trwa. Dalsza przyszłość należy do Javy i C# (spotkałem się nawet z opinią, że tylko do C#). C (jak pisałem od początku tu) już zostało zepchnięte do tylko konkretnych zastosowań i powoli tak będzie z C++, ale to jeszcze nie w tym roku Wesoły. Najpierw niech wyjdzie "Singularity" Wesoły Wesoły Wesoły .
 System operacyjny: windows_2000 Przeglądarka: opera
Programy: Polecane / Nowe / Inne



Użytkownicy forum szukali:
co lepsze c czy c++

Podobne wątki ([wydzielone] Programowanie w C a C++)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Jak daleko dojdę, jeśli programowanie nie jest „palącą pasją”? YekinKebo 1 2119 26.09.2021, 17:29
Ostatni post: NvidiaIntel93
  Programowanie dla laika - od czego zaczac? adiq1033 10 12379 28.05.2021, 12:58
Ostatni post: crmdesigner
  Pytanie - programowanie batch [cmd] Max23 0 14382 20.03.2020, 01:03
Ostatni post: Max23

Skocz do: