Skocz do zawartości

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

JamesVoo

Pascal. Czy opłaca się go uczyć jako pierwszy język

Polecane posty

Też zacząłem od pascala i moje jedyne problemy pojawiały się przy pętli for, do...while i tym, że ciągle dopisywałem "then" na końcu ifów ;) Ale to i tak malutkie pomyłki, które albo zauważał kompilator, albo sam poprawiałem szybko...

Link do komentarza
Udostępnij na innych stronach

odpowiadając na pytanie: oczywiście że tak, polecam pascala na początek, po 1 to taki notatnik wśród kompilatorów, niby stary i ubogi a wszystko w nim można zorobić. Pozatym to wprowadzenie to siii plas plas <jak to mówi moj nauczyciel> xD

Link do komentarza
Udostępnij na innych stronach

Co do drugiego argumentu, to C++ można się z powodzeniem nauczyć zupełnie nie znając Pascala, w pewnym sensie jest to nawet prostsze, bo przynajmniej się funkcje nie mieszają i się człowiek nie zastanawia co w danym języku oznacza "=" przypisanie, czy porównanie.

Co do pierwszego, to Pascal jest językiem, a nie kompilatorem, który ze względu na wiek jest ubogi. Jeśli już ktoś zamierza się uczyć Pascala, lub czegoś podobnego, to lepiej jest uczyć się Object Pascala (Delphi), przynajmniej przy przejściu na C++ nie będzie niespodzianki, że można programować obiektowo.

Link do komentarza
Udostępnij na innych stronach

Taka mała uwaga - Object Pascal to kiedyś było Delphi, teraz już nikt nie używa tej pierwszej nazwy i Delphi to zarówno nazwa języka programowania jak i IDE z kompilatorem. A tu masz link , który to udowadnia (prowadzi do indeksu najpopularniejszych języków programowania - w spisie figuruje zarówno Delphi jak i Pascal, ale czegoś takiego jak Object Pascal tam nie ma :) )

Wiem, że się czepiam, ale chodzi mi oto żeby ktoś nie zaczął szukać np. kompilatorów Object Pascala, bo mógłby trafić na dziwne wyniki ;)

Link do komentarza
Udostępnij na innych stronach

To co innego Java jest do urządzeń przenośnych JavaScript do skryptów

Java to nie tylko urządzenia przenośne, ale również m.in aplikacje. To tak w ramach sprostowania. :)

Up: Bezedura. Jest wiele mniejszego i większego softu na PC-ty.

Link do komentarza
Udostępnij na innych stronach

Popieram Kagexa, James, najwyraźniej kompletnie nie znasz rynku ^^ Programy na urządzenia mobilne to zaledwie drobny procent pisanych w Javie. Właściwie wszystkie aplikacje "dla firm", które nie są pisane w phpie lub asp powstają w Java. Czemu? Bo taniej. Co z tego że program będzie działał pięć razy wolniej niż taki sam napisany w C++? Ważne, że zostanie napisany szybciej i mniejszym wysiłkiem, co oznacza mniejsze koszty i możliwość ustawienia krótszego deadline'u, co z kolei pozwala wygrywać przetargi na oprogramowanie. Dowód? 80% programów wykorzystywanych w PLL LOT (byłem na praktykach) jest napisanych właśnie w Javie. I wszyscy użytkownicy klną niemiłosiernie na żółwie tempo działania xD

W ramach dalszego sprostowania - Javascript jest do skryptów w przeglądarkach internetowych i ma niewiele wspólnego ze zwykłą Javą.

Swoją drogą... Tak sobie pomyślałem, że gdyby ktoś się uparł mógłby umieścić maszynę wirtualną lub interpreter Javy w jakiejś aplikacji i używać jej do skryptów. Dobra, już nic nie mówię ;]

Wracając do tematu, bo nam się straszny offtop robi - wielokrotnie już wyrażałem swoje zdanie o braku sensu uczenia się Pascala i nie chce mi się powtarzać znów tych samych argumentów ergo... Idę spać ^^

Link do komentarza
Udostępnij na innych stronach

Nie wiem czy kogoś jeszcze zainteresuje ten temat, ale gdyby komuś w Google ta strona wyskoczyła to chciałbym dodać coś od siebie, z dobrego serca, by rozwiać pewne wątpliwości,

Pytanie brzmiało: Czy opłaca się uczyć Pascala jako pierwszy język?

Odpowiedź brzmi:

To zależy jakiej korzyści się spodziewasz z faktu nauczenia się Pascala?

Jeśli chodzi o pieniądze

- Pascala samego w sobie nie opłaca się za bardzo (nie znajdziesz łatwo ofert pracy dla "czystego" Pascala)

