Czy warto uczyc sie Pascala?

Czy warto uczyc sie Pascala?
A2
  • Rejestracja:ponad 5 lat
  • Ostatnio:10 miesięcy
  • Postów:18
0

Czy warto uczyc sie pascala?

edytowany 2x, ostatnio: flowCRANE
cerrato
Moderator Kariera
  • Rejestracja:około 7 lat
  • Ostatnio:około 4 godziny
  • Lokalizacja:Poznań
  • Postów:8769
2

Tak.

Obecne wersje są nowoczesnymi dialektami, którym za wiele nie brakuje w stosunku do tych "bardziej popularnych" języków.
Poza tym ważne jest, żeby się w ogóle nauczyć programować, a jak osiągniesz już jakiś poziom i biegłość, to możesz (jeśli będziesz czuł taką potrzebę, a nie będzie to wynikać z tego, że w Pascalu nie wypada) pomyśleć o przesiadce.

Poza tym Pascal ma wiele właściwości, które są mega pomocne podczas pracy, a zwłaszcza podczas nauki. Między innymi pilnuje typów (nie uda Ci się przypisać tekstu do zmiennej liczbowej), pilnuje zakresów tablic (nie dostaniesz się do 12 elementu tablicy, która ich ma jedynie 8) itp.


edytowany 1x, ostatnio: cerrato
A9
Proponowanie tak mało popularnych technologii, to IMHO słaby pomysł o czym boleśnie się przekonałem przy szukaniu pierwszej pracy jako programista. Do nauki nadaje się właściwie prawie każdy lub każdy język, więc lepiej wybrać ten, który da szansę na rynku.
AK
  • Rejestracja:ponad 6 lat
  • Ostatnio:9 dni
  • Postów:3561
0

Na produkcji? Statystyka np githuba mówi "nie"
Podczas nauki? Być może tak,zgadzam się z podanymi wyżej wybranymi cechami.
Natomiast wyklikiwanie fuch w Delphi jest antywzorem.


Bo C to najlepszy język, każdy uczeń ci to powie
edytowany 1x, ostatnio: AnyKtokolwiek
stivens
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 godziny
4
cerrato napisał(a):

Tak.

Obecne wersje są nowoczesnymi dialektami, którym za wiele nie brakuje w stosunku do tych "bardziej popularnych" języków.
Poza tym ważne jest, żeby się w ogóle nauczyć programować, a jak osiągniesz już jakiś poziom i biegłość, to możesz (jeśli będziesz czuł taką potrzebę, a nie będzie to wynikać z tego, że w Pascalu nie wypada) pomyśleć o przesiadce.

Poza tym Pascal ma wiele właściwości, które są mega pomocne podczas pracy, a zwłaszcza podczas nauki. Między innymi pilnuje typów (nie uda Ci się przypisać tekstu do zmiennej liczbowej), pilnuje zakresów tablic (nie dostaniesz się do 12 elementu tablicy, która ich ma jedynie 8) itp.

Jak ktos juz zna Pascala to moze sie nim bawic ale czy dla zoltodzioba faktycznie warto zeby bral sie za Pascala zamiast C++/jave/C#/typescripta/CzyCoTamJeszcze ? Bo ja nie dostrzegam plusow

Edit: jeszcze jakbym zobaczyl CV "0 doswiadczenia ale wpisany /tylko/ Pascal" to bym uznal ze mu w LO pokazali i nigdy nie sprobowal niczego innego


λλλ
edytowany 2x, ostatnio: stivens
elwis
  • Rejestracja:ponad 18 lat
  • Ostatnio:17 dni
1

Może się mylę, ale Pascal nie wnosi nic odkrywczego w stosunku do innych języków, nie zauważyłem żeby kształtował myślenie o programie w jakiś odkrywszy sposób, to taki okrojony c++ ze słówkami zamiast klamerek. Biorąc pod uwagę popularność tego języka, nie warto.


GN
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad rok
  • Postów:274
7

Zakładając, że nie masz dostępu do internetu, a kuzyn przyniósł Ci książkę o Pascalu to tak, warto.


“Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter.” ~ Eric S. Raymond
elwis
Ach, te lata 90 te :) C:\ > _ :D
PerlMonk
A ja miałem tylko świerszczyki :(
KR
  • Rejestracja:ponad 6 lat
  • Ostatnio:około rok
  • Postów:174
1

Ja tak właśnie miałem....nie było internetu a książkę przyniósł brat:

MA
Uczyłem się z niej w XX w. :-)
KR
Hihi, no ja też wtedy, lata 90-te i przepisywałem przykłady:)
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:6 minut
  • Postów:8410
