Pascal a C++

0

Witam, naukę języka Pascal rozpocząłem na początku tego roku szkolnego, czyli powiedzmy że już pół roku poświęciłem na naukę. Chodzę do szkoły informatycznej gdzie Pascal przerabiany jest na jednym z przedmiotów w II klasie i kończony w III półrocza pierwszego. Potem przerzucamy się na C++. Niektórzy czwartoklasiści nie potrafią programować, jednak ja jako że zależało mi na programowaniu przykładałem się i wyszedłem poza program. Potrafię już sporo, napisałem nawet prostą grę w trybie tekstowym, z możliwością poruszania się postacią, kolizją obiektów itp. Dzisiaj jednak zastanawiałem się czy warto ciągle wałkować tego Pascala. Ominąłem kilka tematów które wydały mi się niepotrzebne, jak tryb graficzny "Uses graph". Czuję jednak niedosyt, mam chęć stworzenia czegoś lepszego, wielu narzeka na Pascala że jest stary etc. jednak ja mimo to się go uczyłem. Czy waszym zdaniem lepiej jest wałkować dalej Pascala, czy przejść już do C+ ?
Dzisiaj otworzyłem jakiś kurs w internecie, prawdę mówiąc C++ wydaje się trudniejszy od Pascala. Czekam na opinię.

0

zdecydowanie C++, chociażby ze względu na miejsca pracy. Bo wiem, że często programowanie staję się pasją, ale przede wszystkim masz zarabiać.

0

To bardzo istotny argument, jednak chyba nie bez powodu uczą Pascala w każdej szkole informatycznej. Swoja drogą od przyszłego rok jest zmiana w edukacji informatyków, nowe przedmioty, i np. z lekcji programowania usuwają Pascala.

btw. nie jestem ekspertem ale przykładowo w przychodniach,aptekach mam wrażenie jak bym widział bazy danych napisane w Pascalu.

2
Maślanka Tadeusz napisał(a):

To bardzo istotny argument, jednak chyba nie bez powodu uczą Pascala w każdej szkole informatycznej.

Bo jesteśmy "100 lat za murzynami" i program nauczania w technikach informatycznych jest "lekko" zacofany i niedzisiejszy.

1

Czuję jednak niedosyt, mam chęć stworzenia czegoś lepszego, .

Akurat ja póki co używam raczej Pascala, dokładniej FPC. Tam masz dostęp do właściwie wszystkiego co masz w C++. Jedynym problemem jest mniejsza ilość dokumentacji dla Pascala niż C++ zwłaszcza jeżeli chodzi o coś niebanalnego.
Jeżeli chodzi ci np. o grafikę to początek masz tutaj: http://wiki.freepascal.org/OpenGL_Tutorial (Oczywiście dotyczy to FPC i Lazarusa, musiałbyś najpierw nauczyć się to używać).

wielu narzeka na Pascala że jest stary etc. jednak ja mimo to się go uczyłem

Jakby C był nowszy o_O. Akurat kiedy język się rozwija (tak jak C++ mamy Delphi), to używanie starego kompilatora jak TP jest oczywiście tak samo bez sensu jak używanie starych kompilatorów C/C++.
A to że Pascal uchodzi za zacofany wynika z tego że mało kto patrzy na nowoczesne rzeczy w Pascalu (kto by pomyślał że Pascal wspiera generyki?).

Czy waszym zdaniem lepiej jest wałkować dalej Pascala, czy przejść już do C+ ?

O ile w C++ jest więcej miejsc pracy, to w Delphi też trochę jest. Jeżeli nie chodzi tobie o pracę póki co to moim zdaniem Pascal jest właściwie bliźniaczo podobny do C++ (tłumaczyłem już pare kodów C++ na Pascala i było to banalne). Więc moim zdaniem wybór zależy od tego czy zamierzasz niedługo programować zawodowo czy masz czas.

Bo jesteśmy "100 lat za murzynami" i program nauczania w technikach informatycznych jest "lekko" zacofany i niedzisiejszy.