- Delphi - opłaca się bo można zarobić niezłą kasę, jest mało specjalistów - więc są większe zarobki. Z kolei trudno zdobyć pracę bo jest niewiele ofert a szuka się osób naprawdę dobrze zaznajomionych z tym językiem. Pisząc w Delphi można świetnie nauczyć się zaawansowanych technik programowania obiektowego i nie dostać przy tym szału - powodzenia gdy zaczynasz naukę technik obiektowych od C++ - jak nie umiesz dobrze C to możesz, ale nie musisz, utknąć na rzeczach, które są zupełnie nieważne jeśli chodzi o techniki obiektowe (np. wskaźniki) - co może być zniechęcające i niepotrzebne. W Delphi Ci to nie grozi. Tam ze wskaźnikami walczysz tylko, gdy koniecznie tego chcesz, podczas gdy w C++ jest to na porządku dziennym. Dobrze programować w Delphi nie oznacza tylko stworzyć formatki przy użyciu VCL i podpiąć nieudolnie swój kod do kodu klasy formularza. Dobrze programować w Delphi oznacza oddzielać warstwę wizualną od warstwy biznesowej. W praktyce - bez znajomości technik obiektowych - nie jest to niestety możliwe. Inna sprawa, że w Delphi każdy może stworzyć program, dla którego wygenerowano bardzo szybki kod wykonywalny (szybkość aplikacji stworzonych przy użyciu kompilatora Delphi 7.0 to 75% wydajności najszybszego kompilatora C++ na świecie, czyli Microsoft Visual C++ - oczywiście to można stwierdzić tylko dla skomplikowanych lub długich obliczeń matematycznych - takie testy mogą tylko przeprowadzić ludzie, którzy się znają na rzeczy. Tacy jak ten człowiek co napisał ten artykuł np.

http://www.epokay.net/artur/cpp_lepszy.htm

Pan ten wykazał wyższość pewnych kompilatorów C++ od kompilatora Delphi - jeśli chodzi o szybkość tworzonych aplikacji przy znacznych obliczeniach obciążających bardzo nasz procesor. Ta różnica jest niewykrywalna przez zwykłego człowieka.

Jeśli chodzi o to co potrafisz zrobić nauczywszy się Delphi, a co potrafisz nauczywszy się C++:

Delphi to jedyny język na świecie (pomijam milczeniem implementacje języka C++ ze stajni Borlanda, który posiada biblioteki VCL z Delphi - a jego kompilator napisany w Delphi szybkością nie przewyższa wcale Delphi), który umożliwia tworzenie niezwykle wydajnych natywnych aplikacji Windows i tworzenie z wielką łatwością interfejsów graficznych dla naszych aplikacji. C++ tego nie potrafi. Biblioteki języka Delphi są potężne, zaś czysty C++ to przy Delphi biedactwo.

Nauczywszy się Delphi umiesz zrobić wszystko, czego potrzeba by nazywać siebie prawdziwym programistą - jesteś fachowcem, który umie stworzyć interfejs graficzny aplikacji, podpiąć do niej dowolną bazę danych, przesłać informacje przez Internet za pomocą TCP/IP itd... Dobrze programować w Delphi to być człowiekiem, co potrafi wszystko szybko i łatwo stworzyć.

Nauczywszy się nawet perfekcyjnie całego C++ nie zrobisz w nim w ciągu godziny tego co w Delphi w kilka sekund. C++ jest szybszy od Delphi o 25% ale przy tym niepomiernie uboższy, toporny i ciężki. C++ to język dla masochistów, specjalistów od metod numerycznych, fanatyków - którzy lubią kontrolować każdy bajt, pisać wszystko samemu, oraz jest to również jedyny język dla twórców gier komputerowych - którzy zresztą posiadają wszystkie wcześniej wymienione cechy :P

W Delphi oczywiście da się pisać super gry z użyciem DirectX lub OpenGL, zaryzykowałbym nawet stwierdzenie, że jest to łatwiejsze niż w C++ (głównie przez bogactwo językowe Delphi i bezpieczeństwo jakie zapewnia język, dzięki swoim surowym rygorom składniowym) ale pamiętajmy o tych 25% w wydajności - co w grach jest sprawą kluczową:P

I w Delphi pewnych rzeczy nie da się zrobić, a które da się zrobić w C++, co wpływa w niewielki sposób na szybkość.

Jeśli zaś nie zależy Ci na szybkości to zdecydowanie polecam język C#. Co prawda interfejsy graficzne aplikacji tworzy się w nim trochę ciężej niż w Delphi, bo Visual Studio (najlepsze środowisko do pisania w C#) nie jest tak dopracowane w tej kwestii jak CodeGear Delphi. C# sam w sobie w standardzie języka - w przeciwieństwie do Delphi - nie zawiera żadnych bibliotek z kontrolkami wizualnymi - wszystko jest zaciągane z .NET. Jednak C# jest to teraz zdecydowanie najbardziej zaawansowany język na świecie (jest jeszcze Java - szalenie nowoczesna, ale nie zachwyca mnie - bo tworzenie interfejsu graficznego to w Javie mordęga, a podpinanie bazy danych do aplikacji pisanej w Javie wywołuje tylko litościwy uśmiech programisty Delphi, czy C#)

Wracając do pytania. Opłaca się uczyć Delphi. Ale bardziej opłaca się uczyć C#.

Acha. Bez znajomości C++ ciężko zrozumieć pewne rzeczy w C# i w Delphi :P Opłaca się więc uczyć C++ i C#, lub Delphi i C#, lub C++ i Delphi, lub C++, C# i Delphi:P A który język jako pierwszy... hm.. który chcesz. I tak musisz znać kilka :P

Nie ma najlepszego języka programowania. Każdy najlepiej się sprawdza się w jakiś określonych zastosowaniach. Można o tym pisać godzinami. Zadaj sobie zawsze pytanie - do czego mi jest potrzebny dany język - i wtedy wybierz.

Link do komentarza
Udostępnij na innych stronach

Delphi to jedyny język na świecie (pomijam milczeniem implementacje języka C++ ze stajni Borlanda, który posiada biblioteki VCL z Delphi - a jego kompilator napisany w Delphi szybkością nie przewyższa wcale Delphi), który umożliwia tworzenie niezwykle wydajnych natywnych aplikacji Windows i tworzenie z wielką łatwością interfejsów graficznych dla naszych aplikacji. C++ tego nie potrafi. Biblioteki języka Delphi są potężne, zaś czysty C++ to przy Delphi biedactwo.

No właśnie szybkich natywnych aplikacji na Windows i tylko Windows. Uważam, że dobry kod powinien być przenośny, w przypadku Delphi osiągnięcie czegoś takiego nie jest możliwe. Kylix nie jest rozwijany od wielu lat i w obecnych systemach *nixowych nie ma możliwości skompilowania czegokolwiek, nawet jeśli by się dało, to jest on już przestarzały.

Zapomniałeś napisać, że czysty C++ tego nie potrafi. Siłą C++ są dodatkowe biblioteki, dzięki którym można zrobić wszystko szybko. Oczywiście przy tworzeniu interfejsów graficznych można robić wszystko w WinAPI, czy rysować ręcznie, ale po co skoro są Qt4 i GTK+?

Nauczywszy się Delphi umiesz zrobić wszystko, czego potrzeba by nazywać siebie prawdziwym programistą - jesteś fachowcem, który umie stworzyć interfejs graficzny aplikacji, podpiąć do niej dowolną bazę danych, przesłać informacje przez Internet za pomocą TCP/IP itd... Dobrze programować w Delphi to być człowiekiem, co potrafi wszystko szybko i łatwo stworzyć.

I który nie napisze nic, jeśli ktoś usadzi go przy czymś innym niż jedynie słuszny system. To ma pewne plusy, bo jednak Windows jest najpopularniejszym systemem, ale niekiedy trzeba napisać coś, co da się uruchomić/skompilować na dowolnym komputerze i wtedy jest spory zonk.

Nauczywszy się nawet perfekcyjnie całego C++ nie zrobisz w nim w ciągu godziny tego co w Delphi w kilka sekund. C++ jest szybszy od Delphi o 25% ale przy tym niepomiernie uboższy, toporny i ciężki. C++ to język dla masochistów, specjalistów od metod numerycznych, fanatyków - którzy lubią kontrolować każdy bajt, pisać wszystko samemu, oraz jest to również jedyny język dla twórców gier komputerowych - którzy zresztą posiadają wszystkie wcześniej wymienione cechy :P

To jest kwestia doświadczenia i umiejętności. W C++ da się napisać w rozsądnym czasie aplikację okienkową, tyle tylko, ze trzeba użyć odpowiednich bibliotek (patrz ostatnia moja wypowiedź). Nie nazywałbym ludzi programujących w C++ masochistami. Owszem dzięki różnym funkcjom ma się sporą kontrolę nad systemem, ale wcale nie trzeba ze wszystkich tych funkcji przez cały czas korzystać.

Jeśli zaś nie zależy Ci na szybkości to zdecydowanie polecam język C#. Co prawda interfejsy graficzne aplikacji tworzy się w nim trochę ciężej niż w Delphi, bo Visual Studio (najlepsze środowisko do pisania w C#) nie jest tak dopracowane w tej kwestii jak CodeGear Delphi. C# sam w sobie w standardzie języka - w przeciwieństwie do Delphi - nie zawiera żadnych bibliotek z kontrolkami wizualnymi - wszystko jest zaciągane z .NET. Jednak C# jest to teraz zdecydowanie najbardziej zaawansowany język na świecie (jest jeszcze Java - szalenie nowoczesna, ale nie zachwyca mnie - bo tworzenie interfejsu graficznego to w Javie mordęga, a podpinanie bazy danych do aplikacji pisanej w Javie wywołuje tylko litościwy uśmiech programisty Delphi, czy C#)

C# najbardziej zaawansowany? Mógłbyś rozwinąć, tudzież zdefiniować słowo zaawansowany?

Moje zdanie o C# przedstawia się tak.

Zalety:

- Dzięki Visual Studio wszystko można wyklikać, samemu wystarczy tylko wpisać labelki itp.

- Kompilacja do kodu pośredniego jest szybka.

Wady:

- Szybkość działania programu napisanego w C# jest jaka jest. Coś za coś, jak to mawiają.

- Przenośność kodu jest znikoma. Niby istnieją projekty, które pozwalają na zabawę z C# na innych platformach, ale jednak nadal nie oferują one wszystkiego.

- W C# nie nauczysz się programować. O pewnych istotnych rzeczach nie będziesz sobie zdawał sprawy, bo są one ukryte (chociażby zwalnianie zmiennych).

Uczenie się C# na początku przygody z programowaniem nie ma zbyt dużego sensu, gdyż programując w C# nie dowiesz się o wielu istotnych z punktu widzenia programisty rzeczach. Podobny zarzut dotyczy Javy i języków skryptowych. Później czemu nie (nie lubię C#, ale jeśli ktoś koniecznie chce, to jego wola).

Wracając do pytania. Opłaca się uczyć Delphi. Ale bardziej opłaca się uczyć C#.

Delphi to potężny język, ale ze względu na popularność i uniwersalność jednak lepszym wyborem według mnie jest C++. O C# napisałem wyżej.

Acha. Bez znajomości C++ ciężko zrozumieć pewne rzeczy w C# i w Delphi :P Opłaca się więc uczyć C++ i C#, lub Delphi i C#, lub C++ i Delphi, lub C++, C# i Delphi:P A który język jako pierwszy... hm.. który chcesz. I tak musisz znać kilka :P

Na początek lepiej jest wybrać język teoretycznie trudniejszy, ale dający większą kontrolę, by zdawać sobie sprawę z pewnych rzeczy związanych z programowaniem. Dlatego lepiej jednak zaczynać od C++, lub ewentualnie Delphi. Ale z wymienionych przeze mnie wcześniej powodów ja gdybym miał teraz wybierać jeszcze raz bez wachania na początek wybrałbym C++.

Link do komentarza
Udostępnij na innych stronach

Zastanowiwszy się nad tym, dochodzę do wniosku, że pewnie masz rację.

Ja C# uczyłem się tylko 1 dzień, ale tylko dlatego, że umiałem już programować dobrze w Delphi i jako tako C++. Teraz jak się tak zastanowię, to dla początkującej osoby C# faktycznie może być zbyt skomplikowany.

Delphi lub C++ w stopniu podstawowym to... podstawa zanim się weźmiesz za C#.

Co do zalet C#, które dla mnie są najistotniejsze:

- typy generyczne (C++ ma toporne w użyciu template'y, zaś Delphi generyków nie miało aż do wersji 2009)

- mechanizm delegatów

- metody anonimowe

- przydatne funkcje, których działanie zostało niemal żywcem skopiowane z Delphi (bo nie jest tajemnicą, że to właśnie twórca Delphi stworzył C#)

- ścisła współpraca z platformą .NET (w Delphi dla Win32 równie łatwy dostęp do platformy .NET zapewnia tylko RemObject Hydra)

a ) LINQ

b ) WPF

c ) inne bogate biblioteki .NET zwalniające programistów z obowiązku pisania takich rzeczy jak klasa do szyfrowania, wysyłania maili, komunikacji przez Internet - biblioteki co mają wiele, wiele przydatnych funkcji, pisane są przez najlepszych programistów na świecie i zabezpieczane przed mechanizmami, o których nawet nie wiesz, że istnieją i że są niebezpieczne dla poufności przesyłanych danych.