5

Jakbym zaczynał dzisiaj, to bym wolał się uczyć Pythona (podobny feeling - tzn. programy zarówno w Pythonie jak i w Pascalu są zbliżone do normalnego angielskiego. Chociaż Python bardziej pilnuje składni, a Pascal na więcej pozwala). Przy czym Python ma szerokie zastosowanie dzisiaj i jest bardzo modny, a Pascal przestał już być modny, stał się niszą dla zapaleńców.

Ale z drugiej strony ludzie, którzy zaczynają programować, za bardzo patrzą po to, żeby się uczyć "pod pracę" i tego "co się opłaca", podczas gdy pierwszych parę kilka języków to i tak nauka programowania. Jeden język cię nauczy tego, drugi czegoś innego. Myślę, że nawet nauka Logo czy Scratch nie musi być zła na jakimś etapie, mimo, że tego i tak nie użyjesz w realnym zastosowaniu.

Ale nauka podstaw programowania to co najmniej kilka lat, więc przez ten czas można równie dobrze obczaić jeden język, potem drugi itp. Pytanie tylko o motywacje - czemu akurat Pascal? Że łatwy (Python też jest łatwy)? Że można apki natywne robić (w C++ czy w innych językach też to możliwe)?

AnyKtokolwiek napisał(a):

Natomiast wyklikiwanie fuch w Delphi jest antywzorem.

Uzasadnij. Wg mnie Delphi to był super program (tak jak i jego odpowiednik dla C++: C++ Builder) i uważam, że to było bardzo wygodne, wybierasz sobie komponent, wstawiasz go, projektujesz okienka, potem ustawiasz właściwości, dodajesz zdarzenia.

i to było ileś lat temu. A teraz? Jakaś regresja i ludzie piszą wszystko z palca (co jest absurdem - bo aplikacje webowe SĄ dzisiaj tworzone w aplikacjach WYSIWYG przez UX designerów, a potem i tak frontendzi kodują ręcznie wszystko to, co sobie UX designer wyklikał w aplikacji. Czyli podwójna robota. ).


edytowany 1x, ostatnio: LukeJL
A2
pascal chcialbym poniewaz umiem pythona i rowniez c++ a na olimpiade podobno moze mi sie przydac
stivens
Niby czemu jak to tylko narzedzie? Predzej Ci sie Cormen przyda albo ksiazka do dyskretnej :v
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:Tuchów
  • Postów:12167
3
Alek22 napisał(a):

Czy warto uczyc sie pascala?

Jeśli Twoim marzeniem jest zostać wykwalifikowanym bezrobotnym to warto. ;)

Jeśli nie zamierzasz otwierać własnej działalności związanej z własnym projektem (np. stworzonym od podstaw) to największe szanse na etat są związane z Delphi. W przypadku Free Pascala trzebaby szukać za granicą, np. w Niemczech, Holandii czy Rosji.

stivens napisał(a):

Edit: jeszcze jakbym zobaczyl CV "0 doswiadczenia ale wpisany /tylko/ Pascal" to bym uznal ze mu w LO pokazali i nigdy nie sprobowal niczego innego

No to byś źle uznał, bo jeśli dobrze pamiętam, Pascal nie jest już w podstawie programowej szkół średnich od kilku lat. Zresztą to samo powinieneś uznać widząc zero doświadczenia z wpisanym tylko C++, Pythonem czy Javą. A jeśli nie, to widać nie patrzysz na technologię jak na narzędzie, a na przedmiot dowcipów/hejtu i Twoje zdanie merytorycznie jest niewiele warte.

elwis napisał(a):

Może się mylę, ale Pascal nie wnosi nic odkrywczego w stosunku do innych języków […]

Język programowania nie musi „wnosić czegoś odkrywczego”, aby go używać. I połowa współcześnie wykorzystywanych (komercyjnie i hobbystycznie) języków tego nie robi.

AnyKtokolwiek napisał(a):

Natomiast wyklikiwanie fuch w Delphi jest antywzorem.

Nie wiem czy zdajesz sobie z tego sprawę (choć jak widać absolutnie nie), ale Delphi jako środowisko nie składa się wyłącznie z designera, a oprogramowanie jakie można stworzyć w tym IDE nie ogranicza się do aplikacji okienkowych. No chyba że masz tak sporego skilla, że potrafisz w designerze wyklikać np. usługę czy bibliotekę DLL? Nie? To nie filozuj. Tym bardziej, że np. Visual Studio też ma swój designer z modułem Properties (odpowiednik Object Inspectora), którego używania nikt nie uznaje za antywzorzec. No chyba że takich oszołomów też można znaleźć w społeczności skupionej wokół tego IDE.

