Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Chiał bym pisać typowo programy konsolowo nie koniecznie na linuxa i nie wiem jaki jezyk wybrać c++ czy c#?
Offline
Ja bym wybrał C++. Programy w nim napisane są dużo szybsze i lżejsze od tych w C#. Do tego masz lepsze zarządzanie pamięcią bo sam ją alokujesz i zwalniasz kiedy tylko chcesz. W C# odpowiada za to Garbage Collector, który dodatkowo obciąża twój program i nie zawsze zbyt dobrze wychodzi mu czyszczenie.
Offline
Słowem wstępu: serio spodziewasz się, że otrzymasz rzetelną odpowiedź, czy bardziej realistycznie tylko sprawdzasz ilu zwolenników i przeciwników danego języka tu pisze? :)
Wyjaśniwszy tę kwestię, zacznijmy [i]zwolenniczyć[/i] i [i]przeciwniczyć[/i].
C#? Znaczy te całe Mono i .NET? Uciekaaaj! Ja bym wybrał Pythona. ;)
Offline
@tajwan:
Ale co za programy? Robiące co? Trochę to pytanie nieprecyzyjne - generalnie C/C++ nie am żadnej "natywnej" biblioteki graficznej, przez co tam tak czy siak od razu kminisz na konsolę i możesz sobie do tego potem podpinać GUI, C# czy Java też to umożliwiają, ba! Praktycznie 95% bibliotek to takie które się używa bez GUI więc pytanie tylko co konkretnie chcesz osiągnąć bo do ogólnych zastosować to praktycznie każdy język dobry, ale już do jakiegoś np. przetwarzania wsadowego plików graficznych czysty C++ się nie jak nie nadaje*.
*Czysty podkreślam, czyli wszelkie biblioteki standardowe, to że mamy od cholery innych w tym graficzne to oczywiście inna bajka, problem może być w tym że jako że nie są to biblioteki standardowe, to trzeba je będzie np. ręcznie kompilować, podczas gdy dla Javy czy C# wszystko to jest w bibliotekach standardowych, co zwykle implikuje że nie ma problemów - podkreślam ZWYKLE ;]
Ja bym mierzył w C++ - jak tam nauczysz się dobrze pisać, to żaden język Ci potem nie straszny (oj te wycieki pamięci na które wszyscy tak klną ;] )
Offline
[quote=Puchaty]Ja bym wybrał C++. Programy w nim napisane są dużo szybsze i lżejsze od tych w C#. Do tego masz lepsze zarządzanie pamięcią bo sam ją alokujesz i zwalniasz kiedy tylko chcesz. W C# odpowiada za to Garbage Collector, który dodatkowo obciąża twój program i nie zawsze zbyt dobrze wychodzi mu czyszczenie.[/quote]
Owszem, jest i garbage collector, ale mamy też wskaźniki w C# :-)
[b]tajwan[/b]: sprecyzuj jakie to mają być programy ... jak mają to być programy też pod linuksa to odrzuciłbym C#.
Moje typy: C++, Python
[b]Huk[/b]: a co do wycieków pamięci ... Valgrind naszym przyjacielem jest ! :-)
Offline
Chyba każdy język programowania (przynajmniej te używane) ma możliwość obsługi we/wy w konsoli, także języki skryptowe, ale odpowiadając na Twoje pytanie: zdecydowanie C++
Offline
C++
Offline
A ja ci polecę perla ;)
Offline
wnioskuje ze skoro pytasz to nie znasz zadnego
wiec lepiej i bezpieczniej wziasc perla pythona czy rubiego niz c / c++
Offline
[quote=tajwan]Chiał bym pisać typowo programy konsolowo [b]nie koniecznie na linuxa[/b] i nie wiem jaki jezyk wybrać c++ czy c#?[/quote]
nie znam ani c ani c++ ale szczerze polecam pascala. FPC ma wersje dla windows/linux/masa innych systemów i pod różne architektury, a pisze się w nim łatwo i przyjemnie :)
[ to jest ten moment kiedy możecie rzucać krzesłami :P ]
Offline
Nie będę rzucał krzesłem ;), ale dla mnie nauka Pascala to jest po prostu strata czasu. Lepiej nauczyć się czegoś co nam się może bardziej przydać w przyszłości.
Offline
Zależy jak na to spojrzeć. Z pascala bezproblemowo (no prawie) można przejść na Object Pascal - i jego IDE Delphi, Kylix, Lazarus. Osobiście polecam te ostatnie ze względu na wieloplatformowość i oczywiście to ze jest darmowe. Crosscompiler też jest przydatny. Spokojnie pod debianem pisze proste apki na dos i windows.
Poza tym w niektórych szkołach wciąż wdraża się młodzieży Pascala (wersję 7.0 borlanda, w dodatku teraz darmową) jako język do nauki programowania. Przynajmniej w mojej tak było. No i oczywiście paskal jako język wysokiego poziomu jest o wiele przyjemniejszy do nauki niż c.
Offline
Piszesz w pierwszym poście, że nie znasz C, a w następnym, że Pascal jest łatwiejszy od C w nauce.
Ucząc się C++ nie będziesz musiał na nic przechodzić, żeby pisać obiektowo i też ma masę IDE na różne platformy. a w dodatku, co dla mnie jest tu najważniejsze, nie jest na wymarciu a jego zastosowanie jest dużo większe niż Object Pascala. Także C++ ma większe możliwości, jako język sam w sobie. Mówię tu z własnego doświadczenia bo Object Pascala też poznałem kilka lat temu i coś tam w nim napisałem. A nacisk w szkołach na Pascala to dla mnie historyczna pozostałość z lat 90. Całe szczęście, że coraz więcej szkół odchodzi od tego na rzecz C/C++, Pythona itd.
Ostatnio edytowany przez panjandrum (2012-04-19 19:39:36)
Offline
[quote=panjandrum]Piszesz w pierwszym poście, że nie znasz C, a w następnym, że Pascal jest łatwiejszy od C w nauce.[/quote]
Pisałem ze nie znam C i C++ w sensie pisania w nich aplikacji.
Kilkakrotnie zabierałem się za naukę tego uniwersalnego języka jakim jest C i za każdym razem dochodziłem do wniosku ze to nie dla mnie, po prostu składnia jest nieintuicyjna i zagmatwana. I Pascal jako taki jest [b]przyjemniejszy[/b] w nauce. Nie twierdziłem ze jest łatwiejszy, szczególnie gdy trzeba posiłkować się wstawkami assemblera dla uzyskania zamierzonego efektu.
Każdy język ma swoje plusy i minusy. Nie ważne czy to java, C, pascal, basic, czysty assembler czy jakieś inne typu bash, perl, ruby. Ważne żeby potrafić wykorzystać ich możliwości :)
Offline
@dhg:
Sorry, ale Pascal to język praktycznie martwy, co widać całkiem ładnie na rynku pracy - nie znaczy to oczywiście że nie ma pracy w ogóle, ale najczęściej to wygląda tak że mamy już jakiś rozbudowany system w Object Pascalu i ktoś go musi utrzymać, nowe rzeczy pisze się najczęściej w Javie,C# (ble!!)/ i nadal w C++, do tego coraz popularniejsze stają się języki typu Python czy Ruby - to pierwsze bardzo chwali sobie kumpel i jak widzę jak na tym napierdziela to mam ochotę się tego pouczyć ;]
Co do łatwości Pascala... też kiedyś myślałem że Pascal jest łatwiejszy od C czy C++ ale realnie wystarczy dorwać "Symfonie C++" Grębosza i już ten język straszny nie jest, a jak jeszcze do tego dorzucisz QT jako podstawowe API to nauka to przyjemność :)
Offline
dokładnie.
Offline
Symfonia C++, język ANSI C i pare innych pozycji usiłowałem czytać i coś z tego zrozumieć, szczególnie że sam C jako taki interesuje mnie cały czas jako narzędzie do tworzenia sobie softu na amige :)
Swojej przyszłości na rynku pracy nie wiąże raczej z komputerami, bo to tylko hobby. Język programowania jest dla mnie bez znaczenia do póki spełnia postawione mu zadania.
A teraz pytanie z trochę innej beczki: ilu z was, programistów C/C++ wykorzystuje w swoich aplikacjach wstawki assemblera i ewentualnie jak wygląda implementacja tego w kodzie? Zaznaczam ze pytam z czystej ciekawości.
Offline
Ja stosuje, ale to tylko w kernelu swoim:
static inline int atomic_test_and_set(atomic_t * v) { volatile int old = 1; __asm__ __volatile__ (LOCK_PREFIX "btsl $1, %1\n" "sbbl %0, %0" :"=r"(old), "=m"(v->counter) : :"memory" ); return old; }
Offline
@dhg:
Hmm no to powiem szczerze że ja się jeszcze z podobnym przypadkiem nie spotkałem... znaczy się znam osoby którym Symfonia i inne książki nic nie dały, ale oni nie umieli nauczyć się programować w niczym... powiem tak: jeżeli programujesz na zasadzie hobby i pascal Ci wystarcza to spoko, jednakże jako że @tajwan nie podał po co chce się uczyć programować, to IMHO należało by założyć że ma to być coś więcej niż hobby, coś przyszłościowego, na czym będzie się dało zarabiać, a tutaj pascal (nie)stety leży, tak więc nadal bym go nikomu świeżemu nie polecił, tym bardziej że tak naprawdę składnia C/C++ jest składnią bazową dla najpopularniejszych języków programowania na rynku pracy(C#(ble!!) i Javy), i jeżeli się ją umie to ma się dobry start w każdym z tych języków.
Co do wstawek - można je robić bez problemu tak jak podał @milyges, ale mi nigdy nie były do niczego potrzebne (inna sprawa że tak słabo znam assemblera że niewiele bym zdziałał :( ), C/C++ ma na tyle rozbudowaną bazę bibliotek że chyba 100% rzeczy zrobisz bez assemblera (o tym że kod z assemblerem jest niestety nie przenośny też trzeba by pamiętać).
Pozdro
Offline
[quote=Huk]Hmm no to powiem szczerze że ja się jeszcze z podobnym przypadkiem nie spotkałem... znaczy się znam osoby którym Symfonia i inne książki nic nie dały, ale oni nie umieli nauczyć się programować w niczym...[/quote]
Potrafie napisać jakieś pluskwy w visualbasic i pochodnych pascala, stąd drogą naturalnej ewolucji chciałem przejść na C i jego pochodne. Potrafie też tworzyć skrypty w dość dziwnej odmianie javy, choć tylko dla tego że jest to potrzebne przy moddingu pewnej gry. Niestety pomimo czytania ze zrozumieniem treści podręczników, a zaznaczam że próbowałem uczyć się C od podstaw, od teorii do praktyki na prostych przykładach, nie jestem w stanie przestawić się na jego składnie i nie potrafię "myśleć w C".
Offline
Time (s) | Query |
---|---|
0.00009 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00099 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.119.161.216' WHERE u.id=1 |
0.00075 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.119.161.216', 1732372030) |
0.00044 | SELECT * FROM punbb_online WHERE logged<1732371730 |
0.00076 | DELETE FROM punbb_online WHERE ident='3.138.105.4' |
0.00071 | DELETE FROM punbb_online WHERE ident='3.145.10.68' |
0.00067 | DELETE FROM punbb_online WHERE ident='3.145.108.43' |
0.00063 | SELECT topic_id FROM punbb_posts WHERE id=200030 |
0.00006 | SELECT id FROM punbb_posts WHERE topic_id=21079 ORDER BY posted |
0.00055 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=21079 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00094 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=21079 ORDER BY p.id LIMIT 0,25 |
0.00079 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=21079 |
Total query time: 0.00747 s |