Zgadzam się, ale moim zdaniem wynika to np. z faktu że uczymy się na TP który jest kompilatorem 16-bitowym... Nie z winy samego języka który IMO jest dobry tak samo jak C++ (każdy ma swoje zalety i wady).

1
-123oho napisał(a):

Bo jesteśmy "100 lat za murzynami" i program nauczania w technikach informatycznych jest "lekko" zacofany i niedzisiejszy.

Zgadzam się, ale moim zdaniem wynika to np. z faktu że uczymy się na TP który jest kompilatorem 16-bitowym... Nie z winy samego języka który IMO jest dobry tak samo jak C++ (każdy ma swoje zalety i wady).

To czemu praktycznie nie ma pracy dla ludzi ze znajomością Pascala ? Brainfuck też nie jest zły, co nie ? Tu chodzi o inne zacofanie, kompletne niedostosowanie do rynku pracy. Wiadomo, że najważniejsza jest własna nauka, etc. Ale jeśli są technika i się w nich uczy, to niech będzie to robione z głową.

0

Oczywiście że będę chciał zarabiać na programach, jednak prawdę mówiąc zależny mi na programowaniu gier komputerowych. Po technikum wybieram się na studia więc mam jeszcze sporo czasu, jednak nie chcę odkładać roboty na później.

1

C++'a warto znać ale w przypadku chęci "szybkiego" pisania programów i zarabiania pieniędzy to nie jest on czołowym językiem. Jeśli myślisz o gamedev to nadal powinieneś zgłębić c++'a w innym wypadku nie ma sensu abyś próbował go poznać bardzo szczegółowo. Orientuj się w nim żebyś w razie czego mógł do niego w każdej chwili wrócić i poznawaj nowe języki bardziej popularne i ułatwiające życie programiście. C++ jest dobrym językiem wyjściowym do poznania innych typu Csharp czy Java ale na zagłębianie się w jego zawiłości szkoda nieraz czasu.

1

Jeżeli chcesz wybrać tylko pomiędzy C++ a Pascalem, to nawet nie masz się nad czym zastanawiać. C++ jest dobry dla nowicjuszy, bo troszkę się pomęczą i później bardziej docenią zalety np. Javy czy C#.

0

Prawdę mówiąc jestem teraz trochę skołowany. Nie wiedziałem że wybór języka może być trudniejszych od samej jego nauki, może wykluczając Assemblera nad którym siedziałem kilka dni i zrezygnowałem. Tak więc wezmę tego C++.

1

Nie z winy samego języka który IMO jest dobry tak samo jak C++

Nawet najnowsze Delphi to nadal odpowiednik C z prymitywną obiektowością, do C++ nie ma porównania. Bądźmy szczerzy, profesjonalne programowanie w C++ oznacza m. in. metaprogramowanie na poziomie systemu typów, statyczny polimorfizm, tego w Delphi po prostu nie ma. Poza tym C++ jest nadzbiorem C, jedynego naprawdę powszechnie używanego języka programowania systemowego. Na rynku pracy jest zapotrzebowanie przede wszystkim na programistów języków (bardzo) wysokiego poziomu i ludzi, którzy będą w stanie łączyć te technologie z rozwiązaniami niskopoziomowymi, pisać natywne rozszerzenia, portować biblioteki itd. co robi się właśnie w C, ew. C++. Pascal był stworzony do prezentacji algorytmów i nauki podstaw programowania, obecnie nawet do tego są lepsze technologie, dajcie mu wreszcie podążyć ścieżką COBOLa i niemal całkowicie odejść w zapomnienie.

0

A jak sprawić by te języki programowania się nie mieszały ?
Np. mam pewne obawy że będę się gubił w szkolę na sprawdzianach, jeśli zajmę się dwoma językami.

Co będzie jeśli zacznę kiedyś tam javę itp. ?

3

Dobry programista zna kilka paradygmatów programowania, nie mówiąc już o tym, że zna kilka języków.

0

A ja jestem za rozpoczynaniem w Pythonie (wcięcia :-))

0

Wcięcia to jedyny i mały plus Pythona, a dynamiczne typowanie to duży minus, bo nie wymusza porządnych hierarchii klas.