Zresztą jeśli chodzi o designer to tak, jest to świetne narzędzie, które nie tylko ułatwia, ale też przyspiesza pracę. Bo znacznie, znacznie lepiej jest skorzystać z narzędzia WYSIWYG do zaprojektowania okna (bo na bieżąco widzi się końcowy efekt), niż ręcznie pisać kod generujący jego zawartość. W szczególności jeśli chodzi o pracę zespołową, która charakteryzuje się brakiem regularnej kompilacji i uruchamiania produktu.

Natomiast uprzedzając kolejne pytania czy stwierdzenia – kiedy trzeba wygenerować UI z poziomu kodu to trzeba. Ale to zupełnie osobny przypadek, zależny od wymagań projektowych czy ogólnej funkcjonalności formularzy.


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
edytowany 4x, ostatnio: flowCRANE
Zobacz pozostałe 3 komentarze
A2
ok a jaki jezyki inne polecasz?
stivens
Szlifuj te 3, moze javascript doloz bo to fajna rzecz (w sensie zastosowanie bo sam jezyk jest kontrowersyjny). No i jakies rusty, kotliny, go sa fajne ale to tez nie ma sensu latac po jezykach tylko po to zeby hello world napisac
LukeJL
No to masz mnóstwo czasu tak naprawdę na rozwój. To jest właśnie ten czas, kiedy możesz sobie spokojnie skakać po językach i nie myśleć o tym czy warto, ale po prostu się uczyć i poznawać nowe języki.
flowCRANE
@Alek22: nie dotykaj wszystkiego co ma w nazwie Turbo. Poza tym pytania na temat zadawaj w postach.
MA
Nawet gumy do żucia..haha :-D
KR
  • Rejestracja:ponad 6 lat
  • Ostatnio:około rok
  • Postów:174
0

W sumie ciekawe, czy Delphi/Pascal będzie kiedyś tak jak teraz Cobol?;-) A może juz tak sie dzieje...

stivens
Ale to pytanie dotyczy tez C++, javy, wszystkiego
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:Tuchów
  • Postów:12167
2

@Alek22: jeśli bardzo chcesz się uczyć Pascala to najpierw pasuje się zaopatrzyć w konkretne IDE.

Jeśli z jakiegoś powodu interesuje Cię Delphi, to jest wersja darmowa – wystarczy się zarejestrować, pobrać i zainstalować. Jednak zewzględu na konieczność odnawiania licencji, związane z nią ograniczenia i nieczyste zagrywki producenta, odradzam.

Alternatywą jest Lazarus, w którym tworzy się programy przy użyciu języka Free Pascal, jednak wadą tego środowiska jest nieco uboższa funkcjonalność (w porównaniu do Delphi) i zmatolone IDE, pełne błędów. No ale przynajmniej jest w pełni darmowe, lekkie i pozwala tworzyć programy na mnóstwo platform – coś za coś.

Po zainstalowaniu środowiska, skup się na nauce podstaw języka – programowania strukturalnego, a później obiektowego. Nie rzuć się od razu na aplikacje okienkowe, bo niczego się nie nauczysz i niczego nie będziesz rozumiał, nawet jeśli coś uda się zaprogramować. Do dyspozycji masz dokumentację on-line i off-line, jest też masa książek do kupienia (i darmowych ebooków). Przy czym jeśli już potrzebujesz książek czy konkretnych kursów, to sięgnij po aktualne, a nie sprzed 10 czy 40 lat. Google Twoim przyjacielem.


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
edytowany 5x, ostatnio: flowCRANE
A2
somedev
  • Rejestracja:ponad 6 lat
  • Ostatnio:prawie 5 lat
  • Postów:666
3

Pierwszy język nie ma znaczenia. Ja obecnie znam i używam komercyjnie coś koło 10 języków i kilkadziesiąt bibliotek, frameworków. Pascal, nauczy podstaw, idei tak dobrze jak C. Czy taka nauka jest głupia bo nie ma ofert pracy - nie prawda. Nadal rozwija się i utrzymuje soft w Delphi. Sam znam kilka firm które w tym działają, a sam od czasu do czasu rozwijam pewien framework napisany w Delphi.