- jeden nowoczesny język do wielu nowoczesnych technologii (Silverlight, aplikacje Windows, aplikacje na komórki pod Windows Mobile i w ogóle wszelkie urządzenia mobilne na WindowsCE - w tym terminale przemysłowe (takie jak LXE))

- najlepsze środowisko programistyczne (Visual Studio) jeśli chodzi o refaktoring kodu (w tym CodeGear Delphi ustępuje VS)

Co do przenośności C++...

Jakby na to nie patrzeć, prawie wszędzie gdzie idziesz do pracy - tworzysz/rozwijasz aplikację która jest pisana pod Windows. Więc jaką masz korzyść z tej przenośności kodu C++, poza jakimiś szczególnymi przypadkami?

Link do komentarza
Udostępnij na innych stronach

Teraz jak się tak zastanowię, to dla początkującej osoby C# faktycznie może być zbyt skomplikowany.

Wydaje mi sie, ze C# jest wlasnie latwiejszy.. Ale co z tego, skoro programista bedzie zyl w nieswiadomosci, ze istnieja takie rzeczy jak garbage collectory (tak, jak wspominal o tym Sevard).

Co do przenośności C++...

Jakby na to nie patrzeć, prawie wszędzie gdzie idziesz do pracy - tworzysz/rozwijasz aplikację która jest pisana pod Windows. Więc jaką masz korzyść z tej przenośności kodu C++, poza jakimiś szczególnymi przypadkami?