3

@PS:

Bądźmy szczerzy, profesjonalne programowanie w C++ oznacza m. in. metaprogramowanie na poziomie systemu typów, statyczny polimorfizm, tego w Delphi po prostu nie ma.

W C/C++ też paru rzeczy brakuje np. moim zdaniem Unity są lepsze niż pliki nagłówkowe. C/C++ nie ma tablic dynamicznych które się same zwalniają. Podobna sprawa dotyczy stringów.

Pascal był stworzony do prezentacji algorytmów i nauki podstaw programowania

A C był tworzony jako język z bardzo prostym kompilatorem (nawet stringów nie było de facto). I co z tego?
Przez te 30 lat i C i Pascal przeszły ogromne zmiany, nie ma po co mówić po co były one tworzone, bo i tak od tego czasu dużo się w nich zmieniło, włączając autorów, paradygmat, kompilatory itd.

dajcie mu wreszcie podążyć ścieżką COBOLa i niemal całkowicie odejść w zapomnienie.

Skoro ktoś go używa to widać ma jakieś zalety.

@WITCHER:

Ja tam Pascala wolę kompilować na ideone bo jest szybciej w 512kb internecie niż w FPC przy 4GB ram i procesorem 2rdzeniowym...;P

Hm? FPC jest akurat bardzo szybkim kompilatorem. Może masz starą/źle skonfigurowaną wersję? Ale faktem jest też to że FPC krótkie programy kompiluje wolniej niż inne kompilatory, natomiast długie generalnie szybciej. Tak przynajmniej wynika z moich obserwacji.

@Maślanka Tadeusz:

Co będzie jeśli zacznę kiedyś tam javę itp. ?

to albo jesteś głupi i ci się pomiesza albo jesteś normalny i ci się nie pomiesza. Niestety, od nauki asma nie zacząłem używać mov zamiast := (Pascal) czy = (PHP).

Nie wiedziałem że wybór języka może być trudniejszych od samej jego nauki, może wykluczając Assemblera nad którym siedziałem kilka dni i zrezygnowałem.

Assembler to bardzo ważny język moim zdaniem, również jeżeli piszesz w C++. Dzięki temu będziesz wszystko lepiej rozumieć. Ale oczywiście, od tego raczej się nie zaczyna.
Pascal vs. C++ to od dawna 'gorący temat'. Wiesz, każdy programista ma swoje ulubione języki, te których nie lubi i te które są mu raczej obojętne. Każdy chce ci doradzić co mu się wydaje dobrym wyborem. Właściwie to nie ważne od czego zaczniesz, i tak będziesz mógł (a właściwie będziesz musiał) to potem zmienić. Na studiach i tak nauczą ciebie masy języków, tak żebyś znał zalety i wady każdego z nich. Moim zdaniem to pierwszy język aż takiego wpływu nie ma na to co będziesz robić później, bo szanse że przy nim zostaniesz całkowicie są żadne.

@Wibowit:

Dobry programista zna kilka paradygmatów programowania, nie mówiąc już o tym, że zna kilka języków.

To też prawda. Nie każdy język do wszystkiego najlepszy, warto umieć dobrać dobry język do dobrego celu. Im więcej się ich umie, tym lepiej, bo warto znać chociażby parę podejść do programowania.

0
-123oho napisał(a):

W C/C++ też paru rzeczy brakuje np. moim zdaniem Unity są lepsze niż pliki nagłówkowe.

To prawda, ale wynika to z niskopoziomowego modelu modularyzacji, to kwestia kompatybilności i przenośności.

-123oho napisał(a):

C/C++ nie ma tablic dynamicznych które się same zwalniają. Podobna sprawa dotyczy stringów.

Chciałeś powiedzieć "C nie ma", C++ ma std::string, std::vector itd. Obecnie wbudowane są nawet hashmapy. "Zgodnie ze sztuką" w języku nie powinno być miejsca na typy, które nie są absolutnymi prymitywami, wszystko inne powinno być zaimplementowane jako biblioteka standardowa. Pascal tego nie spełnia, jest pełen rozwiązań niemożliwych do normalnego zaimplementowania. Poza tym C++ ma boosta i ew. Qt, dzięki którym może pod wieloma względami konkurować z Javą i C#, przynajmniej jako C++11.