Zobacz pozostałe 2 komentarze
somedev
Nie za bardzo mogę ;) Wewnętrzny framework dostępu do pewnej bazy danych bardzo popularnej w delphi.
WL
Przecież nie proszę o kod, tylko o opis po co, jak to i dlaczego tak a nie inaczej? ;-)
somedev
"Pokaż" - odniosłem wrażenie, że chodzi o pokazanie własnie kodu lub jego samego w działaniu. Generalnie chodzi o dostęp do bazy danych, chodzenie po źródle danych "w dół", "w górę", nie czytanie wszystkiego od razu, stworzenia abstrakcji tabeli, konfiguracje przez wpisy w pliku i nadanie relacji dzięki czemu można odwoływać się do wartości krotek powiązanych przez FK z tabeli "głównej", prostą obsługę blobów etc. Jak to powstawało nie było mORMot czy FireDAC.
WL
Ale były inne, podobne mechanizmy. Dobra, nie będę Cię męczył dalej, bo to nie ma sensu bez drobiazgowego referatu ;-)
somedev
Nie męczysz mnie ale faktycznie bez analizy dostępnych w owym czasie bibliotek i zapotrzebowań trudno dyskutować ;) Faktem, jest, że coś zostało popełnione i nadal się używa wiec utrzymywać i rozwijać trzeba, szczególnie, że kod to wykorzystujący jest taki obszerny, że sam bym bał się to przepisywać na cokolwiek innego, a i nie widzę biznesowego sensu.
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:Tuchów
  • Postów:12167
2
somedev napisał(a):

Pascal, nauczy podstaw, idei tak dobrze jak C.

Tak, tyle że Pascal jest znacznie łatwiejszy od C i ma przyjemniejszą składnię. I większą funkcjonalność.

Nadal rozwija się i utrzymuje soft w Delphi.

Problem polega na tym, że ten soft często utrzymywany jest w starych, prymitywnych i niewspieranych środowiskach, ofert pracy w porównaniu do konkurencyjnych technologii nie ma prawie w ogóle, a nowe projekty jakoś nieszczególnie powstają. Marne perspektywy na jakąkolwiek przyszłość zawodową. :/


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
edytowany 4x, ostatnio: flowCRANE
somedev
  • Rejestracja:ponad 6 lat
  • Ostatnio:prawie 5 lat
  • Postów:666
2

Nie uważam ze pascal łatwiejszy niż C - po prostu inny - tu i tu masz zmienne i nie musisz machać rejestrami i stosem jak w asm czy masz pętle (wczesne wersje cobola nie miały) Co do samej pracy - fakt dużo kodu dziedziczonego ale nawet teraz wiedział bym gdzie się zgłosić po prace m.in. w Delphi za więcej niż 10k. No i jak mowilem - nie istnieje praktyce programista znający 1 język chyba ze zielony junior javy co pracy znaleźć nie może ;)

flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:Tuchów
  • Postów:12167
1
somedev napisał(a):

Nie uważam ze pascal łatwiejszy niż C - po prostu inny - tu i tu masz zmienne i nie musisz machać rejestrami i stosem jak w asm czy masz pętle (wczesne wersje cobola nie miały) […]

Mhm… no to zacznij od porównania tak podstawowej rzeczy jak obsługa stringów. ;)


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
somedev
  • Rejestracja:ponad 6 lat
  • Ostatnio:prawie 5 lat
  • Postów:666
1

A co tu lepszego w Pascalu? Tu i tu masz tablice bajtów po 1,2 lub 4 bajty na znak, terminowanie zerem. Przy czym w Pascalu (Delphi) śmiesznie zaczyna się liczyć Od indeksu 1 w łańcuchach. Możesz konkatynować, masz standardowe funkcje do manipulacji stringów czy nawet prasowania tokenów. Ten sam poziom. Jakbyś wspomniał. C# jako przykład to się zgodzę bo tam masz np. Stringi interpolowane, a kompilator poza pętlami odwalą robotę za stringbuildera. Btw sadze ze od C# powinno się zaczynać programowanie.

Zobacz pozostałe 3 komentarze
cerrato
Zgadza się, ale niemniej powinieneś napisać, że "typy null-terminated są rzadko wykorzystywane", bo Twój wcześniejszy komentarz sugeruje, że Pascal tego w ogóle nie ogarnie, co (jak sam przyznałeś) trochę mija się z prawdą :P
Patryk27
Pascal jest kompletny w sensie Turinga, ergo: musi być w stanie 'ogarnąć' również te algorytmy, które wymagają ciągów null-terminated :-) Niech jednak będzie powiedziane wprost: najczęściej wykorzystywane w Pascalu ciągi znaków, które niemal każdy rozumie pod terminem string, nie są zakończone terminatorem.
cerrato
jak dla mnie teraz jest OK :)
Patryk27
@vpiotr: good catch, muszę odświeżyć w takim razie swoją wiedzę :-P tym niemniej są null-terminated dla wygody konwersji na PChar, nie jest to wyznacznik ich długości (jak w C)
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:Tuchów
  • Postów:12167