Oj zdziwilbys sie.. Ja bym powiedzial, ze firmy oszczedzaja, gdzie sie da, dlatego inwestuja w darmowe oprogramowanie open source, by pracownicy za jego pomoca tworzyli aplikacje na systemy komercyjne. Mniejsze koszta, wiekszy zysk - sama przyjemnosc ;-)

Poza tym tak popularny rynek aplikacji mobilnych. Wiele aplikacji pisanych jest wlasnie w Javie. Ok, sa tez aplikacje C# pod Windows Mobile, ale jednak wciaz wiele telefonow operuje na Javie.

Link do komentarza
Udostępnij na innych stronach

BorysBe >> co wypowiedź to jakaś herezja ;)

C# ... najbardziej zaawansowany język na świecie
Konkrety, w czym C# jest bardziej zaawansowany od Cpp?

typy generyczne (C++ ma toporne w użyciu template'y
Konkrety, co Cię boli w template'ach z C++?

inne bogate biblioteki .NET zwalniające programistów z obowiązku pisania takich rzeczy jak klasa do szyfrowania, wysyłania maili, komunikacji przez Internet - biblioteki co mają wiele, wiele przydatnych funkcji, pisane są przez najlepszych programistów na świecie i zabezpieczane przed mechanizmami, o których nawet nie wiesz, że istnieją i że są niebezpieczne dla poufności przesyłanych danych
No tak, w Cpp wszystko trzeba pisać od podstaw samemu. Dla Cpp nie istnieją biblioteki do wysyłania maili, nie istnieją biblioteki do komunikacji przez sieć, nie istnieją biblioteki do kompresji, ani do szyfrowania. No i z pewnością jesteś w stanie jakoś udowodnić, że .Net napisali najlepsi programiści na świecie, prawda?

Ty może nie wiesz, że te mechanizmy istnieją, ale skąd pewność, że ja nie wiem?

I skąd pewność, że Ci najlepsi programiści napisali biblioteki, które są naprawdę zabezpieczone przed tymi mechanizmami?

A czy są zabezpieczone przed tamtymi mechanizmami?

najlepsze środowisko programistyczne (Visual Studio) jeśli chodzi o refaktoring kodu
Pracowałeś na wszystkich narzędziach programistycznych? Może jakieś badania na poparcie Twoich słów?

Nie? To bądź łaskaw się wycofać z tego stwierdzenia.

Co do przenośności C++...

Jakby na to nie patrzeć, prawie wszędzie gdzie idziesz do pracy - tworzysz/rozwijasz aplikację która jest pisana pod Windows. Więc jaką masz korzyść z tej przenośności kodu C++, poza jakimiś szczególnymi przypadkami?

Żeby daleko nie szukać ja aktualnie pracuję nad aplikacją, która ma działać na Windowsie i na Linuxie.

Więcej mi się nie chce. Nie zachowuj się jak Troll. Popieraj swoje stwierdzenia argumentami. Dyskusja w stylu: "Warto się uczyć Pascala bo jest Delphi, a Cpp to jest boo" to nie dyskusja tylko monolog i to kiepski.

Link do komentarza
Udostępnij na innych stronach

Żeby zrobić template w C++ muszę zdecydowanie za bardzo się namęczyć.

W C# jedna linijka deklaracji w stylu:

List<JakisTyp> mojaLista

zapewnia mi zadeklarowanie takiego typu jaki chcę.

To samo w C++ muszę napisać tak:

template <typename T>

class List

{

...

};

List <MojaKlasa> mojaLista;

Jak chcesz to się męcz i pisz sobie wszystko samemu w C++. Ja nie mam na to czasu i szkoda nerwów. C++ jest ubogi pod tym względem. Zaś konkatenacja łańcuchów i operowanie na nich to dla mnie w ogóle jakaś pomyłka.

Programuje i po prostu nie znam lepszego środowiska jak Visual Studio, które by zapewniało równie wygodny refaktoring kodu. Zmiana nazw zmiennych w całym projekcie za pomocą jednego kliknięcia, wydzielanie napisanego tekstu do osobnej metody, wykrywanie użycia w kodzie nazwy metody, która nie istnieje spotyka się od razu z propozycją jej utworzenia, co jest szalenie wygodne, bo program sam za nas generuje deklaracje, podczas gdy my nawet nie musieliśmy wyjść z kodu poprzedniej metody i możemy skupiać się dalej na naszym zagadnieniu. To się szalenie przydaje. Które środowisko zapewnia wszystkie te rzeczy?

C++ pozwala niemalże na wszystko, jest ceniony i lubiany, niemniej jest to język, który nie jest już rozwijany, dlatego wiele rozwiązań z C++ jest zrealizowanych o wiele lepiej w nowszych językach takich jak Java, C#, Delphi.

C++ jest dobry do określonych zastosowań, a do innych zastosowań są lepsze inne języki. To jest dla mnie proste.

Link do komentarza
Udostępnij na innych stronach

Żeby zrobić template w C++ muszę zdecydowanie za bardzo się namęczyć.

W C# jedna linijka deklaracji w stylu:

List<JakisTyp> mojaLista

zapewnia mi zadeklarowanie takiego typu jaki chcę.

To samo w C++ muszę napisać tak:

template <typename T>

class List

{

...

};

List <MojaKlasa> mojaLista;

Od kiedy tworzenie listy to deklaracja typu? Ciągle "JakisTyp" trzeba zadeklarować.

C++ jest ubogi pod tym względem.

Mylisz ubogość ze skomplikowaniem. Poza tym, jak zostało powiedziane, siłą języka są biblioteki typu STL. C# też przecież korzysta z .NET.

Zaś konkatenacja łańcuchów i operowanie na nich to dla mnie w ogóle jakaś pomyłka.

W C# jest to wszystko opakowane w klasy, ale ciągle tam pod spodem jest. Poza tym w C++ jest klasa string, która umożliwia wygodną pracę na ciągach.

Programuje i po prostu nie znam lepszego środowiska jak Visual Studio, które by zapewniało równie wygodny refaktoring kodu. Zmiana nazw zmiennych w całym projekcie za pomocą jednego kliknięcia, wydzielanie napisanego tekstu do osobnej metody, wykrywanie użycia w kodzie nazwy metody, która nie istnieje spotyka się od razu z propozycją jej utworzenia, co jest szalenie wygodne, bo program sam za nas generuje deklaracje, podczas gdy my nawet nie musieliśmy wyjść z kodu poprzedniej metody i możemy skupiać się dalej na naszym zagadnieniu. To się szalenie przydaje. Które środowisko zapewnia wszystkie te rzeczy?

Netbeans, eclipse. One mają rzeczy, których w VS nie ma, ot chociażby pokazywanie błędów i ostrzeżeń kolorowymi paskami obok pionowego scrollbara.

Do VS jest całkiem fajny resharper, ale jest to płatny dodatek.

C++ pozwala niemalże na wszystko, jest ceniony i lubiany, niemniej jest to język, który nie jest już rozwijany, dlatego wiele rozwiązań z C++ jest zrealizowanych o wiele lepiej w nowszych językach takich jak Java, C#, Delphi.

Bzdura. Widzę, że o nowym standardzie, który niedługo się pojawi nie słyszałeś. Podobnie o bibliotekach boost czy tr1. Nowe VS ma jeszcze lepiej wspierać programowanie w C++.

C++ jest dobry do określonych zastosowań, a do innych zastosowań są lepsze inne języki. To jest dla mnie proste.

I odwrotnie o C# czy javie.

Żeby daleko nie szukać ja aktualnie pracuję nad aplikacją, która ma działać na Windowsie i na Linuxie.

Podobnie u mnie, przy czym aplikacja jest w ASP.NET/C#.

Tu od razu uwaga do Sevarda - "Przenośność kodu jest znikoma." - to stwierdzenie to gruba przesada, mono daje sobie całkiem nieźle radę.

Wydaje mi sie, ze C# jest wlasnie latwiejszy.. Ale co z tego, skoro programista bedzie zyl w nieswiadomosci, ze istnieja takie rzeczy jak garbage collectory

O ile można mówić o takiej nieświadomości przy C++ (bo tam nie ma GC), to przecież programista C# musiał słyszeć o GC jeśli pracuje z tym językiem dłużej niż parę dni.

Uczenie się C# na początku przygody z programowaniem nie ma zbyt dużego sensu, gdyż programując w C# nie dowiesz się o wielu istotnych z punktu widzenia programisty rzeczach. Podobny zarzut dotyczy Javy i języków skryptowych.

Szczerze mówiąc, gdybym miał być specem od C# czy Javy i tylko od tych języków, to mam w głębokim poważaniu problemy zwalniania pamięci, bo mnie one nie dotyczą. Co najwyżej mógłbym się zagłębiać w optymalizację kodu pod kątem GC. I choć w C będę (__)!(__), to w C# mogę być "mastah", zarabiać grubą kasę i mianować się terminem "programista".

Link do komentarza
Udostępnij na innych stronach

Żeby zrobić template w C++ muszę zdecydowanie za bardzo się namęczyć.

W C# jedna linijka deklaracji w stylu:

List<JakisTyp> mojaLista

zapewnia mi zadeklarowanie takiego typu jaki chcę.

To samo w C++ muszę napisać tak:

template <typename T>

class List

{

...

};

List <MojaKlasa> mojaLista;

Nie będę się męczył, skoro MS mnie w tym wyręczył. To jest to, co było wspominane wcześniej. C# jest łatwiejszy, ale oferuje mniej. Coś za coś. Pomijam to, że to coś w C# nie wygląda mi na Template.

Jak chcesz to się męcz i pisz sobie wszystko samemu w C++. Ja nie mam na to czasu i szkoda nerwów. C++ jest ubogi pod tym względem. Zaś konkatenacja łańcuchów i operowanie na nich to dla mnie w ogóle jakaś pomyłka.

Podam trzy litery, które moim zdaniem wystarczą za odpowiedź: STL.

Programuje i po prostu nie znam lepszego środowiska jak Visual Studio, które by zapewniało równie wygodny refaktoring kodu. Zmiana nazw zmiennych w całym projekcie za pomocą jednego kliknięcia, wydzielanie napisanego tekstu do osobnej metody, wykrywanie użycia w kodzie nazwy metody, która nie istnieje spotyka się od razu z propozycją jej utworzenia, co jest szalenie wygodne, bo program sam za nas generuje deklaracje, podczas gdy my nawet nie musieliśmy wyjść z kodu poprzedniej metody i możemy skupiać się dalej na naszym zagadnieniu. To się szalenie przydaje. Które środowisko zapewnia wszystkie te rzeczy?

Inne środowiska przynajmniej pilnują standardów. Poza tym wprawnemu programiście wymienione rzeczy nie są jakoś koniecznie do szczęścia potrzebne. Ja zazwyczaj programuję używając kwrite i jest mi z tym dobrze, bo mam wszystko co mi jest potrzebne, a przynajmniej nie zamulam systemu potężnym zestawem funkcji, z których i tak nie skorzystam. Argument, że "VS jest najlepszym środowiskiem, bo ja tak uważam" jest delikatnie mówiąc dziwny, a do tego sprowadza się Twoja wypowiedź.

C++ pozwala niemalże na wszystko, jest ceniony i lubiany, niemniej jest to język, który nie jest już rozwijany, dlatego wiele rozwiązań z C++ jest zrealizowanych o wiele lepiej w nowszych językach takich jak Java, C#, Delphi.

Po raz kolejny powtarzam: siłą C++ są dodatkowe biblioteki, które nie wchodzą w skład języka jako takiego. Cały czas wychodzą kolejne wersje Javy, C#, czy Delphi, ale co one tak naprawdę oferują? Czy to aby nie jest tak, że język jest taki sam, ale dodane są dodatkowe funkcjonalności, które znajdują się w bibliotekach? Plusem takiego rozwiązania jest to, że C++ jest niezależny od platformy i nie ma potrzeby ściągać setek megabajtów danych, by napisać prosty program. Minusem zaś jest to, że bez dodatkowych bibliotek niewiele można zrobić w sposób prosty. Inna sprawa, że C++ jest rozwijany, tylko nowe wersje nie wychodzą tak często.

C++ jest dobry do określonych zastosowań, a do innych zastosowań są lepsze inne języki. To jest dla mnie proste.

Tu się zgadzam, ale w swoich wypowiedziach nie pisałeś praktycznie nic o zastosowaniach, tylko skupiałeś się na wadach i zaletach języków, pomijam to, że pewne rzeczy, które Ty nazywasz wadami ja bym nazwał zaletami i na odwrót.

[edit]

@UP Widać muszę znowu pobawić się z MONO, bo ostatnim razem wykrzaczyło mi się na jakimś dosyć prostym kodzie.

Można uważać się za programistę nie mając pojęcia o programowaniu, ale czy to, uczyni osobę, która tak uważa programistą? Moim zdaniem nie. O pewnych rzeczach wypada wiedzieć, jeśli ktoś chce się tak tytułować.

Link do komentarza
Udostępnij na innych stronach

Mechanizm generyków jest wzorowany oczywiście na C++, ale chodziło mi o to, że nie musisz tworzyć własnych klas generycznych do wszystkiego bo są już stworzone i są częścią platformy .NET. Ogólnie to się z Tobą zgadzam.

Co do wygody pracy na łańcuchach, jest to dla mnie rzecz dyskusyjna. Najwygodniej mi się pracowało na łańcuchach w języku Pascal i jego pochodnych, zaś w C++ zawsze mam jakieś problemy w którymś momencie, wymaga to większej wiedzy empirycznej niż w przypadku innych języków. W Pascalu rzeczywiście istnieje prosty (i prosty do użycia) typ string, w C# jest to już klasa, która faktycznie "ma wiele pod spodem" (niemniej również jest bardzo łatwa w użyciu).

Nie powiedziałem, że inne środowiska programistyczne nie są na poziomie. Oczywiście, że są - bo ktoś ich używa i jest zadowolony. Ja mówiłem tylko o refaktoringu kodu. I tylko pod tym względem Visual Studio jest dla mnie najlepsze na świecie. Ogólnie najbardziej cenię środowisko CodeGear Delphi. Zaś Netbeans, Eclipse - nie posiadają wszystkich tych cech, które wymieniłem wcześniej, a które są dla mnie szalenie istotne, by zarządzać projektem, przy którym pracuję.

Cieszę się, że wychodzi jakiś nowy standard dla C++. Nareszcie czas, by C++ wydobyło się z tego chaosu różnych standardów narzuconych przez różnych producentów. Bo wychodziły już takie hybrydy jak C++ od Borlanda, który był dziwnym połączeniem C++ i Delphi. Oczywiście to jest fascynujące, ale trochę chore w sumie.

wies.niak, byłbyś uprzejmy podesłać mi jakieś ciekawe linki o nowym standardzie C++ na priv? Chętnie poczytam, by nadrobić swoje braki.

Dobry programista zna kilka języków i ma świadomość, co one potrafią i kiedy ich używać.

Link do komentarza
Udostępnij na innych stronach

BorysBe <<

Nie odpowiedziałeś jak to jest z tym "C# najbardziej zaawansowany język świata".

Wciąż też nie dowiedzieliśmy się skąd wiedza iż .Net stworzyli najlepsi na świecie programiści, ani skąd pewność, że zabezpieczyli go przed tamtymi mechanizmami.

W C# jedna linijka deklaracji w stylu:

List<JakisTyp> mojaLista

zapewnia mi zadeklarowanie takiego typu jaki chcę.

...

Jak chcesz to się męcz i pisz sobie wszystko samemu w C++

Ponieważ przedmówcy tego nie zrobili:
std::deque<JakisTyp> mojaLista;

To nie jest C#, tylko Cpp. Faktycznie napisałem się nie licho.

Programuje i po prostu nie znam lepszego środowiska jak Visual Studio

...

Zaś Netbeans, Eclipse - nie posiadają wszystkich tych cech, które wymieniłem wcześniej, a które są dla mnie szalenie istotne

Nie odpowiadasz na pytanie, jakich to środowisk używałeś, że możesz twierdzić tak stanowczo iż VS jest najlepszym narzędziem do refaktoringu? SlickEdit? Może chociaż Eclipse? Bo ja na ten przykład próbowałem użyć VS 2008 PRO do refaktoringu Cpp i lipa. Nie ma takich opcji, potrafi jedynie znaleźć deklarację, definicje i wszystkie odwołania do symbolu. Taki Eclipse bez problemu poradzi sobie ze zmianą nazwy klasy. Chyba przyznasz, że coś ten Twój najlepszy na świecie soft wypada blado? Zwłaszcza, że bajery o których piszesz, to Eclipse robił z Java od dawna.

C++ pozwala niemalże na wszystko, jest ceniony i lubiany, niemniej jest to język, który nie jest już rozwijany
Gwóźdź do trumny. BorysBe nie masz pojęcia o czym piszesz.

Dobry programista zna kilka języków i ma świadomość, co one potrafią i kiedy ich używać.
Jak widać Ty musisz poświęcić jeszcze nieco czasu kilku językom. Dobra, to było złośliwe i poniżej pasa, ale zachowujesz się jak Troll.

byłbyś uprzejmy podesłać mi jakieś ciekawe linki o nowym standardzie C++ na priv
Programista i google nie umie użyć?
Link do komentarza
Udostępnij na innych stronach

O ile można mówić o takiej nieświadomości przy C++ (bo tam nie ma GC), to przecież programista C# musiał słyszeć o GC jeśli pracuje z tym językiem dłużej niż parę dni.

Racja, moj blad. Chodzilo mi o zarzadzanie pamiecia wlasnorecznie. Jedno mysle, inne pisze :-P

Link do komentarza
Udostępnij na innych stronach

Ostatni post użytkownika BorysBe wykasowałem, bo moim zdaniem nic nie wnosił do dyskusji, a nie chcę w tym temacie trollowania i flejmu (bo pewnie na tym by się skończyło).

Ten post kończy dyskusję o wyższości Świąt Bożego Narodzenia nad Wielkanocą, lub na odwrót, jeśli ktoś woli.

Link do komentarza
Udostępnij na innych stronach



  • Kto przegląda   0 użytkowników

    • Brak zalogowanych użytkowników przeglądających tę stronę.
×
×
  • Utwórz nowe...