-123oho napisał(a):

to albo jesteś głupi i ci się pomiesza albo jesteś normalny i ci się nie pomiesza. Niestety, od nauki asma nie zacząłem używać mov zamiast := (Pascal) czy = (PHP).

Dobra, dobra, nie przesadzaj :P Faktem jest, że po dłuższym (wielodniowym) pisaniu w językach, gdzie terminatorem wyrażeń są elementy formatowania (Python, CoffeeScript, Haskell, Scala) pierwsze minuty z językami wymagającymi tego pieprzonego średnika powodują pewien dyskomfort.

-123oho napisał(a):

Assembler to bardzo ważny język moim zdaniem, również jeżeli piszesz w C++. Dzięki temu będziesz wszystko lepiej rozumieć. Ale oczywiście, od tego raczej się nie zaczyna.

Od assemblera spokojnie można zaczynać, przynajmniej kilka osób na forum to sobie chwali. Znajomość asma, przynajmniej średnia, jest wymagana dla każdego poważnego programisty C/C++ czy Pascala/Delphi, bez niej ciężko wyjść z debugowaniem poza własny kod, co bywa konieczne przy aplikacjach natywnych.

-123oho napisał(a):

Nie każdy język do wszystkiego najlepszy, warto umieć dobrać dobry język do dobrego celu. Im więcej się ich umie, tym lepiej, bo warto znać chociażby parę podejść do programowania.

To akurat popieram w całej rozciągłości :]

3

Jeszcze jedna uwaga:

-123oho napisał(a):

Skoro ktoś go używa to widać ma jakieś zalety.

Obecnie wyłącznie szkoły i uczelnie, gdzie autor programu nauczania utknął mentalnie gdzieś pomiędzy rewolucją seksualną a stanem wojennym.

0

@PS:

C++ ma std::string, std::vector

Wiem o tym bardzo dobrze, jednak nie są one zwalniane automatycznie. Nie są one również 'wbudowane' w język, co ja sobie cenię bo nie muszę się przejmować zwalnianiem takich podstawowych typów (a są nawet samo zwalniające się obiekty, sic).

Obecnie wbudowane są nawet hashmapy.

FPC też to ma i też wspiera generyki.

"Zgodnie ze sztuką" w języku nie powinno być miejsca na typy, które nie są absolutnymi prymitywami, wszystko inne powinno być zaimplementowane jako biblioteka standardowa. Pascal tego nie spełnia, jest pełen rozwiązań niemożliwych do normalnego zaimplementowania.

Przesadzasz. Tłumaczysz brak czegoś w C++ tym że 'tak się nie robi', bo C++ tak nie robi :) . W Pascalu tak jest, to działa, i tym samym udowadnia że C++ to nie jedyne dobre podejście do programowania.
Zresztą, jakby popatrzeć na założenia standardów C++ przed C++11 to żaden kompilator nie był z nimi w pełni zgodny bo było to niemożliwe. I kto tu gra 'zgodnie ze sztuką'? ;)

Poza tym C++ ma boosta i ew. Qt, dzięki którym może pod wieloma względami konkurować z Javą i C#, przynajmniej jako C++11.

Tylko po co skoro jest java i C# ? :P

Obecnie wyłącznie szkoły i uczelnie, gdzie autor programu nauczania utknął mentalnie gdzieś pomiędzy rewolucją seksualną a stanem wojennym.