3
somedev napisał(a):

A co tu lepszego w Pascalu? Tu i tu masz tablice bajtów po 1,2 lub 4 bajty na znak, terminowanie zerem.

No właśnie to, że wykorzystywanie ciągów znaków w Pascalu jest tak samo łatwe jak używanie innych typów prostych, takich jak np. liczby. Nie trzeba deklarować tablic znaków, nie trzeba pamiętać o terminatorze, można je bez problemu łączyć i porównywać za pomocą operatorów arytmetycznych, można je traktować jak tablice (bez żadnych zabaw ze wskaźnikami), można wygodnie iterować po znakach za pomocą pętli for in. Tak samo jest w C? Oczywiście że nie.

Przy czym w Pascalu (Delphi) śmiesznie zaczyna się liczyć Od indeksu 1 w łańcuchach.

Może i śmieszne, ale indeksowanie znaków od 1 nie jest żartem twórców, a spuścizną protoplasty współczesnych dialektów. Bo zanim wprowadzono wsparcie ciągów o nieograniczonej długości, łańcuch mógł przechowywać 255 znaków, a w bajcie o indeksie 0 przechowywana była jego bieżąca długość. Dlatego indeks pierwszego znaku to 1.

Dziś długie łańcuchy nie używają bajtu o indeksie 0 ze względu na kompatybilność z typem ShortString (aby kod działał tak samo bez względu na stan przełącznika {$H}), wzamian przechowując metadane przed bajtem 0. W tych metadanych znajdują się wielobajtowe wartości, głównie długość ciągu i licznik referencji. Nie wiem jak w Delphi, ale we Free Pascalu dodatkowo przechowuje się rozmiar codepointów i numer strony kodowej.


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
edytowany 6x, ostatnio: flowCRANE
vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
3
somedev napisał(a):

Nie uważam ze pascal łatwiejszy niż C - po prostu inny - tu i tu masz zmienne i nie musisz machać rejestrami i stosem jak w asm czy masz pętle (wczesne wersje cobola nie miały

https://en.wikipedia.org/wiki/Comparison_of_Pascal_and_C

somedev
  • Rejestracja:ponad 6 lat
  • Ostatnio:prawie 5 lat
  • Postów:666
0
vpiotr napisał(a):
somedev napisał(a):

Nie uważam ze pascal łatwiejszy niż C - po prostu inny - tu i tu masz zmienne i nie musisz machać rejestrami i stosem jak w asm czy masz pętle (wczesne wersje cobola nie miały

https://en.wikipedia.org/wiki/Comparison_of_Pascal_and_C

Wiem jakie są różnice - sam komercyjnie piszę zarówno w C jak i w Pascalu. Niemniej wskaż, która różnica diametralne powoduje, że Pascal jest łatwiejszy? Begin zamiast {, czy może wskazanie miejsca deklaracji zmiennych przez VAR (co moim zdaniem jest o wiele bardziej eleganckie niż wstawianie w losowych zmiennych nowych zmiennych przez VAR C# powe co ma sens głównie w interfejsach a tylko lekko pomaga piszącemu a bardzo zaciemnia jeśli ktoś nie ma pod ręką VS). Generalnie nadal twierdzę, że poziom nauki tychże języków jest taki sam jak i trudność. Co niemniej zachęcam do nauki Pascala bo moim zdaniem to bardzo dobry język (co innego biblioteki w tym ekosystemie oraz IDE czy narzędzia).

flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:Tuchów
  • Postów:12167
1

@somedev: przecież już wskazałem… :/

W Pascalu można pisać dowolne programy bez dotykania wskaźników, w C niebardzo. A biorąc pod uwagę to, że obsługa wskaźników w C jest tak cholernie zagmatwana i nieczytelna (mnogość gwiazdek, spiralna interpretacja itd.), Pascal staje się językiem o wiele przyjemniejszym i łatwiejszym dla początkujących.

I nie tylko dla początkujących, bo kod napisany w Pascalu – dzięki wymienionym atutom np. (w podlinkowanym artykule) – znacznie łatwiej utrzymywać. Naoglądałem się już wystarczająco dużo potworów napisanych w C (w tym januszkowych jednolinijkowców), więc nie masz szans wpłynąć na to, abym zmienił zdanie w tej kwestii. Bo nie zmienię – skłamałbym gdym stwierdził, że jest inaczej.


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
edytowany 8x, ostatnio: flowCRANE
somedev
  • Rejestracja:ponad 6 lat
  • Ostatnio:prawie 5 lat
  • Postów:666
1

Ok, ja po prostu nie uważam wskaźników za coś bardzo zawiłego, zresztą w Pascalu też one są. Jeśli chodzi o poziomu skomplikowania to jak wspominałem - obsługa pętli, zmiennych, czy idąc wyżej - GC, zarządzanie pamięcią etc. Może inaczej rozumiemy złożoność, niemniej C a Pascal mają moim zdaniem podobny próg wejścia. Btw jeśli ktoś nie zrozumie wskaźników w C to też ich nie zrozumie w Pascalu. Zresztą, takie osoby to nie za bardzo nadają się na programistę nie potrafiąc wyobrazić sobie abstrakcji w postaci taśmy pamięci, a co dopiero interfejsów, klas etc. Reasumując - warto uczyć sie Pascala, ale nadal nie ma jakiś moim zdaniem superlatywów względem C - tu i tu jak chcesz nauczyć się wskaźników to musisz je zrozumieć.

flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:Tuchów
  • Postów:12167
0
somedev napisał(a):

Ok, ja po prostu nie uważam wskaźników za coś bardzo zawiłego, zresztą w Pascalu też one są.

Ja też nie uważam wskaźników za coś zawiłego, choć początkujący mają z nimi mnóstwo problemów. Różnica jednak polega na składni dotyczącej ich używania oraz miejscach, w których ich użycie jest konieczne. No a w Pascalu w ogóle nie trzeba ich używać.

Jeśli chodzi o poziomu skomplikowania to jak wspominałem - obsługa pętli, zmiennych, czy idąc wyżej - GC, zarządzanie pamięcią etc.

GC nie ma, w żadnej z tych technologii – co najwyżej są typy zarządzane i niezarządzane, ale to nie jest GC.

Może inaczej rozumiemy złożoność, niemniej C a Pascal mają moim zdaniem podobny próg wejścia.

A według mnie (i nie tylko) tak nie jest – poziom abstrakcji jest zbliżony (przy czym C jest subsetem funkcjonalności Pascala), ale nie próg wejścia. Głównie ze względu na składnię, którą Pascal ma nieco rozwlekłą, ale czytelną, natomiast składnia C jest minimalistyczna, nastawiona na krótkie implementacje i szybką kompilację.

Btw jeśli ktoś nie zrozumie wskaźników w C to też ich nie zrozumie w Pascalu.

Ani w żadnym innym języku.


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
edytowany 2x, ostatnio: flowCRANE
vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
3
somedev napisał(a):

Wiem jakie są różnice - sam komercyjnie piszę zarówno w C jak i w Pascalu. Niemniej wskaż, która różnica diametralne powoduje, że Pascal jest łatwiejszy?

Zalety Pascala w stosunku do C:

P.S. Mogłem coś przekręcić, bo Pascala ostatnio widziałem wieki temu...

edytowany 1x, ostatnio: vpiotr
somedev
  • Rejestracja:ponad 6 lat
  • Ostatnio:prawie 5 lat
  • Postów:666
0

@furious programming: z tym GC to nie dot C czy Pascala ale jako kolejny ułatwiacz/poziom abstrakcji. @vpiotr dzięki za bardzo fajne zestawienie. Poruszyłeś arę kwestii o których zapomniałem. Szkoda tylko ze jedyna firma co mogłaby z tym językiem coś zrobić go zabija.

flowCRANE
Ok, nie zrozumiałem. Choć trudno było inaczej to zinterpretować. :P
Spearhead
  • Rejestracja:prawie 6 lat
  • Ostatnio:2 minuty
  • Postów:1002
0

Poznanie i zrozumienie C jest po prostu praktyczniejsze, ciągle język ten jest szeroko w użyciu w elektronice, systemach wbudowanych, programowaniu systemowym czy chociażby pisaniu optymalizacji dla wolniejszych języków pokroju rozszerzeń Pythona. Pascala zaś co najwyżej można spotkać w projektach muzealnych lub starych podręcznikach z lat 80-tych. C stanowi również bezpośredni wstęp do C++, który jest daleko popularniejszy i użyteczniejszy niż Delphi. Nawet więc jeśli C jest bardziej oporny bo się trzeba męczyć ze wskaźnikami, dziwnymi napisami i masą pułapek pokroju tego, że się tablice degenerują do wskaźników przy przekazywaniu do funkcji, to i tak bardziej opłaca się wybrać właśnie niego. Listowanie zalet Pascala w stosunku do C w imię ułatwień dla początkujących mija się z celem, bo równie dobrze można od razu iść w Go lub Pythona i uczyć się pisać pętle w bardziej ludzkich warunkach - choć i tak uważam, że warto zaczynać od C bo bycie bliżej maszyny pozwala lepiej ją zrozumieć.

Także nie, nie ma sensu uczyć się Pascala.

edytowany 1x, ostatnio: Spearhead
somedev
Nie przesadzaj. Delphi żyje i serio można dobrze w nim zarobić. Nie jest muzealny jak twierdzisz. Niemniej masz racje, że C jest praktyczniejszy. Btw. python to takie wysokopoziomowe api dla C, gdzie koduje sie wydajne rzeczy. Widziałem badania w pythonie który uruchamiał funkcje C które z dużą wydajnością zapodawały dane dla FPGA po PCI-E.
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:Tuchów
  • Postów:12167
3
Spearhead napisał(a):

Poznanie i zrozumienie C jest po prostu praktyczniejsze […]

Tak, jeśli swoją przyszłość wiąże się z C lub jakimkolwiek językiem C-pochodnym.

Pascala zaś co najwyżej można spotkać w projektach muzealnych lub starych podręcznikach z lat 80-tych.

Zgadzam się w pełni.

C stanowi również bezpośredni wstęp do C++, który jest daleko popularniejszy i użyteczniejszy niż Delphi.

Wątek dotyczy Pascala, nie Delphi. Mimo wszystko o ile jest popularniejsiejszy, to z tą użyteczniejszością bym tak nie szalał. Abstrakcja podobna, funkcjonalność też, co najwyżej liczba bibliotek większa dla tego pierwszego.

Listowanie zalet Pascala w stosunku do C w imię ułatwień dla początkujących mija się z celem […]

Nie mija się z celem, bo czy się to komuś podoba czy nie, Pascal został stworzony właśnie dla początkujących, aby obniżyć próg wejścia – i nadaje się do nauki dużo bardziej niż C. Pytanie tylko czy warto (retoryczne).

[…] bo równie dobrze można od razu iść w Go lub Pythona […]

I dlatego właśnie Pascal został wyparty przez Pythona z programu nauczania, ze względu na prostotę i dużo większą popularność, w tym komercyjną. Nie dziwię się temu ani trochę.


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
edytowany 3x, ostatnio: flowCRANE
Spearhead
  • Rejestracja:prawie 6 lat
  • Ostatnio:2 minuty
  • Postów:1002
1
furious programming napisał(a):
Spearhead napisał(a):

Poznanie i zrozumienie C jest po prostu praktyczniejsze […]

Tak, jeśli swoją przyszłość wiąże się z C lub jakimkolwiek językiem C-pochodnym.

Które to języki stanowią dominującą część rynku.

C stanowi również bezpośredni wstęp do C++, który jest daleko popularniejszy i użyteczniejszy niż Delphi.

Wątek dotyczy Pascala, nie Delphi. Mimo wszystko o ile jest popularniejsiejszy, to z tą użyteczniejszością bym tak nie szalał. Abstrakcja podobna, funkcjonalność też, co najwyżej liczba bibliotek większa dla tego pierwszego.

I już sama ilość bibliotek wystarczy. Przykładowo na liście popularnych silników gier https://en.wikipedia.org/wiki/List_of_game_engines języki C-podobne zdecydowanie dominują, po Delphi ani śladu.

Listowanie zalet Pascala w stosunku do C w imię ułatwień dla początkujących mija się z celem […]

Nie mija się z celem, bo czy się to komuś podoba czy nie, Pascal został stworzony właśnie dla początkujących, aby obniżyć próg wejścia – i nadaje się do nauki dużo bardziej niż C. Pytanie tylko czy warto (retoryczne).

No a Scratch czy Logo mają obniżony próg wejścia jeszcze bardziej co nie znaczy, że warto je polecać komukolwiek poza dziećmi.

WL
  • Rejestracja:około 21 lat
  • Ostatnio:około 2 miesiące
  • Postów:1082
1
Spearhead napisał(a):
furious programming napisał(a):
Spearhead napisał(a):

Poznanie i zrozumienie C jest po prostu praktyczniejsze […]

Tak, jeśli swoją przyszłość wiąże się z C lub jakimkolwiek językiem C-pochodnym.

Które to języki stanowią dominującą część rynku.

Czyżby?
Bo np. taki C# albo nawet i Java to bardziej są podobne do C czy do Object Pascala?
Podpowiem - no na pewno nie do C, bo sama klamra to jeszcze za mało...

C stanowi również bezpośredni wstęp do C++, który jest daleko popularniejszy i użyteczniejszy niż Delphi.

Wątek dotyczy Pascala, nie Delphi. Mimo wszystko o ile jest popularniejsiejszy, to z tą użyteczniejszością bym tak nie szalał. Abstrakcja podobna, funkcjonalność też, co najwyżej liczba bibliotek większa dla tego pierwszego.

I już sama ilość bibliotek wystarczy. Przykładowo na liście popularnych silników gier https://en.wikipedia.org/wiki/List_of_game_engines języki C-podobne zdecydowanie dominują, po Delphi ani śladu.

Co nie znaczy, że to prawda. Wystarczy 2 minuty aby zweryfikować to "ani śladu"...
Poza tym, a co to za wyznacznik - gameengines?

Listowanie zalet Pascala w stosunku do C w imię ułatwień dla początkujących mija się z celem […]

Nie mija się z celem, bo czy się to komuś podoba czy nie, Pascal został stworzony właśnie dla początkujących, aby obniżyć próg wejścia – i nadaje się do nauki dużo bardziej niż C. Pytanie tylko czy warto (retoryczne).

No a Scratch czy Logo mają obniżony próg wejścia jeszcze bardziej co nie znaczy, że warto je polecać komukolwiek poza dziećmi.

No może i tak, ale już zupełnie totalnym nieporozumieniem jest polecanie nauki C zamiast Object Pascala.
Gdyby to było C++, to zupełnie bym się nie czepiał.

Spearhead
  • Rejestracja:prawie 6 lat
  • Ostatnio:2 minuty
  • Postów:1002
0

Które to języki stanowią dominującą część rynku.

Czyżby?
Bo np. taki C# albo nawet i Java to bardziej są podobne do C czy do Object Pascala?
Podpowiem - no na pewno nie do C, bo sama klamra to jeszcze za mało...

Jasne, a termin "języki C-podobne" się wziął znikąd.

I już sama ilość bibliotek wystarczy. Przykładowo na liście popularnych silników gier https://en.wikipedia.org/wiki/List_of_game_engines języki C-podobne zdecydowanie dominują, po Delphi ani śladu.

Co nie znaczy, że to prawda. Wystarczy 2 minuty aby zweryfikować to "ani śladu"...
Poza tym, a co to za wyznacznik - gameengines?

Ani śladu na zalinkowanej liście. Jakieś silniki pewnie są, ale cóż z tego? Są i na Haskella, nie znaczy, że ktoś poza zapaleńcami tego używa. To jest margines.

I co jest niby złego w silnikach gier jako przykładu? Równie dobrze można by podać systemy operacyjne, implementacje baz danych czy wysoko wydajne implementacje rzeczy pokroju kodeków audio/video czy algorytmów kompresji. Jakoś w dzisiejszych czasach nikt do tego rodziny Pascala nie wybiera.

No a Scratch czy Logo mają obniżony próg wejścia jeszcze bardziej co nie znaczy, że warto je polecać komukolwiek poza dziećmi.

No może i tak, ale już zupełnie totalnym nieporozumieniem jest polecanie nauki C zamiast Object Pascala.
Gdyby to było C++, to zupełnie bym się nie czepiał.

Ponieważ jest ciągle użyteczny. Jak człowiek wychyli nos spoza programowania aplikacji webowych czy desktopowych i zajrzy chociażby do sąsiadów, elektroniki i automatyki, to nagle się okazuje, że pół świata hula na C.

somedev
Dobre sobie. Moi sąsiedzie nawet pralki nie potrafią zaprogramować wiec wiesz ;)
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:Tuchów
  • Postów:12167
0
Spearhead napisał(a):

Jasne, a termin "języki C-podobne" się wziął znikąd.

Wziął się wyłącznie z podobieństw związanych ze składnią, a raczej z głównymi konstrukcjami, takimi jak nagłówki, bloki grupujące, deklaracje zmiennych itd. Wygląd kodu można rzec.

Natomiast jeśli chodzi o pozostałe aspekty to językowi C bliżej jest do Assembly niż do C#.


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
WL
Assembly? Takiego, w rozumieniu .NET?
flowCRANE
W rozumieniu poziomu abstrakcji.
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)