Mówisz o TP, a ja mówię o FPC. Nie rozumiem czemu do Pascala przywarła taka łatka języka przestarzałego. Zgoda, TP jest przestarzały, ale FPC nie jest. FPC jest wciąż rozwijany i o dziwo nie programują w nim tylko początkujący ale widać nawet małe firmy które się przenoszą na niego z Delphi oraz z C++. No widać są jakieś tego zalety, skoro to robią, czyż nie?
Trochę to irytuje, gdy osoby które słyszały o Pascalu z opowieści o TP cały język przypisują do jednego kompilatora. Ale z drugiej strony, to ciężko się dziwić niechęci niektórych do Pascala kiedy wielu nauczycieli uczy na TP i są mentalnie w czasach DOSu. PS, powinieneś spojrzeć na inne kompilatory niż TP, to zobaczysz że środowisko, programowanie, debugowanie itd. nie odbiega zbytnio od C++ (ba, FPC używa nawet wielu rzeczy z GCC). A skoro dla ciebie C++ to utożsamienie nowoczesności, to nie rozumiem dlaczego nazywasz Pascala przestarzałym.

@WITCHER:

Nie, po prostu mamy w szkole kompy do d**y... ;P a na windows x64 FPC mi nie działa mi się nie odpala

Współczuje, bo myślałem że szczytem jest to że u mnie w szkole Lazarus ledwo działa :P

0

@WITCHER:

Nie, po prostu mamy w szkole kompy do d**y... ;P a na windows x64 FPC mi nie działa mi się nie odpala
To zainstaluj poprawnie. Bez problemu działa na x64.

2
-123oho napisał(a):

Wiem o tym bardzo dobrze, jednak nie są one zwalniane automatycznie.

Co to znaczy, że nie są zwalniane automatycznie? Tylko jeżeli są dynamicznie tworzone na stercie przez new i bez użycia inteligentnych wskaźników. std::string jest stworzony do używania przez wartość, każda implementacja ma obecnie własne zarządzanie pamięcią oferujące współdzielenie wewnętrznych buforów, copy-on-write itd.

-123oho napisał(a):

Nie są one również 'wbudowane' w język, co ja sobie cenię bo nie muszę się przejmować zwalnianiem takich podstawowych typów (a są nawet samo zwalniające się obiekty, sic).

To dlatego klepiecie do bólu to Free albo FreeAndNil, gdzie programiści C++ nie muszą klepać niczego, korzystają z RAII?

-123oho napisał(a):

FPC też to ma i też wspiera generyki.

Nie, nie całkiem ma, ma tylko niewielka część możliwości C++ w tym zakresie.

-123oho napisał(a):

Tłumaczysz brak czegoś w C++ tym że 'tak się nie robi', bo C++ tak nie robi :)

Identycznie ma się sprawa z Haskellem, Pythonem (przynajmniej Pythonem 3, to nieszczęsne print...), Scalą itd. Pascal naprawdę jest jednym z nielicznych wyjątków.

-123oho napisał(a):

Zresztą, jakby popatrzeć na założenia standardów C++ przed C++11 to żaden kompilator nie był z nimi w pełni zgodny bo było to niemożliwe. I kto tu gra 'zgodnie ze sztuką'? ;)

Był zgodny, Comeau C++ Compiler, wspierał w 100% export i inne kwiatki w założeniach szablonów.

-123oho napisał(a):

Tylko po co skoro jest java i C# ? :P

Tylko po to, że często potrzebne są aplikacje natywne lub głęboka integracja z istniejącymi projektami? Życie to nie hello world.

-123oho napisał(a):

Mówisz o TP, a ja mówię o FPC. Nie rozumiem czemu do Pascala przywarła taka łatka języka przestarzałego. Zgoda, TP jest przestarzały, ale FPC nie jest.

Mówię o Free Pascalu, nie dopowiadaj sobie niczego. Technicznie FreePascal to Delphi z kilkoma zmianami i usprawnieniami. Język naprawdę nie wytrzymuje porównania z C++, D itd.

-123oho napisał(a):

FPC jest wciąż rozwijany i o dziwo nie programują w nim tylko początkujący ale widać nawet małe firmy które się przenoszą na niego z Delphi oraz z C++. No widać są jakieś tego zalety, skoro to robią, czyż nie?

Jakie firmy porzucają dla niego C++? Nie, nie ma większych zalet, poza swoją "przenośnością" i natywnością. Znam możliwości FreePascala i naprawdę nie widzę sensu używania tego pudrowanego reliktu przeszłości, zwłaszcza przy tak kiepskim supporcie i niewielkiej społeczności. Stoi za nim jedynie niewielka firma i garstka zapaleńców wychowanych na Delphi, których większość nigdy nie widziała innego języka, czy poleganie na nich stanowi jakąś korzyść?

-123oho napisał(a):

PS, powinieneś spojrzeć na inne kompilatory niż TP, to zobaczysz że środowisko, programowanie, debugowanie itd. nie odbiega zbytnio od C++ (ba, FPC używa nawet wielu rzeczy z GCC). A skoro dla ciebie C++ to utożsamienie nowoczesności, to nie rozumiem dlaczego nazywasz Pascala przestarzałym.

Gdzie napisałem, że dla mnie C++ to utożsamienie nowoczesności? Jestem obecnie programistą Pythona, którego integruję z systemem operacyjnym i istniejącymi bibliotekami w oparciu o C++. Prywatnie korzystam z CoffeeScriptu, Haskella i Scali. Nowoczesnością w kontekście języków natywnych jest D 2.0 i C++11, nie Free Pascal. Najnowocześniejszym typowym językiem ogólnego przeznaczenia jest moim zdaniem Scala, czekam z niecierpliwością na wydanie 2.10 i aktualizację Typesafe.

Przez takich jak Ty ludzie mają jeszcze złudzenia, że nauka Pascala nie jest stratą czasu...

1

Przez takich jak Ty ludzie mają jeszcze złudzenia, że nauka Pascala nie jest stratą czasu...

Przez takich jak Ty ludzie mają jeszcze złudzenia, że nauka Pascala to relikt przeszłości...

I nie mam więcej co pisać bo do ciebie nie docierają moje argumenty, bo jesteś tak zapatrzony w swoje języki że nie akceptujesz innych rozwiązań. Jakoś będę z tym żyć.

1

jakbyłbyś pewien tego co piszesz, to zalogowałbyś się.. a tak nie ma o czym gadać

Drogi koperniku, mam login, zablokowany przez administracje i sądzę że ten kto się tym interesuje to zna mój login i wie kim jestem. Jeżeli tobie się wydaje że piszę anonimy to się mylisz.

Jestem pewien tego: Fanboye C++ strasznie nie lubią paskalowców i zrobią wszystko żeby im wmówić że ich język jest Be. Ich nienawiści zaślepia ich na zalety Pascala.

0
-123oho napisał(a):

I nie mam więcej co pisać bo do ciebie nie docierają moje argumenty, bo jesteś tak zapatrzony w swoje języki że nie akceptujesz innych rozwiązań. Jakoś będę z tym żyć.

Do kogo nie docierają argumenty? W C++ nie trzeba niczego zwalniać ręcznie, mamy od tego RAII, którego odpowiednika we Free Pascalu nie ma, przynajmniej nie tak uniwersalnego. Pytałem kto niby porzuca C++ na rzecz Free Pascala to Ty rzucasz fochem. Nie mam racji w kwestii tego, że za C++ za innymi językami stoi ogromne community i potężne korporacje? Do tego wciskasz mi rzeczy, których nie napisałem... Nie musisz z tym żyć, przyznaj się do porażki.

1

Ty rzucasz fochem

Raczej: Zapobiegam bezsensownego wypominania sobie nawzajem dziwnych rzeczy które dalej prowadziłyby do flamewara.

Nie musisz z tym żyć, przyznaj się do porażki.

To jest właśnie dowód na to że ty nie respektujesz mojej opinii, tylko narzucasz swoją. To prowadzi do bezsensownej wymiany zdań (którą właśnie obserwujemy) a dalej do flamewara czemu chcę zapobiec. Jeżeli twoim zadaniem było zamiana dialogu w bezsensowną paplaninę bez szacunku do opinii innych, to rzeczywiście, wygrałeś. W innym przypadku zrobiłeś tylko to co wspomniałem a nie osiągnąłeś ani nie dałeś nic.

1 użytkowników online, w tym zalogowanych: 0, gości: 1